Wcag uitgelegd

SC 3.3.2 - Wat betekent “Labels en instructies”

WCAG 3.3.2 vraagt een duidelijk label of instructie bij elk invoerveld. Lees hoe je als webredacteur begrijpelijke formulieren maakt en zelf controleert.

Je opent een formulier met 5 velden. Geen labels, alleen grijze voorbeeldtekst die verdwijnt zodra je begint te typen. Halverwege weet je niet meer wat er in het eerste veld moest. Bij een paar velden staat een sterretje, maar nergens staat wat dat betekent. Daarom zegt WCAG: elk invoerveld heeft een label of instructie die duidelijk maakt wat er verwacht wordt.

Dit heet 3.3.2 Labels or Instructions.

Wat zegt het criterium?

WCAG succescriterium 3.3.2 vraagt dat bezoekers bij elk invoerveld kunnen zien wat ze moeten invullen. Dat kan met een label, zoals “E-mailadres”, en waar nodig met een instructie, zoals het formaat van een datum.

Als webredacteur maak je vaak zelf formulieren: een contactformulier, een aanmeldformulier of een nieuwsbriefinschrijving. De labels, de instructies en de uitleg bovenaan het formulier zijn gewoon content. Dit criterium is dus voor een groot deel jouw werk.

Waarom is dit belangrijk?

Een formulier is vaak het belangrijkste moment op je website: hier stelt iemand een vraag, meldt zich aan of doet een aanvraag. Gaat het invullen mis, dan haakt de bezoeker af of krijg jij een halve aanvraag binnen.

  • Schermlezergebruikers horen bij elk veld het label. Ontbreekt dat, dan horen ze alleen “invoerveld” en moeten ze gokken wat erin moet.
  • Mensen met een cognitieve beperking of weinig leeservaring raken de draad kwijt als voorbeeldtekst verdwijnt zodra ze typen.
  • Iedereen die even wordt afgeleid, weet zonder labels niet meer wat er in een half ingevuld formulier moest.

Wat verwacht het criterium?

Een zichtbaar label bij elk veld

Elk invoerveld heeft een label dat blijft staan, ook tijdens en na het typen. Grijze voorbeeldtekst ín het veld, een placeholder, telt niet als label: die verdwijnt zodra iemand begint te typen.

Een instructie bij een verplicht formaat

Verwacht een veld een specifiek formaat? Zet dat erbij, het liefst met een voorbeeld. Bijvoorbeeld bij een telefoonnummerveld: “Bijvoorbeeld: 06-12 34 56 78”.

Duidelijkheid over verplichte velden

Zijn niet alle velden verplicht? Geef dan bij elk veld aan of het verplicht is. Gebruik je daarvoor een sterretje? Leg dan bovenaan het formulier uit wat dat betekent: “Velden met een * zijn verplicht.”

Een groepslabel bij keuzerondjes en aankruisvakjes

Een groep keuzerondjes of aankruisvakjes heeft een vraag of kop nodig die bij de hele groep hoort. Bijvoorbeeld “Hoe wil je betalen?” boven de opties iDEAL en creditcard. Zonder die vraag zijn de losse opties niet te begrijpen.

Veelgemaakte fouten

  • Alleen een placeholder als label. De meest voorkomende fout, en een afkeur onder dit criterium. Een formulier met alleen placeholders oogt strak, maar de tekst verdwijnt zodra iemand typt en het contrast is vaak te laag. Technisch krijgt het veld er wel een naam van, want een placeholder is de laatste stap in de berekening van de toegankelijke naam. Voor 3.3.2 telt dat niet: het criterium vraagt om een aanwijzing die zichtbaar blijft.
  • Een label dat te ver van het veld staat. Als het label visueel niet duidelijk bij het veld hoort, weten bezoekers niet welk label bij welk veld hoort. Zet labels direct boven of naast het veld.
  • Geen instructie bij formaat-eisen. Een datumveld zonder uitleg: moet je 11-03-2026, 03/11/2026 of 11 maart 2026 typen? Een rekeningnummerveld: met of zonder spaties?
  • Uitleg die pas na een fout komt. Sommige formulieren geven pas uitleg als je een fout maakt: “Ongeldig telefoonnummer”. Maar welk formaat is dan wél geldig? Geef de instructie vooraf, niet achteraf.
  • Een groep opties zonder gezamenlijke vraag. Losse keuzerondjes met “Ja” en “Nee” zonder de vraag erboven zijn voor niemand te volgen.

Zo maak je een begrijpelijk formulier

  1. Geef elk veld een kort, concreet label. “E-mailadres”, “Voornaam”, “Vraag of opmerking”.
  2. Zet formaat-eisen vooraf bij het veld. Het liefst met een voorbeeld, zoals “datum als 11-03-2026”.
  3. Markeer verplichte velden en leg de markering uit. Of draai het om: is bijna alles verplicht, markeer dan alleen de optionele velden met “niet verplicht”.
  4. Geef groepen opties een duidelijke vraag als kop. Zo horen de losse keuzes ergens bij.
  5. Vraag alleen wat je echt nodig hebt. Hoe minder velden, hoe minder er mis kan gaan.
  6. Vul je eigen formulier in. Denk alle voorbeeldtekst in de velden weg: begrijp je dan nog steeds wat er overal moet staan?

Controleer je formulieren met WCAG Radar

Wil je weten hoe jouw formulieren ervoor staan? Gebruik onze gratis WCAG Radar. Je sleept de knop één keer naar je bladwijzerbalk en klikt hem daarna op elke pagina aan. De radar markeert direct de invoervelden zonder toegankelijke naam, dus velden waar voorleessoftware geen label bij kan vinden. Velden die hun naam alleen uit de placeholder halen krijgen een waarschuwing: de naam bestaat wel, maar hij is weg zodra iemand typt.

De radar vervangt geen volledige audit, maar helpt je de meest voorkomende fouten zelf op te sporen en op te lossen voordat je publiceert. Wil je een complete check door een specialist? Bekijk dan onze contentaudit of toegankelijkheidsaudit.

Veelgestelde vragen

Waarom is een placeholder niet genoeg als label?

Een placeholder verdwijnt zodra iemand begint te typen. Wie halverwege het formulier terugkijkt, ziet niet meer wat er in de eerdere velden moest. Daarnaast is het contrast van placeholdertekst vaak te laag.

Let op het verschil met de techniek. Een schermlezer leest de placeholder wel voor als naam van het veld, want dat is de laatste stap in de berekening van de toegankelijke naam. Onder 4.1.2 Naam, rol, waarde heeft het veld dus gewoon een naam. Onder 3.3.2 is het alsnog een afkeur, omdat de aanwijzing verdwijnt op het moment dat je hem nodig hebt. Gebruik een placeholder hooguit als extra voorbeeld naast een zichtbaar label.

Mijn formulieren komen uit een module in mijn CMS, wat kan ik zelf doen?

De teksten zijn van jou: de labels, de instructies, de uitleg bovenaan en de vraag boven een groep opties. Die maak je in de formulierenmodule zelf duidelijk. Of een label technisch goed aan het veld gekoppeld is, bepaalt de module. Twijfel je daaraan? Vraag het aan je webbouwer of controleer het met de radar.

Moet ik verplichte of juist optionele velden markeren?

Allebei mag, als het maar duidelijk en consistent is. Zijn de meeste velden optioneel? Markeer dan de verplichte velden. Is bijna alles verplicht? Dan is “niet verplicht” bij de paar optionele velden rustiger. Leg een sterretje altijd bovenaan het formulier uit.

Wat is het verschil met de andere WCAG-criteria over labels?

SC 3.3.2 gaat over de aanwezigheid: staat er bij elk veld een label of instructie? SC 1.3.1 gaat over de technische koppeling tussen label en veld, dat is werk voor je webbouwer. En SC 2.4.6 gaat over de kwaliteit van de labeltekst: is die duidelijk genoeg?

Samenvatting

WCAG-succescriterium 3.3.2 draait om duidelijkheid vooraf: bezoekers moeten bij elk veld weten wat ze moeten invullen, nog voordat ze iets typen. Als webredacteur heb je hier veel zelf in de hand.

De belangrijkste punten:

  • Elk invoerveld heeft een zichtbaar label dat blijft staan.
  • Een placeholder is geen label.
  • Vermeld formaat-eisen en verplichte velden vooraf, niet pas na een foutmelding.
  • Geef groepen keuzerondjes of aankruisvakjes een duidelijke vraag als kop.
  • Controleer je pagina’s met de WCAG Radar.

Wil je dat je hele redactie toegankelijk leert schrijven en publiceren? Bekijk dan onze training voor webredacties of vraag een contentaudit aan.

Related Posts

SC 2.4.6 - Wat betekent "Koppen en labels"

Je opent een pagina en de eerste kop is “Overzicht”. Overzicht van wat? Je scrollt naar beneden en ziet koppen als “Details”, “Meer informatie” en “Overig”. Geen enkele kop vertelt je wat er in die sectie staat. Je moet alles lezen om te begrijpen waar de pagina over gaat.

SC 3.3.7 - Wat betekent "Redundante invoer"

Je bent bezig met een online bestelling. In stap 1 vul je je naam en adres in. In stap 2 vraagt het formulier opnieuw om je naam. In stap 3 moet je je adres nog een keer invullen voor de facturatie. Je hebt dezelfde informatie drie keer getypt.

SC 3.3.4 - Wat betekent "Foutpreventie (juridisch, financieel, data)"

Je bestelt een vliegticket online. Je typt per ongeluk Amsterdam in plaats van Rotterdam als bestemming. Je klikt op “Bevestigen” en de boeking is definitief. Geen bevestigingsscherm, geen mogelijkheid om terug te gaan, geen “Weet je het zeker?”. Het ticket is gekocht, en annuleren kost je geld.