2.1.1 Keyboard

WCAG - Definition

Alle Funktionen der Website müssen ausschließlich mit der Tastatur (ohne Maus oder Touch) nutzbar sein.

Das gilt für:

  • Navigation (z. B. durch Menüs, Links)

  • Interaktionen (z. B. Buttons, Formulare, Dialoge)

  • Steuerung (z. B. Tabs, Slider, Akkordeons)

Ausreichende Techniken

G90 – Alle Funktionalität über Tastatur erreichbar

Verwende native HTML-Elemente, die automatisch tastaturbedienbar sind.

Gute Beispiele:

<button onclick="doSomething()">Klicken</button>  <!-- mit Tastatur erreichbar -->
<a href="/seite.html">Link</a>                    <!-- immer per Tab erreichbar -->
<input type="text" name="email">                  <!-- Fokusierbar -->

Diese Elemente haben von Haus aus Fokus- und Tastaturverhalten.

Scripting-Techniken

Wenn du eigene Komponenten baust, z. B. einen div Button oder ein eigenes Menü, musst du ARIA + Tastaturverhalten nachbauen.

Beispiel: „Pseudo-Button“ zugänglich machen

<div role="button" tabindex="0" onclick="doSomething()" onkeydown="if(event.key==='Enter'||event.key===' '){doSomething()}">
  Klick mich
</div>

  • role="button": Sagt dem Screenreader: „Ich bin ein Button“
  • tabindex="0": Macht das Element mit Tab erreichbar
  • onkeydown: Ermöglicht Ausführung per Enter oder Leertaste

Beratungstechniken (Advisory Techniques)

G202 Keine Mauspflicht – alle Interaktionen müssen auch per Tastatur funktionieren
G105 Verwende semantisch korrekte HTML-Elemente, z. B. <button>, <a>, <label>
G21 Wenn Skripte nötig sind, stelle sicher, dass Tastatur-Eingaben ebenfalls behandelt werden
G165 Verwende tabindex nur sinnvoll: 0 für interaktive Elemente, -1 für nicht-tab-relevantes (aber fokusierbar per JS)

Fehler

  • Wichtige Funktion ist nur mit Maus erreichbar, z. B. ein div mit onclick, aber kein tabindex oder onkeydown
  • Tastaturbenutzer bleiben in Fokus-Falle gefangen (z. B. Modal ohne Escape oder Fokusausgang)
  • Benutzer können ein Element nicht fokussieren (fehlender tabindex oder Fokusverlust)
  • Eine Funktion erwartet nur Mausaktionen (z. B. Drag & Drop ohne Alternative)

Entwickler-Checkliste

  • alle interaktiven Elemente mit Tab erreichbar sind
  • Enter oder Space erwartungsgemäß funktionieren

  • keine Funktion ausschließlich per Maus erreichbar ist

  • Fokus sichtbar ist (kombinierbar mit 2.4.7)

  • Fokus nicht stecken bleibt (z. B. in Overlays)

Praktische Tipps für Entwickler

Eigene Schaltflächen - Nutze role="button" + tabindex="0" + keydown für Enter/Space
Modale Dialoge - Setze Fokus beim Öffnen und schließe mit ESC
Slider/Carousel - Biete Pfeiltastensteuerung an (keydown)
Drag & Drop - Biete auch Tastatur-Alternativen wie Up/Down/Enter