Semantische HTML: de basis van toegankelijkheid
Waarom <button> beter is dan <div> en hoe je de juiste HTML-elementen kiest…
Zorg dat alle interactieve elementen bereikbaar zijn zonder muis — essentieel voor gebruikers met motorische beperkingen en powersers
Niet iedereen kan een muis gebruiken. Veel gebruikers vertrouwen op toetsenbordnavigatie — mensen met motorische beperkingen, maar ook programmeurs en power users die sneller willen werken. En je website moet voor hen even toegankelijk zijn als voor iedereen anders.
Het goede nieuws? Het is niet moeilijk om dit goed te doen. Met de juiste HTML-elementen en een beetje CSS bereik je al heel ver. We laten je precies zien hoe.
Hier begint het echt. Als je <button> gebruikt voor een knop, <a> voor een link en <input> voor formuliervelden — dan krijg je toetsenbordnavigatie meestal gratis. Browsers weten namelijk precies hoe je met deze elementen omgaat.
Veel websites gebruiken echter <div> of <span> om knopjes en links na te bootsen. Dat ziet er misschien hetzelfde uit, maar toetsenbordgebruikers kunnen er niet mee omgaan. Je móet echte semantische elementen gebruiken.
Goed
<button>Opslaan</button>
<a href=”/contact”>Contact</a>
Fout
<div class=”button”>Opslaan</div>
<span class=”link”>Contact</span>
De volgorde waarin elementen focus krijgen als je Tab indrukt — dat is cruciaal. Als je door een formulier tabbt en je beland plotseling in de footer, dan klopt iets niet. De volgorde moet logisch zijn, van links naar rechts en van boven naar beneden.
HTML bepaalt deze volgorde automatisch. Als je je elementen in de juiste volgorde in je HTML zet, dan gebeurt dit vanzelf. Geen CSS-trucjes nodig, geen JavaScript. Gewoon goed HTML schrijven.
Soms moet je deze volgorde aanpassen — bijvoorbeeld als je met CSS elementen verplaatst. Daar is het
tabindex
-attribuut voor. Maar gebruik het voorzichtig. Tabindex > 0 creëert chaos.
Veel websites doen dit verkeerd. Ze verbergen de standaard focus-ring van browsers met
outline: none
en vergeten vervolgens om een alternatief te bieden. Gevolg: toetsenbordgebruikers zien helemaal niet meer waar ze zijn op de pagina.
Je focus-indicator moet:
Vervang alle <div>-knopjes en -links door echte <button> en <a> elementen. Dit alleen al lost 80% van je toetsenbordproblemen op.
Ga door je hele pagina met alleen Tab en Shift+Tab. Kan je alles bereiken? Gaat de volgorde logisch? Zijn er plekken waar je vast zit (keyboard traps)?
Voeg CSS toe voor focus-states. Maak outline of box-shadow duidelijk zichtbaar. Verberg nooit de standaard focus-ring zonder alternatief.
Modals, dropdowns en menus moeten met Escape kunnen sluiten. Dit is een standaard verwachting voor toetsenbordgebruikers.
Veel CSS resets verbergen de outline om “er netter uit te zien”. Maar dan verdwijnt de focus-indicator helemaal. Erger: veel ontwerpers merken dit niet eens omdat zij met een muis werken.
Oplossing:
Verwijder de CSS-reset die
outline: none
bevat, of voeg een custom focus-stijl toe met
:focus
of
:focus-visible
.
Soms proberen ontwikkelaars met
tabindex="1", "2", "3"
enz. de focus-volgorde aan te passen. Dit creëert alleen verwarring. Elementen met tabindex > 0 krijgen focus vóór elementen met tabindex 0 of helemaal geen tabindex.
Oplossing: Zet je elementen in de juiste volgorde in je HTML. Gebruik tabindex alleen voor -1 (uit de tab-volgorde halen) of 0 (terug in de normale volgorde).
Hover-menus zijn een nachtmerrie voor toetsenbordgebruikers. Ze openen alleen als je met je muis erover beweegt. Tab-gebruikers kunnen ze niet bereiken.
Oplossing: Zorg dat dropdowns ook openen op focus en Enter/Space. Zet ze in normale <button> of <a> elementen, geen custom JavaScript nodig.
Je hoeft geen speciale tools voor. Pak je toetsenbord en test gewoon. Dit is misschien wel de belangrijkste test die je kunt doen.
Toetsenbordnavigatie implementeren klinkt misschien ingewikkeld, maar het valt mee. Begin met semantische HTML. Zorg dat je focus-indicatoren zichtbaar zijn. Test met je toetsenbord. Dat zijn de drie dingen die het meeste verschil maken.
En het mooie is: als je dit goed doet, werkt je website niet alleen beter voor mensen met motorische beperkingen. Ook power users en programmeurs zullen het appreciëren. En je code wordt schoner en beter te onderhouden.
Meer weten over webtoegankelijkheid? Bekijk onze volledige gids over WCAG 2.1 implementatie.
Ontdek alle webtoegankelijkheid-onderwerpenDit artikel biedt informatief materiaal over toetsenbordnavigatie en WCAG 2.1-richtlijnen. Het is bedoeld als leergids en referentiemateriaal voor webontwikkelaars en designers. Dit artikel is geen juridisch advies. De implementatie van webtoegankelijkheidsnormen kan per juridische context variëren, met name in relatie tot het Tijdelijk besluit digitale toegankelijkheid in Nederland. We raden aan om altijd de officiële WCAG 2.1 richtlijnen te raadplegen en bij twijfel juridisch advies in te winnen.