Stufe
A
Seit
WCAG 2.0
Einträge
94 / 193
/ WCAG-Kriterium

2.4.3 Fokus-Reihenfolge

Wenn jemand sich mit der Tabulatortaste durch eine Seite bewegt, muss der Fokus in einer Reihenfolge wandern, die zu Bedeutung und Aufbau der Seite passt.

/ Was es verlangt

Wer die Tastatur nutzt, bewegt sich der Reihe nach von einem Bedienelement zum nächsten, und diese Reihenfolge ist alles, was zur Verfügung steht. Springt der Fokus von der Kopfzeile in die Fußzeile und zurück oder bleibt er außerhalb eines Dialogs, der sich gerade geöffnet hat, ergibt die Seite keinen Sinn mehr. Menschen mit Screenreader sehen das Layout nicht, das den Sprung erklären würde. Sehende Tastaturnutzende und Menschen mit Vergrößerung, die nur einen kleinen Ausschnitt sehen, verlieren den Fokus aus den Augen.

Das Kriterium gilt, wo eine Seite sequenziell navigiert werden kann und die Reihenfolge Bedeutung oder Bedienung beeinflusst. Die Reihenfolge muss der visuellen Anordnung nicht exakt entsprechen. Sie muss Bedeutung und Bedienbarkeit erhalten, und es kann mehr als eine gültige Reihenfolge geben. Ein Verstoß ist eine Reihenfolge, die zusammengehörige Bedienelemente trennt, außerhalb der Abfolge durch die Seite führt oder den Fokus hinter dem Dialog oder Menü zurücklässt, das sich gerade über der Seite geöffnet hat.

/ Woran Seiten scheitern

  • Positive tabindex-Werte wie tabindex="5" ziehen einzelne Bedienelemente an den Anfang der Reihenfolge, vor alles andere.
  • Die CSS-Eigenschaft order, flex-direction: row-reverse oder absolute Positionierung zeigt Bedienelemente in einer Abfolge, während das DOM sie in einer anderen führt.
  • Ein modaler Dialog öffnet sich, aber der Fokus bleibt auf der Seite dahinter, sodass Tab weiter durch Inhalte wandert, die man nicht sieht.
  • Ein Dialog oder Menü schließt sich und der Fokus fällt an den Anfang des Dokuments, statt zur Schaltfläche zurückzukehren, die ihn geöffnet hat.
  • Per Skript eingefügter Inhalt, etwa ein aufgeklapptes Panel, wird ans Ende des DOM gehängt, weit weg vom Bedienelement, das ihn eingeblendet hat.

/ So prüfen Sie es selbst

  1. Drücken Sie Tab vom Seitenanfang bis zum Ende und beobachten Sie den Fokusindikator. Er sollte so wandern, wie man die Seite liest, ohne zurückzuspringen.
  2. Gehen Sie mit Umschalt+Tab wieder nach oben und prüfen Sie, ob der Rückweg den Hinweg spiegelt.
  3. Öffnen Sie jeden Dialog, jedes Menü und jedes aufklappbare Panel per Tastatur. Der Fokus sollte in den neuen Inhalt wandern, bei einem modalen Dialog darin bleiben und nach dem Schließen zum Auslöser zurückkehren.
  4. Suchen Sie im Markup nach tabindex-Werten über 0. In der DevTools-Konsole listet document.querySelectorAll('[tabindex]') jedes Element auf, das einen Wert setzt.
  5. Lesen Sie die DOM-Reihenfolge im Elements-Panel und vergleichen Sie sie mit dem sichtbaren Layout.

/ So beheben Sie es

  • Entfernen Sie jeden positiven tabindex. Nutzen Sie tabindex="0", um ein Element in die natürliche Reihenfolge aufzunehmen, und tabindex="-1" für Elemente, die nur per Skript fokussiert werden.
  • Ordnen Sie das DOM so, dass es der sichtbaren Abfolge entspricht, statt mit der CSS-Eigenschaft order oder absoluter Positionierung umzusortieren.
  • Setzen Sie beim Öffnen eines modalen Dialogs den Fokus hinein. Das native dialog-Element, mit showModal() geöffnet, erledigt das, und das Attribut inert hält den Fokus vom Rest der Seite fern.
  • Rufen Sie beim Schließen eines Dialogs oder Menüs focus() auf dem Bedienelement auf, das ihn geöffnet hat.
  • Fügen Sie eingeblendeten Inhalt im DOM direkt hinter seinem Auslöser ein.

/ Was unser Scanner prüft

dialog-focus-outside meldet einen Dialog, der beim Prüfen der Seite offen ist, während der Fokus außerhalb liegt. focus-order-jumps vergleicht die Position jedes Tabstopps mit dem vorherigen und meldet, wenn der Fokus auf der Seite wieder nach oben wandert, ohne nach rechts zu gehen. Fixierte Elemente bleiben außen vor. Drei sich überschneidende Regeln melden tabindex-Werte über 0. Keine Prüfung kann beurteilen, ob eine Reihenfolge sinnvoll ist, und keine öffnet einen geschlossenen Dialog.

/ Wer es verletzt, nach unseren eigenen Messungen

Gemessene Stellen, die dieses Kriterium verletzen, meiste Vorkommen zuerst
StelleSektorVorkommenWert
Łódźcity · PL253
Nürnbergcity · DE112
Biblioteka Narodowaculture · PL916
Veterans Affairsgovernment · US933
San Franciscocity · US728
Centers for Disease Controlhealth · US68
Uniwersytet im. Adama Mickiewiczaeducation · PL612
Bundesministerium des Innerngovernment · DE410
Bundeszentrale für politische Bildunggovernment · DE410
Bydgoszczcity · PL47
Częstochowacity · PL421
RWTH Aacheneducation · DE419
Warszawski Uniwersytet Medycznyeducation · PL413
Bundesregierunggovernment · DE34
Deutsche Rentenversicherunggovernment · DE35
Sejm RPgovernment · PL39
Senat RPgovernment · PL324
Zamek Królewski w Warszawieculture · PL316
Zielona Góracity · PL37
Baltimorecity · US27
Bundesagentur für Arbeitgovernment · DE216
Bundesnetzagenturgovernment · DE29
Bundestaggovernment · DE217
Cook Countygovernment · US213
Deutsche Nationalbibliothekculture · DE223
Elblągcity · PL220
Gliwicecity · PL213
Katowicecity · PL210
Krajowa Administracja Skarbowagovernment · PL25
Ohio State Universityeducation · US26
Politechnika Poznańskaeducation · PL24
Politechnika Śląskaeducation · PL22
Polski Instytut Sztuki Filmowejculture · PL27
Robert Koch-Instituthealth · DE210
Rybnikcity · PL26
Stuttgartcity · DE26
Teatr Wielki Opera Narodowaculture · PL23
Uniwersytet Gdańskieducation · PL218
Berliner Verkehrsbetriebetransport · DE121
Bundesministerium der Finanzengovernment · DE113
Bundesministerium für Bildung und Forschunggovernment · DE18
Bundesratgovernment · DE114
Bundesverfassungsgerichtgovernment · DE118
Deutsche Bahntransport · DE15
Dresdencity · DE115
Federal Aviation Administrationtransport · US114
Generalna Dyrekcja Dróg Krajowych i Autostradtransport · PL134
Główny Urząd Statystycznygovernment · PL117
Indianapoliscity · US118
Internal Revenue Servicegovernment · US120
Kancelaria Prezesa Rady Ministrówgovernment · PL137
Karlsruher Institut für Technologieeducation · DE119
Kasa Rolniczego Ubezpieczenia Społecznegogovernment · PL136
Koleje Mazowieckietransport · PL117
Lublincity · PL117
Ludwig-Maximilians-Universität Müncheneducation · DE113
Ministerstwo Cyfryzacjigovernment · PL137
Ministerstwo Edukacjigovernment · PL147
Ministerstwo Finansówgovernment · PL147
Ministerstwo Infrastrukturygovernment · PL147
Ministerstwo Klimatu i Środowiskagovernment · PL138
Ministerstwo Kulturygovernment · PL147
Ministerstwo Nauki i Szkolnictwa Wyższegogovernment · PL147
Ministerstwo Rodziny i Polityki Społecznejgovernment · PL137
Ministerstwo Rolnictwagovernment · PL132
Ministerstwo Rozwoju i Technologiigovernment · PL136
Ministerstwo Spraw Wewnętrznychgovernment · PL137
Ministerstwo Spraw Zagranicznychgovernment · PL137
Ministerstwo Sprawiedliwościgovernment · PL125
Ministerstwo Zdrowiagovernment · PL147
Muzeum Narodowe w Warszawieculture · PL111
Najwyższa Izba Kontroligovernment · PL141
Narodowy Instytut Dziedzictwaculture · PL16
Narodowy Instytut Zdrowia Publicznegohealth · PL125
Opolecity · PL18
Państwowa Komisja Wyborczagovernment · PL115
Państwowa Straż Pożarnagovernment · PL128
Politechnika Gdańskaeducation · PL122
Politechnika Wrocławskaeducation · PL117
Politechnika Łódzkaeducation · PL15
Poznańcity · PL11
Radomcity · PL12
State of Pennsylvaniagovernment · US121
State of Washingtongovernment · US19
Statistisches Bundesamtgovernment · DE19
Szczecincity · PL12
Szkoła Główna Handlowaeducation · PL112
Toruńcity · PL111
Uniwersytet Jagiellońskieducation · PL11
Uniwersytet Mikołaja Kopernikaeducation · PL16
Uniwersytet Śląskieducation · PL19
Urząd Komunikacji Elektronicznejgovernment · PL125
Urząd Zamówień Publicznychgovernment · PL147
Warszawacity · PL120

Eine Seite je Stelle, automatisch im Wochenrhythmus gemessen. Behebungen seit dem letzten Durchlauf erscheinen beim nächsten, und jede Eintragsseite bietet ein Recht auf Gegendarstellung.

/ Fragen zu diesem Kriterium

Muss die Fokus-Reihenfolge der visuellen Reihenfolge entsprechen?

Nicht exakt. Das Kriterium verlangt eine Reihenfolge, die Bedeutung und Bedienbarkeit erhält, und das können mehrere sein. In der Praxis erwarten Menschen ein Layout, das von oben nach unten in derselben Abfolge gelesen wird, in der es im DOM steht. Eine Abweichung zwischen DOM und Bildschirm ist der häufigste Grund, warum eine Reihenfolge keinen Sinn mehr ergibt.

Ist ein positiver tabindex ein WCAG-Verstoß?

Nicht automatisch. HTML erlaubt einen positiven Wert, und wenn die entstehende Reihenfolge die Bedeutung weiterhin erhält, besteht die Seite. Das Problem: Elemente mit positiven Werten kommen vor allen anderen Bedienelementen der Seite, sodass ein einziges genügt, um die Abfolge umzuwerfen, und die Ordnung bei jeder Änderung der Seite bricht. Das W3C dokumentiert die so entstehende Unordnung als Fehler F44.

Wohin gehört der Fokus, wenn ein Dialog sich öffnet und schließt?

Öffnet sich ein modaler Dialog, sollte der Fokus hineinwandern, auf das erste Bedienelement, die Überschrift oder den Dialog selbst, und Tab sollte darin bleiben, solange er offen ist. Beim Schließen sollte der Fokus zu dem Bedienelement zurückkehren, das ihn geöffnet hat. Bleibt der Fokus auf der Seite dahinter, wandern Tastaturnutzende durch Inhalte, die sie nicht sehen.