Start · Sprachen · JavaScript · Referenz · Element.ariaKeyShortcuts

Element.ariaKeyShortcuts

Eigenschaft

Liest oder setzt den Wert des Attributs <code>aria-keyshortcuts</code>, das die vom Autor implementierten Tastenkombinationen zum Aktivieren oder Fokussieren eines Elements angibt.

seit JavaScript ARIA-Reflexion (ARIAMixin): Chrome 81+, Edge 81+, Kategorie: webapi

Signatur

Element.ariaKeyShortcuts

Beschreibung

Die Eigenschaft ariaKeyShortcuts gehört zum ARIAMixin und ist auf jedem Element verfügbar. Sie spiegelt das HTML-Attribut aria-keyshortcuts direkt wider: Lesen liefert den Attributwert als String, Schreiben setzt das Attribut. Über null wird das Attribut entfernt.

Mit aria-keyshortcuts teilt man assistiven Technologien wie Screenreadern mit, welche Tastenkombinationen man selbst per JavaScript eingebaut hat, um ein Element zu aktivieren oder zu fokussieren. Das Attribut ist rein informativ: Der Browser legt dadurch keine Tastenkürzel an. Die eigentliche Tastaturbehandlung schreibt man weiterhin selbst, z. B. mit einem keydown-Listener.

Der Wert ist eine durch Leerzeichen getrennte Liste von Kombinationen. Innerhalb einer Kombination werden die Tasten mit + verbunden, etwa "Control+S" oder "Alt+Shift+P Control+P". Modifikatortasten wie Control, Alt, Shift und Meta stehen vor der eigentlichen Taste. Die Tastennamen entsprechen den Werten von KeyboardEvent.key, für die Leertaste schreibt man Space.

Parameter

Name Typ Default Beschreibung
$value string | null Nur beim Setzen: eine durch Leerzeichen getrennte Liste von Tastenkombinationen, z. B. "Control+Shift+F". Mit null wird das Attribut aria-keyshortcuts entfernt.

Rückgabewert

Typ
string | null
Beschreibung
Der aktuelle Wert des Attributs aria-keyshortcuts oder null, wenn das Attribut nicht gesetzt ist.

Beispiele

Wert lesen und ändern

// HTML: <button id="save" aria-keyshortcuts="Control+S">Speichern</button>
const button = document.querySelector('#save');

console.log(button.ariaKeyShortcuts);

// Zweites Kürzel für macOS ergänzen
button.ariaKeyShortcuts = 'Control+S Meta+S';
console.log(button.getAttribute('aria-keyshortcuts'));
Control+S Control+S Meta+S

Tastenkürzel umsetzen und für Screenreader kennzeichnen

const searchInput = document.createElement('input');
searchInput.type = 'search';
searchInput.ariaLabel = 'Suche';
searchInput.ariaKeyShortcuts = 'Control+K';
document.body.append(searchInput);

// Das Attribut beschreibt das Kürzel nur – umsetzen muss man es selbst
document.addEventListener('keydown', (event) => {
  if (event.ctrlKey && event.key.toLowerCase() === 'k') {
    event.preventDefault();
    searchInput.focus();
  }
});

console.log(searchInput.outerHTML);
<input type="search" aria-label="Suche" aria-keyshortcuts="Control+K">

Kürzel entfernen, wenn eine Funktion deaktiviert wird

const deleteButton = document.createElement('button');
deleteButton.textContent = 'Löschen';
deleteButton.ariaKeyShortcuts = 'Delete';

const disableShortcut = () => {
  deleteButton.ariaKeyShortcuts = null; // entfernt das Attribut
};

disableShortcut();
console.log(deleteButton.hasAttribute('aria-keyshortcuts'), deleteButton.ariaKeyShortcuts);
false null

// Wichtig · Fallstricke

  • Nur beschreibend: Das Setzen von ariaKeyShortcuts legt kein Tastenkürzel an. Die Tastaturbehandlung muss man selbst schreiben, sonst verspricht man Nutzern assistiver Technologien eine Funktion, die es nicht gibt.
  • Konflikte vermeiden: Kürzel sollten nicht mit Tastenkürzeln des Browsers, des Betriebssystems oder von Screenreadern kollidieren (z. B. Control+T oder einzelne Buchstaben ohne Modifikatortaste im Lesemodus).
  • Keine Prüfung: Der Browser prüft den String nicht auf Gültigkeit. Die Schreibweise (Control statt Ctrl, Trennung mit + und Leerzeichen) muss man selbst korrekt einhalten.
  • Auch sehende Nutzer sollten das Kürzel erfahren, etwa über einen Tooltip oder eine Hilfeseite. Screenreader lesen das Attribut unterschiedlich zuverlässig vor.
  • Kompatibilität: Die gespiegelte Eigenschaft gibt es erst in Firefox 119. Für ältere Browser verwendet man setAttribute('aria-keyshortcuts', …). Das Attribut selbst funktioniert überall.