Typ iets om te zoeken...

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.

Zelf verder met dit onderwerp

Related Posts

Invoerveld zonder zichtbare rand

Invoerveld zonder zichtbare rand

Een wit invoerveld op een witte achtergrond. Met een lichtgrijze rand. Heel lichtgrijs. #D9D9D9.

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.

URL als linktekst

URL als linktekst

“h-t-t-p-s colon slash slash w-w-w dot example dot com slash rapport dash twee-duizend-vierentwintig dot p-d-f”