Select label in HTML

Der Feldname bleibt, die Auswahl wechselt

Label, Auswahlfeld, sichtbarer Text: drei Stellen einer Verbindung.

Website prüfen
Beispiel im Prüfbericht Markierter Befund
Markierter Befund · Kritisch · WCAG 4.1.2Linke Ortsauswahl ohne Namen

Verbindung im DOM

Ein Text, ein Ziel, ein verständlicher Feldname

for zeigt auf id. Daraus baut der Browser den Namen des Auswahlfeldes; die gewählte Option bleibt sein Wert.

Konzeptionelle Browseransicht · Auswahl „Standort“

explizit verknüpft

Was Menschen sehen

StandortBerlin

Sichtbare Beschriftung · gewählter Eintrag

Was Software erhält

NameStandort

RolleKombinationsfeld

WertBerlin

Zustanderforderlich

Zugänglicher Name · Rolle · aktueller Wert

Unterbrochene Verbindung

for="Standort"id="standort-feld"Name fehlt

Ähnlich reicht nicht. Beide Werte müssen Zeichen für Zeichen übereinstimmen.

Kopierbares Grundmuster

Beschriftung und Pflichtauswahl vollständig zusammenbauen

Das label benennt die Aufgabe. name benennt dagegen den Schlüssel bei der Formularübermittlung und ersetzt keine Beschriftung.

01forverweist auf das Feld

02idist das eindeutige Ziel

03namegehört zu den gesendeten Daten

04optionliefert den aktuellen Wert

<label for="standort">Standort</label>
<select id="standort" name="standort" required>
  <option value="">Bitte wählen</option>
  <optgroup label="Nord">
    <option value="hamburg">Hamburg</option>
  </optgroup>
  <optgroup label="Ost">
    <option value="berlin" selected>Berlin</option>
    <option value="leipzig">Leipzig</option>
  </optgroup>
</select>

Drei Positionen

Das Label darf umziehen. Die Verbindung bleibt.

Die Darstellung entscheidet über die CSS-Klasse. Das gleiche Paar aus for und id bleibt im HTML erhalten.

01 · über dem Feld

StandortBerlin

Für längere Formulare: Text und Feld bleiben auch bei Zoom gut zuzuordnen.

.feld { display: grid; gap: .4rem; }

02 · neben dem Feld

Sortieren nachNeueste

Für kompakte Filter: Mit flex-wrap bricht die Zeile auf kleinen Flächen um.

.filter { display: flex; flex-wrap: wrap; }

03 · visuell verborgen

StellenangeboteAlle Bereiche Im Code: label „Bereich“

Nur bei eindeutigem Kontext. W3C empfiehlt sichtbare Labels, wo immer möglich.

<label class="visually-hidden" …>

CSS für die Varianten

Sichtbar stapeln, seitlich umbrechen, gezielt verbergen

display: none und visibility: hidden entfernen einen Labeltext auch aus unterstützenden Darstellungen. Die letzte Klasse tut das nicht.

.feld {
  display: grid;
  gap: 0.4rem;
}

.filter {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem;
}

.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
}

Quellen für die Umsetzung

W3C erklärt das Verknüpfen und Verbergen von Labels. Der HTML Standard zum label-Element definiert for als Verweis auf die id eines beschriftbaren Elements. Für Sprachsteuerung erläutert W3C, warum der sichtbare Text im zugänglichen Namen vorkommen muss.

So prüfen Sie es

Verbindung, Name und Umbruch getrennt kontrollieren

  1. Beschriftung anklicken. Der Klick muss das zugehörige Feld erreichen; je Browser erhält es Fokus oder öffnet sich.
  2. Accessibility-Baum öffnen. Name und aktueller Wert müssen getrennt erscheinen.
  3. Auf 200 Prozent zoomen. Label und Feld bleiben vollständig und erkennbar zusammen.
  4. Mit Sprache prüfen. Der sichtbare Feldtext muss das Feld direkt ansprechen.

Aus dem Prüfbericht

Drei Stellen, drei Befunde

Zum Mitnehmen

Die Feldbeschriftung, korrigiert

Ein label, ein passendes for, kein zweiter Name.

Korrektur in 2 Schritten ansehen
  1. for und id angleichen

    Der Wert in for und die id des select müssen genau übereinstimmen. Groß- und Kleinschreibung zählen mit.

    KorrekturvergleichSchritt 1 · HTML

    Vorher

    <label for="Standort">Standort</label>
    <select id="standort-feld" name="standort">
      <option value="berlin">Berlin</option>
    </select>

    Nachher

    <label for="standort-feld">Standort</label>
    <select id="standort-feld" name="standort">
      <option value="berlin">Berlin</option>
    </select>

    Markierte Zeilen wurden geändert

    So prüfen Sie es Klicken Sie auf das Wort „Standort“. Öffnet sich das Auswahlfeld, passen for und id zusammen.

  2. Den zweiten Namen entfernen

    aria-label überschreibt das sichtbare label. Weicht der Text ab, scheitert die Bedienung per Sprachbefehl an der abweichenden Ansage.

    KorrekturvergleichSchritt 2 · HTML

    Vorher

    <label for="standort-feld">Standort</label>
    <select id="standort-feld" name="standort" aria-label="Filiale">
      <option value="berlin">Berlin</option>
    </select>

    Nachher

    <label for="standort-feld">Standort</label>
    <select id="standort-feld" name="standort">
      <option value="berlin">Berlin</option>
    </select>

    Markierte Zeilen wurden geändert

    So prüfen Sie es Ein Vorleseprogramm sagt „Standort“, genau wie der Text über dem Feld.

Werbung

Kostenloser Website-Barrierefreiheits-Check

Website auf Barrierefreiheit prüfen.

Technische WCAG-Warnsignale erkennen. Kritische Stellen zuerst prüfen.

Der Website-Check ist bereit.

Werbung

Ein letzter Schritt

Prüfen, bevor Sie gehen.

Finden Sie automatisch erkennbare Barrieren auf Ihrer eigenen Website.

Website prüfen

Kostenlos starten · keine Installation

Automatisches Screening. Tastaturbedienung und Screenreader bleiben manuelle Prüfung.