Start · Sprachen · JavaScript · Referenz · HTMLInputElement.alt

HTMLInputElement.alt

Eigenschaft

Liest oder setzt den Alternativtext eines <code>&lt;input type="image"&gt;</code>, also das Text-Label des Bild-Buttons für Nutzer, die das Bild nicht sehen können.

seit JavaScript Baseline: alle Browser Kategorie: webapi

Signatur

HTMLInputElement.alt

Beschreibung

Die Eigenschaft alt spiegelt das HTML-Attribut alt eines <input>-Elements wider. Sinnvoll ist sie nur bei type="image": Dann ist das Eingabefeld ein grafischer Absende-Button, und alt liefert den zugänglichen Namen dieses Buttons.

Screenreader lesen den Alternativtext vor. Browser zeigen ihn an, wenn das Bild aus src nicht geladen werden kann oder Bilder abgeschaltet sind. Der Text sollte deshalb die Aktion des Buttons beschreiben, etwa „Suchen“ oder „Bestellung absenden“, und nicht das Bild selbst wie „Lupe“.

Die Eigenschaft funktioniert in beide Richtungen: Beim Lesen erhältst du den aktuellen Attributwert als Zeichenkette. Beim Schreiben wird das Attribut alt im DOM gesetzt. Fehlt das Attribut, ist der Rückgabewert ein leerer String "". Bei anderen Typen als image kannst du den Wert zwar lesen und schreiben, er hat aber keine Wirkung.

Rückgabewert

Typ
string
Beschreibung
Der Wert des Attributs alt. Wenn das Attribut fehlt, ist es ein leerer String. Beim Setzen wird der Wert in einen String umgewandelt und als Attribut geschrieben.

Beispiele

Alternativtext eines Bild-Buttons auslesen

// HTML: <input type="image" id="suche" src="lupe.svg" alt="Suchen">
const button = document.querySelector('#suche');
console.log(button.alt);
console.log(button.getAttribute('alt'));
Suchen Suchen

Bild-Button dynamisch erzeugen und beschriften

const form = document.querySelector('form');
const submit = document.createElement('input');
submit.type = 'image';
submit.src = '/icons/senden.svg';
submit.alt = 'Bestellung absenden';
form.append(submit);

console.log(submit.outerHTML);
<input type="image" src="/icons/senden.svg" alt="Bestellung absenden">

Alt-Text an den Zustand anpassen

// Ein Bild-Button wechselt zwischen Abspielen und Pause
const toggle = document.querySelector('#player-toggle');
let playing = false;

toggle.addEventListener('click', (event) => {
  event.preventDefault(); // type="image" würde sonst das Formular absenden
  playing = !playing;
  toggle.src = playing ? 'pause.svg' : 'play.svg';
  toggle.alt = playing ? 'Pausieren' : 'Abspielen';
  console.log(toggle.alt);
});
Pausieren (nach dem ersten Klick)

Barrierefreiheit prüfen: Bild-Buttons ohne Alt-Text finden

const missing = [...document.querySelectorAll('input[type="image"]')]
  .filter((input) => input.alt.trim() === '');

console.log(`${missing.length} Bild-Button(s) ohne Alternativtext`);
missing.forEach((el) => console.warn('Fehlendes alt:', el));
2 Bild-Button(s) ohne Alternativtext

// Wichtig · Fallstricke

  • Nur bei type="image" wirksam: Bei allen anderen Input-Typen wird das Attribut ignoriert. Normale Felder bekommen ihr Label über <label> oder aria-label.
  • Kein leerer Alt-Text: Anders als bei dekorativen <img> ist alt="" bei Bild-Buttons falsch. Der Button hätte dann keinen zugänglichen Namen und würde WCAG 1.1.1 und 4.1.2 verletzen.
  • Kein Tooltip: alt wird beim Überfahren mit der Maus nicht angezeigt. Dafür gibt es das Attribut title, das sich aber nicht als Ersatz für alt eignet.
  • Absende-Verhalten: type="image" sendet das Formular ab und überträgt dabei die Klickkoordinaten (name.x und name.y). Wenn du den Button nur per JavaScript steuerst, rufe preventDefault() auf.
  • Kompatibilität: Wird seit jeher von allen Browsern unterstützt, auch von alten Versionen.