Focus Order im HTML

Die Tastatur folgt dem HTML

Menü, Aufklappbereich, Karte: drei Stellen im Tastaturweg.

Website prüfen
Beispiel im Prüfbericht Markierter Befund
Markierter Befund · Kritisch · WCAG 4.1.2Erreichbarer Link im verborgenen Bereich

Fokuslinie

Die Reihenfolge entsteht im HTML, nicht im Raster.

Tab folgt dem DOM. CSS darf gestalten, aber keine bedeutungsvolle Folge vertauschen.

Dieselben drei Links, zwei WegeKonzeptionelle Darstellung von visueller und sequenzieller Reihenfolge
Gleichlauf

Bild und DOM erzählen dieselbe Folge.

1Terminerster Link
2Preisezweiter Link
3Kontaktdritter Link
Tablinks nach rechts, ohne Sprung
<a>Termin</a>
<a>Preise</a>
<a>Kontakt</a>
Auseinander

CSS vertauscht nur das Bild. Tab bleibt im DOM.

Springende Fokuslinie Der Fokus springt vom mittleren Link Termin nach rechts zu Preise und danach nach links zurück zu Kontakt.
3Kontaktvisuell zuerst
1TerminDOM zuerst
2PreiseDOM danach
TabMitte → rechts → links
.kontakt { order: -1; }
/* DOM bleibt 1, 2, 3 */

Entscheidend ist die Bedeutung der Folge

Zwei unabhängige Spalten dürfen mehrere verständliche Reihenfolgen haben. Kritisch wird es, wenn die Gestaltung eine Abfolge verspricht und der Fokus scheinbar zurückspringt. Dann ordnen Sie die Elemente im HTML und lassen CSS nur das Layout übernehmen.

Kopierbares Gerüst

Eine vollständige Seite in logischer Quelltextreihenfolge

Der Sprunglink beginnt den Weg. Inhalt steht vor der ergänzenden Seitenleiste. Auf kleinen Bildschirmen fällt das Raster zusammen, ohne dass sich DOM oder Fokusfolge ändern.

1Kopf2Inhalt3Ergänzung4Fuß
<body>
  <a class="skip-link" href="#inhalt">Zum Inhalt</a>

  <header>
    <a href="/">Start</a>
    <nav aria-label="Hauptnavigation">
      <a href="/leistungen">Leistungen</a>
      <a href="/kontakt">Kontakt</a>
    </nav>
  </header>

  <div class="layout">
    <main id="inhalt" tabindex="-1">
      <h1>Leistungen</h1>
      <a href="/termin">Termin vereinbaren</a>
    </main>

    <aside aria-label="Ergänzende Links">
      <a href="/ablauf">Ablauf</a>
      <a href="/fragen">Häufige Fragen</a>
    </aside>
  </div>

  <footer><a href="/impressum">Impressum</a></footer>
</body>

<style>
  .layout {
    display: grid;
    grid-template-columns: minmax(0, 3fr) minmax(14rem, 1fr);
    gap: 2rem;
  }

  @media (max-width: 48rem) {
    .layout { grid-template-columns: 1fr; }
  }

  .skip-link {
    position: absolute;
    transform: translateY(-120%);
  }

  .skip-link:focus-visible { transform: none; }
</style>
tabindex="-1"Nur per Skript oder Sprunglink
tabindex="0"An Position im DOM
tabindex="1…"Erzwingt eine Sonderroute

Drei Werte, drei völlig verschiedene Aufgaben

-1 macht ein Ziel programmatisch fokussierbar, ohne es in den normalen Tab-Weg zu setzen. 0 nimmt ein eigenes Widget an seiner DOM-Position auf. Positive Werte bauen eine zweite Reihenfolge und werden schnell unwartbar.

So prüfen Sie es

Zeichnen Sie zuerst den Weg, suchen Sie danach im Code

Testen Sie jede responsive Ansicht separat. Ein Layoutwechsel kann die visuelle Folge ändern, während die Tab-Reihenfolge gleich bleibt.

  1. Seite neu ladenDrücken Sie Tab und notieren Sie jeden sichtbaren Stopp.
  2. Bildweg vergleichenDie Linie muss der erwartbaren Leserichtung folgen.
  3. Rückwärts prüfenUmschalt + Tab führt durch dieselben Stopps zurück.
  4. Schmale Ansicht prüfenWiederholen Sie die Route nach dem Umbruch der Spalten.
[...document.querySelectorAll('[tabindex]')]
  .filter((element) => element.tabIndex > 0)
  .forEach((element) => console.log(element.tabIndex, element));

Die Konsole sollte nichts ausgeben. Findet sie positive Werte, verschieben Sie das Element im DOM an die richtige Stelle und entfernen Sie die künstliche Nummerierung.

Aus dem Prüfbericht

Zwei Regeln, zwei Fundstellen

Zum Mitnehmen

Die Fokusreihenfolge, korrigiert

Drei Änderungen im HTML. Die Reihenfolge kommt aus dem Quelltext.

Korrektur in 3 Schritten ansehen
  1. Geschlossenes wirklich ausblenden

    aria-hidden verbirgt nur vor Vorleseprogrammen, nicht vor der Tabulatortaste. hidden nimmt den geschlossenen Bereich aus Anzeige und Tastaturweg.

    KorrekturvergleichSchritt 1 · HTML

    Vorher

    <div class="untermenue" aria-hidden="true">
      <a href="/preise">Preise</a>
    </div>

    Nachher

    <div class="untermenue" hidden>
      <a href="/preise">Preise</a>
    </div>

    Markierte Zeilen wurden geändert

    So prüfen Sie es Drücken Sie mehrmals die Tabulatortaste. Der Fokus springt am geschlossenen Untermenü vorbei.

  2. Link und Schaltfläche nebeneinander stellen

    Ein Bedienelement pro Fokusstopp. Der Link wird Geschwister der Schaltfläche und behält sein Ziel.

    KorrekturvergleichSchritt 2 · HTML

    Vorher

    <button type="button">Termin wählen
      <a href="/termine">Alle Termine</a>
    </button>

    Nachher

    <button type="button">Termin wählen</button>
    <a href="/termine">Alle Termine</a>

    Markierte Zeilen wurden geändert

    So prüfen Sie es Gehen Sie mit der Tabulatortaste durch die Karte. Schaltfläche und Link werden getrennt angesagt.

  3. Positive tabindex-Werte entfernen

    Ohne tabindex folgt der Fokus dem Quelltext. Sortieren Sie die Links dort so, wie sie gelesen werden sollen.

    KorrekturvergleichSchritt 3 · HTML

    Vorher

    <a href="/leistungen" tabindex="3">Leistungen</a>
    <a href="/preise" tabindex="1">Preise</a>
    <a href="/kontakt" tabindex="2">Kontakt</a>

    Nachher

    <a href="/preise">Preise</a>
    <a href="/kontakt">Kontakt</a>
    <a href="/leistungen">Leistungen</a>

    Markierte Zeilen wurden geändert

    So prüfen Sie es Drücken Sie Tab von oben nach unten. Der Fokus läuft in derselben Folge wie die sichtbaren Links.

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.