Standaardreferentie · bijgewerkt 2 september 2026

WCAG 2.2 AA, zonder het proza van de standaard

EN 301 549 wijst voor webcontent naar WCAG 2.2 niveau AA, dus dit is de lijst waarlangs uw klant wordt gelegd. Hier staat wat er is veranderd, wat een scanner ziet, en waar een mens met een toetsenbord moet gaan zitten.

Gepubliceerd
W3C-aanbeveling, oktober 2023
Nieuwe criteria
Negen erbij, zes op A of AA
Vervallen
4.1.1 Parsing, achterhaald
Automatisering
Ziet ruwweg een kwart tot een derde

Wat niveau AA werkelijk betekent

WCAG kent drie niveaus. A is de bodem, AA is het niveau waarvan Europese aanbestedingen en EN 301 549 uitgaan, en AAA is een streven dat niemand over een hele website hoeft te halen. Vraagt een aanbesteding om “WCAG 2.2 AA”, dan betekent dat elk A- en AA-succescriterium, op elke pagina binnen de reikwijdte, in elke toestand die een gebruiker kan bereiken.

Succescriteria zijn toetsbare uitspraken, geen technieken. “Contrast (minimum)” zegt niet welk token u moet wijzigen; het zegt welke gemeten verhouding een stuk tekst moet halen. Dat onderscheid telt in een audit: een bevinding is verdedigbaar wanneer zij het criterium, het element en de meting noemt, niet wanneer zij een gereedschap noemt.

Een website slaagt of zakt niet als geheel. Conformiteit wordt per pagina geclaimd, en één niet-conform element op een pagina haalt de claim voor die pagina onderuit. Daarom wint doorlopende bewaking het van een eenmalige audit: een thema-update kan de claim voor honderd pagina’s tegelijk ongedaan maken.

De negen criteria die WCAG 2.2 toevoegde

Zes ervan staan op A of AA en vallen dus binnen de reikwijdte van een EN 301 549-beoordeling. De laatste kolom zegt of een scanner het kan beoordelen of dat een mens dat moet doen.

Succescriteria die WCAG 2.2 toevoegde, hun niveau en hoe elk wordt getoetst
SCNaamNiveauHoe het wordt getoetst
2.4.11Focus niet afgedekt (minimum)AAhandmatig
2.4.12Focus niet afgedekt (uitgebreid)AAAhandmatig
2.4.13Verschijning van de focusAAAhandmatig
2.5.7SleepbewegingenAAhandmatig
2.5.8Doelgrootte (minimum)AAgeautomatiseerd
3.2.6Consistente hulpAhandmatig
3.3.7Overbodige invoerAhandmatig
3.3.8Toegankelijke authenticatie (minimum)AAdeels geautomatiseerd
3.3.9Toegankelijke authenticatie (uitgebreid)AAAhandmatig

Wat de scanner controleert, regel voor regel

Elke geautomatiseerde regel draagt beide verwijzingen, zodat één bevinding voor de ontwikkelaar leest als een WCAG-succescriterium en voor de beoordelaar als een artikel uit EN 301 549. Dit zijn de regels in de publieke koppeltabel; de catalogus in het product is groter en wordt centraal onderhouden.74 rules seeded
Ingeladen geautomatiseerde regels met hun WCAG-succescriteria, artikelen uit EN 301 549 en gebruikelijke impact
RegelWhat it detectsWCAGEN 301 549Gebruikelijke impact
accesskeysTwee elementen claimen dezelfde sneltoets2.1.19.2.1.1serious
area-altGebied in een afbeeldingskaart zonder alternatieve tekst1.1.1, 2.4.4, 4.1.29.1.1.1, 9.2.4.4, 9.4.1.2critical
aria-allowed-attrARIA-attribuut niet toegestaan bij deze rol4.1.29.4.1.2critical
aria-command-nameAangepaste knop, link of menu-item zonder naam4.1.29.4.1.2serious
aria-hidden-bodyVolledig document verborgen voor hulptechnologie4.1.29.4.1.2critical
aria-hidden-focusFocusbaar element verborgen voor hulptechnologie1.3.1, 4.1.29.1.3.1, 9.4.1.2serious
aria-input-field-nameAangepast invoerveld zonder toegankelijke naam4.1.29.4.1.2serious
aria-meter-nameMeter zonder toegankelijke naam1.1.19.1.1.1serious
aria-progressbar-nameVoortgangsindicator zonder toegankelijke naam1.1.19.1.1.1serious
aria-required-attrARIA-rol mist een vereist attribuut4.1.29.4.1.2critical
aria-required-childrenSamengestelde rol zonder de vereiste onderliggende rollen1.3.19.1.3.1critical
aria-required-parentARIA-rol buiten de vereiste container geplaatst1.3.19.1.3.1critical
aria-rolesRolwaarde is geen erkende ARIA-rol4.1.29.4.1.2critical
aria-toggle-field-nameSelectievakje, keuzerondje of schakelaar zonder toegankelijke naam4.1.29.4.1.2serious
aria-tooltip-nameTooltiprol zonder tekst4.1.29.4.1.2serious
aria-valid-attrAttribuutnaam is geen geldig ARIA-attribuut4.1.29.4.1.2critical
aria-valid-attr-valueARIA-attribuut verwijst naar een waarde die niet bestaat4.1.29.4.1.2critical
audio-captionAudio zonder ondertitel- of transcriptiespoor1.2.19.1.2.1critical
autocomplete-validautocomplete-waarde niet herkend1.3.59.1.3.5serious
avoid-inline-spacingTekstafstand vastgezet door een inline stijl1.4.129.1.4.12serious
blinkKnipperende inhoud die niet te stoppen is2.2.29.2.2.2serious
button-nameKnop zonder toegankelijke naam4.1.29.4.1.2critical
bypassGeen manier om de herhaalde navigatie over te slaan2.4.19.2.4.1serious
color-contrastTekstcontrast onder de vereiste verhouding1.4.39.1.4.3serious
css-orientation-lockInhoud vastgezet op één schermoriëntatie1.3.49.1.3.4serious
definition-listDefinitielijst opgebouwd uit verkeerde onderliggende elementen1.3.19.1.3.1serious
dlitemDefinitieterm of -omschrijving buiten een lijst1.3.19.1.3.1serious
document-titlePagina heeft geen titel2.4.29.2.4.2serious
duplicate-id-activeDubbel id op een interactief element4.1.19.4.1.1serious
empty-headingKop zonder tekst1.3.19.1.3.1minor
empty-table-headerTabelkopcel zonder tekst1.3.19.1.3.1minor
focus-order-semanticsFocusbaar element zonder interactieve rol2.4.39.2.4.3minor
form-field-multiple-labelsVeld gekoppeld aan meer dan één label3.3.29.3.3.2moderate
frame-titleFrame zonder titel2.4.1, 4.1.29.2.4.1, 9.4.1.2serious
heading-orderKopniveau overgeslagen1.3.19.1.3.1moderate
html-has-langPaginataal niet opgegeven3.1.19.3.1.1serious
html-lang-validTaalcode van de pagina is niet geldig3.1.19.3.1.1serious
html-xml-lang-mismatchlang en xml:lang komen niet overeen3.1.19.3.1.1moderate
identical-links-same-purposeLinks met dezelfde tekst leiden naar iets anders2.4.99.2.4.9minor
image-altAfbeelding zonder tekstalternatief1.1.19.1.1.1critical
input-button-nameInvoerknop zonder waarde of label4.1.29.4.1.2critical
input-image-altAfbeeldingsknop zonder alternatieve tekst1.1.1, 4.1.29.1.1.1, 9.4.1.2critical
labelFormulierveld zonder programmatisch label1.3.1, 4.1.29.1.3.1, 9.4.1.2critical
landmark-banner-is-top-levelBanner-landmark genest in een ander gebied1.3.19.1.3.1moderate
landmark-complementary-is-top-levelComplementary-landmark genest in een ander gebied1.3.19.1.3.1moderate
landmark-no-duplicate-mainMeer dan één main-landmark op de pagina1.3.19.1.3.1moderate
landmark-one-mainPagina heeft geen enkel main-landmark1.3.1, 2.4.19.1.3.1, 9.2.4.1moderate
landmark-uniqueTwee landmarks delen een rol en een naam1.3.19.1.3.1moderate
link-nameLink zonder waarneembare tekst2.4.4, 4.1.29.2.4.4, 9.4.1.2serious
listLijst bevat elementen die geen lijstitems zijn1.3.19.1.3.1moderate
listitemLijstitem buiten een lijst1.3.19.1.3.1serious
marqueeSchuivende marquee-inhoud2.2.29.2.2.2serious
meta-viewportZoomen uitgeschakeld door de viewport-metatag1.4.49.1.4.4serious
nested-interactiveInteractief element genest in een ander4.1.29.4.1.2serious
no-autoplay-audioAudio start vanzelf en duurt langer dan drie seconden1.4.29.1.4.2moderate
object-altIngesloten object zonder tekstalternatief1.1.19.1.1.1serious
p-as-headingAlinea opgemaakt om op een kop te lijken1.3.19.1.3.1serious
page-has-heading-onePagina heeft geen kop van niveau één1.3.19.1.3.1moderate
presentation-role-conflictPresentatierol tenietgedaan door andere opmaak4.1.29.4.1.2minor
regionInhoud staat buiten elk landmark1.3.19.1.3.1moderate
role-img-altElement met rol img heeft geen alternatieve tekst1.1.19.1.1.1serious
scrollable-region-focusableScrollbaar gebied is niet met het toetsenbord te bereiken2.1.19.2.1.1serious
select-nameKeuzelijst zonder toegankelijke naam1.3.1, 4.1.29.1.3.1, 9.4.1.2critical
server-side-image-mapServer-side afbeeldingskaart in gebruik2.1.19.2.1.1minor
summary-nameSamenvatting van een uitklapelement zonder naam4.1.29.4.1.2serious
svg-img-altBetekenisvolle SVG zonder tekstalternatief1.1.19.1.1.1serious
tabindexPositieve tabindex doorbreekt de natuurlijke focusvolgorde2.4.39.2.4.3serious
table-fake-captionTabeltitel opgemaakt als bijschrift in plaats van als zodanig gemarkeerd1.3.19.1.3.1serious
target-sizeAanraakdoel kleiner dan 24 bij 24 pixels2.5.89.2.5.8moderate
td-has-headerDatacel in een grote tabel heeft geen koptekst1.3.19.1.3.1serious
td-headers-attrDatacel niet gekoppeld aan een koptekst1.3.19.1.3.1serious
th-has-data-cellsTabelkop zonder gekoppelde datacellen1.3.19.1.3.1serious
valid-langTaal van een passage is geen geldige code3.1.29.3.1.2serious
video-captionVideo zonder ondertitelspoor1.2.29.1.2.2critical

Wat automatisering wel en niet ziet

Bij elke score in Conforma staat dezelfde zin, want het getal is maar een deel van het beeld. Geautomatiseerde regels zijn uitstekend in meetbare eigenschappen en blind voor bedoeling.

25–33%
van de werkelijke drempels wordt door geautomatiseerde regels alleen gevonden, op een gangbare marketingwebsite
12
handmatige criteria in onze kernchecklist: toetsenbord, focusvolgorde, gang van de schermlezer, alternatieven voor slepen
0
afgegeven certificaten. Wij leveren metingen en bewijs; de verklaring blijft bij de beheerder

Geautomatiseerd testen dekt slechts een deel van de toegankelijkheidsbelemmeringen. Voor een volledige beoordeling is handmatige verificatie noodzakelijk.

Hoe Conforma WCAG 2.2 AA toetst

  • Geautomatiseerde regels lopen op elke pagina van een scan, en elke overtreding wordt weggeschreven als bevinding met de regel, de selector, het HTML-fragment en een schermafbeelding van het element op zijn plek.
  • Elke bevinding draagt beide verwijzingen: het WCAG-succescriterium en het artikel uit EN 301 549, zodat een rapport voor een ontwikkelaar en voor een inkoopbeoordelaar hetzelfde leest.
  • Bevindingen krijgen een vingerafdruk uit regel, selector en pad. Een herstel dat na een deploy terugkomt, wordt gemeld als regressie in plaats van stilletjes als nieuw werk geteld.
  • De handmatige checklist dekt wat regels niet kunnen beoordelen, met videobewijs, de gebruikte hulptechnologie en een tester met naam, en wordt verzegeld in hetzelfde bewijspakket als de geautomatiseerde uitvoering.

Vragen die wij hierover krijgen

Is WCAG 2.2 AA hetzelfde als voldoen aan de toegankelijkheidswet?

Nee. De European Accessibility Act is de wet, EN 301 549 is de geharmoniseerde norm waarmee dat wordt aangetoond, en EN 301 549 verwijst voor webcontent naar WCAG 2.2 niveau AA. AA halen is de technische grondslag voor een verklaring, geen certificaat.

Moeten wij nu van 2.1 naar 2.2?

Voor alles wat nieuw is: ja, dat is het veilige antwoord. WCAG 2.2 is achterwaarts compatibel: content die aan 2.2 voldoet, voldoet ook aan 2.1, dus toetsen tegen de nieuwere versie kost niets en dekt beide.

Betekent een perfecte geautomatiseerde score dat de website conform is?

Het betekent dat er op de gescande pagina’s geen geautomatiseerde overtreding is aangetroffen. Toetsenbordbediening, focusvolgorde en de gang van de schermlezer vragen nog altijd een mens voordat er iets wordt beweerd.

Zie de criteria tegen uw eigen pagina’s

Eén domein, tien pagina’s, geen account. U krijgt de gekoppelde bevindingen en een samenvatting van twee pagina’s dezelfde dag.