Wcag uitgelegd

CSS voegt tekst toe die niet in de naam zit

CSS voegt tekst toe die niet in de naam zit — WCAG 2.5.3 Label in naam (post 6/7)

Een knop. In de HTML staat “Verwijderen.” Maar de CSS voegt via ::after het woord “definitief” toe.

De gebruiker ziet: “Verwijderen definitief.” De toegankelijke naam: “Verwijderen.” Spraakbesturing: “Klik op Verwijderen definitief.” Geen match.

/* Problematisch: CSS voegt zichtbare tekst toe */
.knop-verwijderen::after {
  content: " definitief";
}
<!-- De gebruiker ziet "Verwijderen definitief" -->
<!-- De toegankelijke naam is alleen "Verwijderen" -->
<button class="knop-verwijderen">Verwijderen</button>

<!-- Beter: alle tekst in de HTML -->
<button>Verwijderen definitief</button>

Waarom is dit een probleem?

CSS-gegenereerde content (::before en ::after) wordt niet altijd meegenomen in de berekening van de toegankelijke naam. Het gedrag verschilt per browser en schermlezer. Je kunt er niet op vertrouwen.

De vuistregel: tekst die informatie geeft, hoort in de HTML. CSS is voor styling, niet voor content.

Decoratieve tekens via CSS (een pijltje, een bullet) zijn prima. Maar woorden die de betekenis veranderen? Die horen in de HTML.

Related Posts

Carrousel die alleen met klikken werkt

Carrousel die alleen met klikken werkt

Pijltje links. Pijltje rechts. Klikken om door de slides te bladeren.

Accordion-paneel op de verkeerde plek in de focusvolgorde

Accordion-paneel op de verkeerde plek in de focusvolgorde

Een accordion met drie secties. Je opent Sectie 1. Er verschijnt een link in het paneel.

Zichtbaar "Submit", aria-label "Verzenden"

Zichtbaar "Submit", aria-label "Verzenden"

Een Nederlandstalige website. Een knop. Op het scherm staat “Submit.” Het aria-label zegt “Verzenden.”