Naar hoofdinhoud

Hoe maak ik mijn checkout toegankelijk?

Bijgewerkt 8 maart 2026 4 min leestijd
Delen:

Checkout-uitval stijgt met 30-40% wanneer er toegankelijkheidsbarrières zijn. Elk formulierveld heeft een expliciet label nodig, elke fout een tekstbeschrijving (niet alleen kleur), en elke stap moet met het toetsenbord alleen af te ronden zijn. Deze fixes helpen alle gebruikers, niet alleen mensen met een beperking.

Waarom checkout-toegankelijkheid de hoogste prioriteit is

De checkout is waar de koopintentie het hoogst is en uitval het duurst. De gemiddelde checkout-uitval is 70% (Baymard Institute). Onder gebruikers met toegankelijkheidsbehoeften ligt dat percentage flink hoger, omdat de meeste checkouts worden gebouwd zonder te testen op toetsenbordnavigatie, schermlezercompatibiliteit of foutafhandeling voor wie op hulptechnologie vertrouwt.

Checkout-toegankelijkheid fixen is geen compliance-oefening, het is een omzetherstel-oefening.

De checklist voor checkout-toegankelijkheid

Formulierlabels

Elk invoerveld moet een bijbehorend <label>-element hebben. Placeholder-tekst is geen vervanging. Zodra de gebruiker begint te typen, verdwijnt de placeholder, en het label ermee. Dit faalt voor gebruikers met een cognitieve beperking en verwart schermlezers.

Slecht: <input type="email" placeholder="E-mailadres"> Goed: <label for="email">E-mailadres</label> <input type="email" id="email">

Om designredenen kunnen labels visueel verborgen worden (via CSS buiten beeld geplaatst) terwijl ze toegankelijk blijven voor schermlezers. Dat is acceptabel en gangbaar in checkout-ontwerpen.

Foutmeldingen

Communiceer fouten nooit alleen via kleur. “Dit veld is verplicht” in rode tekst faalt voor gebruikers met kleurenblindheid (8% van de mannen, 0,5% van de vrouwen) en wordt door schermlezers gemist tenzij correct gemarkeerd.

Toegankelijk foutpatroon:

  • Gebruik aria-describedby om de foutmelding aan het invoerveld te koppelen
  • Toon de foutmelding als tekst, niet alleen als visuele indicator
  • Verplaats de focus naar de eerste fout als verzenden mislukt
  • Gebruik specifieke meldingen: “Voer een geldige postcode in” in plaats van “Ongeldige invoer”

Toetsenbordnavigatie

Elke actie in je checkout moet met het toetsenbord alleen af te ronden zijn. Test dit zelf: koppel je muis los en probeer een aankoop te voltooien. Je ontdekt direct:

  • Focusstates (de zichtbare indicator van welk element actief is). Kun je de focus niet zien, dan kunnen toetsenbordgebruikers niet navigeren
  • Modals die de toetsenbordfocus binnenin vasthouden (goed) of laten ontsnappen (slecht, breekt de flow)
  • Datumkiezers, adres-autocomplete en creditcardvelden gebouwd als custom componenten die geen toetsenbordinvoer ondersteunen

Focusstates worden vaak door developers verwijderd omdat de standaard browser-focusring lelijk oogt. De juiste oplossing is een custom, gebrande focusstate stylen. Niet de zichtbaarheid van focus volledig verwijderen.

Schermlezer-aankondigingen

De checkout is een proces met meerdere stappen. Wanneer de gebruiker naar de volgende stap gaat, moet een schermlezergebruiker geïnformeerd worden dat er iets veranderde. Zonder dit weten ze niet zeker of hun actie lukte.

Gebruik aria-live-regio’s om statusupdates aan te kondigen: “Stap 2 van 4: Verzendadres” wanneer het formulier verdergaat. Kondig dynamische prijsupdates (verzendkosten toegevoegd, korting toegepast) via live-regio’s aan, zodat schermlezergebruikers dezelfde informatie krijgen die zienden visueel zien.

Betaalvelden

Externe betaalproviders (Stripe, Adyen, Braintree) renderen betaalvelden meestal in iframes. WCAG-compliance hiervoor hangt af van de implementatie van de provider, niet van die van jou. Maar je beheert wel de omliggende UI en kunt zorgen dat je “Plaats bestelling”-knop en betaalmethodekeuze volledig toegankelijk zijn.

Test specifiek de iframe-toegankelijkheid van je betaalprovider. Stripe’s hosted fields en Stripe Link zijn over het algemeen toegankelijk. Sommige regionale providers hebben hiaten.

Sessietime-outs

Als je checkout sessies na inactiviteit laat verlopen, vereist WCAG dat je gebruikers waarschuwt vóór de time-out en hun minstens 20 seconden geeft om de sessie te verlengen. Veel shops falen hierin voor wie traag typt of een schermlezer gebruikt, wat de invultijd flink verlengt.

Checkout-toegankelijkheid testen

  1. Doorloop de volledige checkout met alleen het toetsenbord (Tab, Enter, Spatie, pijltjestoetsen)
  2. Draai de axe-browserextensie op elke checkout-stap en fix alle critical- en serious-problemen
  3. Test de checkout met NVDA (Windows, gratis) of VoiceOver (Mac/iOS, ingebouwd) en verifieer dat je een aankoop kunt afronden
  4. Test op mobiel met een schermlezer ingeschakeld (iOS VoiceOver, Android TalkBack)

De meeste checkout-toegankelijkheidsproblemen kan een developer in 1-2 dagen oplossen. De conversie-impact, met name voor toetsenbordgebruikers en gebruikers met een motorische beperking, overstijgt doorgaans de implementatiekosten al in de eerste maand. Plan een gesprek om je checkout te auditen en de fixes met de meeste impact te vinden.

Heb je nog vragen?

Plan een gesprek en ik beantwoord al je vragen over het optimaliseren van je webshop.