Techniken für WCAG 2.0

Zum Inhalt

-

SCR20: Benutzung von Funktionen, die sowohl tastaturspezifisch als auch spezifisch für andere Geräte sind

Anwendbarkeit

Gilt für alle Inhalte, die Skripte benutzen, um Funktionalitäten zu implementieren.

Die Technik bezieht sich auf:

Beschreibung

Das Ziel dieser Technik ist es, die Benutzung von sowohl Tastatur-spezifischen als auch Maus-spezifischen Events mit Code, der eine verbundene Scripting-Funktion hat, zu erläutern. Die Benutzung von sowohl Tastatur-spezifischen als auch Maus-spezifischen Events zusammen stellt sicher, dass Inhalt mit einer Vielzahl an Geräten bedient werden kann. Beispielsweise kann ein Skript bei Feststellung eines Tastendrucks die gleiche Handlung ausführen, die ausgeführt wird, wenn eine Maus-Schaltfläche gedrückt wird. Diese Technik geht über die Anforderung des Erfolgskriteriums für den Zugriff per Tastatur hinaus, indem nicht nur der Zugriff per Tastatur, sondern auch der Zugriff über andere Geräte vorgesehen ist.

Häufig benutzte Event-Handler in JavaScript umfassen onblur, onchange, onclick, ondblclick, onfocus, onkeydown, onkeypress, onkeyup, onload, onmousedown, onmousemove, onmouseout, onmouseover, onmouseup, onreset, onselect, onsubmit, onunload. Einige Maus-spezifische Funktionen haben eine logische entsprechende Tastatur-spezifische Funktion (wie zum Beispiel 'onmouseover' und 'onfocus'). Es sollte ein Tastatur-Event-Handler, der die gleiche Funktion wie der Maus-Event-Handler ausführt, zur Verfügung gestellt werden.

Die folgende Tabelle gibt Empfehlungen zur Paarung von Tastatur-Event-Handlern mit Maus-Event-Handlern.

Geräte-Handler-Entsprechungen
Benutzen Sie......mit
mousedownkeydown
mouseupkeyup
click [1]keypress [2]
mouseoverfocus
mouseoutblur

1 Obwohl click hauptsächlich ein Maus-Event-Handler ist, verarbeiten die meisten HTML- und XHTML-Benutzeragenten diesen Event, wenn das Steuerelement aktiviert wird, egal ob es per Maus oder Tastatur aktiviert wurde. Daher ist es in der Praxis nicht notwendig, diesen Event zu duplizieren. Er ist der Vollständigkeit halber hier aufgeführt, da nicht-HTML-Benutzeragenten dieses Problem haben.

2 Da der keypress-Event-Handler auf jede Taste reagiert, sollte die Event-Handler-Funktion zuerst kontrollieren und sicherstellen, dass die Eingabetaste gedrückt wurde bevor damit fortgefahren wird, den Event zu verarbeiten. Andernfalls läuft der Event-Handler jedes Mal, wenn der Benutzer eine Taste drückt, sogar wenn die Tabulatortaste gedrückt wird, um das Steuerelement zu verlassen, und dies ist normalerweise nicht gewünscht.

Einige Maus-spezifische Funktionen (wie zum Beispiel dblclick und mousemove) haben keine entsprechende Tastatur-spezifische Funktion. Dies bedeutet, dass einige Funktionen unter Umständen für jedes Gerät unterschiedliche implementiert werden müssen (zum Beispiel die Aufnahme einer Reihe von Schaltflächen, um per Tastatur die äquivalenten, implementierten Maus-spezifischen Funktionen auszuführen).

Beispiele

Beispiel 1

In diesem Beispiel eines Bildlinks wird das Bild geändert, wenn der Benutzer den Zeiger über dem Bild positioniert. Um Tastaturbenutzern ein ähnliches Erlebnis zu bereiten, wird das Bild auch geändert, wenn der Benutzer per Tab dorthin geht.

Code-Beispiel:

			<a href="menu.php" onmouseover="swapImageOn('menu')" onfocus="swapImageOn('menu')" 
onmouseout="swapImageOff('menu')" onblur="swapImageOff('menu')"> 
<img id="menu" src="menu_off.gif" alt="Menu" /> 
</a>

Beispiel 2

Dieses Beispiel zeigt ein Bild, für das die Tastatur benutzt werden kann, um die Funktion zu aktivieren. Der Maus-Event onclick wird durch den passenden Tastatur-Event onkeypress dupliziert. Das tabindex-Attribut stellt sicher, dass die Tastatur einen Tabstop auf dem Bild hat. Beachten Sie, dass in diesem Beispiel die nextPage()-Funktion prüfen sollte, ob die auf der Tastatur gedrückte Taste die Eingabetaste war, ansonsten wird auf alle Tastendrücke reagiert, während das Bild den Fokus hat, was nicht das gewollte Verhalten ist.

Code-Beispiel:

			<img onclick="nextPage();" onkeypress="nextPage();" tabindex="0" src="arrow.gif" 
alt="Go to next page"> 

Anmerkung: Dieses Beispiel benutzt tabindex auf einem img-Element. Auch wenn dies derzeit ungültig ist, wird dies als vorübergehende Technik bereitgestellt, um dafür zu sorgen, dass die Funktion funktioniert.

Ressourcen

Ressourcen sind nur zu Informationszwecken und keine offizielle Empfehlung.

Tests

Vorgehensweise

  1. Finden Sie alle interaktiven Funktionalitäten

  2. Prüfen Sie, ob auf alle interaktiven Funktionalitäten über die Tastatur alleine zugegriffen werden kann

Erwartete Ergebnisse

Wenn dies eine ausreichende Technik für ein Erfolgskriterium ist, dann bedeutet das Scheitern an diesem Testverfahren nicht zwangsläufig, dass das Erfolgskriterium nicht auf irgendeine andere Art und Weise erfüllt wurde, sondern nur, diese Technik nicht erfolgreich implementiert wurde und nicht benutzt werden kann, um die Konformität zu erklären.