Focus is de actieve toestand van een interactief element (bijv. een knop, link of formulierveld) dat op dat moment input van het toetsenbord of een hulpmiddel zoals een schermlezer ontvangt. De gebruiker kan door de interface navigeren met de Tab-toets (vooruit), Shift+Tab (achteruit) en pijltjestoetsen, terwijl de browser aangeeft welk element in focus staat met een visuele indicator (de zogeheten focusring).
Definitie en gedrag
- Focus bepaalt waar toetsenbordacties terechtkomen (bijv. typen in een invoerveld, Enter om een knop te activeren).
- Hover is muisover; active is de toestand tijdens een klik of toetsactivatie. Deze verschillen functioneel van focus.
- Besturingssystemen en browsers leveren standaard een focusindicator. Deze mag vormgegeven worden, maar mag niet ontbreken.
Technische implementatie
- CSS: pseudo-klassen
:focus,:focus-visibleen:focus-withinmaken het mogelijk om focusstijlen consistent te tonen. Gebruik:focus-visibleom focusindicatoren primair voor toetsenbordgebruikers te tonen. - JavaScript: verplaats de focus waar nodig met
element.focus()(optioneel met{ preventScroll: true }). Beheer focus bij dynamische content, modals en routewissels. - Tabindex:
tabindex="0"maakt een element focusbaar in de natuurlijke tabvolgorde;tabindex="-1"maakt een element programmatisch focusbaar (maar niet via Tab); positieve waarden (>0) verstoren de natuurlijke volgorde en worden afgeraden. - Indicatoren: verwijder nooit de focusring zonder een duidelijk, contrastrijk alternatief. Zorg voor voldoende contrast en zichtbaarheid in alle toestanden.
Toegankelijkheid en WCAG
Correct focusbeheer is essentieel voor gebruikers die geen muis gebruiken en voor schermlezers. Relevante succescriteria uit WCAG (2.1/2.2) zijn o.a.:
- 2.1.1 Keyboard: alle functionaliteit is met het toetsenbord te bedienen.
- 2.4.3 Focus Order: de focusvolgorde is logisch en intuïtief.
- 2.4.7 Focus Visible: de focusindicator is zichtbaar.
- 2.4.11 Focus Appearance (2.2): minimale zichtbaarheidseisen voor focusindicatoren.
Veelgemaakte fouten
- Focusring verwijderen (bijv.
outline: none) zonder alternatief: dit breekt toegankelijkheid. - Onlogische tabvolgorde door misbruik van positieve
tabindexof door visuele herordening (CSS) zonder semantische correctie. - Geen focusbeheer bij modals, off-canvas navigatie of SPA-routewissels, waardoor gebruikers de context kwijtraken of vastlopen.
- Custom componenten zonder juiste semantiek (bijv. een
divdie op een knop lijkt, maar niet focusbaar is).
