Wellenbrecher

Waarom een captcha een toegankelijkheidsprobleem is

Twee beweringen doen de ronde: WCAG zou captchas verbieden, en daarom zou er een golf sommaties lopen. Geen van beide klopt. Een plaatjescaptcha blijft toch het zwakste antwoord op het probleem dat het moet oplossen.

Twee zinnen staan in bijna elke gids over dit onderwerp. Ten eerste: WCAG verbiedt captchas. Ten tweede: daarom loopt er een golf sommaties. De eerste zin sneuvelt op de tekst van de succescriteria, de tweede op de zoektocht naar gedocumenteerde zaken.

Vervelend daaraan is dat een verkeerd argument een goede zaak schaadt. Een plaatjescaptcha voor een contactformulier is het zwakste antwoord dat er is op het probleem dat het moet oplossen. Daarvoor hoef je geen verbod te verzinnen.

Wat er werkelijk in WCAG over captchas staat

WCAG 2.2 is sinds 12 december 2024 de geldende versie en heeft de status W3C Recommendation. Captchas komen er op twee plekken in voor, en die twee plekken worden voortdurend door elkaar gehaald.

1.1.1 vraagt om een alternatief, niet om een verbod

Succescriterium 1.1.1 Non-text Content staat op niveau A. Voor captchas vraagt het om "text alternatives that identify and describe the purpose of the non-text content" en daarnaast om "alternative forms of CAPTCHA using output modes for different types of sensory perception". Dus: een tekstalternatief dat zegt waarvoor het element er staat, en minstens een tweede captchavorm via een ander zintuiglijk kanaal.

Een captcha die alleen uit een plaatje bestaat, zonder alternatief, schendt 1.1.1. Dat is het punt dat bij een contactformulier speelt, en het is het enige. Hoe ver de uitzondering reikt maakt het W3C zelf duidelijk: "WCAG still requires that alternative text identify the graphical object as a CAPTCHA."

3.3.8 gaat over inloggen, niet over je contactformulier

Criterium 3.3.8 Accessible Authentication (Minimum) is nieuw op niveau AA in WCAG 2.2. De openingszin: "A cognitive function test (such as remembering a password or solving a puzzle) is not required for any step in an authentication process unless that step provides at least one of the following." Twee woorden bepalen de reikwijdte, namelijk "authentication process". Een captcha voor een contact-, reactie- of nieuwsbriefformulier zonder inloggen valt er niet onder. Daar geldt alleen 1.1.1.

En zelfs binnen een inlogproces zegt het W3C-Understanding-document bij 3.3.8 het tegenovergestelde van wat velen eruit halen: "While recognizing objects, or a picture the user has previously provided, are cognitive function tests, these are excepted in this criterion at AA level." Een "selecteer alle afbeeldingen met stoplichten" zakt dus niet voor 3.3.8 op niveau AA. Wie het tegendeel beweert, heeft het criterium niet gelezen.

Grenzeloos is de uitzondering niet: rekensommen vallen eruit zodra de test verder gaat dan herkennen. En op niveau AAA kantelt het oordeel, omdat criterium 3.3.9 Accessible Authentication (Enhanced) alleen de uitzonderingen Alternative en Mechanism overhoudt.

Kort gezegd: een plaatjescaptcha voor je contactformulier heeft een probleem met 1.1.1, niet met 3.3.8. Die twee criteria door elkaar halen is de meest gemaakte fout in stukken over dit onderwerp.

Waarom het audioalternatief het gat niet dicht

Het voor de hand liggende antwoord op 1.1.1 is de luidsprekerknop naast het plaatje. Waarom die niet volstaat, legt het W3C-stuk "Inaccessibility of CAPTCHA" uit, sinds 16 december 2021 een Group Draft Note en dus een concept zonder normatieve werking.

Geluid heeft geen tegenhanger van het stilstaande beeld: wie luistert kan de opgave niet rustig bekijken. Het onderzoek dat in het stuk wordt aangehaald vond audiocaptchas onverstaanbaar voor alle vier de testpersonen, die allemaal goed hoorden. De vervorming die machines moet tegenhouden vernietigt de verstaanbaarheid. Daarnaast sluit audio dove mensen uit, en wie tegelijk slecht ziet en slecht hoort valt helemaal buiten de boot.

Normatief komt daarbij dat een audioalternatief dat uitgetypt moet worden volgens het Understanding-document bij 3.3.8 niet aan de uitzondering Alternative voldoet. En het toegankelijke kanaal is tegelijk het zwakste beveiligingskanaal: het W3C-stuk noemt onderzoek van de Universiteit van Maryland dat de audio-reCAPTCHA van Google voor ongeveer 90 procent oploste met de spraakherkenning van Google zelf. De WebAIM Screen Reader User Survey #10 (1.539 antwoorden, december 2023 en januari 2024) zet captchas op plaats 1 van de meest problematische elementen, al 14 jaar onveranderd.

Wat de Europese toegankelijkheidswetgeving vraagt en wie zij raakt

Wat hierna komt is een duiding van de rechtstoestand op 21 augustus 2026 en geen juridisch advies. Wie voor het eigen geval zekerheid nodig heeft, legt het bij een advocaat neer.

De European Accessibility Act, richtlijn (EU) 2019/882, geldt in de hele Unie voor diensten die vanaf 28 juni 2025 aan consumenten worden geleverd. De omzetting is nationaal en pakt per lidstaat anders uit, dus de drempels en uitzonderingen zelf controleer je in de wet van je eigen land. Als voorbeeld dient hier de Duitse omzettingswet, het Barrierefreiheitsstärkungsgesetz (BFSG), omdat de formulering daarvan goed laat zien waar het gevoelige punt zit: § 2 nr. 26 BFSG omschrijft diensten in het elektronische handelsverkeer als digitale diensten die op individueel verzoek van een consument worden geleverd "met het oog op het sluiten van een consumentenovereenkomst". Dat laatste stuk draagt het gewicht. Een webshop voldoet eraan, een pure presentatiesite zonder contractsluiting niet. Zo staat het ook in de BFSG-FAQ van het Duitse federale bureau voor toegankelijkheid.

Daar komt § 3 lid 3 BFSG bij, dat micro-ondernemingen met dienstverlening uitzondert. Micro-onderneming is volgens § 2 nr. 17 BFSG wie minder dan tien mensen in dienst heeft en daarbij hoogstens 2 miljoen euro jaaromzet of hoogstens 2 miljoen euro balanstotaal per jaar haalt. De uitzondering geldt alleen voor diensten: § 1 lid 2 BFSG somt de gedekte producten uitputtend op en dat zijn hardwarecategorieën, zodat een WordPress-plugin die als download wordt verkocht geen product is in de zin van die wet. Hoe dat in de Nederlandse of Belgische omzetting is geregeld, is een andere vraag en die kijk je daar na.

Het captcha-aanknopingspunt staat in de Duitse uitvoeringsverordening. § 19 nr. 2 BFSGV verlangt dat bij diensten in het elektronische handelsverkeer de identificatie-, authenticatie-, beveiligings- en betaalfuncties waarneembaar, bedienbaar, begrijpelijk en robuust zijn. Een captcha is in die zin een beveiligingsfunctie, en § 12 nr. 2 letter g BFSGV vraagt aanvullend om een alternatieve weergave van niet-tekstuele inhoud.

De norm waar iedereen zich op beroept is voor de EAA niet geharmoniseerd

Op 21 augustus 2026 stond er voor de European Accessibility Act geen geharmoniseerde norm in het Publicatieblad van de Europese Unie. Het Duitse federale bureau voor toegankelijkheid schrijft uitdrukkelijk dat de normen die in normalisatieopdracht M/587 zijn voorzien nog niet bekend zijn gemaakt, dus op dat moment bestaat er geen vermoeden van overeenstemming, in Duitsland volgens § 4 BFSG. De veelgenoemde harmonisatie van EN 301 549 V3.2.1 via uitvoeringsbesluit (EU) 2021/1339 betreft de webrichtlijn (EU) 2016/2102 voor overheidsinstanties. Veel gidsen zetten die twee gelijk, en die tegenspraak is niet opgelost.

De BFSGV noemt EN 301 549 sowieso nergens: § 3 lid 1 daarvan verlangt de stand van de techniek. Terzijde: de gepubliceerde versie V3.2.1 van maart 2021 verwijst naar WCAG 2.1, dus criterium 3.3.8 is via die norm helemaal niet ingebonden.

Wat er aan boetes werkelijk te vinden is

Op de peildatum van het onderzoek, 21 augustus 2026, waren in Duitsland geen boete en geen door een rechter bevestigde sommatie te vinden die specifiek een niet-toegankelijke captcha tot onderwerp had. De bevoegde instantie daar is het markttoezicht van de deelstaten voor toegankelijkheid (MLBF) in Maagdenburg, in dienst sinds 26 september 2025, dat geen zaakaantallen publiceert. Het kader van § 37 lid 2 BFSG loopt voor websitebeheerders tot honderdduizend euro.

Wel aantoonbaar is via advocatenkantoren dat sinds de zomer van 2025 sommaties (Abmahnungen) op grond van het BFSG worden verstuurd; genoemd wordt CLAIM Rechtsanwalts GmbH uit Düsseldorf namens een particulier, met vorderingen rond 595 euro. Captcha-specifiek is daarvan niets, en of de BFSG-regels via § 3a UWG, de Duitse wet tegen oneerlijke concurrentie, überhaupt op die manier af te dwingen zijn, is door geen rechter beslist. Een vrijbrief volgt daar niet uit: een formulier waar een deel van je geïnteresseerden niet doorheen komt, kost aanvragen, met of zonder toezichthouder.

Waar de gegevens heen gaan als de captcha uit de cloud komt

Google LLC en Cloudflare, Inc. zitten in de Verenigde Staten. De rechtsgrond voor de doorgifte is het adequaatheidsbesluit over het EU-US Data Privacy Framework van 10 juli 2023. Het Gerecht van de Europese Unie heeft het beroep tot nietigverklaring op 3 september 2025 afgewezen (T-553/23, Latombe tegen Commissie), maar onherroepelijk is het besluit niet: sinds 31 oktober 2025 loopt hogere voorziening bij het Hof van Justitie (C-703/25 P). Beide aanbieders zijn slechts zelf gecertificeerd.

Bij Google is op 2 april 2026 iets wezenlijks veranderd: reCAPTCHA draait wereldwijd als verwerking in opdracht en de klant is volgens de Google-documentatie sindsdien "the sole data controller of Customer Data". Of daarmee de toestemmingsplicht vervalt, is open, want de toegang tot het apparaat van de bezoeker is nationaal geregeld en hangt niet af van de rol onder de AVG. In Duitsland doet § 25 TDDDG dat. Tot nu toe is er één beslissing die specifiek over reCAPTCHA gaat en die netjes aan te halen is, en die komt uit Oostenrijk: het Bundesverwaltungsgericht daar oordeelde op 13 september 2024 (W298 2274626-1/8E) dat reCAPTCHA zonder voorafgaande toestemming in strijd is met de AVG.

Cloudflare Turnstile ziet in de regel af van beeld- en audiopuzzels en noemt zichzelf in het eigen blog van 29 september 2023 "WCAG 2.1 Level AA compliant". In het bericht over het redesign van 27 februari 2026 komt het doel WCAG 2.2 AAA erbij. Dat zijn eigen verklaringen, en voor geen van beide aanbieders ligt er een onafhankelijk auditrapport. De praktische knoop zit sowieso bij de toestemmingsbanner: heeft de captcha toestemming nodig, dan komt wie die weigert niet door het formulier.

Vier methodes die niemand een opdracht geven

Het doel van een captcha is bots weren. Daarvoor geeft het elke bezoeker een opdracht om een klein deel eruit te filteren. Er zijn methodes die van niemand iets vragen: het W3C-stuk noemt honeypots, heuristieken en spamfilters.

Honeypot: een veld dat alleen machines zien

Het formulier krijgt een extra veld dat voor mensen onzichtbaar is. Een bezoeker vult het nooit in, een bot die blind elk veld invult wel. Is het bij het versturen niet leeg, dan is de zaak beslist. Op de uitvoering komt het aan: een veld dat alleen visueel wordt weggeschoven maar in de toegankelijkheidsboom blijft staan, wordt door de schermlezer voorgelezen en vangt dan precies de mensen die het niet mag vangen. Het hoort met aria-hidden gemarkeerd en buiten de tabvolgorde. De grens: wie het speciaal op jouw site gemunt heeft, laat het veld voortaan leeg. Tegen de gewone massabots werkt het betrouwbaar.

Tijdval: hoe lang het invullen duurde

Bij het uitleveren van het formulier gaat een ondertekend tijdstempel mee, en bij het versturen vergelijkt de server hoeveel tijd er voorbij is. Wie een formulier in minder dan twee seconden invult, heeft het niet gelezen. De drempel hoort laag te staan, want sommige bezoekers vullen met automatisch invullen in fracties van een seconde in. Een bot kan wachten, maar wachten verlaagt zijn doorvoer: de methode maakt de aanval duurder, niet onmogelijk.

Rate limit: hoeveel er uit dezelfde bron komt

De server telt de inzendingen uit dezelfde bron binnen een tijdvenster en weigert vanaf een drempel. Dat remt de enkele bron die een formulier honderd keer bestookt en helpt niets bij aanvallen die over veel adressen zijn verdeeld. Te krap mag de drempel niet staan, omdat in bedrijfsnetwerken en op mobiele netwerken veel mensen één adres delen.

Inhoudelijke beoordeling: wat er in het bericht staat

De vierde weg kijkt naar de tekst. Een Bayes-classificatie beoordeelt het bericht aan de hand van voorbeelden die eerder als spam of als gewenst zijn aangemerkt, en draait volledig op je eigen server. Ze pakt ook reclame die een mens met de hand heeft verstuurd, en ze heeft een foutmarge. Waarin een lokale controle verschilt van een cloudfilter, staat in het stuk over het Akismet-alternatief.

MethodeMoeite voor de bezoekerToegankelijkheidWaar gegevens heen gaanTegen massabotsTegen gerichte aanvallen
PlaatjescaptchaOpgave oplossen, volgens het W3C-stuk gemiddeld 32 secondenSchending van WCAG 1.1.1 zonder alternatief voor een ander zintuiglijk kanaalNaar de aanbieder, in de regel naar de Verenigde StatenWerkt zolang de opgave niet automatisch op te lossen isAudiokanaal in het aangehaalde onderzoek voor ongeveer 90 procent opgelost
Onzichtbare captcha uit de cloudMeestal geenEigen verklaring WCAG 2.1 AA, geen onafhankelijke auditNaar de aanbieder in de Verenigde Staten, toestemmingsvraag openWerktNiet aantoonbaar, de detectie is niet openbaar
Honeypot plus tijdvalGeenOnopvallend als het veld uit de toegankelijkheidsboom is gehaaldNergens heen, alles blijft op je eigen serverWerkt tegen bots die blind elk formulier invullenWordt door een op maat gemaakte bot omzeild
Lokale inhoudelijke controleGeenOnopvallend, de bezoeker merkt er niets vanNergens heen, alles blijft op je eigen serverWerkt, ook bij reclame met de hand verstuurdHangt aan de tekst, niet aan de afzender
Kort gezegd: een plaatjescaptcha inruilen voor een onzichtbare cloudcaptcha lost het toegankelijkheidsprobleem grotendeels op en levert er een toestemmingsvraag voor terug. Een lokale controle heeft geen van beide.

Wat er gebeurt als de controle ernaast zit

Elke methode die automatisch filtert, filtert een keer verkeerd, in de cloud net zo goed als lokaal. De vraag is dus niet of een echte aanvraag geraakt wordt, maar wat er daarna mee gebeurt. Wordt ze stilzwijgend weggegooid, dan merkt niemand iets: de geïnteresseerde wacht op antwoord, de beheerder ziet een rustige inbox. Spambescherming zonder inzichtelijke opslag is stil verlies van aanvragen.

Bruikbaar wordt het met drie dingen: weggefilterde berichten staan in een doorzoekbare lijst, bij elk bericht staat welke controle aansloeg, en een button geeft het alsnog vrij en speelt die uitkomst terug in de beoordeling. Ga je je formulier toch verbouwen, dan zit de veldkant van dit onderwerp in het stuk over Contact Form 7-alternatieven.

Spambescherming die niemand een opdracht geeft

Wellenbrecher controleert honeypot, tijdval, rate limit en de tekst van het bericht direct op je eigen installatie. Geen clouddienst, geen controlequotum, geen captcha voor je formulier.

Wellenbrecher bekijken

Wellenbrecher staat sinds 21 augustus 2026 in de WordPress-directory en is in de Free-versie ook zakelijk gratis te gebruiken. Pro kost 19 euro per jaar voor één website en voegt proof of work, WooCommerce-checkoutbescherming, GeoIP en ASN, vergelijking met AbuseIPDB en een AI-tweede mening met eigen sleutel toe. De vlootlicentie voor tien websites kost 69 euro. Prijzen exclusief btw, per 21 augustus 2026, overzicht op de prijspagina.

Veelgestelde vragen

Verbiedt WCAG captchas?

Nee. Succescriterium 1.1.1 Non-text Content vraagt op niveau A bij een captcha om een tekstalternatief dat het doel van het element beschrijft, en daarnaast om een captchavorm via een ander zintuiglijk kanaal. Een plaatjescaptcha zonder enig alternatief schendt dat. Een plaatjescaptcha met een bruikbaar alternatief schendt het niet.

Geldt criterium 3.3.8 ook voor een contactformulier zonder inloggen?

Nee. De openingszin van 3.3.8 gaat over stappen in een authenticatieproces. Een captcha voor een contact-, reactie- of nieuwsbriefformulier zonder inloggen valt daar niet onder, en daar geldt alleen 1.1.1. Binnen een inlogproces zijn plaatjescaptchas met enkel objectherkenning op niveau AA uitdrukkelijk uitgezonderd volgens het W3C-Understanding-document, terwijl ze dat op niveau AAA, in criterium 3.3.9, juist niet zijn.

Is een audioalternatief naast de plaatjescaptcha genoeg?

Het W3C-stuk over de ontoegankelijkheid van captchas zegt van niet. Geluid laat zich niet rustig bekijken zoals een stilstaand beeld, de vervorming die machines moet tegenhouden vernietigt de verstaanbaarheid, en dove en doofblinde mensen vallen helemaal buiten de boot. Het Understanding-document bij 3.3.8 houdt bovendien vast dat een audioalternatief dat uitgetypt moet worden niet aan de uitzondering Alternative voldoet.

Zijn er boetes of sommaties wegens ontoegankelijke captchas?

Op de peildatum 21 augustus 2026 waren in Duitsland geen boete en geen door een rechter bevestigde sommatie te vinden die specifiek een niet-toegankelijke captcha tot onderwerp had. Wel aantoonbaar zijn algemene BFSG-sommaties sinds de zomer van 2025 met vorderingen rond 595 euro, zonder captchaverband. Of BFSG-regels via § 3a UWG überhaupt af te dwingen zijn, is door geen rechter beslist. Een vrijbrief is dat niet.

Wat beschermt een formulier als er geen captcha voor staat?

Vier methodes die de bezoeker niets vragen: een honeypotveld dat alleen machines invullen, een tijdval dat te snelle inzendingen herkent, een rate limit tegen serie-inzendingen uit dezelfde bron en een inhoudelijke beoordeling van de tekst. Tegen de gewone massabots werkt die combinatie. Een aanval die precies op jouw site is toegesneden, omzeilt honeypot en tijdval.

Terug naar de blog Een bijdrage van hafenstudios