Typ iets om te zoeken...

Wcag uitgelegd

Uitklapbare content op de verkeerde plek

Uitklapbare content op de verkeerde plek — WCAG 1.3.2 Betekenisvolle volgorde (post 7/9)

Je klikt op “Veelgestelde vragen”. Een accordion opent. Het antwoord verschijnt.

Maar waar verschijnt het?

Als het antwoord direct onder de knop staat in de HTML: perfect. De schermlezer leest de knop, dan het antwoord.

Als het antwoord ergens anders in de HTML staat — bijvoorbeeld helemaal onderaan de pagina, omdat het makkelijker was om te programmeren — dan leest de schermlezer het antwoord op een totaal onverwacht moment.

Dit speelt bij:

  • Accordions waar de panelen los staan van de knoppen
  • Tabs waar de content ver van de tablijst staat
  • Tooltips die als los element onderaan de body worden ingevoegd
  • Dropdownmenu’s die in een apart element worden gerenderd

De regel: content die verschijnt na interactie, staat direct na het element dat de interactie triggert.

<!-- Goed: content direct na de knop -->
<div class="accordion">
  <h3>
    <button aria-expanded="true" aria-controls="paneel-1">
      Veelgestelde vragen
    </button>
  </h3>
  <div id="paneel-1">
    <p>Het antwoord staat direct na de knop.</p>
  </div>
</div>

Waar het vaak misgaat: JavaScript-frameworks die dynamische content in een “portal” renderen — een apart element buiten de oorspronkelijke component. React portals, Vue teleport, Angular CDK overlay. Ze plaatsen de content aan het einde van de <body>. Visueel op de juiste plek, in de DOM ver weg.

Voor modals en dialoogvensters is dat prima (die nemen toch het hele scherm over). Voor tooltips, dropdowns en accordions niet.

Zelf verder met dit onderwerp

Related Posts

Metadata boven de kop van een artikel

Metadata boven de kop van een artikel

“15 maart 2026. Workshops.” Dat hoort een schermlezergebruiker. En dan: stilte. Want het volgende element is de kop van het artikel eronder.

Doorgestreepte prijzen

Doorgestreepte prijzen

49,99 doorgestreept, 29,99 ernaast. Je ziet direct: korting. Maar een schermlezer leest: “49 euro 99. 29 euro 99.” Geen “oude prijs”, geen “nieuwe prijs”, geen context.

Kolommen waarvan de inhoud door elkaar loopt

Kolommen waarvan de inhoud door elkaar loopt

Twee projecten naast elkaar. Links een afbeelding, rechts een afbeelding. Daaronder links een beschrijving, rechts een beschrijving.