Je ziet slecht
Je hebt een bril, een loep of een vergroting op je scherm nodig. Kleine letters, weinig contrast en tekst in een plaatje maken een website dan onbruikbaar.
Bedekte focus: zo test je het
Bovenaan de pagina staat een vaste balk op zijn plek en bedekt hij niets. De fout laat zich pas zien nadat de pagina is gescrold.
Ga als volgt te werk:
- Scroll een halve pagina naar beneden.
- Klik ergens in de tekst, buiten een link.
- Druk op Tab en kijk of het geselecteerde onderdeel zichtbaar is.
- Doe hetzelfde met Shift en Tab, dus omhoog. Daar gaat het het vaakst mis.
Voor dit criterium mag een deel bedekt zijn. Is er nog een stuk van de knop en de focusrand te zien, dan voldoet het. Is er niets te zien, dan niet. Bij twijfel is het antwoord meestal dat het niet genoeg is: een knop waarvan twee pixels zichtbaar zijn, is niet gevonden.
Dit script meldt elk onderdeel dat bij het krijgen van de focus wordt bedekt. Plak het in de console van de browser en tab daarna door de pagina:
document.addEventListener('focusin', function (e) { var r = e.target.getBoundingClientRect(); var boven = document.elementFromPoint(r.left + 4, r.top + 4); if (boven && boven !== e.target && !e.target.contains(boven)) { console.warn('bedekt door', boven, e.target); } });Elke melding is een plek om na te kijken. Het script vervangt de test niet, want het kent het verschil tussen gedeeltelijk en volledig bedekt niet.
DoelgroepenSuccescriteriaHulpmiddelenConsistente hulp: zo test je het
Deze test doe je met het oog en een handvol pagina’s.
Ga als volgt te werk:
- Kies vijf pagina’s die niet op elkaar lijken: de homepage, een dienstenpagina, een formulier, een artikel en een bevestigingspagina.
- Zoek op elke pagina alle vormen van hulp: telefoon, e-mail, contact, chat, veelgestelde vragen.
- Noteer waar ze staan en in welke volgorde.
- Leg de vijf lijstjes naast elkaar.
Waar het meestal misgaat:
- De bestelpagina zonder voettekst, bewust weggehaald om afleiding te voorkomen — precies waar een bezoeker vastloopt.
- Een chatknop die alleen op sommige pagina’s staat.
- Een telefoonnummer in de koptekst op de homepage en alleen in de voettekst op de rest.
- Een volgorde die wisselt: op de ene pagina eerst chat en dan telefoon, op de andere andersom.
Doe de test daarna nog eens op 200% zoom. Onderdelen die op een breed scherm naast elkaar staan komen dan onder elkaar, soms in een andere volgorde per pagina. Dat telt mee.
Thema’sDoelgroepenSuccescriteriaHulpmiddelenGrootte van knoppen: het aanwijsgebied
Knoppen hoeven er niet groter uit te zien. Het gaat om het gebied dat op een tik reageert, en dat mag onzichtbaar zijn.
De eenvoudigste oplossing laat het pictogram op 16 pixels staan en maakt de knop eromheen 24:
.icoonknop { min-inline-size: 24px; min-block-size: 24px; display: inline-flex; align-items: center; justify-content: center; }Is er echt geen ruimte, vergroot het gebied dan met een onzichtbare laag over de knop heen. Het beeld blijft klein, het doel wordt groot:
.icoonknop { position: relative; } .icoonknop::after { content: ""; position: absolute; inset: -8px; /* 8 pixels extra aan elke kant */ }Let op dat twee van die vergrote gebieden elkaar niet overlappen. Dan raakt de bezoeker de verkeerde knop.
Waar het meestal misgaat:
- Rijen pictogrammen naast elkaar in een tabel of werkbalk.
- Het sluitkruisje van een venster. Dat is bijna altijd te klein, terwijl het de knop is die iemand onder tijdsdruk zoekt.
- Paginanummers onder een lijst, vaak 20 bij 20 met een paar pixels ertussen.
DoelgroepenSuccescriteriaHulpmiddelenReflow: vaste breedtes vervangen
Een breedte in pixels blijft staan, hoe smal het scherm ook wordt. Een maximumbreedte krimpt mee:
/* houdt vast, ook op 320 pixels */ .kaart { width: 640px; } /* krimpt mee */ .kaart { max-inline-size: 640px; }Laat kolommen zelf terugvallen. Met
auto-fithoef je geen enkel breekpunt te bedenken: de kolommen worden smaller tot ze niet meer passen en gaan dan onder elkaar..raster { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 20px; }Een brede tabel of een codevoorbeeld hoeft niet af te breken. Die mogen schuiven, maar dan in hun eigen kader en niet met de hele pagina:
.tabel-omhulsel { overflow-x: auto; }Let ook op vaste hoogtes. Een knop met
height: 40pxziet er strak uit tot de tekst erin twee regels wordt. Gebruikmin-block-size, dan groeit de knop mee in plaats van de tekst af te knippen.Thema’sDoelgroepenSuccescriteriaHulpmiddelenTekstafstand: vaste hoogtes vervangen
Er zijn drie regels CSS die dit criterium breken. Wie die opzoekt is er bijna.
Een vaste hoogte knipt de tekst af zodra hij meer ruimte nodig heeft:
/* knipt af */ .knop { height: 40px; } /* groeit mee */ .knop { min-block-size: 40px; }Een vaste hoogte met een verborgen overloop is de gevaarlijkste combinatie, want er is niet te zien dát er iets weg is:
.kaart { height: 220px; overflow: hidden; }Haal de vaste hoogte weg, dan mag de verborgen overloop blijven staan.
Een afgeknipt aantal regels mag, zolang de hele tekst ergens anders wel te lezen is:
.samenvatting { -webkit-line-clamp: 3; }Is de afgeknipte versie de enige versie, dan raakt een bezoeker met ruimere instellingen informatie kwijt. Dan is het wel een afwijking.
De veilige basis is dat tekstdragende onderdelen hun hoogte zelf bepalen:
.wp-block-group, .wp-block-column, p, li, h1, h2, h3, h4, button, a { block-size: auto; overflow-wrap: break-word; }DoelgroepenSuccescriteriaHulpmiddelenLeesvolgorde in een PDF
In een pdf speelt hetzelfde als op een website, maar met een eigen oorzaak. Een tweekolomsopmaak leest voor het oog van linksboven naar linksonder. Een schermlezer volgt de tagboom. Staat daar de eerste regel links, dan de eerste regel rechts, dan hoort de lezer twee verhalen door elkaar.
Waar dat vandaan komt:
- Tekstvakken in Word. Die belanden vaak achteraan of op een willekeurige plek.
- Kolommen die met tabs zijn gemaakt in plaats van met een kolomindeling.
- Een document dat is afgedrukt naar pdf. Dan is er geen structuur, alleen plaatsing.
- Automatisch taggen in Acrobat, dat bij kolommen vaak misgokt.
In Acrobat zijn er twee panelen die over volgorde gaan. Het tagpaneel is leidend: de volgorde van de tags is de volgorde waarin wordt voorgelezen. Het leesvolgordepaneel onder Toegankelijkheid toont genummerde blokken en is handig om snel te controleren, maar bij twijfel geldt het tagpaneel.
De tabvolgorde is een apart ding. Zet die op de tagvolgorde via het paginaminiaturenpaneel: selecteer alle pagina’s, rechtermuisknop, Pagina-eigenschappen, en kies bij Tabvolgorde “Documentstructuur gebruiken”. Zonder die instelling gebruikt Acrobat de volgorde waarin de onderdelen zijn aangemaakt, en die is meestal willekeurig.
De echte oplossing zit in het bronbestand. Gebruik in Word een echte kolomindeling in plaats van tekstvakken, en zet afbeeldingen in de tekstregel in plaats van zwevend. Dan klopt de volgorde vanzelf.
DoelgroepenSuccescriteriaHulpmiddelenTekstafstand: zo test je het
Er is geen extensie nodig. Plak dit in de console van de browser en de pagina staat meteen op de waarden uit de eis:
var s = document.createElement('style'); s.textContent = '* {' + 'line-height: 1.5 !important;' + 'letter-spacing: 0.12em !important;' + 'word-spacing: 0.16em !important; }' + 'p { margin-bottom: 2em !important; }'; document.head.appendChild(s);Waar je op let:
- Tekst die uit een knop loopt of erin verdwijnt.
- Kaarten waarvan de laatste regel is afgeknipt. Vergelijk met de kaart ernaast.
- Overlappende regels, bijna altijd door een vaste hoogte op de omhullende laag.
- Een menu dat niet meer past en over de inhoud valt.
- Tabellen waarvan een cel zijn buurcel induwt.
Dat de pagina langer wordt is geen fout. Knoppen worden hoger en kaarten groeien; de eis is dat er niets verdwijnt, niet dat het ontwerp gelijk blijft.
Ververs de pagina om de eigen stijl terug te krijgen.
DoelgroepenSuccescriteriaHulpmiddelenConsistente hulp: wat het criterium vraagt
Biedt een website op meerdere pagina’s hulp aan, dan hoort die hulp op elke pagina op dezelfde plek te staan, in dezelfde volgorde. Staat het telefoonnummer op de ene pagina rechtsboven en op de volgende ergens anders, dan raakt de bezoeker het kwijt op het moment dat hij het nodig heeft.
Het gaat er niet om óf er hulp wordt aangeboden — dat is een eigen keuze. Het gaat erom dat de hulp niet per pagina verspringt. Dit criterium is nieuw in WCAG 2.2 en staat op niveau A, dus het valt onder de wettelijke eis.
Als hulp telt:
- Een telefoonnummer of e-mailadres.
- Een link naar contact of een contactformulier.
- Een chatvenster of een chatbot.
- Een link naar veelgestelde vragen of een helpdesk.
- Een link naar een zelfhulppagina bij een specifieke stap.
Wordt er alleen een telefoonnummer aangeboden, dan sluit dat iedereen uit die niet kan bellen: wie doof is, wie moeilijk spreekt, of wie in een omgeving zit waar bellen niet kan. Zorg dat er altijd een schriftelijke weg naast staat.
Thema’sDoelgroepenSuccescriteriaHulpmiddelenVergroten: zo test je het
Deze test kost een minuut per pagina en vindt de meeste fouten.
Ga als volgt te werk:
- Druk vier keer op Ctrl en de plus-toets (op een Mac Command en plus). Je zit dan op 200%.
- Lees de pagina van boven naar beneden.
- Bedien alles: open het menu, vul een formulier in, druk op een knop.
Doe daarna de tweede test, die vaker wordt overgeslagen: zet in de browserinstellingen de standaard tekstgrootte op zeer groot en laat de zoom op 100%. Dat is een andere instelling en legt andere fouten bloot, vooral tekstgroottes die in pixels vastliggen.
Waar je op let:
- Tekst die uit een knop of kader loopt.
- Twee stukken tekst die over elkaar heen vallen.
- Een knop of link die buiten beeld schuift.
- Een menu dat niet meer opengaat of het hele scherm vult.
- Tekst in een afbeelding die wazig wordt in plaats van groter.
Dat de pagina langer wordt en er meer gescrold moet worden is geen fout. De eis is dat er niets verdwijnt, niet dat het ontwerp hetzelfde blijft.
DoelgroepenSuccescriteriaHulpmiddelenReflow: zo test je het
Deze test kost een minuut per pagina en vraagt geen gereedschap.
Ga als volgt te werk:
- Maak het browservenster zo groot als het scherm.
- Druk vijf keer op Ctrl en de plus-toets (op een Mac Command en plus). Je zit dan op 400%.
- Lees een alinea. Moet je daarvoor heen en weer schuiven?
Werkt het scherm niet mee, versmal het venster dan tot 320 pixels breed. Dat komt op hetzelfde neer.
Waar je op let:
- Een schuifbalk onderaan de pagina. Dat is de fout. Eén in een tabel of codeblok mag wel.
- Tekst die wegvalt of overlapt, meestal door een vaste hoogte.
- Een menu dat niet meer opengaat of het halve scherm vult.
- Knoppen die buiten beeld vallen. De knop Versturen onder een formulier is de meest voorkomende.
- Een vaste balk bovenaan die op 400% de helft van het scherm inneemt.
De fout zit zelden in de hele pagina. Meestal in één onderdeel dat later is toegevoegd: een ingesloten kaart, een prijstabel of een banner van een andere partij. Zoek dus niet naar één grote oorzaak maar naar het blok dat niet meebeweegt.
Thema’sDoelgroepenSuccescriteriaHulpmiddelenFocusvolgorde: wat het criterium vraagt
Wie met het toetsenbord werkt krijgt de pagina als een rij: eerst dit, dan dat. Het overzicht dat een ziende bezoeker in één blik heeft, ontbreekt daarbij. Klopt de volgorde van de focus niet met de volgorde waarin de pagina te lezen is, dan raakt de bezoeker de draad kwijt. Zorg daarom dat de focus in een logische volgorde door de pagina loopt.
De oorzaak is bijna altijd dezelfde. Het ontwerp vraagt het beeld rechts en de tekst links; in de code staat het beeld eerst en wordt het met CSS naar rechts geschoven. Op het scherm klopt dat, maar de focus volgt de code. De bezoeker springt dan eerst naar rechts, dan naar links en dan weer naar rechts.
Bij een formulier heeft dat gevolgen. Gaat de focus van Postcode naar Versturen en pas daarna naar Huisnummer, dan wordt het formulier half ingevuld verstuurd.
Dit criterium gaat over de focusvolgorde: waar Tab naartoe springt. 1.3.2 Betekenisvolle volgorde gaat over de leesvolgorde: waar de tekst over gaat. Vaak is het dezelfde fout, maar niet altijd — een pagina kan goed leesbaar zijn en toch onhandig te bedienen.
Thema’sDoelgroepenSuccescriteriaHulpmiddelenLeesvolgorde: wat het criterium vraagt
Een schermlezer leest een pagina voor in de volgorde van de code, van de eerste regel naar de laatste. Op het scherm staat alles tegelijk, maar wie de pagina hoort of met een vergroting strook voor strook afleest, krijgt hem als een rij. Zorg daarom dat de volgorde in de code overeenkomt met de volgorde waarin de pagina gelezen moet worden.
Een veelvoorkomend voorbeeld is een prijskaart met de prijs boven de naam, terwijl in de code de prijs eerst staat. Op het scherm staat er “Basispakket — 39 euro”. De schermlezer leest “39 euro. Basispakket.” Bij één kaart is dat te volgen, bij vijf kaarten naast elkaar niet meer.
Wie hier tegenaan loopt:
- Bezoekers die blind zijn en de pagina horen in plaats van zien.
- Bezoekers die een schermvergroting gebruiken en de pagina strook voor strook afleiden.
- Bezoekers die de pagina laten voorlezen omdat lezen moeite kost.
- Iedereen op een smal scherm, want dan komt alles onder elkaar te staan in de volgorde van de code.
Dit criterium gaat over de leesvolgorde: waar de tekst over gaat. 2.4.3 Focus volgorde gaat over de focusvolgorde: waar Tab naartoe springt. Vaak is het dezelfde fout, maar niet altijd.
DoelgroepenSuccescriteriaHulpmiddelenReflow: wat het criterium vraagt
Bij 400% zoom behandelt de browser de pagina als een smal scherm. Een pagina die ook op een telefoon werkt, schuift zijn kolommen dan onder elkaar. Gebeurt dat niet, dan verschijnt er een schuifbalk onderaan en moet de bezoeker bij elke regel heen en weer schuiven.
De eis is: bij 400% zoom op een scherm van 1280 bij 1024 hoeft er nog maar in één richting geschoven te worden. Dat komt neer op een venster van 320 bij 256 pixels, zo smal als een oude telefoon.
Wie hier last van heeft:
- Bezoekers die slecht zien en daarom vergroten.
- Bezoekers die een schermvergroting gebruiken en maar een deel van het scherm zien.
- Iedereen op een telefoon.
Werkt de site op een telefoon, dan is dit criterium bijna vanzelf in orde. Het gaat om de plekken waar een uitzondering is gemaakt: die ene tabel, dat ene formulier, die kaart met een vaste breedte.
Thema’sDoelgroepenSuccescriteriaHulpmiddelenBedekte focus: wat het criterium vraagt
Een balk die vastgeplakt in beeld blijft staan kan het onderdeel bedekken waar de toetsenbordfocus net naartoe is gesprongen. De bezoeker ziet dan niet welk onderdeel is geselecteerd en weet niet wat er gebeurt bij het indrukken van Enter. Zorg daarom dat het onderdeel met de focus niet volledig bedekt wordt.
Een deel mag bedekt zijn, als de rest maar zichtbaar blijft. Dit criterium is nieuw in WCAG 2.2 en staat op niveau AA, dus het valt onder de wettelijke eis. Er is ook een strengere versie: 2.4.12 Focus niet bedekt (uitgebreid) op niveau AAA, waarbij er niets overheen mag staan.
De oorzaak is bijna altijd een van deze:
- Een menubalk die vastgeplakt bovenaan blijft staan.
- Een cookiemelding onderaan het scherm.
- Een chatknop in de hoek.
- Een balk met acties die verschijnt zodra de bezoeker scrolt.
- Een tabel met een vastgezette kop of kolom.
Het gaat het vaakst mis bij terugspringen. Gaat de bezoeker met Shift en Tab omhoog, dan zet de browser het onderdeel bovenaan het scherm — precies waar een vaste balk staat. Vooruit gaat meestal goed, achteruit niet.
DoelgroepenSuccescriteriaHulpmiddelenZichtbare focus: wat het criterium vraagt
Het onderdeel dat met het toetsenbord is geselecteerd heeft de focus. De browser zet daar standaard een rand omheen, zodat zichtbaar is waar de bezoeker zich bevindt. Ontbreekt die rand, dan is niet te zien welk onderdeel wordt bediend en wat er gebeurt bij het indrukken van Enter. Zorg daarom dat de toetsenbordfocus altijd zichtbaar is.
Dit raakt vooral:
- Bezoekers die geen muis kunnen vasthouden en alles met het toetsenbord doen.
- Bezoekers die een schermvergroting gebruiken en maar een klein deel van het scherm zien. De focus geeft aan waar dat deel moet staan.
- Bezoekers die met een schakelaar of met hun stem werken.
De rand is op de meeste sites ooit bewust weggehaald, met één regel CSS:
outline: none. De standaardrand is niet mooi, maar het antwoord daarop is een betere rand en niet geen rand.Dit criterium gaat alleen over de zichtbaarheid van de focus. Of de rand genoeg contrast heeft valt onder 1.4.11 Contrast van niet-tekstuele content, de volgorde onder 2.4.3 Focus volgorde, en of de rand achter een balk verdwijnt onder 2.4.11.
DoelgroepenSuccescriteriaHulpmiddelenTekstafstand: wat het criterium vraagt
Mensen met dyslexie lezen sneller als er meer ruimte tussen de regels en de letters staat. Er zijn browserextensies die die ruimte op elke site instellen. Zorg daarom dat je tekst leesbaar blijft als een bezoeker die ruimte ruimer zet.
De tekst moet het uithouden bij deze vier waarden:
- Regelafstand 1,5 keer de tekstgrootte.
- Ruimte tussen alinea’s 2 keer de tekstgrootte.
- Letterafstand 0,12 keer de tekstgrootte.
- Woordafstand 0,16 keer de tekstgrootte.
Je hoeft die waarden niet zelf te gebruiken. De eis is dat de pagina eraan kan als een bezoeker ze instelt.
Dit is zelden een ontwerpprobleem en bijna altijd hetzelfde bouwprobleem: ergens staat een vaste hoogte. Zolang de tekst past valt dat niet op; bij een ruimere regelafstand verdwijnt de onderste regel.
DoelgroepenSuccescriteriaHulpmiddelenVergroten: wat het criterium vraagt
Tekst moet tot 200% vergroot kunnen worden zonder dat er inhoud of functies verdwijnen. Dat moet lukken zonder hulpmiddelen: een vergrotingsprogramma telt niet mee, het moet werken met wat de browser zelf biedt. Veel mensen vergroten tekst zonder zichzelf slechtziend te noemen.
Waar het misgaat:
- Tekst in een afbeelding. Die wordt wazig in plaats van groter; dat valt ook onder 1.4.5.
- Vaste hoogtes. De tekst groeit, de knop niet, en de onderste regel verdwijnt.
- Tekstgroottes in pixels die de browserinstelling negeren.
- Een menu dat op 200% over de inhoud valt of niet meer opengaat.
Dit criterium is de lagere lat van twee. 1.4.10 Reflow Reflow gaat over wat er gebeurt bij 400% zoom, als de pagina zich helemaal moet herschikken. Ze overlappen, maar 1.4.4 Herschalen van tekst is de oudere en lichtere eis.
DoelgroepenSuccescriteriaHulpmiddelenTooltips: wat het criterium vraagt
Verschijnt er extra inhoud zodra een bezoeker iets aanwijst of met het toetsenbord selecteert — een tooltip, een uitklapmenu, een voorbeeldvenster — dan moet die inhoud te lezen zijn. Wie ingezoomd werkt ziet de uitleg buiten zijn deel van het scherm staan en moet er met de aanwijzer naartoe. Verdwijnt de uitleg onderweg, dan is hij onbereikbaar.
Er gelden drie eisen:
- Wegklikbaar. De uitleg is te sluiten met Escape, zonder de aanwijzer te verplaatsen.
- Aanwijsbaar. De aanwijzer kan erheen zonder dat de uitleg verdwijnt.
- Blijvend. De uitleg blijft staan tot de bezoeker wegwijst, hem sluit of de informatie niet meer klopt. Niet tot een tijdklok afloopt.
Waar dit opduikt: tooltips bij een pictogram of vraagteken, uitklapmenu’s die opengaan bij aanwijzen, voorbeeldvensters bij een link, foutmeldingen die bij focus verschijnen, en een winkelmandje dat opengaat bij aanwijzen.
Op een aanraakscherm bestaat aanwijzen niet. Wat alleen bij aanwijzen verschijnt, moet daar op een andere manier bereikbaar zijn — of de informatie hoort gewoon op de pagina te staan.
Thema’sDoelgroepenSuccescriteriaHulpmiddelen