Wcag uitgelegd

aria-labelledby verwijst naar de verkeerde tekst

aria-labelledby verwijst naar de verkeerde tekst — WCAG 2.5.3 Label in naam (post 2/7)

Een invoerveld. Zichtbaar label: “E-mailadres.” Maar aria-labelledby verwijst naar een verborgen element met: “Voer uw elektronische postadres in.”

Een schermlezer leest: “Voer uw elektronische postadres in.” De gebruiker ziet: “E-mailadres.” Spraakbesturing: “Klik op E-mailadres.” Geen match.

<!-- Niet doen: aria-labelledby verwijst naar andere tekst -->
<span id="verborgen-label">Voer uw elektronische postadres in</span>
<label>E-mailadres</label>
<input type="email" aria-labelledby="verborgen-label">

<!-- Wel doen: label en toegankelijke naam komen overeen -->
<label for="email">E-mailadres</label>
<input type="email" id="email">

Waarom doet iemand dit?

Soms om een “betere beschrijving” te bieden voor schermlezers. Goed bedoeld. Maar het resultaat is dat de zichtbare tekst en de toegankelijke naam niet meer overeenkomen.

De simpelste oplossing: gebruik gewoon <label for="">. Geen aria-labelledby. Geen verborgen teksten. Het zichtbare label is de toegankelijke naam. Klaar.

Related Posts

Alle pagina's hebben dezelfde titel

Alle pagina's hebben dezelfde titel

Vijf tabbladen open. Allemaal van dezelfde website. Allemaal met dezelfde titel: “Gemeente Utrecht.”

"Klik op Zoeken." Niets gebeurt.

"Klik op Zoeken." Niets gebeurt.

Je gebruikt spraakbesturing. Je ziet een knop met “Zoeken” erop. Je zegt: “Klik op Zoeken.”

Knop die navigeert, link die een actie uitvoert

Knop die navigeert, link die een actie uitvoert

“Contact, knop.” Je drukt op Enter. Een nieuwe pagina opent. Maar het was een knop. Knoppen voeren acties uit. Ze navigeren niet.