edubun
Nederlands

Formulierlabels

Een tekstvak naast het woord ‘E-mail’ heeft pas een label als het label-element eraan gekoppeld is; tot dan zegt een schermlezer mogelijk alleen ‘tekst bewerken’.

Elk veld heeft een naam nodig

Als de focus op een formulierveld komt, kondigt een schermlezer het label, type en de toestand aan: ‘E-mail, tekst bewerken, verplicht’. Het label komt van een label-element dat aan het veld gekoppeld is. Koppelen kan op twee manieren. Geef de invoer een id en het label een bijbehorende for, of plaats de invoer binnen het label. In beide gevallen verplaatst klikken op de labeltekst ook de focus naar het veld, waardoor kleine selectievakjes en keuzerondjes veel gemakkelijker te raken zijn.

<label for="email">Email</label>
<input id="email" type="email" autocomplete="email">

<label>
  <input type="checkbox" name="news"> Send me the weekly menu
</label>
Twee manieren om een veld te labelen: for en id of omhullen.

WCAG 2.2-succescriterium 3.3.2 Labels of instructies, niveau A, vraagt labels of instructies wanneer inhoud gebruikersinvoer nodig heeft. 1.3.1 Info en relaties vraagt dat de koppeling tussen label en veld in de code bestaat, niet alleen op het scherm. Een alinea die toevallig boven een invoerveld staat, is alleen visueel dichtbij; niets vertelt hulptechnologie dat beide bij elkaar horen.

Placeholders zijn geen labels

Het attribuut placeholder toont grijze hinttekst in een leeg veld. Het is verleidelijk dit als label te gebruiken en veel aanmeldformulieren doen dat. Het probleem is dat de tekst verdwijnt zodra je typt, zodat je niet meer kunt controleren waarvoor het veld was. Ook is die meestal te bleek voor de contrastregels uit het vorige hoofdstuk. Gebruik een zichtbaar label en desgewenst daarnaast een placeholder met een voorbeeldwaarde.

Groepen, doel en fouten

Keuzerondjes en bijbehorende selectievakjes hebben ook een groepslabel nodig. Omhul ze met een fieldset en zet de vraag in de legend, zodat een schermlezer ‘Grootte, groep’ zegt vóór ‘Klein, keuzerondje, 1 van 3’. Voor persoonsgegevens vertelt het attribuut autocomplete de browser waarvoor een veld dient, met namen uit de HTML-standaard zoals name, email, tel, new-password en one-time-code. Criterium 1.3.5 Identificeer het doel van de input, niveau AA, vraagt precies dit: zo kunnen browsers velden invullen en sommige hulpmiddelen herkenbare pictogrammen ernaast tonen.

Zeg in woorden wat er misgaat. Criterium 3.3.1 Foutidentificatie vraagt dat een invoerfout in tekst wordt aangeduid en beschreven, niet alleen met een rode rand. WCAG 2.2 voegde ook 3.3.7 Overbodige invoer toe: informatie die iemand al binnen hetzelfde proces invulde, moet opnieuw worden ingevuld of ter selectie aangeboden, in plaats van tweemaal te worden getypt. En 3.3.8 Toegankelijke authenticatie (minimum), niveau AA, zegt dat inloggen niet van onthouden of overschrijven mag afhangen tenzij hulp beschikbaar is. Wachtwoordmanagers laten invullen en plakken toestaan tellen beide als die hulp.

Zeg vóór het begin wat nodig is

Instructies horen vóór de beschreven velden, niet in een foutmelding nadat iemand is vastgelopen. Moet een wachtwoord minstens 15 tekens bevatten, zeg dat dan bij het label. Markeer verplichte velden in de labeltekst, bijvoorbeeld met ‘verplicht’, en voeg het attribuut required toe zodat de browser dit ook aankondigt. Verschijnt een foutmelding, houd die bij het veld en koppel beide met aria-describedby dat naar het id van de melding verwijst. De schermlezer leest de melding dan bij focus op het veld. Verplaats ten slotte de focus naar het eerste probleemveld of naar een foutenoverzicht bovenaan, zodat een toetsenbordgebruiker niet onderaan een lang formulier blijft zonder te weten wat er gebeurde.

label for="x"Koppelt het label aan het veld met id="x"
WCAG 3.3.2Labels of instructies (A)
WCAG 1.3.5Identificeer het doel van de input (AA): autocomplete
fieldset + legendGroepslabel voor keuzerondjes en selectievakjes
WCAG 3.3.7Overbodige invoer (A), nieuw in 2.2
WCAG 3.3.8Toegankelijke authenticatie (minimum), AA: sta plakken en wachtwoordmanagers toe
Belangrijkste punten
  • Koppel elk veld aan een label met for en id of door omhullen.
  • Een placeholder verdwijnt en is vaak te bleek; het is geen label.
  • Groepeer keuzerondjes met fieldset en legend; gebruik autocomplete voor persoonsgegevens.
  • Beschrijf fouten in tekst; laat mensen niet opnieuw typen of onthouden om in te loggen.
  1. Welk labelattribuut verwijst naar het id van de invoer?
  2. Waarom volstaat een placeholder niet als label?
    • Hij verdwijnt als je typt en is vaak te bleek
    • Browsers negeren hem
    • Hij is niet toegestaan in HTML
    • Hij werkt alleen op telefoons
  3. Wat gebeurt er nog meer als een label aan een selectievakje is gekoppeld?
    • Klikken op de labeltekst vinkt het vakje aan
    • Het vakje wordt groter
    • Het formulier wordt verstuurd
    • Verder niets
  4. Welke elementen geven een groep keuzerondjes haar vraag?
    • fieldset en legend
    • div en span
    • form en button
    • ul en li
  5. Welke autocomplete-waarde hoort bij een e-mailveld?
  6. Welk criterium vraagt persoonsgegevensvelden hun doel te identificeren?
    • 1.3.5 Identificeer het doel van de input
    • 1.1.1 Niet-tekstuele content
    • 2.4.7 Focus zichtbaar
    • 1.4.1 Gebruik van kleur
  7. Een fout wordt alleen met een rode rand getoond. Wat ontbreekt?
    • Een tekstbeschrijving van de fout
    • Feller rood
    • Een geluid
    • Een grotere rand
  8. Een inlogformulier blokkeert plakken in het wachtwoordveld. Welk WCAG 2.2-criterium werkt dat tegen?
    • 3.3.8 Toegankelijke authenticatie (minimum)
    • 2.4.6 Koppen en labels
    • 1.4.3 Contrast (minimum)
    • 2.5.8 Grootte van het aanwijsgebied
  9. Een afrekenproces vraagt in de volgende stap opnieuw het bezorgadres. Welk criterium helpt?
    • 3.3.7 Overbodige invoer
    • 2.1.1 Toetsenbord
    • 1.3.1 Info en relaties
    • 2.4.3 Focusvolgorde
  10. Welk veld heeft een correct gekoppeld label?
    • Stad

Bronnen van deze cursus (8)
  • W3C, Web Content Accessibility Guidelines (WCAG) 2.2, W3C Recommendation first published 5 October 2023, current edition 12 December 2024 (w3.org/TR/WCAG22/, checked 2026-10-17)
  • W3C WAI, What's new in WCAG 2.2 (w3.org/WAI/standards-guidelines/wcag/new-in-22/, checked 2026-10-17)
  • W3C WAI, Images tutorial and alt decision tree (w3.org/WAI/tutorials/images/decision-tree/, checked 2026-10-17)
  • W3C, Using ARIA (w3.org/TR/using-aria/, Discontinued Draft 24 February 2026, rules 1 to 4, checked 2026-10-17)
  • W3C WAI-ARIA Authoring Practices Guide, Read Me First, "No ARIA is better than bad ARIA" (w3.org/WAI/ARIA/apg/practices/read-me-first/, checked 2026-10-17)
  • MDN Web Docs, tabindex (developer.mozilla.org/en-US/docs/Web/HTML/Reference/Global_attributes/tabindex, checked 2026-10-17)
  • MDN, Heading elements, accessibility notes (developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/Heading_Elements, checked 2026-10-17)
  • MDN, autocomplete attribute (developer.mozilla.org/en-US/docs/Web/HTML/Reference/Attributes/autocomplete, checked 2026-10-17).

Geraadpleegd: 2026-10-17