Elk jaar laat de Amerikaanse non-profitorganisatie WebAIM een automatische toegankelijkheidscontrole los op de homepages van de één miljoen meest bezochte websites. De resultaten zijn opvallend stabiel: telkens weer komen dezelfde zes problemen bovendrijven, en samen zijn ze goed voor het overgrote deel van alles wat de controle vindt. Geen enkel van die problemen is moeilijk op te lossen, en een aantal ervan ontstaat niet in de code maar in het beheersysteem van je website, bij de mensen die de pagina's schrijven. Hieronder vind je ze één voor één, in gewone taal: wat het is, wie erop vastloopt, hoe je het zelf opmerkt en wat je eraan doet.
Wat één miljoen homepages ons vertellen
In de WebAIM Million 2026, de analyse van februari 2026, had 95,9% van de homepages minstens één opspoorbare fout tegen WCAG, de internationale richtlijnen voor toegankelijke websites. In de editie van 2025 was dat nog 94,8%. Gemiddeld vond de controle 56,1 fouten per homepage, tegenover 51 een jaar eerder.
Volgens WebAIM valt ongeveer 96% van alle gevonden fouten in amper zes categorieën. Zo vaak kwam elk van die problemen in 2026 voor, als aandeel van alle homepages:
- Tekst met te weinig contrast: 83,9%
- Afbeeldingen zonder alternatieve tekst: 53,1%
- Formuliervelden zonder label: 51%
- Lege links: 46,3%
- Lege knoppen: 30,6%
- Geen paginataal ingesteld: 13,5%
Tekst die moeilijk leesbaar is
Wat het is. Tekst die te weinig afsteekt tegen de achtergrond. Lichtgrijs op wit, wit op lichtgeel, dunne letters over een foto. Het verschil tussen de kleur van de tekst en die van de achtergrond druk je uit als _contrastverhouding_: een getal van 1:1 (geen verschil) tot 21:1 (zwart op wit). De richtlijnen vragen minstens 4,5:1 voor gewone tekst en 3:1 voor grote tekst, dat is ruwweg vanaf 24px, of vanaf ongeveer 19px in vet.
Wie er last van heeft. Mensen die slechtziend of kleurenblind zijn, en veel oudere bezoekers, want met de jaren heb je meer contrast nodig. Maar ook iedereen die op een zonnig terras op zijn gsm je openingsuren opzoekt: bleekgrijze tekst valt daar gewoon weg.
Hoe je het zelf opmerkt. Zet de helderheid van je scherm op het laagste niveau, of bekijk je site op je gsm in het daglicht. Moet je dichterbij komen of je ogen samenknijpen om iets te lezen, dan is het contrast te laag. Let extra op de footer, onderschriften en tekst over foto's.
Hoe je het oplost. Maak de tekst donkerder of de achtergrond lichter. Op een witte achtergrond haalt middelgrijs #999999 maar ongeveer 2,8:1, terwijl het iets donkerdere #767676 net 4,5:1 haalt.
/* Voor: te licht op wit */
.note {
color: #999999;
}
/* Na: voldoende voor gewone tekst */
.note {
color: #595959;
}In de meeste sitebouwers pas je tekstkleuren aan in de thema- of stijlinstellingen, zonder dat je aan code hoeft te komen.
Afbeeldingen zonder beschrijving
Wat het is. _Alt-tekst_ (kort voor alternatieve tekst) is een korte geschreven beschrijving die aan een afbeelding hangt. Bezoekers zien ze normaal niet, maar software leest ze voor. Ontbreekt ze, dan heeft die software niets te zeggen over de afbeelding.
Wie er last van heeft. Blinde mensen gebruiken vaak een _schermlezer_: software die voorleest wat er op het scherm staat. Bij een afbeelding zonder alt-tekst leest die soms de bestandsnaam voor, zoals "IMG underscore 4032 punt jpg", of slaat ze de afbeelding gewoon over. Stond op die banner "Maandag gesloten", dan gaat die boodschap verloren.
Hoe je het zelf opmerkt. Open de instellingen van de afbeelding in je contentbeheersysteem (CMS) en zoek een veld als "Alternatieve tekst", "Alt-tekst" of "Beschrijving". Is dat leeg bij een afbeelding die iets betekent, dan zit daar het probleem.
Hoe je het oplost. Beschrijf waarvoor de afbeelding dient, niet alleen wat erop staat. Hou het kort, meestal één zin.
- Slecht: "afbeelding", "foto1.jpg" of "bakkerij, brood, Gent, beste bakker, vers brood"
- Goed: "Bakker haalt verse desembroden uit een houtoven"
- Voor een logo dat naar de homepage linkt: "Bakkerij Janssens, home"
Puur decoratieve afbeeldingen, zoals een achtergrondpatroon of een scheidingslijn, krijgen een _lege_ alt-tekst, zodat schermlezers ze overslaan. Veel CMS'en hebben daarvoor een optie "decoratieve afbeelding".
Formuliervelden zonder label
Wat het is. Elk veld in een formulier heeft een zichtbare naam nodig, zoals "E-mailadres", die in de code van de pagina aan het veld gekoppeld is. Een veelgebruikte shortcut is de hint als grijze voorbeeldtekst in het veld zelf zetten. Die verdwijnt zodra je begint te typen en is vaak niet goed gekoppeld.
Wie er last van heeft. Een schermlezergebruiker in een contactformulier met drie lege vakken hoort misschien drie keer "bewerkbare tekst, leeg", zonder te weten welk vak voor de naam, het e-mailadres of het bericht is. Wie zijn computer met spraak bedient, kan niet "klik e-mail" zeggen als het veld geen naam heeft.
Hoe je het zelf opmerkt. Klik op de labeltekst naast een veld. Springt de cursor in het veld, dan zijn ze gekoppeld. Gebeurt er niets, of staat er buiten het veld helemaal geen label, dan moet het aangepast worden.
Hoe je het oplost. Geef elk veld een zichtbaar label en koppel het aan het veld. In code ziet dat er zo uit:
<!-- Voor: alleen voorbeeldtekst --> <input type="email" placeholder="E-mail" /> <!-- Na: een label dat aan het veld gekoppeld is --> <label for="email">E-mailadres</label> <input type="email" id="email" />
De for op het label en de id op het veld hebben dezelfde waarde, en dat koppelt ze aan elkaar. De meeste formulierbouwers doen dat automatisch, zolang je de labelinstelling invult en het label niet verbergt.
Links en knoppen die niets zeggen
In beide gevallen heeft iets waarop je kunt klikken geen tekst die software kan voorlezen.
Lege links
Wat het is. Een link die alleen een icoon bevat, of een afbeelding zonder alt-tekst, en dus geen naam heeft. Socialemedia-iconen en logo's die naar de homepage linken zijn de klassieke voorbeelden.
Wie er last van heeft. Schermlezergebruikers kunnen een lijst van alle links op een pagina opvragen om hun weg te vinden. Lege links verschijnen daarin als gewoon "link", of als een lang webadres dat letter per letter wordt voorgelezen. Wie je Instagrampagina zoekt, moet raden.
Hoe je het zelf opmerkt. Zoek links die alleen uit een icoon of een afbeelding bestaan: socialemedia-iconen, een logo, een pijltje. Kijk dan in je CMS of elk daarvan een tekst of alt-tekst heeft die zegt waar de link naartoe gaat.
Hoe je het oplost. Geef het icoon of de afbeelding een tekstalternatief dat de bestemming noemt: "Instagram", "Facebook", "Bakkerij Janssens, home".
Lege knoppen
Wat het is. Hetzelfde, maar dan voor knoppen: een knop met alleen een icoon, zoals een vergrootglas om te zoeken, drie streepjes voor het menu, een kruisje om een pop-up te sluiten of pijltjes bij een fotoslider.
Wie er last van heeft. Een schermlezergebruiker op een gsm die op de menuknop belandt, hoort alleen "knop". Opent die het menu, start die een zoekopdracht of sluit die iets? Wie het niet weet, raakt misschien nooit verder dan je homepage.
Hoe je het zelf opmerkt. Elke knop die alleen een icoon toont, heeft een naam nodig.
Hoe je het oplost. Voeg een korte tekst toe die schermlezers voorlezen, maar die niets aan het uitzicht verandert:
<button> <svg>...</svg> <span class="visually-hidden">Zoeken</span> </button>
De klasse visually-hidden is een veelgebruikt hulpmiddel dat tekst op het scherm verbergt maar beschikbaar houdt voor schermlezers. Veel thema's hebben er al een. In een sitebouwer zoek je in de knopinstellingen naar een veld als "label" of "toegankelijke naam".
Een pagina die haar taal niet vermeldt
Wat het is. Elke pagina hoort in haar code te vermelden in welke taal ze geschreven is. Dat is één instelling, meestal in de site-instellingen of in het thema.
Wie er last van heeft. Een schermlezer kiest op basis van die instelling zijn stem en uitspraak. Staat een Nederlandstalige pagina als Engels ingesteld, of helemaal niet, dan wordt de tekst met Engelse uitspraak voorgelezen en is ze nauwelijks te volgen. Voor meertalige sites, in België heel gewoon, is dat extra belangrijk: elke taalversie moet haar eigen taal vermelden.
Hoe je het zelf opmerkt. Open je pagina, bekijk de paginacode (Ctrl+U in de meeste browsers op Windows, Cmd+Option+U op een Mac) en kijk naar een van de eerste regels. Daar zou zoiets moeten staan:
<html lang="nl"></html>
Hier staat nl voor Nederlands. Frans is fr, Duits de en Engels en. Ontbreekt het stukje lang of staat er de verkeerde taal, pas dan de taal van je site aan in je CMS of vraag je ontwikkelaar om het te corrigeren.
Schrijftips voor wie content beheert
Een aantal van deze problemen ontstaat elke dag in het CMS, bij mensen die nooit code aanraken. Met een paar gewoontes voorkom je de meeste.
- Schrijf linkteksten die op zichzelf kloppen. "Lees meer" en "klik hier" zeggen niets als ze in een lijst van links worden voorgelezen. Schrijf liever "Lees meer over onze openingsuren" of "Download de prijslijst 2026 (pdf, 2 MB)".
- Vul alt-tekst in bij elke betekenisvolle afbeelding, en beschrijf het doel. Vraag je af wat een bezoeker zou missen als de afbeelding niet laadt. Dat is je alt-tekst.
- Markeer decoratieve afbeeldingen als decoratief in plaats van er een beschrijving voor te verzinnen.
- Gebruik koppen in de juiste volgorde. Een pagina heeft één hoofdtitel, daarna koppen van niveau 2 voor de secties en niveau 3 voor de onderdelen, zonder niveaus over te slaan. Kies een kop om zijn betekenis, niet om zijn grootte; die pas je aan in de opmaak. Schermlezergebruikers springen van kop naar kop om een pagina snel te overlopen.
- Laat kleur niet het enige signaal zijn. "Verplichte velden staan in het rood" helpt niemand die geen rood ziet. Voeg ook een woord of een symbool toe.
Wat een automatische controle niet kan beoordelen
Automatische controles zijn erg goed in het vinden van deze zes problemen, omdat je ze kunt meten: een kleurcombinatie haalt 4,5:1 of niet.
Maar een controle kan je alleen vertellen _dat_ een afbeelding alt-tekst heeft, niet of die tekst iets zegt. "Foto" slaagt voor de controle en helpt niemand. Zo ziet een controle ook dat een link tekst heeft, maar niet dat "klik hier" betekenisloos is. En ze kan niet beoordelen of je pagina vlot werkt met alleen een toetsenbord of of je taal helder is. Automatische controles vinden een flink deel van de veelvoorkomende problemen, maar niet allemaal.
Kijk dus ook zelf, nadat je hebt opgelost wat de controle meldt. Lees je alt-teksten en linkteksten luidop. Probeer door de pagina te gaan met alleen de Tab-toets. Zoom je browser in tot 200% en kijk of alles nog past en werkt.
Bekijk hoe jouw site ervoor staat
Wil je weten welke van deze zes problemen op je eigen site staan, controleer dan gratis een pagina. Het rapport legt in gewone taal uit wat er mis is, wie er last van heeft, waar het op de pagina staat en hoe je het oplost, en de gidsen van ibin helpen je stap voor stap met de herstellingen. Is je homepage in orde, meld je dan aan met je e-mailadres om gratis tot 200 pagina's van dezelfde site te controleren.
Kijk hoe je eigen site scoort
Controleer gratis een pagina, zonder account. Je krijgt een duidelijke lijst van wat je eerst oplost, met afbeeldingen van waar elk probleem zit.