De 50 WCAG 2.1 AA-criteria, in klare taal
WCAG 2.1 AA is de technische standaard achter de European Accessibility Act (EN 301 549) en bestaat uit 50 succescriteria. Geautomatiseerde checks testen er 3 volledig en 27 gedeeltelijk; 20 criteria vragen menselijke beoordeling — elk Wexlo-rapport benoemt dit per criterium. Hieronder de volledige lijst, met voor alles wat een machine niet volledig kan beoordelen een controle in klare taal.
- Geautomatiseerd — de rule-engine test dit criterium volledig
- Deels geautomatiseerd — regels vangen een deel; een mens controleert de rest
- Menselijke controle — hiervoor bestaat geen betrouwbare geautomatiseerde test
1. Waarneembaar
| Criterium | Geautomatiseerd | Deels geautomatiseerd | Menselijke controle |
|---|
| 1.1.1 niet-tekstuele contentNiveau AControleer of elke betekenisvolle afbeelding een alt-tekst heeft die het doel overbrengt, en of decoratieve afbeeldingen een lege alt-tekst hebben — de AI-laag markeert duidelijk zwakke alt-tekst, maar een mens bevestigt of die bij de afbeelding past. | —Nee | ✓Ja | —Nee |
|---|
| 1.2.1 louter audio en louter video (vooraf opgenomen)Niveau AControleer of louter-audio- en louter-video-content een tekstalternatief heeft dat hetzelfde verhaal vertelt — de scan somt de gevonden media per pagina op en of er een transcript-link in de buurt staat, maar een mens bevestigt of het alternatief gelijkwaardig is. | —Nee | ✓Ja | —Nee |
|---|
| 1.2.2 ondertitels (vooraf opgenomen)Niveau AControleer of ondertitels kloppen en synchroon lopen — de automatische check ziet alleen óf er een HTML5-ondertitelspoor is; de media-inventaris somt ook ingesloten video's (YouTube/Vimeo) op zodat je elke op ondertiteling kunt controleren. | —Nee | ✓Ja | —Nee |
|---|
| 1.2.3 audiodescriptie of media-alternatief (vooraf opgenomen)Niveau AControleer of vooraf opgenomen video audiodescriptie of een media-alternatief heeft voor informatie die alleen in beeld te zien is. | —Nee | —Nee | ✓Ja |
|---|
| 1.2.4 ondertitels (live)Niveau AAControleer of live video met spraak ondertiteld wordt. | —Nee | —Nee | ✓Ja |
|---|
| 1.2.5 audiodescriptie (vooraf opgenomen)Niveau AAControleer of vooraf opgenomen video audiodescriptie heeft waar beeld informatie draagt die niet in het geluid zit. | —Nee | —Nee | ✓Ja |
|---|
| 1.3.1 info en relatiesNiveau AControleer of visuele structuur (koppen, lijsten, tabellen, formuliergroepen) ook in de opmaakcode zit — de automatische check vangt alleen specifieke patronen. | —Nee | ✓Ja | —Nee |
|---|
| 1.3.2 betekenisvolle volgordeNiveau AControleer of de leesvolgorde logisch blijft zonder opmaak, bijvoorbeeld met een screenreader of een gelineariseerde weergave. | —Nee | —Nee | ✓Ja |
|---|
| 1.3.3 zintuiglijke eigenschappenNiveau AControleer of instructies nooit alleen op vorm, grootte, positie, kleur of geluid leunen ("klik op de ronde knop rechts") — de AI-laag doet een eerste zeef over de paginatekst en een mens bevestigt de gemarkeerde gevallen. | —Nee | ✓Ja | —Nee |
|---|
| 1.3.4 weergavestandNiveau AAControleer of de site in zowel staande als liggende weergavestand werkt — de automatische check vangt alleen harde vergrendelingen (CSS die content in één stand verbergt, of een script dat de stand vastzet); subtiel lay-outverlies vraagt nog een mens. | —Nee | ✓Ja | —Nee |
|---|
| 1.3.5 doel van invoer bepalenNiveau AAControleer of velden die persoonsgegevens vragen het passende autocomplete-attribuut hebben — de automatische checks valideren de aanwezige attributen en markeren duidelijk persoonlijke velden (e-mail, telefoon, naam) die er geen hebben. | —Nee | ✓Ja | —Nee |
|---|
| 1.4.1 gebruik van kleurNiveau AControleer of kleur nergens de enige drager van informatie is (links, grafieken, foutmeldingen) — de automatische checks dekken links in lopende tekst en formuliervelden waarvan de foutmelding alleen een kleur-/randwijziging is; grafieken en afbeeldingen vragen nog een mens. | —Nee | ✓Ja | —Nee |
|---|
| 1.4.2 geluidsbedieningNiveau AControleer of automatisch startend geluid te pauzeren, stoppen of dempen is — de automatische check vangt alleen autoplay in de opmaak. | —Nee | ✓Ja | —Nee |
|---|
| 1.4.3 contrast (minimum)Niveau AA | ✓Ja | —Nee | —Nee |
|---|
| 1.4.4 tekst herschalenNiveau AAControleer of de pagina bruikbaar blijft op 200% browserzoom zonder verlies van content — de automatische checks signaleren opmaak die zoomen blokkeert en content die bij een 200%-zoomviewport afkapt of horizontaal scrollt. | —Nee | ✓Ja | —Nee |
|---|
| 1.4.5 afbeeldingen van tekstNiveau AAControleer of tekst echte tekst is en geen afbeelding van tekst, met uitzondering van logo's. | —Nee | —Nee | ✓Ja |
|---|
| 1.4.10 reflowNiveau AAControleer of content op 320 CSS-pixels zonder tweedimensionaal scrollen herschikt — de automatische Wexlo-check signaleert overloop maar kan terechte uitzonderingen zoals datatabellen of kaarten niet beoordelen. | —Nee | ✓Ja | —Nee |
|---|
| 1.4.11 contrast van niet-tekstuele contentNiveau AAControleer of interface-onderdelen en betekenisvolle graphics minstens 3:1 contrast hebben met aangrenzende kleuren. | —Nee | —Nee | ✓Ja |
|---|
| 1.4.12 tekstafstandNiveau AAControleer of er geen content of functionaliteit verloren gaat als gebruikers de tekstafstand vergroten — de automatische check detecteert alleen overloop na het toepassen van de afstandswaarden. | —Nee | ✓Ja | —Nee |
|---|
| 1.4.13 content bij hover of focusNiveau AAControleer of content die bij hover of focus verschijnt te sluiten is, zelf aanwijsbaar is en zichtbaar blijft tot je die sluit. | —Nee | —Nee | ✓Ja |
|---|
2. Bedienbaar
| Criterium | Geautomatiseerd | Deels geautomatiseerd | Menselijke controle |
|---|
| 2.1.1 toetsenbordNiveau AControleer of elke functie met alleen het toetsenbord werkt — de automatische checks dekken focusbare frames, scrollgebieden en een tab-rondgang, niet de volledige bediening. | —Nee | ✓Ja | —Nee |
|---|
| 2.1.2 geen toetsenbordvalNiveau AControleer of de toetsenbordfocus overal in én weer uit kan — de tab-rondgang van Wexlo signaleert duidelijke vallen; eigen widgets vragen nog een handmatige ronde. | —Nee | ✓Ja | —Nee |
|---|
| 2.1.4 sneltoetsen met lettertekensNiveau AControleer of sneltoetsen van één teken uit te zetten of aan te passen zijn, of alleen werken als het betreffende element focus heeft. | —Nee | —Nee | ✓Ja |
|---|
| 2.2.1 timing aanpasbaarNiveau AControleer of elke tijdslimiet uit te zetten, aan te passen of te verlengen is — de automatische check vangt alleen meta-refresh. | —Nee | ✓Ja | —Nee |
|---|
| 2.2.2 pauzeren, stoppen, verbergenNiveau AControleer of bewegende, knipperende of automatisch verversende content te pauzeren, stoppen of verbergen is — de automatische check vangt alleen verouderde blink/marquee-opmaak. | —Nee | ✓Ja | —Nee |
|---|
| 2.3.1 drie flitsen of onder drempelwaardeNiveau AControleer of niets vaker dan drie keer per seconde flitst. | —Nee | —Nee | ✓Ja |
|---|
| 2.4.1 blokken omzeilenNiveau AControleer of de skiplink of landmark-structuur toetsenbordgebruikers echt langs terugkerende blokken laat springen — de automatische check verifieert alleen dat het mechanisme bestaat. | —Nee | ✓Ja | —Nee |
|---|
| 2.4.2 paginatitelNiveau AControleer of elke paginatitel de pagina echt beschrijft — de automatische checks verifiëren dat er een titel is, markeren placeholder- en dubbele titels over pagina's heen, en de AI-laag markeert titels die niet-beschrijvend lezen. | —Nee | ✓Ja | —Nee |
|---|
| 2.4.3 focusvolgordeNiveau AControleer of tabben door elke pagina een logische volgorde volgt die de betekenis bewaart. | —Nee | —Nee | ✓Ja |
|---|
| 2.4.4 linkdoel (in context)Niveau AControleer of het doel van elke link duidelijk is uit de linktekst of de directe context — de automatische check verifieert dat links een toegankelijke naam hebben, en de AI-laag markeert vage linktekst ("klik hier", "lees meer"). | —Nee | ✓Ja | —Nee |
|---|
| 2.4.5 meerdere manierenNiveau AAControleer of er meer dan één manier is om een pagina te vinden — de automatische check telt een sitemap, een zoekfunctie en navigatie, en markeert sites met minder dan twee; controleer of de manieren echt werken. | —Nee | ✓Ja | —Nee |
|---|
| 2.4.6 koppen en labelsNiveau AAControleer of koppen en labels het onderwerp of doel beschrijven van wat volgt — de AI-laag markeert koppen die niet bij de tekst eronder passen en een mens bevestigt de gemarkeerde gevallen. | —Nee | ✓Ja | —Nee |
|---|
| 2.4.7 focus zichtbaarNiveau AAControleer of elk interactief element een duidelijk zichtbare focusindicator toont — de tab-rondgang signaleert meetbaar ontbrekende indicatoren; subtiele gevallen vragen nog een menselijke blik. | —Nee | ✓Ja | —Nee |
|---|
| 2.5.1 aanwijzergebarenNiveau AControleer of gebaren zoals vegen of knijpen een alternatief met één aanwijzer hebben (knoppen, tikken). | —Nee | —Nee | ✓Ja |
|---|
| 2.5.2 aanwijzerannuleringNiveau AControleer of aanwijzeracties pas bij loslaten uitvoeren, af te breken zijn of ongedaan te maken zijn. | —Nee | —Nee | ✓Ja |
|---|
| 2.5.3 label in naamNiveau AControleer of de toegankelijke naam van een bedieningselement de zichtbare tekst bevat (belangrijk voor spraakbesturing) — de automatische check markeert duidelijke afwijkingen; controleer bedieningselementen waarvan het zichtbare label een icoon of afbeelding is. | —Nee | ✓Ja | —Nee |
|---|
| 2.5.4 bewegingsactiveringNiveau AControleer of functies op basis van beweging (schudden, kantelen) uit te zetten zijn en een gewoon alternatief hebben. | —Nee | —Nee | ✓Ja |
|---|
3. Begrijpelijk
| Criterium | Geautomatiseerd | Deels geautomatiseerd | Menselijke controle |
|---|
| 3.1.1 taal van de paginaNiveau A | ✓Ja | —Nee | —Nee |
|---|
| 3.1.2 taal van onderdelenNiveau AAControleer of passages in een andere taal een eigen lang-attribuut hebben — de automatische checks valideren de aanwezige attributen en markeren tekstblokken die als een van Wexlo's vier talen lezen maar afwijken van de aangegeven paginataal en geen eigen lang hebben. | —Nee | ✓Ja | —Nee |
|---|
| 3.2.1 bij focusNiveau AControleer of alleen focussen op een element nooit een contextwijziging veroorzaakt, zoals navigatie of een pop-up. | —Nee | —Nee | ✓Ja |
|---|
| 3.2.2 bij invoerNiveau AControleer of het wijzigen van een formulierveld (optie kiezen, vakje aanvinken) nooit onverwacht de context verandert, tenzij dat vooraf gemeld wordt. | —Nee | —Nee | ✓Ja |
|---|
| 3.2.3 consistente navigatieNiveau AAControleer of navigatie overal op de site in dezelfde relatieve volgorde staat — de paginavergelijking van Wexlo dekt alleen de gescande pagina's. | —Nee | ✓Ja | —Nee |
|---|
| 3.2.4 consistente identificatieNiveau AAControleer of onderdelen met dezelfde functie overal consistent benoemd en vormgegeven zijn. | —Nee | —Nee | ✓Ja |
|---|
| 3.3.1 foutidentificatieNiveau AControleer of elke invoerfout in tekst bij het veld beschreven wordt — de formuliercheck van Wexlo activeert alleen client-side validatie en kan server-side flows missen. | —Nee | ✓Ja | —Nee |
|---|
| 3.3.2 labels of instructiesNiveau AControleer of elk veld een zichtbaar label of instructie heeft die zegt wat je moet invullen — de automatische check vangt alleen specifieke labelpatronen. | —Nee | ✓Ja | —Nee |
|---|
| 3.3.3 foutsuggestieNiveau AAControleer of foutmeldingen een oplossing aanreiken als die bekend is (verwacht formaat, voorbeeldwaarde). | —Nee | —Nee | ✓Ja |
|---|
| 3.3.4 foutpreventie (wettelijk, financieel, gegevens)Niveau AAControleer of juridische of financiële invoer vóór definitieve verzending te controleren, corrigeren of terug te draaien is. | —Nee | —Nee | ✓Ja |
|---|
4. Robuust
| Criterium | Geautomatiseerd | Deels geautomatiseerd | Menselijke controle |
|---|
| 4.1.1 parsenNiveau AGeen actie nodig: voor HTML geldt dit criterium volgens de W3C-errata bij WCAG 2.1 als vervuld. | —Nee | —Nee | ✓Ja |
|---|
| 4.1.2 naam, rol, waardeNiveau A | ✓Ja | —Nee | —Nee |
|---|
| 4.1.3 statusberichtenNiveau AAControleer of statusupdates (toegevoegd aan winkelwagen, opgeslagen, filterresultaten) via een live region aan screenreaders gemeld worden. | —Nee | —Nee | ✓Ja |
|---|
Zien waar jouw site staat? Draai een gratis scan van één pagina.