Stufe
AA
Seit
WCAG 2.0
Einträge
96 / 193
/ WCAG-Kriterium

2.4.7 Fokus sichtbar

Wer sich mit der Tastatur durch die Seite bewegt, muss jederzeit sehen können, welches Element den Fokus hat.

/ Was es verlangt

Sehende Tastaturnutzende, darunter Menschen mit motorischen Behinderungen und alle, die einen Schalter oder Sprachsteuerung verwenden, orientieren sich am Fokusindikator: dem Rahmen, der Unterstreichung oder dem Farbwechsel, der das aktuelle Bedienelement markiert. Ohne ihn drücken sie Tab im Blindflug. Sie wissen nicht, welchem Link die Eingabetaste folgt oder in welches Feld ihre Eingabe geht, und es bleibt nur Raten oder der Blick auf die URL in der Statusleiste.

Die Seite besteht, wenn jedes per Tastatur bedienbare Element einen sichtbaren Indikator zeigt, solange es den Fokus hat. Die Standardkontur des Browsers zählt. Auf dieser Stufe legt WCAG weder Mindestgröße noch Kontrast des Indikators fest: Kriterium 1.4.11 verlangt 3:1 Kontrast zu angrenzenden Farben für vom Autor gestaltete Indikatoren, und das AAA-Kriterium 2.4.13 ergänzt Anforderungen an die Größe. Ein Fokusstil über :focus-visible, den Browser bei Tastaturbedienung zeigen, besteht.

/ Woran Seiten scheitern

  • Ein Reset-Stylesheet setzt outline: none oder outline: 0 auf :focus, und nichts ersetzt es.
  • Die Kontur ist nur bei Links und Schaltflächen entfernt, sodass Formularfelder den Fokus zeigen und alles andere nicht.
  • Der Fokusstil existiert, aber ein Elternelement mit overflow: hidden schneidet ihn ab, sodass nichts gezeichnet wird.
  • Ein eigenes Kontrollkästchen oder Optionsfeld versteckt das native input, und der gestaltete Ersatz hat keinen Fokuszustand.
  • Der Indikator hat dieselbe Farbe wie der Hintergrund, auf dem er liegt, etwa ein weißer Rahmen auf einer weißen Seite.

/ So prüfen Sie es selbst

  1. Klicken Sie in die Adresszeile und gehen Sie dann mit Tab durch die ganze Seite. An jedem Stopp sollten Sie ohne Zögern auf das fokussierte Element zeigen können.
  2. Achten Sie auf den Logo-Link, Icon-Schaltflächen, eigene Kontrollkästchen, Karussellpfeile und das Cookie-Banner, wo Indikatoren am häufigsten fehlen.
  3. Scheint der Fokus zu verschwinden, geben Sie in der DevTools-Konsole document.activeElement ein, um das Element zu finden, das ihn hat.
  4. Durchsuchen Sie das CSS nach outline: none und outline: 0 und prüfen Sie, ob jede Stelle einen Ersatzstil am selben Selektor hat.
  5. Wiederholen Sie den Test mit einem eingeschalteten Windows-Kontrastdesign. Der Modus für erzwungene Farben zeichnet keinen box-shadow, sodass ein Indikator nur aus Schatten verschwindet.

/ So beheben Sie es

  • Löschen Sie outline: none aus :focus-Regeln oder kombinieren Sie es mit einem sichtbaren Ersatz am selben Selektor.
  • Ergänzen Sie einen klaren Stil wie :focus-visible { outline: 2px solid; outline-offset: 2px; } in einer Farbe, die sich vom Hintergrund abhebt.
  • Wird der Rahmen mit box-shadow gezeichnet, behalten Sie daneben outline: 2px solid transparent, damit der Modus für erzwungene Farben weiterhin eine Kontur zeichnet.
  • Gestalten Sie bei eigenen Kontrollkästchen und Optionsfeldern den sichtbaren Ersatz, während das versteckte input den Fokus hat, mit einem Selektor wie input:focus-visible + label.
  • Suchen Sie nach einem Elternelement mit overflow: hidden, das die Kontur abschneidet, und halten Sie den Indikator mit negativem outline-offset oder etwas padding im Inneren.

/ Was unser Scanner prüft

Unsere Prüfung focus-not-visible läuft in einem echten Browser. Sie gibt nacheinander bis zu 150 Tabstopps den Fokus und vergleicht, was jedes Element davor und danach zeichnet: Kontur, Rahmen, Schatten, Hintergrund, Textfarbe und Textdekoration sowie ::before und ::after. Hat sich nichts geändert, meldet sie das Element. Einen Indikator, der an einem Eltern- oder Geschwisterelement gezeichnet wird, sieht sie nicht, und sie beurteilt nicht, ob eine Änderung deutlich genug ist.

/ Wer es verletzt, nach unseren eigenen Messungen

Gemessene Stellen, die dieses Kriterium verletzen, meiste Vorkommen zuerst
StelleSektorVorkommenWert
Uniwersytet Śląskieducation · PL1479
Rybnikcity · PL1446
Uniwersytet Jagiellońskieducation · PL1391
Chicago Transit Authoritytransport · US1174
Narodowy Fundusz Zdrowiahealth · PL10318
Narodowy Instytut Dziedzictwaculture · PL936
Nashvillecity · US9312
Politechnika Warszawskaeducation · PL8212
Szczecincity · PL792
Bundeszentrale für politische Bildunggovernment · DE7210
Uniwersytet Warszawskieducation · PL674
Policjagovernment · PL6012
LA Metrotransport · US5917
Politechnika Poznańskaeducation · PL544
Uniwersytet Wrocławskieducation · PL4715
Gdyniacity · PL337
Internal Revenue Servicegovernment · US3120
Politechnika Łódzkaeducation · PL305
Zielona Góracity · PL287
Wrocławcity · PL242
Freie Universität Berlineducation · DE237
Tychycity · PL2320
Miami-Dade Countygovernment · US2220
Bundesministerium für Gesundheitgovernment · DE2046
Muzeum Narodowe w Warszawieculture · PL1911
Berliner Verkehrsbetriebetransport · DE1821
Bundestaggovernment · DE1717
Lublincity · PL1717
Phoenixcity · US171
Politechnika Śląskaeducation · PL172
Sosnowieccity · PL1628
Poznańcity · PL151
Hannovercity · DE1410
Deutsche Nationalbibliothekculture · DE1323
Gdańskcity · PL122
Ludwig-Maximilians-Universität Müncheneducation · DE1213
NASAgovernment · US1223
Radomcity · PL122
University of Floridaeducation · US1223
Los Angeles Countygovernment · US119
Państwowa Komisja Wyborczagovernment · PL1115
Uniwersytet Mikołaja Kopernikaeducation · PL116
Statistisches Bundesamtgovernment · DE109
Denvercity · US951
Politechnika Gdańskaeducation · PL922
Urząd Komunikacji Elektronicznejgovernment · PL925
Deutsche Bahntransport · DE85
Dresdencity · DE815
Główny Urząd Statystycznygovernment · PL717
Leipzigcity · DE726
Pacjent.gov.plhealth · PL79
Uniwersytet Łódzkieducation · PL79
Baltimorecity · US67
Biblioteka Narodowaculture · PL616
Bundesministerium der Finanzengovernment · DE613
Cook Countygovernment · US613
Toruńcity · PL611
Las Vegascity · US58
State of Floridagovernment · US58
Teatr Wielki Opera Narodowaculture · PL53
University of California, Berkeleyeducation · US571
Bundesregierunggovernment · DE44
Deutsche Rentenversicherunggovernment · DE45
Harris Countygovernment · US419
Koleje Mazowieckietransport · PL417
Komisja Nadzoru Finansowegogovernment · PL417
Opolecity · PL48
State of Washingtongovernment · US49
Stuttgartcity · DE46
Hamburgcity · DE323
Austincity · US220
Bundesverfassungsgerichtgovernment · DE218
Bydgoszczcity · PL27
Department of Laborgovernment · US246
Katowicecity · PL210
Krajowa Administracja Skarbowagovernment · PL25
Ohio State Universityeducation · US26
Uniwersytet Ekonomiczny w Krakowieeducation · PL215
Bostoncity · US16
Bundesministerium für Bildung und Forschunggovernment · DE18
Dallascity · US123
Houstoncity · US17
Karlsruher Institut für Technologieeducation · DE119
King Countygovernment · US115
Münchencity · DE122
Narodowy Bank Polskigovernment · PL123
New Orleanscity · US17
Państwowa Inspekcja Pracygovernment · PL150
Philadelphiacity · US18
Polski Instytut Sztuki Filmowejculture · PL17
San Diegocity · US163
Sejm RPgovernment · PL19
State of Californiagovernment · US148
State of Pennsylvaniagovernment · US121
Sąd Najwyższygovernment · PL114
Technische Universität Müncheneducation · DE114

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

Ist outline: none ein WCAG-Verstoß?

Für sich genommen entfernt die Angabe den Standard-Fokusindikator des Browsers, und wenn nichts ihn ersetzt, verstößt die Seite gegen 2.4.7. Das W3C dokumentiert das als Fehler F78. In Ordnung ist es, wenn dieselbe Regel einen anderen sichtbaren Indikator liefert, etwa einen Rahmen, einen Hintergrundwechsel oder einen box-shadow, wobei ein Schatten allein im Modus für erzwungene Farben verschwindet.

Was ist der Unterschied zwischen :focus und :focus-visible?

Der Selektor :focus greift immer, wenn ein Element den Fokus hat, auch nach einem Mausklick. Der Selektor :focus-visible greift, wenn der Browser einen Indikator für nötig hält, in der Praxis bei Tastaturnavigation und in Textfeldern. Wer :focus-visible gestaltet, vermeidet Rahmen an mit der Maus geklickten Schaltflächen und erfüllt 2.4.7 trotzdem, weil Tastaturnutzende den Indikator erhalten.

Braucht der Fokusindikator einen Mindestkontrast oder eine Mindeststärke?

Nicht nach 2.4.7, das nur Sichtbarkeit verlangt. Der Kontrast ergibt sich aus 1.4.11 Nicht-Text-Kontrast, das mindestens 3:1 zu angrenzenden Farben verlangt, wenn der Autor den Indikator gestaltet hat. Größe und eine Änderung mit 3:1 Kontrast zwischen fokussiertem und nicht fokussiertem Zustand regelt 2.4.13 Fokus-Erscheinungsbild, ein mit WCAG 2.2 hinzugekommenes Kriterium der Stufe AAA.