Geräteunabhängige Eingabebehandlung verwenden |
WAI / WCAG 1.0 Priorität 2 Checkpunkt 6.4
Problembeschreibung Die Seite enthält Behandler für Mausereignisse, für die keine entsprechenden Tastaturereignisse vorhanden sind. Im Einzelnen: Der Ereignisbehandler ondblclick hat in HTML 4.01 keinen entsprechenden Tastaturbehandler, sollte also nicht verwendet werden. Der Ereignisbehandler onmousedown muss immer mit onkeydown kombiniert werden. Der Ereignisbehandler onmouseup muss immer mit onkeyup kombiniert werden. Der Ereignisbehandler onclick muss immer mit onkeypress kombiniert werden. Der Ereignisbehandler onmouseover muss bei Links und Formular-Steuerelementen (dient her in erster Linie zum Implementieren von Rollovern) immer mit onfocus kombiniert werden. Bei Textfeldern in Formularen sollte onclick durch onfocus ersetzt werden, da onfocus den Fokus sowohl bei einem Mausklick des Benutzers als auch beim Springen mit Strg-Tab auf diesem Feld aktiviert. Der Ereignisbehandler onmouseout muss immer mit onblur kombiniert werden.
Problemlösung überprüfen Sie sämtliche auf einer Seite definierten Ereignisbehandler. Wichtig sind dabei aber nur die Behandler, die entweder den Inhalt einer Seite ändern (durch Hinzufügen oder Entfernen von Text, Grafik, Layern bzw. anderen Objekten) oder die Navigationsoptionen beeinflussen (also Menüs, neue Fenster, Navigationsleisten und Links). Wenn solche Behandler geräteabhängige Ereignisse verwenden (also ONDBLCLICK, ONCLICK, ONKEYPRESS, ONKEYDOWN, ONMOUSEDOWN, ONKEYUP, ONMOUSEUP, ONMOUSEOVER, ONMOUSEOUT, ONFOCUS, ONBLUR), dann sollten sie in Kombination mit Ereignisbehandlern verwendet werden, die auch das andere Gerät unterstützen. Im Einzelnen: In Links und in den meisten Formular-Steuerelementen kombinieren Sie ONCLICK mit ONKEYPRESS und umgekehrt. Diese Kombination kann durch die Definition des fehlenden Objekts mithilfe des Skripts für das bestehende Objekt erreicht werden. Bei Textfeldern in Formularen ersetzen Sie ONCLICK durch ONFOCUS. ONDBLCLICK sollten Sie nicht verwenden, da es für dieses Ereignis keinen entsprechenden Tastaturbehandler gibt. Kombinieren Sie immer ONKEYDOWN mit ONMOUSEDOWN. Kombinieren Sie immer ONKEYUP mit ONMOUSEUP. Kombinieren Sie immer ONMOUSEOVER mit ONFOCUS. Kombinieren Sie immer ONMOUSEOUT mit ONBLUR.
Problemerklärung Ein Ereignisbehandler ist ein Skript, das aufgerufen wird, sobald ein bestimmtes Ereignis eintritt (z. B. das Bewegen der Maus, das Drücken einer Taste, das Laden eines Dokuments usw.). Ereignisbehandler werden mithilfe von Ereignisbehandlungsattributen an HTML-Elemente gekoppelt (wie "ONMOUSEDOWN", "ONCLICK", "ONKEYUP" usw.). Häufig ist der Effekt eines Ereignisbehandlers aber rein dekorativer Natur: Hervorheben von Text oder Grafiken bzw. ändern der Farbe in einem Teil der Seite. Aber ein Ereignisbehandler kann auch absolut wichtige Aktivitäten auslösen: überprüfen der Eingabe in ein Feld, Anzeigen eines Rollover-Menüs, öffnen eines neuen Fensters usw. In solchen Fällen, in denen der dem Benutzer angezeigte Inhalt bzw. die Navigationsoptionen geändert werden, muss der Ereignisbehandler vollständig zugänglich sein, damit auch Benutzer assistiver Technologie bzw. eingeschränkter Browser-Funktionen die gleichen Möglichkeiten erhalten. Sofern sich ein Ereignisbehandler nur auf ein bestimmtes Gerät bezieht (wie z. B. die Maus, beispielsweise bei einem "ONMOUSEOVER"), können Benutzer ohne Maus (beispielsweise Benutzer mit eingeschränkter Motorik oder Kraftfahrer, die eine Website über einen im Fahrzeug installierten PC anzeigen) den Effekt des Behandlers nicht wahrnehmen. Dem W3C zufolge bedeutet Geräteunabhängigkeit (Web Content Accessibility Guidelines 1.0 [http://www.w3.org/TR/WCAG10/#device-independent] ): Benutzer müssen in der Lage sein, unter Verwendung der unterstützten Ein- und Ausgabegeräte ihrer Wahl und entsprechend ihren Bedürfnissen mit einem Benutzeragenten umzugehen. Eingabegeräte können Zeigegeräte, Tastaturen, Blindenschrift-Geräte, Kopfstäbe, Mikrophone o. ä. sein. Bei Ausgabegeräten kann es sich um Monitore, Sprachgeneratoren, Blindenschrift-Geräte o. ä. hendeln.