Fokus-Indikator: Sichtbare Fokusringe für Tastaturnutzer
Für sehende Tastaturnutzer ist der Fokus-Indikator das Äquivalent zum Mauszeiger – ohne ihn wissen sie schlicht nicht, wo sie sich auf der Seite befinden. Wird der Fokusring entfernt oder ist er kaum sichtbar, wird die Tastaturnavigation zum Blindflug. Leider gehört `outline: none` ohne Ersatz zu den häufigsten Barrierefreiheits-Fehlern im Web. Moderne CSS-Techniken erlauben es, ansprechende und gleichzeitig gut sichtbare Fokus-Indikatoren zu gestalten, die sich nahtlos ins Design einfügen. Mit `:focus-visible` können Fokusringe gezielt nur bei Tastaturinteraktion eingeblendet werden, sodass das Maus-Erlebnis unberührt bleibt.
WCAG-Anforderungen: 2.4.7, 2.4.11 und 2.4.12
WCAG 2.4.7 „Focus Visible" (Level AA) stellt die Grundanforderung: Jede über Tastatur bedienbare Benutzeroberfläche muss einen sichtbaren Fokus-Indikator besitzen. Das Kriterium macht keine Vorgaben zur Gestaltung – der Fokus muss lediglich erkennbar sein. WCAG 2.4.11 „Focus Not Obscured (Minimum)" (Level AA, seit WCAG 2.2) ergänzt, dass der Fokus-Indikator nicht vollständig von anderen Elementen verdeckt werden darf – etwa durch Sticky Header, Cookie-Banner oder Modals. Das strengere WCAG 2.4.12 „Focus Not Obscured (Enhanced)" auf Level AAA fordert, dass kein Teil des Fokus-Indikators verdeckt sein darf. Für den Fokusring selbst definiert WCAG 2.4.13 „Focus Appearance" (Level AAA) konkrete Mindestmaße: Der Indikator muss mindestens 2 CSS-Pixel breit sein und einen Kontrastunterschied von mindestens 3:1 zwischen fokussiertem und unfokussiertem Zustand aufweisen. In der Praxis sollten Sie diese AAA-Kriterien als Gestaltungsrichtlinie nutzen, auch wenn Sie nur Level AA anstreben – denn ein kaum sichtbarer Fokusring, der technisch „sichtbar" ist, hilft niemandem.
CSS-Best-Practices für Fokus-Indikatoren
Die CSS-Eigenschaft `outline` ist das Mittel der Wahl für Fokus-Indikatoren, da sie den Layout-Fluss nicht beeinflusst. Verwenden Sie niemals `outline: none` oder `outline: 0` ohne eine gleichwertige Alternative. Die moderne Best Practice nutzt `:focus-visible` statt `:focus`: Dieses Pseudo-Element wird nur bei Tastaturinteraktion aktiv, nicht bei Mausklicks. Ein bewährtes Pattern: `*:focus-visible { outline: 3px solid #1a73e8; outline-offset: 2px; }`. Der `outline-offset` sorgt für Abstand zwischen Element und Fokusring, was die Sichtbarkeit verbessert. Für dunkle Hintergründe eignet sich ein Doppelring: `outline: 3px solid white; box-shadow: 0 0 0 6px #1a73e8;` – so ist der Fokus auf jedem Hintergrund erkennbar. Vermeiden Sie `border` als Fokus-Indikator, da Border-Änderungen Layout-Shifts verursachen können. Nutzen Sie `border-radius` passend zum Element – ein runder Button verdient einen runden Fokusring. Definieren Sie Fokus-Styles in Ihrem Design-System als Token, damit alle Komponenten konsistente Indikatoren verwenden. Testen Sie den Kontrast des Fokusrings gegen alle möglichen Hintergrundfarben Ihrer Seite.
Häufige Fehler und Anti-Patterns
Der häufigste Fehler ist das globale Entfernen des Fokus-Indikators mit `*:focus { outline: none }` oder das Zurücksetzen in CSS-Resets. Viele Entwickler stören sich am Standard-Fokusring des Browsers und entfernen ihn, ohne einen Ersatz bereitzustellen. Weitere Anti-Patterns: Fokus-Indikatoren, die nur durch Farbwechsel funktionieren – ein blauer Link, der bei Fokus dunkelblau wird, ist für viele Nutzer nicht unterscheidbar. Fokusringe mit zu geringem Kontrast, etwa ein hellgrauer Ring auf weißem Hintergrund. Fokus-Indikatoren, die von Sticky-Headern oder Footer-Bars verdeckt werden, wenn der Nutzer zum fokussierten Element tabbt. Elemente mit `overflow: hidden`, die den Fokusring abschneiden – lösen Sie das mit `outline-offset` oder negativem Margin. Inkonsistente Fokus-Styles, bei denen manche Elemente einen Ring haben und andere nicht. Custom-Fokus-Indikatoren, die nur auf bestimmten Browsern funktionieren. Und schließlich: JavaScript-basierte Fokus-Indikatoren, die bei deaktiviertem JavaScript versagen – nutzen Sie immer CSS als Basis.
Fokus-Management in komplexen Interfaces
In Single-Page-Applications und komplexen Interfaces reicht ein sichtbarer Fokusring allein nicht aus – der Fokus muss auch programmatisch korrekt gesteuert werden. Beim Öffnen eines Modals sollte der Fokus ins Modal wandern und dort gefangen werden (Focus Trap). Beim Schließen kehrt der Fokus zum auslösenden Element zurück. Bei Routenwechseln in SPAs muss der Fokus auf die neue Hauptüberschrift oder den Hauptinhalt gesetzt werden. Bei dynamisch eingefügten Inhalten wie Fehlermeldungen oder Toast-Notifications entscheidet der Kontext: Kritische Fehler verdienen einen Fokus-Shift, Info-Toasts eher eine aria-live-Region. Dropdown-Menüs und Autocomplete-Felder müssen den Fokus-Indikator für die aktuelle Option klar anzeigen – oft über `aria-activedescendant` statt echtem DOM-Fokus. Achten Sie darauf, dass `tabindex="-1"` Elemente keinen sichtbaren Fokusring benötigen, da sie nur programmatisch fokussiert werden und nicht in der Tab-Reihenfolge erscheinen. Dokumentieren Sie Ihr Fokus-Management in Ihrem Design-System.
Testen und Validieren von Fokus-Indikatoren
Der einfachste Test: Legen Sie die Maus beiseite und navigieren Sie Ihre Website ausschließlich mit der Tab-Taste. Können Sie jederzeit erkennen, welches Element fokussiert ist? Verlieren Sie irgendwo den Fokus? Wird der Fokusring von anderen Elementen verdeckt? Automatisierte Tools wie axe-core prüfen, ob `outline: none` ohne Alternative gesetzt ist, erfassen aber nicht die visuelle Qualität des Fokus-Indikators. Prüfen Sie den Kontrast des Fokusrings manuell mit einem Kontrastprüfer – der Ring muss mindestens 3:1 Kontrast zum umgebenden Hintergrund aufweisen. Testen Sie auf verschiedenen Browsern, da Standard-Fokusringe je nach Browser unterschiedlich aussehen. Chrome zeigt einen blauen Ring, Firefox einen gepunkteten, Safari einen blauen Glow. Wenn Sie Custom-Fokus-Styles verwenden, stellen Sie sicher, dass sie browserübergreifend konsistent sind. Im Windows-Hochkontrastmodus werden Ihre CSS-Farben überschrieben – testen Sie, ob der Fokus auch dort sichtbar bleibt.
Wie steht deine Webseite in diesem Punkt da?
Kostenloser Scan gegen 15 WCAG-2.1-AA-Kriterien – inkl. Fokus-Indikator-Check.
Jetzt Webseite prüfen →