Je leest of onthoudt moeilijk
Lange zinnen, moeilijke woorden of veel stappen achter elkaar kosten je veel energie. Duidelijke taal en rust op het scherm helpen.
Leesvolgorde: CSS bepaalt de plek
De regel is kort: zet in de HTML wat eerst gelezen moet worden, en gebruik CSS om te bepalen wáár het staat.
Deze drie eigenschappen verplaatsen het beeld zonder de volgorde te veranderen. Ze zijn alle drie nuttig, en worden pas een probleem zodra ze de leesvolgorde omdraaien:
.blok { order: -1; } .kaart { grid-row: 1; } .zij { position: absolute; top: 0; }Gebruik een tabel nooit als indeling. Een tabel wordt cel voor cel gelezen, rij voor rij. Staan er onderdelen naast elkaar in, dan hoort de bezoeker die volgorde ook. Voor een indeling gebruik je grid of flex.
Let ook op CSS-kolommen. Die lezen van boven naar beneden per kolom, niet van links naar rechts. Dat is precies wat je wilt bij lopende tekst, en precies wat je niet wilt bij een lijst met stappen:
.tekst { columns: 2; }De veilige gewoonte is om eerst zonder opmaak te bouwen. Lees de pagina van boven naar beneden; klopt het verhaal, dan mag de opmaak erop.
DoelgroepenSuccescriteriaHulpmiddelenTooltips: er een bouwen die blijft staan
De eenvoudigste oplossing is geen tooltip bouwen maar de tekst op de pagina zetten. Kan dat niet, dan moeten er drie dingen kloppen.
Escape sluit de uitleg:
element.addEventListener('keydown', function (e) { if (e.key === 'Escape') { verbergTooltip(); } });De aanwijzer kan erheen. Laat geen gat tussen het onderdeel en de uitleg: beweegt de aanwijzer over dat gat, dan telt dat als wegwijzen en verdwijnt de uitleg.
.tooltip { margin-block-start: 0; padding-block-start: 8px; pointer-events: auto; }En er zit geen tijdklok op. Een bezoeker die langzaam leest is na drie seconden halverwege:
setTimeout(verbergTooltip, 3000); /* niet doen */Gebruik
:focus-visiblenaast:hover, anders krijgt een bezoeker met een toetsenbord de uitleg nooit te zien. Zet daarnaastaria-describedbyop het onderdeel, zodat een schermlezer de uitleg voorleest.<button aria-describedby="uitleg-btw">Btw-nummer</button> <div id="uitleg-btw" role="tooltip">Je btw-nummer staat op je factuur.</div>Thema’sDoelgroepenSuccescriteriaHulpmiddelenConsistente hulp: als sjabloononderdeel
De oplossing is een afspraak en geen techniek. Kies één plek voor de hulp en wijk daar niet van af.
Bouw het als één sjabloononderdeel en zet dat op elke pagina neer. Dan kán het niet verspringen, want er is maar één plek waar het vandaan komt:
<!-- in de voettekst, op elke pagina, in deze volgorde --> <h2>Contact</h2> <dl> <dt>E-mail</dt><dd><a href="mailto:info@voorbeeld.nl">info@voorbeeld.nl</a></dd> <dt>Telefoon</dt><dd><a href="tel:+31000000000">000 – 00 00 000</a></dd> </dl> <p><a href="/contact/">Bezoek de contactpagina</a></p>Een chatknop rechtsonder mag, zolang hij op elke pagina rechtsonder staat. Verspringt hij naar linksonder op de bestelpagina omdat daar een knop in de weg zat, dan voldoet de site niet meer.
Let erop dat de hulp niet over de inhoud valt als iemand inzoomt. Dat raakt 1.4.10 Reflow en 2.4.11.
Thema’sDoelgroepenSuccescriteriaHulpmiddelenBij input: zo test je het
Met een muis is deze fout nauwelijks te vinden: je klikt, kiest en bent klaar. Met het toetsenbord komt hij meteen boven.
Ga als volgt te werk:
- Tab naar een keuzelijst.
- Ga met de pijltoetsen omlaag door de opties, alsof je aan het kijken bent.
- Gebeurt er iets? Dan is dat de fout.
- Doe hetzelfde met vinkjes en keuzerondjes: spatie erop en kijken of de pagina blijft staan.
Vergeet de tekstvelden niet. Vul een veld in en druk op Tab om verder te gaan. Verandert er dan iets aan de pagina — een blok dat verschijnt, een sprong naar boven — dan valt dat ook onder dit criterium.
In de code is het ook op te zoeken:
document.querySelectorAll('[onchange], select, input[type=checkbox], input[type=radio]') .forEach(function (el) { if (el.getAttribute('onchange')) console.warn('onchange:', el); });Zoek in de bronbestanden daarnaast naar
form.submit()enaddEventListener('change'. Niet elke treffer is fout, maar het zijn wel de plekken om te kijken.Thema’sDoelgroepenSuccescriteriaHulpmiddelenVaste namen: wat het criterium vraagt
Onderdelen die hetzelfde doen horen overal dezelfde naam te krijgen. Dat geldt voor de zichtbare tekst en voor het alternatief van een pictogram. Heet dezelfde knop op de ene pagina “Zoeken”, op de andere “Zoek”, en staat er elders alleen een vergrootglas zonder tekst, dan is dat voor wie kijkt één ding en voor wie luistert drie.
Waar het vaak misgaat:
- Een pictogram zonder tekst, met per pagina een ander alternatief: “zoeken”, “zoek”, “vergrootglas”.
- Downloadlinks: “Download pdf”, “Pdf downloaden”, “Bekijk het rapport” — voor hetzelfde bestand.
- De knop die een formulier verstuurt: “Versturen”, “Verzenden”, “Aanvragen”, “Ok”.
- Een sluitkruisje dat de ene keer “Sluiten” heet en de andere keer “Annuleren”.
Dit telt het zwaarst bij spraakbediening. Wie zijn computer met zijn stem bedient zegt “klik Zoeken”. Heet de knop op die pagina “Zoek”, dan gebeurt er niets.
Dezelfde naam voor twee dingen die iets anders doen is de omgekeerde fout. Twee links die allebei “Lees meer” heten maar naar verschillende pagina’s gaan, botsen met 2.4.4.
DoelgroepenSuccescriteriaHulpmiddelenInloggen: de wachtwoordbeheerder
Wie een wachtwoordbeheerder gebruikt hoeft niets te onthouden en niets over te typen. Daarmee is de eis vervuld, zolang de site die beheerder niet in de weg zit.
Zet daarom het juiste
autocomplete-woord op elk veld:<label for="gebruiker">E-mailadres</label> <input id="gebruiker" name="gebruiker" type="email" autocomplete="username"> <label for="wachtwoord">Wachtwoord</label> <input id="wachtwoord" name="wachtwoord" type="password" autocomplete="current-password"> <label for="code">Code uit je sms</label> <input id="code" name="code" type="text" inputmode="numeric" autocomplete="one-time-code">De laatste wordt het vaakst vergeten en helpt het meest: met
one-time-codebiedt de telefoon de code uit de sms zelf aan boven het toetsenbord.Drie dingen die je niet moet doen:
- Plakken blokkeren. Bedoeld tegen slordigheid, werkt alleen tegen wie het goed doet.
- De code opknippen in losse vakjes. Geen wachtwoordbeheerder komt daar doorheen.
- Het wachtwoordveld hernoemen om beheerders te misleiden.
Is een CAPTCHA echt nodig, kies er dan een die op gedrag let in plaats van op een puzzel. Blijft er een puzzel over, zorg dan voor een echt alternatief: een telefoonnummer waar iemand opneemt of een e-mailadres dat gelezen wordt. “Probeer het opnieuw” is geen alternatief.
Thema’sDoelgroepenSuccescriteriaHulpmiddelenBij input: wat het criterium vraagt
Het bedienen van een onderdeel mag niet vanzelf de context veranderen: geen nieuwe pagina, geen ander venster en geen verplaatste focus. Tenzij vooraf is aangekondigd dat dat gebeurt. Een keuzelijst die zichzelf verstuurt verandert de pagina terwijl de bezoeker nog aan het kiezen is — wie met de pijltjestoetsen door een lijst met landen gaat, is al weg bij de tweede optie.
De drie klassiekers:
- Een keuzelijst die verstuurt. Van land, taal of sortering.
- Een veld dat de focus doorzet. Vier vakjes voor een pincode, en na elk cijfer springt de focus door. Bij een typefout is er geen weg terug.
- Een vinkje dat de pagina herlaadt, bijvoorbeeld een filter dat meteen zoekt.
Wie kijkt, ziet dat de pagina verandert. Wie luistert, hoort een schermlezer opnieuw beginnen zonder te weten waarom. Wie langzaam bedient, raakt in de knel omdat het gebeurt vóór hij klaar is.
Een filter dat de lijst eronder bijwerkt zonder de pagina te herladen en zonder de focus te verplaatsen is geen contextverandering. Dat is een resultaat. Meld de nieuwe stand wel met
role="status".Thema’sDoelgroepenSuccescriteriaHulpmiddelenInloggen: wat het criterium vraagt
Bij het inloggen mag geen cognitieve test worden opgelegd: geen puzzel, geen code die onthouden en overgetypt moet worden, en geen vraag naar iets wat de bezoeker uit zijn hoofd moet weten. De inlog is de plek waar iedere gebruiker langs moet; wat daar misgaat maakt de rest van de dienst onbereikbaar.
Er zijn twee uitwegen. Er mag een alternatief zijn dat de test niet vraagt, of de test mag gaan over het herkennen van objecten of van een plaatje dat de bezoeker zelf heeft aangeleverd. Dit criterium is nieuw in WCAG 2.2 en staat op niveau AA.
Waar het misgaat:
- Een CAPTCHA met vervormde letters. Dat is puur een test.
- Een code uit een sms die overgetypt moet worden in een venster dat de sms bedekt.
- Zes losse vakjes voor die code, waar geen wachtwoordbeheerder mee overweg kan.
- Een beveiligingsvraag over een eerste huisdier of de meisjesnaam van een moeder.
- Plakken blokkeren in het wachtwoordveld.
Dit is de AA-versie en valt onder de wet. 3.3.9 Toegankelijke authenticatie (uitgebreid) is de AAA-versie en laat die uitwegen niet toe: daar mag ook een plaatjespuzzel niet.
Thema’sDoelgroepenSuccescriteriaHulpmiddelenLeesvolgorde: zo test je het
Voor deze test is geen schermlezer nodig. Zet de opmaak uit en lees wat er staat.
Plak dit in de console van de browser. Alle stijlen gaan uit en de pagina komt in de volgorde van de code te staan:
document.querySelectorAll('style, link[rel=stylesheet]') .forEach(function (el) { el.disabled = true; });Waar je op let:
- Lees van boven naar beneden. Klopt de volgorde met wat je gewend bent?
- Staan koppen boven de tekst waar ze bij horen?
- Komt bij een kaart eerst de naam en dan de prijs, of andersom?
- Staat een bijschrift onder de juiste afbeelding?
- Komt het menu vóór de inhoud, en de voettekst erna?
De tweede test is het venster versmallen tot 320 pixels. Alles komt dan onder elkaar te staan, in de volgorde van de code. Springt er iets naar een onverwachte plek, dan is de fout gevonden — en meteen ook een afwijking op 1.4.10.
Ververs de pagina om de stijlen terug te krijgen.
DoelgroepenSuccescriteriaHulpmiddelenVaste namen: de namen vastleggen
Dit is geen technisch probleem. Het ontstaat doordat verschillende mensen op verschillende momenten een knop een naam geven. De oplossing is een afspraak.
Maak een lijst met de tien tot twintig onderdelen die overal terugkomen, en spreek per stuk één naam af:
Zoeken (niet: Zoek, Vind, Search) Versturen (niet: Verzenden, Ok, Aanvragen) Sluiten (niet: Annuleren, Terug, X) Download pdf (niet: Pdf downloaden, Bekijk pdf) Neem contact op (niet: Contact, Mail ons)Een pictogram zonder tekst heeft een naam nodig die niet zichtbaar is. Gebruik overal dezelfde:
<button aria-label="Zoeken"> <svg aria-hidden="true">…</svg> </button>Staat er wel tekst naast het pictogram, dan is die tekst de naam. Zet het pictogram dan op
aria-hidden, anders wordt de naam twee keer voorgelezen.Let op de vertaling van je thema. Knoppen die uit WordPress of een plugin komen — “Lees verder”, “Vorige”, “Zoeken” — hebben hun eigen vertaling, en die kan afwijken van wat er elders op de site staat. Dat is een van de vaakst gemiste oorzaken van deze fout.
DoelgroepenSuccescriteriaHulpmiddelenInloggen: zo test je het
Deze test duurt vijf minuten en gaat met een eigen account.
Ga als volgt te werk:
- Zet het wachtwoord in een wachtwoordbeheerder.
- Log uit en weer in. Vult de beheerder beide velden?
- Komt er een tweede stap? Is die code te plakken, of wordt hij aangeboden?
- Noteer alles wat met het hoofd of de vingers moest gebeuren.
Waar je op let:
- Losse vakjes voor de code. Probeer te plakken — lukt het?
- Een CAPTCHA in welke vorm dan ook.
- Een beveiligingsvraag.
- Een tijdslimiet die niet gehaald wordt bij langzaam typen.
- Een venster dat de sms bedekt, zodat de code niet te lezen is.
De controle in de code:
document.querySelectorAll('input').forEach(function (el) { console.log(el.type, '·', el.autocomplete || 'GEEN AUTOCOMPLETE', '·', el.name); });Staat er bij het wachtwoordveld geen
current-passworden bij het codeveld geenone-time-code, dan is duidelijk waar te beginnen.Thema’sDoelgroepenSuccescriteriaHulpmiddelenOverbodige invoer: zo test je het
Dit is een test met pen en papier. Er is geen software voor nodig, en juist daarom wordt hij zelden gedaan.
Ga als volgt te werk:
- Begin bij het begin van een proces met meerdere stappen: een bestelling, een aanvraag, een aanmelding.
- Schrijf bij elke stap op wélke gegevens er gevraagd worden. Niet wat je invult, maar wat er gevraagd wordt.
- Loop het lijstje na. Staat er iets twee keer op?
Staat er iets twee keer, dan is dat een afwijking — tenzij het een wachtwoord is of iets wat echt veranderd kan zijn.
Waar het meestal zit:
- Factuuradres en afleveradres.
- E-mailadres bij het aanmaken van een account en daarna nog eens bij het bestellen.
- Een naam bovenaan een formulier en nog eens bij de ondertekening.
- Een klantnummer dat in stap 1 wordt ingevoerd en in stap 3 opnieuw.
Doe daarna de test die verder gaat: vul het formulier één keer verkeerd in en verstuur. Staat alles wat wél goed was ingevuld er nog? Zo niet, dan wordt niet twee keer hetzelfde gevraagd maar alles opnieuw — precies op het moment dat de bezoeker toch al iets fout deed.
Thema’sDoelgroepenSuccescriteriaHulpmiddelenTooltips: zo test je het
Zoek eerst alles op wat verschijnt bij aanwijzen of bij focus. Dat zijn meestal vraagtekens, pictogrammen, menu’s en linkvoorbeelden.
Ga daarna als volgt te werk:
- Wijs het onderdeel aan tot de uitleg verschijnt.
- Beweeg de aanwijzer langzaam naar de uitleg toe. Blijft hij staan?
- Ga met de aanwijzer over de uitleg heen. Blijft hij nog steeds staan?
- Druk op Escape zonder de aanwijzer te verplaatsen. Verdwijnt hij?
- Wijs opnieuw aan en wacht tien seconden. Verdwijnt hij vanzelf?
Doe de test daarna met het toetsenbord. Tab naar hetzelfde onderdeel: verschijnt de uitleg ook dan? Zo niet, dan mist een deel van de bezoekers hem helemaal.
Vind je een tooltip met informatie die nergens anders staat, dan is dat meer dan een afwijking op dit criterium. Dan mist een deel van de bezoekers inhoud.
Thema’sDoelgroepenSuccescriteriaHulpmiddelenConsistente 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’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; }DoelgroepenSuccescriteriaHulpmiddelenVaste namen: zo test je het
Je zoekt onderdelen die hetzelfde doen maar anders heten. Die vind je door de namen naast elkaar te leggen.
Haal de namen op met dit script in de console:
[...document.querySelectorAll('button, a, [role=button]')] .map(function (el) { return (el.getAttribute('aria-label') || el.textContent).trim(); }) .filter(Boolean) .forEach(function (n) { console.log(n); });Doe dit op vijf verschillende pagina’s en zet de uitkomsten onder elkaar in een tekstbestand.
Waar je op let:
- Varianten van hetzelfde woord: zoeken, zoek, search.
- Knoppen die hetzelfde doen maar anders heten.
- Pictogrammen zonder naam. Die komen als lege regel terug.
- Namen die twee keer voorkomen maar iets anders doen. Dat is de omgekeerde fout.
Doe ook de test met je stem. Zet spraakbediening aan en zeg “klik Zoeken” op drie verschillende pagina’s. Werkt het niet overal, dan is de afwijking niet alleen aangetoond maar ook gevoeld.
DoelgroepenSuccescriteriaHulpmiddelenOverbodige invoer: wat het criterium vraagt
Gegevens die binnen hetzelfde proces al zijn ingevuld, mogen niet een tweede keer worden gevraagd. Gebeurt dat toch, dan moeten ze automatisch worden ingevuld of te kiezen zijn uit wat er al staat. Overbodig typen is niet gelijk verdeeld: wie met één vinger, met zijn stem of met een schakelaar werkt is er minuten mee kwijt, en maakt bij elke aanslag kans op een fout.
Dit criterium is nieuw in WCAG 2.2 en staat op niveau A.
Er zijn twee uitzonderingen: als het opnieuw invullen nodig is voor de veiligheid, zoals bij een wachtwoord, en als de oude informatie niet meer geldig is.
Voor bezoekers met een geheugenprobleem is dit scherper dan het lijkt. Wordt een klantnummer uit stap twee in stap vier opnieuw gevraagd, dan is teruggaan soms de enige uitweg — en daarmee het risico dat alles weg is.
Thema’sDoelgroepenSuccescriteriaHulpmiddelenOverbodige invoer: invullen of laten kiezen
De eis laat vrij hóe het wordt opgelost. Er zijn drie manieren, en welke past hangt af van hoe zeker het antwoord hetzelfde is.
Weet je het antwoord zeker, vul het dan in. De bezoeker kan het nog aanpassen:
<label for="post-straat">Straat en huisnummer</label> <input id="post-straat" name="post_straat" value="Marsweg 89A" autocomplete="shipping street-address">Een vinkje “hetzelfde als hierboven” is de bekendste oplossing en meestal de beste. Zet hem aan als dat het gewone geval is, dan hoeft de meerderheid niets te doen:
<input type="checkbox" id="zelfde" name="zelfde" checked> <label for="zelfde">Mijn afleveradres is hetzelfde als mijn factuuradres</label>Zijn er meerdere eerdere antwoorden, geef dan een keuzelijst in plaats van een leeg veld.
Zet daarnaast op elk veld het juiste
autocomplete-woord. Dan vult de browser of de wachtwoordbeheerder het zelf in, zonder eigen code. Daarmee voldoe je meteen aan 1.3.5 Identificeer het doel van de input:autocomplete="name" autocomplete="email" autocomplete="postal-code" autocomplete="shipping street-address" autocomplete="billing street-address"Verbergt het vinkje de velden eronder, zorg dan dat ze weer verschijnen als de bezoeker het uitzet, en dat de focus meegaat.
Thema’sDoelgroepenSuccescriteriaHulpmiddelenLeesvolgorde 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.
DoelgroepenSuccescriteriaHulpmiddelenBij input: een knop ernaast
Er is één oplossing die altijd werkt en die in twee minuten is gebouwd: zet er een knop naast.
<!-- niet doen --> <select onchange="this.form.submit()"> <!-- wel doen --> <select id="sortering" name="sortering">…</select> <button type="submit">Toon resultaten</button>Dat kost één klik en voorkomt dat een bezoeker per ongeluk ergens anders belandt. Het werkt bovendien zonder JavaScript.
Wil je toch automatisch versturen, dan mag dat als je het vooraf aankondigt. Zet die aankondiging in het label en niet erachter, anders wordt hij pas gelezen als het al is gebeurd:
<label for="taal">Taal <span class="hint">(de pagina laadt opnieuw)</span></label> <select id="taal" name="taal" onchange="this.form.submit()">Bij een pincode in losse vakjes mag de focus doorspringen, zolang er een weg terug is. Werkt Backspace niet meer omdat de focus al weg is, dan zit de bezoeker vast. Eén veld voor de hele code is bijna altijd beter — en dan werkt een wachtwoordbeheerder ook.
Thema’sDoelgroepenSuccescriteriaHulpmiddelenConsistente 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’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.
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.
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