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

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.

Actieve link in het menu met onzichtbare indicator

Actieve link in het menu met onzichtbare indicator

Je bent op de pagina “Over ons”. In het menu is die link anders dan de rest. Een subtiele onderstreping. Lichtblauw. #8AB4F8.

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