Wcag uitgelegd

Hover-content zonder focus-equivalent

Hover-content zonder focus-equivalent — WCAG 2.1.1 Toetsenbord (post 5/9)

Hover over het producticoon. Een popup verschijnt met specificaties, prijs en een “Bekijk product”-link.

Tab naar het producticoon. Niets. Geen popup. Geen specificaties. Geen link.

Die “Bekijk product”-link bestaat alleen in een wereld met een muis.

Dit is een probleem dat ik vooral zie bij:

  • Productkaarten in webshops (hover voor details)
  • Navigatiemenu’s (hover om submenu te openen)
  • Afbeeldingsgalerijen (hover voor zoom of caption)
  • Dashboards (hover voor datapunt-details)

Het probleem zit meestal in de CSS:

/* Alleen hover — toetsenbord ziet dit niet */
.kaart:hover .details { display: block; }

De fix — voeg focus-within toe:

.kaart:hover .details,
.kaart:focus-within .details {
  display: block;
}

focus-within is de sleutel. Het activeert de stijl als een element binnen de kaart focus heeft. Dus als iemand tabt naar de “Bekijk product”-link in de popup, blijft de popup zichtbaar.

Maar: als de popup niet-interactieve content bevat (alleen tekst), moet je het element zelf focusbaar maken:

<div class="kaart" tabindex="0">
  <img src="product.jpg" alt="Rode sneakers">
  <div class="details">
    <p>Maat 36-45. Vanaf 89 euro.</p>
  </div>
</div>

Test elke interactie op je website: als het werkt met hover, moet het ook werken met focus.

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.

Klikbare div in plaats van een button

Klikbare div in plaats van een button

Een div met een onclick. Ziet eruit als een knop. Doet iets als je erop klikt.

Navigatiemenu verdwijnt bij inzoomen

Navigatiemenu verdwijnt bij inzoomen

Home. Over ons. Diensten. Projecten. Contact. Vijf links op een rij. Op een breed scherm prima. Bij 400% zoom? Dan past “Contact” niet meer. Die link valt buiten het scherm. Zonder scrollbar. Zonder hamburgermenu.