CSS Focus Outline

Der Rahmen muss mitwandern

Buttons, Links, Scrollbereiche: überall braucht der Tastaturfokus eine sichtbare Kante.

Website prüfen
Beispiel im Prüfbericht Markierter Befund
Markierter Befund · Kritisch · WCAG 2.1.1, 2.1.3Protokoll ohne expliziten Fokuszugang

Fokusrahmen

Sechs Zeilen, die über den Rahmen entscheiden

Was der Rahmen leisten muss.

  • Fehlt outline: none ohne Ersatz. Der Fokus verschwindet auf allen Bedienelementen.
  • Fehlt Der Rahmen klebt am Text und wird vom Nachbarelement überdeckt.
  • Fehlt Ein scrollbarer Kasten ist nicht fokussierbar und zeigt deshalb keinen Rahmen.
  • Richtig outline mit 2 Pixeln Stärke, dazu outline-offset für den Abstand.
  • Richtig :focus-visible zeigt den Rahmen bei der Tastatur, nicht bei jedem Klick.
  • Richtig Der Scrollbereich bekommt tabindex="0" und damit einen eigenen Rahmen.

Aus dem Prüfbericht

Eine Regel, ein Kasten

Kritisch Der scrollbare Kasten bekommt nie den Rahmen Regel scrollable-region-focusable

Ein Kasten mit overflow: auto ist ohne tabindex nicht fokussierbar. Mit tabindex="0" nimmt er den Fokus und zeigt Ihre outline.

Anleitung: Scrollbereiche per Tastatur bedienen

Zum Mitnehmen

Der Fokusrahmen, korrigiert

Eine Regel im CSS, ein Attribut im HTML.

Korrektur in 3 Schritten ansehen
  1. Den Rahmen sichtbar zurückholen

    Ohne Ersatz nimmt outline: none jedem Bedienelement die Markierung. :focus-visible zeigt sie bei der Tastatur, der Abstand hält sie frei.

    KorrekturvergleichSchritt 1 · CSS

    Vorher

    :focus {
      outline: none;
    }

    Nachher

    :focus-visible {
      outline: 2px solid #1b1b1b;
      outline-offset: 3px;
    }

    Markierte Zeilen wurden geändert

    So prüfen Sie es Drücken Sie Tab. Auf jedem Bedienelement steht ein sichtbarer Rahmen.

  2. Den Rahmen nicht abschneiden

    overflow: hidden beschneidet die Kante am Rand. Sichtbarer Überlauf und etwas Innenabstand lassen den ganzen Rahmen stehen.

    KorrekturvergleichSchritt 2 · CSS

    Vorher

    .kopfzeile {
      overflow: hidden;
      padding: 0 1rem;
    }

    Nachher

    .kopfzeile {
      overflow: visible;
      padding: 0.5rem 1rem;
    }

    Markierte Zeilen wurden geändert

    So prüfen Sie es Tabben Sie auf das erste Element der Zeile. Der Rahmen ist rundum vollständig.

  3. Den Scrollbereich fokussierbar machen

    Erst mit tabindex="0" nimmt der Kasten den Fokus. Dann zeigt er Ihren Rahmen und lässt sich mit den Pfeiltasten scrollen.

    KorrekturvergleichSchritt 3 · HTML

    Vorher

    <div class="protokoll" style="max-height:3rem;overflow:auto">
      <p>Schritt 01 · Kreis setzen</p>
    </div>

    Nachher

    <div class="protokoll" style="max-height:3rem;overflow:auto" tabindex="0"
      role="region" aria-label="Schrittprotokoll">
      <p>Schritt 01 · Kreis setzen</p>
    </div>

    Markierte Zeilen wurden geändert

    So prüfen Sie es Tabben Sie bis zum Kasten. Der Rahmen erscheint, Pfeil ab bewegt den Inhalt.

Werbung

Kostenloser Website-Barrierefreiheits-Check

Website auf Barrierefreiheit prüfen.

Technische WCAG-Warnsignale erkennen. Kritische Stellen zuerst prüfen.

Der Website-Check ist bereit.

Werbung

Ein letzter Schritt

Prüfen, bevor Sie gehen.

Finden Sie automatisch erkennbare Barrieren auf Ihrer eigenen Website.

Website prüfen

Kostenlos starten · keine Installation

Automatisches Screening. Tastaturbedienung und Screenreader bleiben manuelle Prüfung.