Typ iets om te zoeken...

Wcag uitgelegd

Heading in een button: onzichtbaar voor schermlezers

Heading in een button: onzichtbaar voor schermlezers — WCAG 4.1.2 Naam, rol, waarde (post 7/12)

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

<button>
  <h3>Bekijk details</h3>
</button>

Visueel: een klikbare kaart met een titel. Logisch.

Voor schermlezers: de heading is weg. Een <button> verwijdert de semantische rol van kindelementen. De <h3> is geen heading meer. Het is gewoon tekst in een knop.

Iemand die met een schermlezer van kop naar kop navigeert, slaat deze kaart over. De heading bestaat niet in de koppenstructuur.

<!-- Niet doen: heading in een button -->
<button>
  <h3>Bekijk details</h3>
</button>

<!-- Wel doen: platte tekst in de button -->
<button>Bekijk details</button>

<!-- Of: heading buiten de button -->
<h3>Bekijk details</h3>
<button>Meer informatie</button>

Hetzelfde geldt voor links in buttons:

<!-- Niet doen: link in een button is ongeldig HTML -->
<button>
  <a href="/details">Bekijk details</a>
</button>

<!-- Wel doen: kies één van de twee -->
<a href="/details">Bekijk details</a>

De regel: een button bevat platte tekst of decoratieve elementen. Geen headings, geen links, geen andere interactieve elementen.

Zelf verder met dit onderwerp

Related Posts

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.

Knop zonder naam

Knop zonder naam

“Knop.” Dat is wat een schermlezer zegt. Knop. Maar welke knop? Wat doet die?

Lege link

Lege link

“Link.” Dat is alles. Een schermlezer meldt een link. Maar niet waarheen. Niet waarom. Niet wat.