ToegankeliJk Logo ToegankeliJk Contact Ons
Contact Ons
Persoon luistert met koptelefoon naar computer, schermlezer in gebruik
Intermediate niveau

ARIA-labels en schermlezer-compatibiliteit

Hoe je aria-label, aria-labelledby en aria-describedby correct gebruikt om interactieve componenten voor schermlezers duidelijk te maken.

10 min April 2026

Waarom ARIA-labels essentieel zijn

Schermlezers zijn onmisbaar voor veel gebruikers. Ze lezen webpagina’s hardop en helpen blinden en slechtzienden het internet te gebruiken. Maar ze kunnen alleen voiceover geven aan wat ze kunnen “zien” — en dat is precies waar ARIA-labels in het spel komen.

Een schermlezer kan een knop zien, maar niet altijd begrijpen wat die knop doet. Vooral niet als je een pictogram hebt zonder tekst. ARIA — Accessible Rich Internet Applications — biedt een manier om die informatie toe te voegen. Het’s niet ingewikkelder dan je misschien denkt.

Wat je in dit artikel leert

  • Het verschil tussen aria-label, aria-labelledby en aria-describedby
  • Wanneer je welk attribuut moet gebruiken
  • Praktische voorbeelden met code
  • Veelgemaakte fouten en hoe je die vermijdt
  • Testen of je ARIA correct werkt

aria-label: het eenvoudigste label

aria-label is de simpelste manier om een label toe te voegen. Je voegt het direct toe aan het element waar het voor bedoeld is. Het’s ideaal voor elementen zonder zichtbare tekst, zoals iconknoppen.

<button aria-label="Menu sluiten"><i class="fas fa-times"></i></button>

Een schermlezer zal hier zeggen: “Menu sluiten, knop” in plaats van gewoon “knop” zonder context. Het verschil is enorm voor gebruikers. Je gebruikt aria-label vooral voor:

  • Knoppen met alleen pictogrammen
  • Icoontjes die een actie triggeren
  • Zoekvelden zonder zichtbaar label
  • Navigatiebalken met pictogrammen

Het enige voorbehoud: aria-label overschrijft zichtbare tekst volledig. Als je een knop hebt met zichtbare tekst, gebruik dan aria-label niet. De zichtbare tekst is al het label.

Close-up van code-editor met aria-label attribuut gemarkeerd in JavaScript-bestand
Developer aan het werk bij bureau, twee monitoren met accessibility-testing tools open

aria-labelledby: verbinden met bestaande labels

aria-labelledby werkt anders dan aria-label. In plaats van nieuwe tekst toe te voegen, verwijst het naar een ander element op de pagina. Dit is handig wanneer je al een zichtbaar label hebt en dat label ook voor schermlezers beschikbaar moet zijn.

<h2 id="contactForm">Neem contact op</h2>
<form aria-labelledby="contactForm">...</form>

Nu weet een schermlezer dat dit formulier “Neem contact op” heet. Je linked eigenlijk de heading aan het formulier. Het’s als zeggen: “Hé schermlezer, zie je die heading hierboven? Dat’s het label van dit formulier.”

Dit werkt ook voor elementen met meerdere labels. Je kunt zelfs twee id’s gebruiken: aria-labelledby=”id1 id2″. De schermlezer zal beide teksten achter elkaar voordragen. Handig voor complexe formulieren.

aria-describedby: extra informatie voor complexe elementen

aria-describedby voegt extra beschrijvende informatie toe aan een element. Het’s anders dan aria-label en aria-labelledby. Die twee geven het element een naam. aria-describedby geeft aanvullende details.

<input type="password" aria-describedby="pwd-hint">
<p id="pwd-hint">Minimaal 8 karakters, inclusief cijfers</p>

Praktisch voorbeeld: je hebt een wachtwoordveld. De gebruiker weet dat het een wachtwoord is (dat’s het label). Maar wat zijn de eisen? Daar is aria-describedby voor. Na het label voordragen, zegt de schermlezer ook de beschrijving.

Je kan aria-describedby combineren met aria-label of aria-labelledby. Dus je kan zeggen: “Dit element heet X (label) en hier’s extra info Y (beschrijving)”. Beide worden voorgedragen, in die volgorde.

Praktijktip: Gebruik aria-describedby voor foutmeldingen, wachtwoordvereisten, helpteksten, en aanvullende instructies. Niet voor kernlabels — daarvoor zijn aria-label en aria-labelledby.
Formulier op scherm met aria-describedby attribuut verbonden aan helptekst onder invoerveld

Stap voor stap: implementatie checklist

Het implementeren van ARIA-labels is een proces. Volg deze stappen om het goed te doen:

1

Identificeer elementen zonder labels

Loop je site door en zoek elementen waar de betekenis niet duidelijk is voor schermlezers. Pictogramknoppen, zoekvelden, dynamische content. Dit zijn kandidaten voor ARIA.

2

Kies het juiste attribuut

Heb je al zichtbare tekst die je kan gebruiken? Dan aria-labelledby. Alleen pictogram? aria-label. Aanvullende details? aria-describedby. Denk logisch na.

3

Schrijf duidelijke, beknopte tekst

ARIA-labels moeten kort zijn. “Menu openen” is beter dan “Klik hier om het navigatiemenu in of uit te schakelen”. Schermlezers lezen alles op, dus hou het beperkt.

4

Test met een schermlezer

Download NVDA (gratis, Windows) of gebruik de ingebouwde schermlezers van je OS. Luister naar hoe je site klinkt. Is het duidelijk? Verbeter het tot dat het intuïtief is.

5

Documenteer je ARIA-labels

Noteer welke ARIA-labels je waar hebt gebruikt en waarom. Dit helpt toekomstige developers (en jezelf) om het systeem te begrijpen en consistent uit te breiden.

Veelgemaakte fouten en hoe je ze vermijdt

Aria-label gebruiken als er al zichtbare tekst is

Fout: <button aria-label=”Opslaan”>Save</button>

Goed: <button>Opslaan</button>

Zichtbare tekst is altijd het label. ARIA overschrijft het, dus je krijgt verwarring. Gebruikers horen het Nederlands ARIA-label maar zien Engelse tekst.

Aria-labelledby gebruiken zonder id op het gerefereerde element

Fout: <h2>Mijn heading</h2><form aria-labelledby=”heading”>

Goed: <h2 id=”heading”>Mijn heading</h2><form aria-labelledby=”heading”>

Aria-labelledby wijst naar een id. Zonder id werkt het niet. Je schermlezer vindt niks en het element blijft ongelabeld.

Te lange ARIA-labels

Fout: aria-label=”Klik hier om het dropdown-menu uit te klappen en alle beschikbare opties te zien”

Goed: aria-label=”Menu openen”

Schermlezers lezen alles. Lange labels zijn vermoeiend. Hou het kort en actiegericht.

Aria-describedby gebruiken voor het label zelf

Fout: <input aria-describedby=”name-label”><label id=”name-label”>Naam</label>

Goed: <input aria-labelledby=”name-label”><label id=”name-label”>Naam</label>

Aria-describedby is voor extra info, niet voor het primaire label. Dat’s wat aria-labelledby is voor.

Tools om je ARIA te testen

Wil je controleren of je ARIA-labels correct werken? Gebruik deze tools:

NVDA (gratis)

Gratis schermlezer voor Windows. Download, installeer, en luister naar je site. Het voordragen van ARIA-labels klinkt duidelijk.

macOS VoiceOver (ingebouwd)

Macs hebben VoiceOver al ingebouwd. Zet het aan in Instellingen Toegankelijkheid. Ideaal voor snel testen.

Axe DevTools

Browser-extensie die je pagina scant op ARIA-problemen. Geeft concrete suggesties voor verbetering. Snel en effectief.

WAVE (WebAIM)

Visueel overzicht van je accessibility-issues. Laat zien waar ARIA-labels ontbreken of fout zijn. Gratis online tool.

Samenvatting: ARIA-labels zijn het verschil

ARIA-labels lijken ingewikkeld, maar zijn het niet. aria-label voegt een naam toe. aria-labelledby verwijst naar bestaande tekst. aria-describedby voegt details toe. Dat’s het kernidee.

Wat je onthouden moet: niet alle gebruikers zien je interface. Veel gebruikers luisteren ernaar. Als je ARIA-labels toevoegt, zorg je ervoor dat de audio-ervaring net zo duidelijk is als de visuele ervaring. Dat’s echte inclusief ontwerp.

Start vandaag. Identificeer drie elementen zonder duidelijke labels. Voeg ARIA toe. Test met een schermlezer. Je zal merken hoe groot het verschil is.

Disclaimer

Dit artikel is informatief van aard en gebaseerd op WCAG 2.1 AA-richtlijnen en best practices voor webtoegankelijkheid. De voorbeelden en richtlijnen zijn bedoeld als educatief materiaal. Hoewel we ernaar streven accurate informatie te verstrekken, kunnen omstandigheden variëren en kunnen wettelijke vereisten per land verschillen. Voor specifieke compliance-vragen raadpleeg je altijd een toegankelijkheidsexpert of juridisch adviseur. De inhoud is niet bedoeld als juridisch advies.

Marieke van den Berg, Senior Expert Webtoegankelijkheid

Marieke van den Berg

Senior Expert Webtoegankelijkheid

Senior expert webtoegankelijkheid met 14+ jaar ervaring in WCAG 2.1 implementatie en inclusief ontwerp voor Nederlandse organisaties.