Stufe
AA
Seit
WCAG 2.2
Einträge
49 / 193
/ WCAG-Kriterium

2.4.11 Fokus nicht verdeckt (Minimum)

Wenn ein Element den Tastaturfokus erhält, darf es nicht vollständig hinter etwas verschwinden, das die Seite darüberlegt, etwa hinter einer fixierten Kopfzeile oder einem Cookie-Banner.

/ Was es verlangt

Fixierte Kopfzeilen, feste Fußleisten, Cookie-Banner und Chat-Widgets bleiben stehen, während die Seite darunter scrollt. Steuert jemand per Tab einen Link an, den der Browser unter eines dieser Elemente gescrollt hat, dann hat der Link den Fokus und sein Indikator wird gezeichnet, aber niemand sieht ihn. Die Person drückt weiter Tab, ohne zu wissen, wo sie ist. Aufgehalten werden Menschen, die auf Tastatur und Augen angewiesen sind, und Menschen mit Vergrößerung.

Das Kriterium ist nur verletzt, wenn die fokussierte Komponente vollständig von Inhalt verdeckt ist, den der Autor erstellt hat. Eine teilweise verdeckte Komponente besteht auf dieser Stufe, und das AAA-Kriterium 2.4.12 verlangt, dass kein Teil verdeckt ist. WCAG ergänzt Anmerkungen: Können Nutzende Inhalte verschieben, zählt nur deren Ausgangsposition, von Nutzenden geöffneter Inhalt darf den Fokus verdecken, und lässt sich der verdeckende Inhalt schließen, ohne den Fokus zu bewegen, etwa mit Escape, gilt die Komponente nicht als verdeckt.

Dieses Kriterium ist neu in WCAG 2.2 und nicht Teil von WCAG 2.0 oder 2.1.

/ Woran Seiten scheitern

  • Eine fixierte Kopfzeile verdeckt Links am oberen Rand des Viewports, wenn man mit Umschalt+Tab rückwärts geht.
  • Eine feste Fußleiste verdeckt Bedienelemente am unteren Rand des Viewports, wenn man mit Tab vorwärts geht.
  • Ein Cookie-Banner, das den Fokus nicht in sich hält, liegt über der Seite, während der Fokus durch die Links darunter wandert.
  • Ein Chat-Widget oder eine schwebende Werbefläche in einer Ecke liegt auf der Absenden-Schaltfläche eines Formulars.
  • Ein fixierter Tabellenkopf oder eine Seitenleiste verdeckt die fokussierte Zelle oder den fokussierten Link im Scrollbereich darunter.

/ So prüfen Sie es selbst

  1. Laden Sie die Seite frisch, lassen Sie ein Cookie-Banner offen und gehen Sie mit Tab durch die ganze Seite. Prüfen Sie an jedem Stopp, ob wenigstens ein Teil des fokussierten Elements sichtbar ist.
  2. Gehen Sie am Seitenende mit Umschalt+Tab wieder nach oben. In dieser Richtung verdecken fixierte Kopfzeilen den Fokus am häufigsten.
  3. Wiederholen Sie den Test in einem kleinen Fenster oder mit vergrößerter Browseransicht, wo fixierte Leisten mehr vom Viewport einnehmen.
  4. Verschwindet der Fokus, geben Sie in der DevTools-Konsole document.activeElement ein und untersuchen Sie das Element, um zu sehen, was darüber gezeichnet wird.

/ So beheben Sie es

  • Setzen Sie am html-Element scroll-padding-top auf die Höhe der fixierten Kopfzeile und scroll-padding-bottom für eine feste Fußleiste, damit der Browser das Scrollen beendet, bevor das fokussierte Element unter die Leiste gerät.
  • Oder setzen Sie scroll-margin-top und scroll-margin-bottom an den fokussierbaren Elementen selbst.
  • Nehmen Sie das Cookie-Banner in den Seitenfluss auf, sodass es den Inhalt nach unten schiebt, oder bauen Sie es als modalen Dialog, der den Fokus hält, bis geantwortet wurde.
  • Lösen Sie Leisten bei geringer Viewport-Höhe mit einer Media Query, die position: sticky auf position: static umstellt.
  • Rücken Sie Chat-Widgets und schwebende Schaltflächen von Formularelementen weg und lassen Sie sie per Schaltfläche und per Escape schließen.

/ Was unser Scanner prüft

Die Prüfung focus-obscured läuft in einem echten Browser. Sie fokussiert bis zu 80 Tabstopps, lässt den Browser dorthin scrollen und fragt, was an drei Punkten gezeichnet wird: an den beiden oberen Ecken und in der Mitte. Sind mindestens zwei von etwas mit position fixed oder sticky überdeckt, meldet sie den Stopp. Ob sich der verdeckende Inhalt schließen lässt, prüft sie nicht, und sie kann ein nur teilweise verdecktes Element melden.

/ Wer es verletzt, nach unseren eigenen Messungen

Gemessene Stellen, die dieses Kriterium verletzen, meiste Vorkommen zuerst
StelleSektorVorkommenWert
Muzeum Narodowe w Warszawieculture · PL7611
Poznańcity · PL751
Zakład Ubezpieczeń Społecznychgovernment · PL7527
Narodowy Instytut Dziedzictwaculture · PL746
Hannovercity · DE6910
Robert Koch-Instituthealth · DE6210
Statistisches Bundesamtgovernment · DE599
Uniwersytet Jagiellońskieducation · PL581
Pacjent.gov.plhealth · PL569
Państwowa Komisja Wyborczagovernment · PL3915
Gdańskcity · PL322
PKP Intercitytransport · PL302
Częstochowacity · PL2721
Wrocławcity · PL272
Uniwersytet Łódzkieducation · PL269
Urząd Komunikacji Elektronicznejgovernment · PL2425
Politechnika Gdańskaeducation · PL2322
Narodowy Fundusz Zdrowiahealth · PL2018
Teatr Wielki Opera Narodowaculture · PL183
Szczecincity · PL152
Nürnbergcity · DE142
State of Texasgovernment · US1022
Bostoncity · US76
Politechnika Poznańskaeducation · PL64
Dresdencity · DE515
Olsztyncity · PL58
Uniwersytet Śląskieducation · PL59
Zielona Góracity · PL57
Biblioteka Narodowaculture · PL416
Bydgoszczcity · PL47
Opolecity · PL48
Politechnika Łódzkaeducation · PL45
Polski Instytut Sztuki Filmowejculture · PL47
Toruńcity · PL411
Katowicecity · PL310
Krajowa Administracja Skarbowagovernment · PL35
New Orleanscity · US37
Koleje Mazowieckietransport · PL217
Las Vegascity · US28
Phoenixcity · US21
Rybnikcity · PL26
State of Californiagovernment · US248
Warszawski Uniwersytet Medycznyeducation · PL213
Bundesnetzagenturgovernment · DE19
Gliwicecity · PL113
Ludwig-Maximilians-Universität Müncheneducation · DE113
Sosnowieccity · PL128
Szkoła Główna Handlowaeducation · PL112
University of Texas at Austineducation · US121

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

Verstößt eine fixierte Kopfzeile gegen WCAG 2.2?

Nicht durch ihre bloße Existenz. Sie verstößt gegen 2.4.11, wenn eine Komponente, die den Tastaturfokus erhält, vollständig dahinter verschwindet. Hält der Browser das fokussierte Element von der Kopfzeile frei, was scroll-padding-top bewirkt, besteht eine fixierte Kopfzeile. Testen Sie, indem Sie rückwärts nach oben tabben, denn dann rutschen Elemente unter die Kopfzeile.

Ist ein teilweise verdecktes fokussiertes Element ein Verstoß?

Nicht auf Stufe AA. 2.4.11 ist die Minimalfassung und nur verletzt, wenn die Komponente vollständig verdeckt ist. 2.4.12 Fokus nicht verdeckt (Erweitert) auf Stufe AAA verlangt, dass kein Teil der Komponente verdeckt ist. Ein teilweise verdeckter Fokus ist trotzdem schwer zu bedienen, daher lohnt sich die Korrektur mit derselben scroll-padding-Änderung.

Verstößt ein Cookie-Banner gegen 2.4.11?

Das kann es. Ein am unteren Rand des Viewports fixiertes Banner, das offen bleibt, während der Fokus durch die Seite darunter wandert, verdeckt manche fokussierten Elemente vollständig. Ein Banner als modaler Dialog, der den Fokus hält, bis geantwortet wurde, tut das nicht, ebenso wenig eines, das den Seiteninhalt nach unten schiebt, statt ihn zu überdecken.