Wcag uitgelegd

Knop met icoon en tekst, maar aria-label vervangt alles

Knop met icoon en tekst, maar aria-label vervangt alles — WCAG 2.5.3 Label in naam (post 3/7)

Een knop. Disketje-icoon. Daarnaast: “Opslaan.”

De developer dacht: laat ik een uitgebreider aria-label toevoegen. “Sla het huidige document op naar de server.”

Het resultaat: de zichtbare tekst “Opslaan” is niet meer onderdeel van de toegankelijke naam. Spraakbesturing: “Klik op Opslaan.” Geen match.

<!-- Niet doen: aria-label vervangt de zichtbare tekst -->
<button aria-label="Sla het huidige document op naar de server">
  <svg aria-hidden="true"><!-- disketje --></svg>
  Opslaan
</button>

<!-- Wel doen: geen aria-label nodig -->
<button>
  <svg aria-hidden="true"><!-- disketje --></svg>
  Opslaan
</button>

De gouden regel: als je knop al zichtbare tekst heeft, heb je geen aria-label nodig.

Een aria-label overschrijft alles. De zichtbare tekst, de alt-tekst van afbeeldingen erin, alles. Zodra je een aria-label toevoegt, is dat de enige naam die schermlezers en spraakbesturing gebruiken.

Wanneer heb je wél een aria-label nodig? Alleen als het element geen zichtbare tekst heeft. Een knop met alleen een icoon. Een link met alleen een afbeelding. Dan is aria-label de juiste oplossing.

Related Posts

"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.”

Afbeelding als link zonder beschrijvend alt

Afbeelding als link zonder beschrijvend alt

Een winkelwagen-icoon. Klik erop en je gaat naar je winkelwagen. Logisch.

Custom dropdown die niet met toetsen werkt

Custom dropdown die niet met toetsen werkt

Een prachtig gestylede dropdown. Hover erop: de opties verschijnen. Klik op een optie: geselecteerd.