Offerte audit
Typ iets om te zoeken...

Wcag uitgelegd

Custom component waarvan de focus is vergeten

Custom component waarvan de focus is vergeten — WCAG 2.4.7 Focus zichtbaar (post 6/7)

Een zelfgebouwde tabcomponent. Mooie styling. Hover-effecten. Transities.

Tab ernaartoe. Geen focusindicator. De developer heeft border: none en outline: none in de component-CSS gezet om de standaardstyling te verwijderen. En is vergeten een :focus-visible toe te voegen.

/* Niet doen: styling verwijderen zonder alternatief */
.tab {
  border: none;
  outline: none;
  background: transparent;
  padding: 8px 16px;
}

/* Wel doen: eigen focusstijl toevoegen */
.tab {
  border: none;
  background: transparent;
  padding: 8px 16px;
}

.tab:focus-visible {
  outline: 2px solid #0066CC;
  outline-offset: 2px;
  border-radius: 4px;
}

Waar ik dit het vaakst tegenkom:

  • Tabs en tabpanelen
  • Accordions
  • Dropdown-menu’s
  • Custom checkboxen en radiobuttons
  • Kaartcomponenten met klikbare elementen
  • Datepickers

Elke keer dat een developer outline: none schrijft, moet in dezelfde stylesheet een :focus-visible staan. Geen uitzondering.

Tip: voeg een globale focus-stijl toe aan je project en overschrijf die alleen als het echt nodig is:

:focus-visible {
  outline: 2px solid #0066CC;
  outline-offset: 2px;
}

Dan heeft elk element standaard een zichtbare focus. En vergeet je het nooit meer.

Zelf verder met dit onderwerp

Related Posts

JavaScript dat de focus actief verwijdert

JavaScript dat de focus actief verwijdert

element.addEventListener("focus", function() { this.blur(); }); Een element krijgt focus. JavaScript verwijdert de focus direct. Het element heeft een fractie van een seconde focus gehad. De gebruiker merkt niets.

Cookiebanner die pas na 30 tabs bereikbaar is

Cookiebanner die pas na 30 tabs bereikbaar is

Een cookiebanner onderaan het scherm. “Wij gebruiken cookies.” Twee knoppen: Accepteren en Weigeren.

outline: none, de meest destructieve regel in CSS

outline: none, de meest destructieve regel in CSS

*:focus { outline: none; } Eén regel. En elke toetsenbordgebruiker op je website navigeert blind.

WhatsApp ons (opent WhatsApp in een nieuw tabblad)