HTML Academy · Les

Navigatie met het toetsenbord en focusvolgorde

Zorg dat alle functies logisch bereikbaar zijn via het toetsenbord

Les 4 van 413 stappen

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 DOM
  • tabindex="-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:

  1. Leg je muis weg en gebruik alleen het toetsenbord
  2. Druk op Tab — kun je elk interactief element bereiken?
  3. Is de focusindicator altijd zichtbaar?
  4. Is de tabvolgorde logisch?
  5. Kun je alle functies (formulieren, modale vensters, vervolgkeuzemenu's) zonder muis gebruiken?
  6. 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-visible voor 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
Gratis beginnen

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

  1. Waarom toegankelijkheid belangrijk is: WCAG-niveaus
  2. Kophiërarchie voor schermlezers
  3. Alternatieve tekst voor afbeeldingen: wanneer en hoe
  4. Navigatie met het toetsenbord en focusvolgorde
← Terug naar HTML Academy