Beschriftung von Formularelementen
Artikel Webentwicklung
Die Verknüpfung von Beschriftungen mit Formularelementen stellt sicher, dass der Aufbau einer Seite unabhängig von der Präsentation zugänglich ist: Der Screenreader liest die Beschriftungen vor, wenn der Benutzer durch die Formularelemente wandert. Mausnutzende können durch einen Klick auf das Label den Fokus auf das zugeordnete Formularelement setzen.
Label (HTML5)
Für die Beschriftung von Formularelementen wird in der Regel das label-Element verwendet. Um eine Beschriftung explizit einem bestimmten Formularelement zuzuordnen, wird sie über das for-Attribut ihres label-Elements dem entsprechenden Formularelement zugewiesen. Der Wert des for-Attributs muss hierbei mit dem Wert des id-Attributs für das betreffende Formularelement übereinstimmen.
Quelle: BITV-Test, Prüfschritt 9.1.3.1h - Beschriftung von Formularelementen programmatisch ermittelbar
Anwendungsgebiete
Elemente, für die das label-Element verwendet werden kann:
- input type="text"
- input type="checkbox"
- input type="radio"
- input type="file"
- input type="password"
- textarea
- select
Beispiel für die korrekte Verwendung
- Textfeld:
<label for="vorname">Vorname:</label>
<input type="text" name="firstname" id="vorname" />
Check-Box:
<input type="checkbox" id="html" name="computerskills" checked>
<label for="html">HTML</label>
ARIA
Das label-Element kann nicht verwendet werden für:
- Schaltflächen, die Daten senden (input type=“submit“) oder zurücksetzen (input type=“reset“),
- Schaltflächen, die aus einem Icon oder Bild bestehen (input type=“image“) sowie <button>- und
- Skriptschaltflächen (button-Elemente, input type=“button“)
In solchen Situationen kann sich ARIA als nützlich erweisen. Folgende ARIA-Auszeichnungen können für Beschriftungszwecke verwendet werden:
- aria-label
- aria-labelledby
aria-labelledby wird dann verwendet, wenn das Element, auf das es sich bezieht, eine sichtbare Bezeichnung hat. Im Gegensatz dazu wird aria-label verwendet, wenn keine sichtbare Bezeichnung vorhanden ist.
Optional kann aria-describedby den Zweck eines Feldes beschreiben. Das Attribut aria-describedby ähnelt dem aria-labelledby. Der Unterschied liegt darin, dass die Beschriftung (aria-labelledby) kurz und präzise sein soll, während eine Beschreibung (aria-describedby) ausführlichere Informationen liefert.
Beispiele für die korrekte Verwendung
Werden Schaltflächen ausschließlich mit Grafik und ohne zusätzliche sichtbare Beschriftung verwendet, so wird an dem Element der Schaltfläche das Attribut "aria-label" angebracht.
<button aria-label="Hinzufügen" onclick="myDialog.open()">
<i class="iconfont-ui-add">
</button>
Beschriftung eines Textfeldes durch einen nebenstehenden Button:
<input name="suche" type="text" aria-labelledby="suchebutton"><input name="suchebutton" id="suchebutton" type="submit" value="Suche">
Beschreibung einer Kalenderanwendung durch aria-describedby:
<div role="application" aria-labelledby="calendar" aria-describedby="info">
<h1 id="calendar">Kalender</h1>
<p id="info">
Dieser Kalender zeigt die Abwesenheiten der Teammitglieder
</p>
...
</div>
Stand: 11.01.2024