Offerte audit
Typ iets om te zoeken...

Wcag uitgelegd

Toggle-knop zonder status

Toggle-knop zonder status — WCAG 4.1.2 Naam, rol, waarde (post 9/12)

Een knop: “Donkere modus.” Je klikt. De achtergrond wordt donker. Visueel is het duidelijk: donkere modus is aan.

Een schermlezer zegt: “Donkere modus, knop.” Je klikt. De schermlezer zegt: “Donkere modus, knop.” Niets veranderd. Is het aan of uit? Geen idee.

Het probleem: de knop heeft geen status. Er is geen aria-pressed dat aangeeft of de knop is ingedrukt.

<!-- Niet doen: toggle zonder status -->
<button class="toggle active">Donkere modus</button>

<!-- Wel doen: aria-pressed geeft de status door -->
<button aria-pressed="true">Donkere modus</button>

Een schermlezer leest nu: “Donkere modus, ingedrukt, knop.” Bij het uitschakelen: “Donkere modus, niet ingedrukt, knop.”

Hetzelfde geldt voor zelfgemaakte checkboxen:

<!-- Niet doen: checkbox zonder status -->
<div role="checkbox" tabindex="0">Onthoud mij</div>

<!-- Wel doen: aria-checked geeft de status door -->
<div role="checkbox" tabindex="0" aria-checked="false">Onthoud mij</div>

En vergeet niet: de waarde moet meeveranderen bij interactie. aria-pressed="true" bij klikken wijzigen naar aria-pressed="false". Anders is de status statisch en dus fout.

Zelf verder met dit onderwerp

Related Posts

aria-expandd (met twee d's)

aria-expandd (met twee d's)

Een menuknop. aria-expanded om aan te geven of het menu open is. Maar de developer typte aria-expandd. Met twee d’s.

aria-label op een div: wordt genegeerd

aria-label op een div: wordt genegeerd

Een developer wil een sectie een naam geven voor schermlezers. Plakt aria-label="Zoekresultaten" op een <div>.

Heading in een button: onzichtbaar voor schermlezers

Heading in een button: onzichtbaar voor schermlezers

Een kaart op je website. De titel is een <h3>. De hele kaart is klikbaar. Dus de developer wikkelt de <h3> in een <button>.