Start · Sprachen · JavaScript · Referenz · Element.ariaPlaceholder

Element.ariaPlaceholder

Eigenschaft

Liest oder setzt das Attribut <code>aria-placeholder</code>, also einen kurzen Eingabehinweis für ein leeres Eingabefeld, der für Hilfstechnologien bestimmt ist.

seit JavaScript Baseline 2023: Chrome 81+, Edge 81+, Safari 12.1+, Kategorie: webapi

Signatur

Element.ariaPlaceholder

Beschreibung

Die Eigenschaft ariaPlaceholder gehört zur ARIA-Reflexion der Element-Schnittstelle. Sie spiegelt das Attribut aria-placeholder wider: Beim Lesen erhalten Sie dessen aktuellen Wert als Zeichenkette, beim Schreiben wird das Attribut gesetzt oder geändert. Sie müssen also nicht mehr getAttribute() bzw. setAttribute() verwenden.

aria-placeholder ist ein kurzer Hinweis, etwa ein Beispielwert oder eine Formatangabe, der Screenreadern mitteilt, was in ein leeres Eingabefeld gehört. Das Attribut ist nur für selbst gebaute Eingabe-Widgets gedacht, zum Beispiel ein <div contenteditable> mit role="textbox" oder role="searchbox". Bei nativen <input>- und <textarea>-Elementen nehmen Sie stattdessen das HTML-Attribut placeholder.

Wichtig: aria-placeholder ändert nichts an der Darstellung. Den sichtbaren Platzhaltertext müssen Sie selbst anzeigen, etwa per CSS mit :empty::before, und ausblenden, sobald der Benutzer etwas eingibt. Ein Platzhalter ersetzt außerdem keine Beschriftung. Dafür gibt es aria-label oder aria-labelledby.

Parameter

Name Typ Default Beschreibung
$value string | null null Beim Setzen: der neue Hinweistext. Mit null wird das Attribut aria-placeholder entfernt.

Rückgabewert

Typ
string | null
Beschreibung
Der aktuelle Wert von aria-placeholder oder null, wenn das Attribut nicht gesetzt ist.

Beispiele

Wert auslesen

// HTML: <div id="txt" role="textbox" contenteditable="true" aria-placeholder="5102"></div>
const box = document.getElementById('txt');
console.log(box.ariaPlaceholder);
5102

Hinweis setzen und entfernen

const box = document.querySelector('[role="textbox"]');

box.ariaPlaceholder = 'z. B. 12345';
console.log(box.getAttribute('aria-placeholder'));

// Attribut vollständig entfernen
box.ariaPlaceholder = null;
console.log(box.hasAttribute('aria-placeholder'));
z. B. 12345 false

Eigenes Such-Widget mit sichtbarem Platzhalter

// CSS: [data-empty]::before { content: attr(aria-placeholder); color: #888; }
const search = document.createElement('div');
search.setAttribute('role', 'searchbox');
search.contentEditable = 'true';
search.ariaLabel = 'Artikel suchen';
search.ariaPlaceholder = 'Suchbegriff eingeben …';
search.dataset.empty = '';

// Sichtbaren Platzhalter nur bei leerem Feld anzeigen
search.addEventListener('input', () => {
  search.toggleAttribute('data-empty', search.textContent.trim() === '');
});

document.body.append(search);
console.log(search.ariaPlaceholder);
Suchbegriff eingeben …

// Wichtig · Fallstricke

  • Browserunterstützung: Firefox unterstützt die ARIA-Reflexion erst ab Version 119. In älteren Browsern liefert die Eigenschaft undefined, und Zuweisungen setzen kein Attribut. Als Rückfall verwenden Sie setAttribute('aria-placeholder', …).
  • Nicht zusammen mit nativen Formularelementen verwenden. Bei <input> und <textarea> ist das HTML-Attribut placeholder richtig. Beide gleichzeitig zu setzen kann dazu führen, dass Screenreader den Hinweis zweimal vorlesen.
  • Das Attribut ist nur bei den Rollen textbox und searchbox zulässig. Bei anderen Rollen wird es ignoriert.
  • Ein Platzhalter ist keine Beschriftung. Er verschwindet bei der Eingabe und wird von manchen Hilfstechnologien nicht vorgelesen. Geben Sie daher immer zusätzlich eine zugängliche Beschriftung an.
  • Den sichtbaren Text müssen Sie selbst darstellen. Achten Sie dabei auf ausreichenden Farbkontrast (WCAG).