WCAG & BFSG · WCAG-Referenz: Bedienbar

WCAG 2.1.4: Tastenkürzel

WCAG 2.1.4 verlangt, dass Tastenkürzel aus einer einzelnen Taste – einem Buchstaben, einer Ziffer, einem Satzzeichen – abschaltbar sind, sich auf eine Kombination mit Modifikatortaste umlegen lassen oder nur wirken, solange die zugehörige Komponente den Fokus hat. Mindestens eine dieser drei Bedingungen muss erfüllt sein.

(Englisch: Character Key Shortcuts. Der BIK-BITV-Test nennt den Prüfschritt „Tastatur-Kurzbefehle abschaltbar oder anpassbar“.)

Stufe Prinzip Teil der WCAG seit Rechtlich verbindlich?
A Bedienbar 2.1 (2018) Ja – über EN 301 549 in BFSG & BITV

Das Wichtigste in Kürze

  • Gemeint sind nur Kürzel ohne Modifikator. Strg + S ist unkritisch, ein einzelnes s nicht. Auch Umschalt + Buchstabe zählt als Einzeltasten-Kürzel.
  • Drei Wege führen zur Konformität: abschaltbar machen, umbelegbar machen oder nur bei Fokus auf der Komponente wirken lassen. Einer genügt.
  • Der Anlass ist die Spracheingabe. Wer diktiert, erzeugt Buchstaben – und ein gesprochener Satz löst dann eine Kette von Aktionen aus.
  • Fokusgebundene Kürzel sind ausdrücklich erlaubt. Buchstabensprünge in einer Auswahlliste oder Pfeiltasten in einer Combobox sind kein Verstoß.
  • Der Test ist stumpf, aber wirksam: außerhalb von Eingabefeldern jede Taste einmal drücken, dann alles noch einmal mit gehaltener Umschalttaste.
  • Für Videoplayer gilt derzeit eine Kulanz. Kürzel auf einem fokussierten Videoelement – etwa k zum Pausieren – werden vorerst nicht als Verstoß gewertet.
  • Es ist Stufe A, also die niedrigste Hürde – und es betrifft fast nur Anwendungen, nicht klassische Websites.
  • Häufigste Fundstellen: Webmailer, Ticketsysteme, Redaktions- und Warenwirtschaftsoberflächen, Chat-Anwendungen, Karten- und Analysewerkzeuge.

Darf ich einzelne Buchstaben als Shortcut nutzen?

Nur, wenn sie abschaltbar sind, sich auf eine Kombination mit Modifikatortaste umlegen lassen oder nur bei fokussiertem Element wirken.

Das Kriterium kam 2018 mit WCAG 2.1 dazu, weil sich ein konkretes Problem gehäuft hatte: Anwendungen, die Produktivität über Einzeltasten-Kürzel beschleunigen, und Menschen, die ihren Rechner mit der Stimme bedienen.

Was zählt als Einzeltasten-Kürzel? Jede Zuordnung, bei der eine Buchstaben-, Ziffern-, Symbol- oder Satzzeichentaste allein eine Funktion auslöst. Der BITV-Prüfschritt zählt ausdrücklich auch die Kombination mit der Umschalttaste dazu – Shift + N ist genauso betroffen wie n. Nicht gemeint sind Strg, Alt, die Befehlstaste, Tab, Enter, die Pfeiltasten und die Funktionstasten.

Die drei zulässigen Auswege stehen gleichrangig nebeneinander:

  • Abschalten. Eine Einstellung, mit der sich die Kürzel vollständig deaktivieren lassen.
  • Umbelegen. Eine Einstellung, mit der sich mindestens ein Modifikator davor setzen lässt – aus e wird Alt + E.
  • Nur bei Fokus. Das Kürzel wirkt ausschließlich, solange die zugehörige Komponente den Fokus hat.

Der dritte Weg ist der, den man am häufigsten ohnehin schon geht. Wenn in einer Auswahlliste die Taste b zum ersten Eintrag mit B springt, ist das konform: Die Liste muss dafür fokussiert sein. Dasselbe gilt für Buchstabensprünge in einer Combobox oder für Pfeiltasten in einem Tab-Set. Problematisch sind nur die globalen Kürzel, die auf das ganze Dokument hören.

Warum das ernst ist: Spracherkennung wandelt gesprochene Sprache in Tastatureingaben um. Landet der Text nicht in einem Eingabefeld – weil der Fokus gerade woanders steht, weil das Diktat verrutscht, weil ein Befehl falsch erkannt wurde –, dann trifft jeder Buchstabe auf ein globales Kürzel. Ein einziger diktierter Halbsatz kann so ein Postfach umsortieren, Nachrichten archivieren und einen Entwurf verwerfen.

Der vollständige Wortlaut steht im Understanding-Dokument des W3C zu 2.1.4; das deutsche Prüfvorgehen beschreibt der Prüfschritt 2.1.4 des BIK BITV-Tests.

Zwei Postfach-Oberflächen im Vergleich, beide mit demselben diktierten Satz „Melde dich, ja?“. Links, rot als Verstoß markiert: Die Einzeltasten m, e, l, d und j lösen nacheinander stummschalten, archivieren, Label zuweisen, Entwurf verwerfen und nächste Nachricht aus. Hinweis: Fünf Buchstaben, fünf Aktionen – wer per Sprache diktiert, räumt sein Postfach auf, ohne es zu merken. Rechts, grün als konform markiert: Dieselben Funktionen liegen auf Alt plus M, Alt plus E, Alt plus L, Alt plus D und Alt plus J, darunter ein aktivierter Schalter „Tastenkürzel verwenden“ in den Einstellungen. Hinweis: Der Modifikator genügt, zulässig ist auch Abschalten oder Beschränken auf die fokussierte Komponente.
Derselbe diktierte Satz, zwei Belegungen: Links löst er fünf Aktionen aus, rechts landet er als Text im Feld.

Wen betrifft es besonders?

Nutzer von Spracheingabe sind die Kerngruppe – Dragon NaturallySpeaking, die Sprachsteuerung von macOS und iOS, Voice Access unter Android. Für sie ist die Tastatur nicht optional, sondern der Kanal, über den ihre Stimme in den Rechner kommt. Ein globales Einzeltasten-Kürzel ist deshalb kein Schönheitsfehler, sondern ein Risiko: Aktionen laufen los, ohne dass sie ausgelöst wurden, und manche davon lassen sich nicht zurücknehmen.

Screenreader-Nutzer haben ein anderes Problem: Kollisionen. NVDA und JAWS belegen im Lesemodus fast das gesamte Alphabet für die Schnellnavigation – h springt zur nächsten Überschrift, t zur nächsten Tabelle, b zum nächsten Button. Wenn die Anwendung dieselben Tasten belegt, entscheidet der Modus darüber, was passiert, und das ist selten vorhersehbar.

Menschen mit Tremor oder eingeschränkter Feinmotorik treffen beim Tippen regelmäßig Nachbartasten. Bei einem Text ist das ein Tippfehler, bei einem globalen Kürzel eine ausgeführte Funktion. Eine Modifikatortaste wirkt hier wie eine Sicherung: Zwei Tasten gleichzeitig trifft man nicht versehentlich.

Und die Gruppe, die man selten nennt: alle, die eine externe Tastatur an einem Tablet nutzen oder ein Ersatzeingabegerät verwenden, das Tastendrücke simuliert. Auch dort kommen Zeichen an, die niemand gedrückt hat.

Richtig & falsch im Code

Der Fehler steckt fast immer in einem globalen keydown-Listener am document:

// Falsch: globales Einzeltasten-Kürzel, immer aktiv
document.addEventListener('keydown', (e) => {
  if (e.key === 'n') neueNachricht();
  if (e.key === 'e') archivieren();
});

Die einfachste Reparatur ist ein Modifikator. Wichtig: nicht nur prüfen, dass er gedrückt ist, sondern auch, dass keine anderen mitlaufen – sonst kaperst du Systemkürzel:

// Richtig (Variante 1): Modifikator verlangen
document.addEventListener('keydown', (e) => {
  if (!e.altKey || e.ctrlKey || e.metaKey) return;
  if (e.key === 'n') neueNachricht();
  if (e.key === 'e') archivieren();
});

Wenn die Einzeltasten aus Produktivitätsgründen bleiben sollen – und dafür gibt es gute Argumente –, braucht es eine Einstellung. Sie muss auffindbar sein und den Zustand speichern:

// Richtig (Variante 2): abschaltbar, Zustand bleibt erhalten
const kuerzelAktiv = () =>
  localStorage.getItem('kuerzel') !== 'aus';

document.addEventListener('keydown', (e) => {
  if (!kuerzelAktiv()) return;
  if (istEingabefeld(e.target)) return;
  if (e.key === 'n') neueNachricht();
});
<!-- Die zugehörige Einstellung, erreichbar und beschriftet -->
<label>
  <input type="checkbox" id="kuerzel-schalter" checked />
  Tastenkürzel mit einzelnen Buchstaben verwenden
</label>

Die dritte Variante ist die sauberste, wo sie passt: Das Kürzel hängt am Element, nicht am Dokument.

// Richtig (Variante 3): wirkt nur, solange die Komponente den Fokus hat
liste.addEventListener('keydown', (e) => {
  if (e.key.length !== 1) return;
  springeZumEintragMit(e.key);
});

Ein Detail, das oft fehlt und für sich allein nicht ausreicht: die Prüfung, ob gerade in ein Feld getippt wird. Sie verhindert den offensichtlichsten Schaden, erfüllt das Kriterium aber nicht – bei Spracheingabe kommen Zeichen auch außerhalb von Feldern an:

// Nötig, aber allein nicht konform
function istEingabefeld(el) {
  return el.matches('input, textarea, select, [contenteditable]');
}

Wenn deine Anwendung Kürzel anbietet, gehört eine Übersicht dazu – üblicherweise unter ? oder in der Hilfe. Sie ist keine Anforderung aus 2.1.4, aber der Ort, an dem der Abschalter sinnvollerweise steht. Wie sich Kürzel zur allgemeinen Tastaturbedienung verhalten, steht unter Tastatur & Fokus.

So testest du es

  1. Erst herausfinden, ob es überhaupt Kürzel gibt. Hilfe-Seite, Dokumentation, Einstellungen – und im Code nach addEventListener('keydown' sowie onkeydown suchen.
  2. Die Seite neu laden. Ein Zustand aus einer vorherigen Interaktion verfälscht den Test.
  3. Auf eine leere Stelle klicken, damit kein Bedienelement den Fokus hat. Das ist der Zustand, in dem globale Kürzel wirken.
  4. Alle Buchstaben-, Ziffern- und Zeichentasten einmal durchdrücken. Ohne Strg, Alt, Enter, Tab, Pfeiltasten und Funktionstasten. Passiert irgendwo etwas?
  5. Alles wiederholen mit gehaltener Umschalttaste. Der Prüfschritt verlangt das ausdrücklich – Shift + Buchstabe gilt ebenfalls als Einzeltasten-Kürzel.
  6. Bei jedem Treffer die drei Auswege prüfen: Gibt es eine Einstellung zum Abschalten? Eine zum Umbelegen? Oder wirkt das Kürzel nur, wenn eine bestimmte Komponente den Fokus hat?
  7. Mit Screenreader gegenprüfen. NVDA im Lesemodus starten und dieselben Tasten drücken: Kollidieren Anwendungskürzel mit der Schnellnavigation?

Ein praktischer Zwischenschritt für die Entwicklung: In der Konsole monitorEvents(document, 'keydown') ausführen (Chrome DevTools) und tippen – dann siehst du, welche Tastendrücke überhaupt an einem globalen Listener ankommen.

Häufiger Fehler in der Praxis

Der Klassiker ist das Kürzel-Set aus dem Webmailer. e archiviert, # löscht, r antwortet, j und k blättern. Das Muster ist aus großen Mailanwendungen abgeschaut und wird in Unternehmensanwendungen gern nachgebaut, weil es sich professionell anfühlt. Ohne Abschalter ist es ein Verstoß auf Stufe A – und in einer Anwendung, die auch nur eine Person per Diktat bedient, ein echtes Risiko. Ich sag’s mal so: Ein Postfach, das sich beim Sprechen selbst aufräumt, meldet niemand als Barriere – der Nutzer meldet sich einfach nicht mehr an.

Der zweite ist die halbe Lösung mit dem Eingabefeld-Check. Der Code prüft, ob das Ereignis aus einem input oder textarea kommt, und lässt es dann durch. Das ist sinnvoll, erfüllt aber keine der drei Bedingungen: Bei Spracheingabe kommen Zeichen auch dann an, wenn kein Feld fokussiert ist – genau dafür wurde das Kriterium geschrieben.

Der dritte ist ein Modifikator, der Systemkürzel überschreibt. Alt + F klingt harmlos, öffnet in manchen Browsern aber das Dateimenü; Strg + W schließt den Tab. Wenn du umbelegst, teste die Kombination in allen Zielbrowsern und lass die Finger von den bekannten Systemkürzeln.

Und ein Fall, den man nicht als Verstoß notieren muss: Kürzel auf einem fokussierten Videoelement. Ob k zum Pausieren dort unter 2.1.4 fällt, ist in den Arbeitsgruppen noch offen; der BITV-Prüfschritt hält ausdrücklich fest, dass das derzeit nicht als Mangel bewertet werden soll.

Häufige Fragen

Zählt Strg + S als Einzeltasten-Kürzel?

Nein. Das Kriterium betrifft nur Kürzel ohne Modifikatortaste. Strg, Alt, die Befehlstaste und ihre Kombinationen sind ausgenommen – sie lassen sich weder versehentlich treffen noch durch Diktat auslösen. Achtung bei der Umschalttaste: Shift + N gilt laut Prüfschritt als Einzeltasten-Kürzel und ist damit betroffen.

Reicht es, wenn das Kürzel in Eingabefeldern nicht auslöst?

Nein. Das ist sinnvoll, erfüllt aber keine der drei Bedingungen des Normtexts. Konform wird es erst, wenn sich die Kürzel abschalten lassen, umbelegen lassen oder nur wirken, solange die zugehörige Komponente den Fokus hat. Bei Spracheingabe kommen Zeichen auch außerhalb von Feldern an.

Sind Buchstabensprünge in einer Auswahlliste ein Verstoß?

Nein. Das ist genau die dritte Ausnahme: Das Kürzel wirkt nur, solange die Komponente den Fokus hat. Buchstabensprünge in <select>, Pfeiltasten in einer Combobox und Tastennavigation in einem Tab-Set sind zulässig und außerdem erwartetes Verhalten – Nutzer und Screenreader rechnen damit.

Wie teste ich das, ohne alle Tasten einzeln zu drücken?

Praktisch gibt es keinen sicheren Weg drumherum – der BITV-Prüfschritt beschreibt genau dieses Vorgehen. Für die Entwicklung hilft monitorEvents(document, 'keydown') in den Chrome DevTools oder eine Suche im Quelltext nach globalen keydown-Listenern. Für den Prüfbericht bleibt der Durchgang über die Tastatur.

Was ist mit Zugriffstasten über accesskey?

Das accesskey-Attribut erzeugt in der Regel Kombinationen mit Modifikator (je nach Browser Alt oder Alt + Umschalt) und fällt damit nicht unter 2.1.4. Es hat andere Probleme – Kollisionen mit Browser- und Screenreader-Kürzeln, keine sichtbare Anzeige – und wird deshalb allgemein nicht empfohlen.

Verwandte Themen

Gratis E-Book PDF Das Praxishandbuch

Kostenloses E-Book

Das Praxishandbuch für sauberes, zugängliches Web

Alles rund um semantisches HTML, Barrierefreiheit, WCAG & BFSG, GEO und SEO — praxisnah und am echten Code. In mehreren Feedbackschleifen von Leserinnen und Lesern verbessert.

  • 3.000+ Downloads
  • 7. Auflage
  • 37 Seiten
  • PDF

Kein Spam. Abmeldung jederzeit mit einem Klick möglich.