Typ iets om te zoeken...

Wcag uitgelegd

Grafiek die onbegrijpelijk wordt voorgelezen

Grafiek die onbegrijpelijk wordt voorgelezen — WCAG 1.3.2 Betekenisvolle volgorde (post 6/9)

Een mooie staafgrafiek. Omzet per kwartaal. Vier balken. Duidelijke labels.

Een schermlezer leest: “100. 250. 180. 320. Q1. Q2. Q3. Q4. Omzet in duizenden euro’s.”

Eerst alle getallen. Dan alle labels. Dan de titel. In die volgorde. Want dat is hoe de SVG-elementen in de code staan.

Welk getal hoort bij welk kwartaal? Geen idee.

SVG-grafieken worden voorgelezen in codevolgorde. En die volgorde is zelden logisch voor een luisteraar. De developer bouwt de grafiek van achteren naar voren, of van onder naar boven, afhankelijk van het coordinatensysteem.

De oplossing is niet om de SVG te herstructureren. Bij complexe grafieken werkt dat niet.

De oplossing: bied een tekstueel alternatief. Een tabel met dezelfde data.

<!-- Grafiek voor visuele gebruikers -->
<figure>
  <svg aria-hidden="true">
    <!-- grafiek -->
  </svg>
  <figcaption>Omzet per kwartaal in 2025</figcaption>
</figure>

<!-- Tabel als alternatief -->
<table>
  <caption>Omzet per kwartaal in 2025 (x €1.000)</caption>
  <tr><th>Kwartaal</th><th>Omzet</th></tr>
  <tr><td>Q1</td><td>100</td></tr>
  <tr><td>Q2</td><td>250</td></tr>
  <tr><td>Q3</td><td>180</td></tr>
  <tr><td>Q4</td><td>320</td></tr>
</table>

De aria-hidden="true" op de SVG voorkomt dat de schermlezer de onlogische SVG-volgorde voorleest. De tabel geeft dezelfde informatie in een logische structuur.

Geldt ook voor: taartdiagrammen, lijngrafieken, dashboards en kaarten.

Zelf verder met dit onderwerp

Related Posts

CSS order die de logica verbreekt

CSS order die de logica verbreekt

Stap 1: Maak een account. Stap 2: Kies een template. Stap 3: Publiceer.

Single-page app die de titel niet bijwerkt

Single-page app die de titel niet bijwerkt

Je navigeert van de homepage naar de contactpagina. De content verandert. De URL verandert. Het tabblad? Staat nog steeds “Home - Webshop.”

Tabel nagebouwd met divs

Tabel nagebouwd met divs

Maandag. Dinsdag. Woensdag. Donderdag. Vrijdag. 09:00 - 17:00. 09:00 - 17:00. 09:00 - 17:00. 09:00 - 17:00. 09:00 - 13:00.