Keyboard Accessibility in HTML

Erst das richtige Element, dann die Taste

Klick-div, Scrollkasten, eingebetteter Rahmen: drei Stellen ohne Tastaturzugang.

Website prüfen
Beispiel im Prüfbericht Markierter Befund
Markierter Befund · Kritisch · WCAG 4.1.2Tauschen-Button ohne Namen

Tastatur-Landkarte

Der Tabweg beginnt im HTML

Das passende Element liefert Fokus, Tastenkonvention und Bedeutung zusammen. Sehen Sie, welchen Vertrag der Browser aus sechs HTML-Bausteinen macht.

Vom Quelltext zur Taste

Konzeptionelle Browseransicht. Die genaue Tastenbelegung folgt auch dem Betriebssystem; dargestellt sind die üblichen Web-Konventionen.

Was ein natives Element schon mitbringt

Ein button ist mehr als eine gezeichnete Fläche. Der Browser bündelt Tastaturfokus, Aktivierung und eine Rolle für assistive Technik.

Eine kleine Seite mit nativem Tabweg

Das Beispiel braucht für Link, Offenlegung, Auswahl und Absenden kein eigenes Tastatur-Skript. Die Scrollregion erhält den browserübergreifenden Fallback.

<a class="skip-link" href="#inhalt">
  Zum Inhalt springen
</a>

<nav aria-label="Hauptnavigation">
  <a href="/produkte">Produkte ansehen</a>
</nav>

<main id="inhalt" tabindex="-1">
  <h1>Größen und Termine</h1>

  <details>
    <summary>Größenfilter</summary>
    <form action="/produkte" method="get">
      <label>
        <input type="checkbox" name="groesse" value="42">
        Größe 42
      </label>
      <button type="submit">Filter anwenden</button>
    </form>
  </details>

  <section class="groessen" tabindex="0"
    aria-labelledby="groessen-titel">
    <h2 id="groessen-titel">Größentabelle</h2>
    <p>Größe 36 bis Größe 48 …</p>
  </section>

  <iframe title="Terminkalender" src="/kalender"></iframe>
</main>

tabindex gezielt einsetzen

kein tabindexNative ControlsLink, Button, Eingabefeld und Summary bringen ihren Platz mit.
tabindex="0"In den TabwegFür eine Scrollregion, wenn sie sonst nicht erreichbar ist.
tabindex="-1"Nur gezielt fokussierenEtwa ein Sprungziel oder eine nachgelagerte Fehlermeldung.
tabindex="1+"Reihenfolge vermeidenPositive Werte lösen den Fokusweg von der DOM-Reihenfolge.

So prüfen Sie es

  1. Legen Sie die Maus weg. Gehen Sie mit Tab vorwärts und mit Shift + Tab zurück. Der sichtbare Fokus folgt der inhaltlich sinnvollen DOM-Reihenfolge.
  2. Aktivieren Sie Links mit Enter, Buttons und Summary mit Enter sowie Leertaste. Jede Zeigeraktion muss auch ohne Zeiger erreichbar sein.
  3. Bewegen Sie den Fokus in jede Scrollregion und in jeden eingebetteten Rahmen. Scrollen Sie mit Pfeiltasten und tabben Sie anschließend wieder aus dem Bereich heraus.
  4. Wiederholen Sie den vollständigen Weg nach jeder dynamischen Änderung. Der Fokus darf nicht verschwinden, unerwartet springen oder in einer Komponente stecken bleiben.

Aus dem Prüfbericht

Drei Befunde im HTML

Kritisch Der Scrollkasten hat keinen Tastaturzugang Regel scrollable-region-focusable

Ein Scrollkasten muss selbst oder über einen Nachfahren per Tastatur erreichbar sein. Für browserübergreifenden Zugang kann tabindex null am Kasten nötig sein.

Anleitung: Scrollbereiche per Tastatur bedienen

Zum Mitnehmen

Die Bedienelemente, korrigiert

Ein echter Button, ein anspringbarer Kasten, ein offener Rahmen.

Korrektur in 3 Schritten ansehen
  1. Aus dem Klick-div einen Button machen

    Das native button-Element ist fokussierbar, reagiert auf Enter und Leertaste und trägt seinen Text als Namen.

    KorrekturvergleichSchritt 1 · HTML

    Vorher

    <div class="knopf" onclick="oeffneFilter()">
      Filter öffnen
    </div>

    Nachher

    <button type="button" class="knopf" onclick="oeffneFilter()">
      Filter öffnen
    </button>

    Markierte Zeilen wurden geändert

    So prüfen Sie es Gehen Sie mit Tab auf den Knopf und drücken Sie Enter. Der Filter öffnet sich.

  2. Den Scrollkasten in den Tab-Weg nehmen

    Mit tabindex null wird der Kasten auch in Browsern anspringbar, die Scrollregionen nicht automatisch in den Tab-Weg nehmen. Rolle und aria-label geben ihm einen Namen.

    KorrekturvergleichSchritt 2 · HTML

    Vorher

    <div class="tabelle" style="max-height:3rem;overflow:auto">
      <p>Größe 36 bis Größe 48 …</p>
    </div>

    Nachher

    <div class="tabelle" style="max-height:3rem;overflow:auto" tabindex="0"
      role="region" aria-label="Größentabelle">
      <p>Größe 36 bis Größe 48 …</p>
    </div>

    Markierte Zeilen wurden geändert

    So prüfen Sie es Gehen Sie mit Tab in den Kasten. Die Pfeiltasten bewegen jetzt seinen Inhalt.

  3. Den eingebetteten Rahmen öffnen

    Ein negatives tabindex am iframe hält den Fokus draußen. Ohne das Attribut führt der Tab-Weg regulär hinein.

    KorrekturvergleichSchritt 3 · HTML

    Vorher

    <iframe title="Terminkalender" tabindex="-1"
      src="/kalender">
    </iframe>

    Nachher

    <iframe title="Terminkalender"
      src="/kalender">
    </iframe>

    Markierte Zeilen wurden geändert

    So prüfen Sie es Gehen Sie mit Tab bis zum Kalender. Der Fokus landet auf der ersten Schaltfläche darin.

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.