Start · Sprachen · JavaScript · Referenz · HTMLElement.accessKeyLabel

HTMLElement.accessKeyLabel

Eigenschaft

Schreibgeschützte Eigenschaft, die die vom Browser zugewiesene Tastenkombination für den <code>accesskey</code> eines Elements als lesbaren String liefert (z. B. <code>"Alt+Shift+S"</code>).

seit JavaScript Firefox 8+, Safari 14+; nicht in Chrome/Edge (Chro Kategorie: webapi

Signatur

HTMLElement.accessKeyLabel

Beschreibung

HTMLElement.accessKeyLabel gibt einen String zurück, der beschreibt, mit welcher vollständigen Tastenkombination der Browser den über das HTML-Attribut accesskey festgelegten Zugriffsschlüssel auslöst. Hat das Element keinen Zugriffsschlüssel, ist der Wert ein leerer String "".

Der Unterschied zu HTMLElement.accessKey: accessKey enthält nur das vom Autor gesetzte Zeichen (z. B. "s"), während accessKeyLabel die tatsächliche, plattform- und browserabhängige Kombination inklusive Modifikatortasten liefert – etwa "Alt+Shift+S" in Firefox unter Windows/Linux oder "⌃⌥S" unter macOS.

Nützlich ist die Eigenschaft vor allem, um Nutzern korrekte Hinweise auf Tastenkürzel anzuzeigen, etwa in einem title-Tooltip oder einer Hilfeseite, statt eine Kombination zu raten, die auf dem jeweiligen System gar nicht stimmt.

Die Eigenschaft ist schreibgeschützt; um den Zugriffsschlüssel zu ändern, setzt man element.accessKey bzw. das Attribut accesskey.

Rückgabewert

Typ
string
Beschreibung
Die für den Zugriffsschlüssel zugewiesene Tastenkombination als lesbarer String, oder "", wenn kein Zugriffsschlüssel gesetzt ist. In Browsern ohne Unterstützung ist die Eigenschaft undefined.

Beispiele

Tastenkombination eines Buttons auslesen

// HTML: <button id="save" accesskey="s">Speichern</button>
const btn = document.getElementById('save');

console.log(btn.accessKey);      // vom Autor gesetztes Zeichen
console.log(btn.accessKeyLabel); // vom Browser zugewiesene Kombination
s Alt+Shift+S (Firefox unter Windows; unter macOS z. B. ⌃⌥S)

Tooltip mit korrektem Tastenkürzel erzeugen (mit Fallback)

// Allen Elementen mit accesskey einen passenden Tooltip geben
const describeShortcut = (el) => {
  // Chromium kennt accessKeyLabel nicht -> undefined
  const label = typeof el.accessKeyLabel === 'string' && el.accessKeyLabel !== ''
    ? el.accessKeyLabel
    : `Zugriffstaste: ${el.accessKey.toUpperCase()}`;
  return label;
};

document.querySelectorAll('[accesskey]').forEach((el) => {
  const base = el.title || el.textContent.trim();
  el.title = `${base} (${describeShortcut(el)})`;
});
title="Speichern (Alt+Shift+S)" in Firefox bzw. "Speichern (Zugriffstaste: S)" in Chrome

Leerer String ohne Zugriffsschlüssel und nach Änderung

const link = document.createElement('a');
link.href = '/hilfe';
link.textContent = 'Hilfe';
document.body.append(link);

console.log(JSON.stringify(link.accessKeyLabel)); // noch kein accesskey

link.accessKey = 'h'; // accessKeyLabel selbst ist schreibgeschützt
console.log(link.accessKeyLabel);
"" Alt+Shift+H (Firefox, Windows/Linux)

// Wichtig · Fallstricke

  • Browser-Unterstützung: Firefox und Safari unterstützen die Eigenschaft, Chrome, Edge und andere Chromium-Browser nicht. Dort ist el.accessKeyLabel undefined. Vor der Nutzung also immer auf typeof el.accessKeyLabel === 'string' prüfen und auf accessKey zurückfallen.
  • Das Format ist nicht standardisiert und hängt von Browser, Betriebssystem und Tastaturbelegung ab ("Alt+Shift+S", "⌃⌥S" …). Den String nur anzeigen, nicht parsen.
  • Die Eigenschaft ist schreibgeschützt: Zuweisungen werden stillschweigend ignoriert (im Strict Mode gibt es einen TypeError). Ändern lässt sich der Schlüssel über accessKey.
  • Barrierefreiheit: accesskey kann mit Tastenkürzeln von Screenreadern, Browser oder Betriebssystem kollidieren. Setze es sparsam ein und dokumentiere die Kürzel sichtbar.