Navigatie met het toetsenbord en focusvolgorde
Zorg dat alle functies logisch bereikbaar zijn via het toetsenbord
Navigatie met het toetsenbord en focusvolgorde is een gratis HTML Academy-les op CoddyKit. Dit is les 4 van 4. Je kunt 3 lessen uit dit leerpad gratis volledig lezen — daarna ontgrendelt CoddyKit PRO alle lessen, plus praktische oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject HTML Academy. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus HTML Academy bevat in totaal 4 lessen.
Wie heeft toetsenbordnavigatie nodig?
Veel gebruikers zijn afhankelijk van toetsenbordnavigatie:
- Motorische beperkingen — kunnen geen muis gebruiken
- Ervaren gebruikers — geven de voorkeur aan sneltoetsen
- Gebruikers van schermlezers — navigeren volledig met het toetsenbord
- Gebruikers van schakelaarbediening — gebruiken knoppen die toetsaanslagen simuleren
Elementen die van nature focusbaar zijn
Deze HTML-elementen zijn standaard focusbaar met het toetsenbord:
<a href>— met Tab ga je ernaartoe, met Enter activeer je het<button>— met Tab ga je ernaartoe, met Enter of de spatiebalk activeer je het<input>,<textarea>,<select>— met Tab ga je ernaartoe<details>/<summary>— Tab + Enter
Tabvolgorde
De browser bepaalt de tabvolgorde als volgt:
- Standaard de DOM-volgorde — met Tab krijgen elementen focus in de volgorde waarin ze in HTML staan
- Positieve tabindex-waarden — deze elementen krijgen eerst focus, in oplopende volgorde
tabindex="0"— toegevoegd aan de natuurlijke tabvolgorde op de positie in de DOMtabindex="-1"— staat niet in de tabvolgorde; kan alleen via een script focus krijgen
Natuurlijke tabvolgorde = DOM-volgorde
De leesvolgorde van je HTML moet overeenkomen met de visuele indeling:
<!-- GOOD: DOM order matches visual left-to-right, top-to-bottom: -->
<header>...</header>
<nav>...</nav>
<main>...</main>
<aside>...</aside>
<footer>...</footer>
<!-- BAD: visually reordered with CSS, DOM order broken:
CSS flexbox order: doesn't affect tab order!
Screen readers and keyboard users follow DOM order, not CSS order -->Zichtbare focusindicator
WCAG 2.4.7 (niveau AA): de toetsenbordfocus moet zichtbaar zijn:
/* NEVER do this: */
* { outline: none; } /* removes all focus outlines */
/* GOOD: styled focus indicator: */
:focus-visible {
outline: 2px solid #0070f3;
outline-offset: 3px;
border-radius: 4px;
}
/* :focus-visible shows outline for keyboard only
mouse clicks don't trigger :focus-visible -->
/* But outline: none with :focus (not :focus-visible) hides for both */Aangepaste focusstijlen
Focusstijlen van het ontwerpsysteem:
/* Replace outline with box-shadow for rounded elements: */
button:focus-visible {
outline: none;
box-shadow: 0 0 0 3px rgba(0, 112, 243, 0.4);
}
/* Always ensure 3:1 contrast ratio between
focus indicator and background (WCAG 2.4.11 Level AA) */Logische focusvolgorde
De focusvolgorde moet logisch en voorspelbaar zijn — WCAG 2.4.3 (niveau A):
<!-- BAD: focus order jumps around the page -->
<!-- First: footer link (tabindex=5) -->
<!-- Then: sidebar (tabindex=3) -->
<!-- Then: header nav (tabindex=1) -->
<!-- GOOD: natural DOM order matches reading flow: -->
<!-- Header → Nav → Main Content → Sidebar → Footer -->Koppelingen om over te slaan
Met overslaankoppelingen kunnen toetsenbordgebruikers herhaalde navigatie overslaan:
<a href="#main-content" class="skip-link">Skip to main content</a>
<!-- Visually hidden until focused: -->
.skip-link {
position: absolute;
top: -100%;
left: 0;
background: #0070f3;
color: white;
padding: 0.75rem;
z-index: 9999;
}
.skip-link:focus {
top: 0; /* visible when focused -->
}Focusval in een modaal venster
Modale vensters moeten de focus vasthouden zolang ze geopend zijn:
<!-- When modal opens:
1. Move focus to modal container or first interactive element
2. Tab stays within modal
3. When modal closes, return focus to the trigger button
-->
const modal = document.getElementById('modal');
const trigger = document.getElementById('open-modal');
function openModal() {
modal.removeAttribute('hidden');
modal.querySelector('button, [tabindex="0"]').focus();
}
function closeModal() {
modal.setAttribute('hidden', '');
trigger.focus();
}Sneltoetsen
Implementeer sneltoetsen met gebeurtenisluisteraars:
document.addEventListener('keydown', (e) => {
// Close modal on Escape:
if (e.key === 'Escape') closeModal();
// Navigate tabs with arrow keys:
if (e.key === 'ArrowRight') focusNextTab();
if (e.key === 'ArrowLeft') focusPrevTab();
// Submit form on Enter (default behavior in inputs):
// Nothing needed — browser handles this
});Toetsenbordnavigatie testen
Zo test je toetsenbordtoegankelijkheid:
- Leg je muis weg en gebruik alleen het toetsenbord
- Druk op Tab — kun je elk interactief element bereiken?
- Is de focusindicator altijd zichtbaar?
- Is de tabvolgorde logisch?
- Kun je alle functies (formulieren, modale vensters, vervolgkeuzemenu's) zonder muis gebruiken?
- Druk op Shift+Tab om achteruit te navigeren
Korte controle
Welke CSS-eigenschap mag je voor toetsenbordtoegankelijkheid nooit bij alle elementen verwijderen?
Samenvatting: toetsenbordnavigatie
Essentiële regels voor toetsenbordtoegankelijkheid:
- Alle interactieve elementen moeten met Tab bereikbaar zijn
- DOM-volgorde = tabvolgorde — laat deze overeenkomen met de visuele indeling
- Verwijder nooit focusomtrekken — gebruik
:focus-visiblevoor aangepaste stijlen - Met overslaankoppelingen kun je herhaalde navigatie overslaan
- Gebruik een focusval in modale vensters en geef de focus terug wanneer ze sluiten
- Test je website door alleen het toetsenbord te gebruiken
Leer HTML met een AI-tutor — gratis
Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.
- Cursussen
- 40
- Lessen
- 159
Veelgestelde vragen
Is de les “Navigatie met het toetsenbord en focusvolgorde” gratis?
Ja — je kunt hier op het web alle 3 lessen van het leerpad HTML Academy, waaronder “Navigatie met het toetsenbord en focusvolgorde”, gratis volledig lezen. Daarna ontgrendelt CoddyKit PRO alle lessen, plus interactieve oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. De cursus HTML Academy bevat in totaal 4 lessen.
Wat leer ik in “Navigatie met het toetsenbord en focusvolgorde”?
Zorg dat alle functies logisch bereikbaar zijn via het toetsenbord Je oefent met HTML Academy door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.
Heb ik ervaring nodig om met HTML Academy te beginnen?
Ervaring vooraf is niet nodig. HTML Academy op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 4 van 4.
Hoe lang duurt de les “Navigatie met het toetsenbord en focusvolgorde”?
De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.
Kan ik code schrijven en uitvoeren in deze les over HTML Academy?
Ja. Elke les over HTML Academy bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.
Alle lessen in deze cursus
- Waarom toegankelijkheid belangrijk is: WCAG-niveaus
- Kophiërarchie voor schermlezers
- Alternatieve tekst voor afbeeldingen: wanneer en hoe
- Navigatie met het toetsenbord en focusvolgorde