Typ iets om te zoeken...

Wcag uitgelegd

Dialoogvenster krijgt geen focus bij openen

Dialoogvenster krijgt geen focus bij openen. WCAG 2.4.3 Focusvolgorde (post 2/11)

Een popup verschijnt. “Wil je cookies accepteren?”

Je drukt op Tab. En je zit in het navigatiemenu. Achter de popup. De focus is niet naar het dialoogvenster verplaatst.

Je kunt de popup zien. Maar niet bedienen. Niet zonder tientallen keren op Tab te drukken tot je toevallig bij de knoppen in de popup aankomt.

Dit is een van de meest frustrerende toetsenbordproblemen. Het venster is er. De knoppen zijn er. Maar de focus is ergens anders.

// Niet doen: popup tonen zonder focus te verplaatsen
function openDialog() {
  dialog.style.display = "block";
  // Focus blijft waar die was
}

// Wel doen: focus naar het dialoogvenster
function openDialog() {
  dialog.style.display = "block";
  dialog.querySelector("button, [href], input")?.focus();
}

Of gebruik het <dialog>-element:

<dialog id="mijnDialog">
  <h2>Cookies</h2>
  <button>Accepteren</button>
  <button>Weigeren</button>
</dialog>
document.getElementById("mijnDialog").showModal();
// Focus gaat automatisch naar het dialoogvenster

showModal() doet het zware werk: focus verplaatsen, focus trap, Escape om te sluiten. Allemaal gratis.

Geldt voor: cookiebanners, bevestigingspopups, lightboxes, mobiele menu’s, videoplayers in een overlay, formulieren in een modal.

Zelf verder met dit onderwerp

Related Posts

Alle pagina's hebben dezelfde titel

Alle pagina's hebben dezelfde titel

Vijf tabbladen open. Allemaal van dezelfde website. Allemaal met dezelfde titel: “Gemeente Utrecht.”

Negatieve outline-offset die de focus verbergt

Negatieve outline-offset die de focus verbergt

Een link met een donkere achtergrond. De focusindicator is er, een zwarte outline van 2 pixels. Maar outline-offset: -4px duwt die outline naar binnen. Onder de achtergrondkleur.

Content verdwijnt door overflow hidden

Content verdwijnt door overflow hidden

Je zoomt in op een webpagina. De tekst wordt groter. En dan, halverwege een zin, houdt de tekst op. Alsof iemand de rest heeft afgeknipt.