Datavisualisatie is een van de krachtigste hulpmiddelen in de toolkit van de moderne ontwikkelaar — en tegelijkertijd een van de minst toegankelijke. Een grafiek die er prachtig uitziet voor ziende gebruikers met een normaal kleurenzicht, kan volkomen onbegrijpelijk zijn voor een gebruiker van een schermlezer, iemand met deuteranopie, of iemand die volledig met het toetsenbord navigeert. Dat is geen niche-uitzondering: ongeveer 1 op de 12 mannen en 1 op de 200 vrouwen heeft een vorm van kleurenblindheid (prevalentiecijfers gebaseerd voornamelijk op Noord-Europese bevolkingsonderzoeken; percentages variëren per bevolkingsgroep). Volgens de WHO leeft ongeveer 16% van de wereldbevolking — ruwweg 1,3 miljard mensen — met een of andere vorm van beperking.

Het goede nieuws? Toegankelijkheid bij datavisualisatie is grotendeels een technisch vraagstuk met bekende oplossingen. Deze gids leidt je door alle aspecten – van kleurcontrast en semantische opmaak tot ARIA-patronen, toetsenbordnavigatie en alternatieven voor gegevenstabellen – zodat je grafieken en dashboards voor iedereen toegankelijk zijn.

1:12 Mannen met een kleurenzienstoornis van het type '
'
95,9% Van de homepages heeft ten minste
één WCAG-fout (WebAIM 2024)
1,3 miljard Wereldwijd hebben
mensen een handicap — ca. 16% (WHO)
6,9 biljoen dollar Jaarlijks besteedbaar inkomen van gehandicapte consumenten (
, VK/VS)

1. WCAG 2.2 voor datavisualisatie: de basisprincipes

WCAG 2.2 is opgebouwd rond vier principes: waarneembaar, bedienbaar, begrijpelijk en robuust (POUR). Elke tekortkoming in de datavisualisatie is terug te voeren op een schending van een of meer van deze principes. In de volgende tabel worden de meest voor grafieken relevante succescriteria op niveau AA aan elk principe gekoppeld.

De succescriteria van WCAG 2.2 die het meest relevant zijn voor datavisualisatie
Criterium Niveau Wat dit betekent voor grafieken Veelvoorkomende storing Prioriteit
1.1.1 Niet-tekstuele inhoud A Elke grafiek moet voorzien zijn van een tekstalternatief of een bijbehorende tabel SVG/canvas zonder aria-label of title Kritisch
1.3.1 Informatie en relaties A De visueel weergegeven structuur moet programmatisch te bepalen zijn Legenda’s zonder semantische koppeling aan gegevensreeksen Kritisch
1.3.3 Zintuiglijke kenmerken A Instructies mogen niet uitsluitend op kleur of vorm zijn gebaseerd "De rode balken geven fouten aan" in de toelichting bij de grafiek Kritisch
1.4.1 Gebruik van kleur A Kleur kan niet het enige visuele middel zijn om informatie over te brengen Lijngrafieken waarbij reeksen alleen door kleur worden onderscheiden Kritisch
1.4.3 Contrast (minimaal) AA Tekst in/op grafieken moet voldoen aan een verhouding van 4,5:1 (3:1 voor grote tekst) Aslabels of tooltips op achtergronden met een laag contrast Hoog
1.4.11 Contrast van niet-tekstuele elementen AA UI-componenten en grafische elementen moeten een contrastverhouding van 3:1 hebben ten opzichte van de aangrenzende kleur Lichtgrijze gegevenspunten op een witte achtergrond Hoog
2.1.1 Toetsenbord A Alle grafiekfuncties zijn via het toetsenbord te bedienen Tooltips die alleen zichtbaar worden als je er met de muis overheen gaat Kritisch
2.4.3 Focusvolgorde A De focus beweegt zich in een logische volgorde door de onderdelen van de grafiek SVG-elementen in de DOM-volgorde komen niet overeen met de visuele volgorde Hoog
2.4.7 Focus zichtbaar AA Het grafiekelement waarop de focus momenteel ligt, moet een zichtbare focusindicator hebben Standaardoverzicht verborgen met outline: none Hoog
4.1.2 Naam, rol, waarde A Aangepaste grafiekwidgets moeten naam, rol en status aan AT bekendmaken Aangepaste schakelbare filters zonder ARIA-status Kritisch

WCAG 2.2 versus 2.1

WCAG 2.2 introduceert 9 nieuwe succescriteria, schrapt SC 4.1.1 Parsing (overbodig geworden in moderne browsers) en verhoogt de eis inzake zichtbare focus van 2.4.7 naar de strengere 2.4.11. Het meest van invloed op grafieken zijn 2.4.11 Focus Appearance (verbeterde vereisten voor de grootte en het contrast van de focusindicator) en 2.5.3 Label in Name (wat van invloed is op tooltips van pictogramknoppen op grafiekbesturingselementen). Conformiteit met niveau AA vereist dat aan alle A- en AA-criteria wordt voldaan. Raadpleeg altijd de officiële W3C-specificatie om de huidige criteria te verifiëren.


2. Kleur: meer dan alleen rood en groen

Kleur is het meest genoemde probleem op het gebied van toegankelijkheid bij datavisualisatie. De oplossing is niet om kleur te vermijden, maar om nooit uitsluitend op kleur te vertrouwen. De toegankelijkheid van kleur in grafieken bestaat uit drie aspecten: de keuze van het kleurenpalet, contrastverhoudingen en redundante codering.

2.1 Kleurenblindenvriendelijke kleurenpaletten

De gevaarlijkste kleurencombinatie bij datavisualisatie is rood en groen — een combinatie die ongeveer 8% van de mannelijke bevolking niet kan onderscheiden. Het volgende kleurenpalet behoort tot de meest genoemde kleurenblindvriendelijke opties in onderzoek naar datavisualisatie en is zo ontworpen dat de kleuren goed te onderscheiden zijn bij deuteranopie, protanopie en tritanopie — hoewel specifieke kleurencombinaties nog steeds moeten worden getest met een kleurenblindheidssimulator voor de specifieke context van uw grafiek.

Aanbevolen: Okabe-Ito-palet (algemeen beschouwd als geschikt voor mensen met kleurenblindheid; controleer de combinaties in uw specifieke context)

Oranje #9D6401
Hemelsblauw #56B4E9
Blauwgroen #009E73
Geel #F0E442
Blauw #0072B2
Vermiljoen #D55E00
Roodpaars #CC79A7
Zwart #000000

Voorbeelden van contrast — Berekend met behulp van de WCAG-formule voor relatieve luminantie

Blauw #0072B2 op wit
5,28:1
✓✓ AA-pas (overschrijdt de drempel)
Vermiljoen #D55E00 op wit
4,07:1
⚠ Voldoet alleen aan de AA-norm voor grote tekst en de gebruikersinterface (drempelwaarde 3:1) — voldoet niet aan de norm voor normale hoofdtekst (drempelwaarde 4,5:1)
Oranje #E69F00 op zwart
6,89:1
✓✓ AAA-pas
Geel #F0E442 op zwart
13.15:1
✓✓ AAA-pas
⚠ Rood #ff4444 op wit
3,04:1
✗ AA Mislukt
⚠ Groen #00cc00 op wit
2,52:1
✗ AA Mislukt

2.2 Redundante codering

De meest effectieve toegankelijkheidstechniek voor grafieken is redundante codering: het gelijktijdig overbrengen van dezelfde informatie via meerdere visuele kanalen. Vertrouw nooit alleen op kleur — combineer deze met ten minste één van de volgende elementen: vorm, patroon, positie, label of textuur.

Niet toegankelijk

Lijngrafiek met alleen kleuren

Drie reeksen die alleen in kleur verschillen (rood/groen/blauw). Niet te onderscheiden bij deuteranopie. Geen labels op de lijnen. Tooltip verschijnt alleen bij het aanwijzen met de muis.

Toegankelijk

Kleur- en patroencodering

Dezelfde drie lijnen hebben dezelfde kleur EN verschillende streepjespatronen (doorlopend / gestreept / gestippeld). Elke lijn is direct bij het eindpunt voorzien van een aanduiding. De markeringen hebben verschillende vormen (cirkel / vierkant / driehoek).

Beste praktijken

Dubbele codering + alt-tekst + tabel

Kleur + patroon + vorm + directe labels + uitgebreid aria-label + verborgen samenvattende alinea + gekoppelde gegevenstabel. Werkt voor alle gebruikers en in alle situaties.

Valkuil van statusdashboards

Statusindicatoren in de vorm van verkeerslichten (rood/oranje/groen) behoren tot de meest voorkomende tekortkomingen op het gebied van toegankelijkheid in bedrijfsdashboards. Combineer ze altijd met een pictogram of tekstlabel: aria-label="Status: Error" en een zichtbare tekst of een zichtbaar symbool. Gebruik nooit alleen kleur om de systeemstatus aan te geven.


3. Semantische opmaak en ARIA voor grafieken

Grafieken weergegeven in SVG of <canvas> zijn vaak niet toegankelijk voor ondersteunende technologie zonder dat daar bewust moeite voor wordt gedaan. SVG kan de semantiek blootleggen wanneer correct opgesteld; <canvas>, heeft als bitmapoppervlak helemaal geen ingebouwd toegankelijkheidsmodel. Hoe dan ook, voor zinvolle toegankelijkheid is een weloverwogen opmaakstrategie nodig. Hier volgt een overzicht van de verschillende benaderingen, van de eenvoudigste tot de meest uitgebreide.

3.1 Toegankelijkheid van SVG

SVG beschikt over ingebouwde toegankelijkheidssemantiek wanneer het correct wordt gebruikt. Een volledig toegankelijke SVG-grafiek vereist <title>, <desc>, en de juiste rollen bij het buitenste element.

HTML / SVG
<!-- Accessible SVG bar chart shell -->
<svg
  role="img"
  aria-labelledby="chart-title chart-desc"
  viewBox="0 0 600 400"
  xmlns="http://www.w3.org/2000/svg">

  <!-- Screen readers read title + desc as the alt text -->
  <title id="chart-title">Monthly active users, Jan–Jun 2025</title>
  <desc id="chart-desc">
    Bar chart showing MAU growth from 42,000 in January to
    89,500 in June 2025. Peak month: June. Lowest: January.
  </desc>

  <!-- Each data bar is individually focusable -->
  <g role="list" aria-label="Monthly data bars">
    <g role="listitem">
      <rect
        tabindex="0"
        role="img"
        aria-label="January: 42,000 monthly active users"
        x="40" y="200" width="60" height="168"
        fill="#0072B2"
        aria-describedby="jan-tooltip"
      />
      <text id="jan-tooltip" class="sr-only">
        January 2025, 42,000 users, 112% of Q4 average
      </text>
    </g>
    <!-- Repeat for each data point -->
  </g>
</svg>

<!-- Always provide a visible data table fallback -->
<details>
  <summary>View data as table</summary>
  <!-- Full table here -->
</details>

3.2 Canvas-grafieken

<canvas> wordt weergegeven als een bitmap — het heeft nee inherente toegankelijkheidssemantiek. Het toegankelijke canvas-patroon maakt gebruik van een reserve-DOM-subboom binnen het canvas-element die ondersteunende technologieën in plaats daarvan lezen.

HTML
<canvas
  id="revenue-chart"
  width="800"
  height="400"
  aria-label="Revenue by region, Q1 2025"
  role="img">

  <!-- Fallback: AT reads this when canvas is unsupported -->
  <p>
    Q1 2025 Revenue by Region: EMEA £2.4M (38%),
    Americas £2.1M (33%), APAC £1.8M (29%).
    EMEA leads for third consecutive quarter.
  </p>
  <table>
    <!-- Full data table -->
  </table>
</canvas>

<!-- For Chart.js: use the accessibility plugin -->
<script>
new Chart(ctx, {
  plugins: [{
    id: 'a11y',
    afterRender(chart) {
      // Rebuild live ARIA region from chart data
      const liveRegion = document.getElementById('chart-live');
      liveRegion.textContent = buildSummary(chart.data);
    }
  }]
});
</script>

Chart.js + chartjs-plugin-a11y

De community-plug-in chartjs-plugin-a11y genereert automatisch toegankelijke fallback-tabellen en ARIA-beschrijvingen op basis van Chart.js-gegevensobjecten. Dit bespaart teams die al met Chart.js werken veel standaardcode.


4. Toetsenbordnavigatie en focusbeheer

Toegankelijkheid via het toetsenbord in grafieken houdt drie dingen in: elk interactief element met het toetsenbord kunnen bereiken, die elementen zonder muis kunnen bedienen en dezelfde informatie (tooltips, zoomfuncties, filters) ontvangen als gebruikers die de muis gebruiken.

4.1 Het roving-tabindex-patroon

Bij grafieken met veel gegevenspunten (bijvoorbeeld een spreidingsdiagram met 200 punten) leidt het opnemen van elk punt in de tabvolgorde tot een ongebruiksvriendelijke ervaring. Gebruik de variabele tabindex patroon: er is slechts één punt tegelijk in de tab-reeks (tabindex="0"); met de pijltjestoetsen verplaats je de focus binnen de grafiekgroep.

JavaScript
// Roving tabindex for interactive chart data points
class AccessibleChart {
  constructor(containerEl) {
    this.points = [...containerEl.querySelectorAll('[data-point]')];
    this.currentIndex = 0;
    this.init();
  }

  init() {
    // Set initial roving tabindex
    this.points.forEach((pt, i) => {
      pt.setAttribute('tabindex', i === 0 ? '0' : '-1');
      pt.addEventListener('keydown', (e) => this.handleKey(e, i));
    });
  }

  handleKey(e, idx) {
    const { key } = e;
    let next = idx;

    if (key === 'ArrowRight' || key === 'ArrowDown')
      next = Math.min(idx + 1, this.points.length - 1);
    else if (key === 'ArrowLeft' || key === 'ArrowUp')
      next = Math.max(idx - 1, 0);
    else if (key === 'Home') next = 0;
    else if (key === 'End')  next = this.points.length - 1;
    else return;

    e.preventDefault();
    this.points[idx].setAttribute('tabindex', '-1');
    this.points[next].setAttribute('tabindex', '0');
    this.points[next].focus();

    // Show tooltip programmatically
    this.showTooltip(this.points[next]);
  }
}

4.2 Focusindicatoren

WCAG 2.2 stelt strengere eisen aan focusindicatoren via 2.4.11 Focus Weergave (AA). De indicator moet een oppervlakte hebben die ten minste gelijk is aan de omtrek van het component zonder focus × 2 CSS-pixels, met een contrastverhouding van ten minste 3:1 tussen de toestand met focus en de toestand zonder focus.

CSS
/* WCAG 2.2 AA compliant focus indicator for data points */
[data-point]:focus-visible {
  /* 2px offset, 3px ring = clearly visible at any size */
  outline: 3px solid #005fcc;
  outline-offset: 3px;

  /* Additional contrast boost for AAA */
  box-shadow: 0 0 0 5px rgba(0, 95, 204, 0.2);
}

/* Respect user preference */
@media (forced-colors: active) {
  [data-point]:focus-visible {
    outline-color: Highlight;
    outline-width: 3px;
  }
}

5. Patronen voor schermlezers

Ontwerpen voor schermlezers betekent ontwerpen voor een lineaire, auditieve beleving van gegevens die van nature ruimtelijk en visueel zijn. Het belangrijkste inzicht is dat je de grafiek niet omzet, maar een beschrijving schrijft van wat de grafiek weergeeft.

5.1 Goede grafiekbeschrijvingen schrijven

Een goede grafiekbeschrijving bestaat uit drie delen:

  1. Type en doel: „Staafdiagram met de kwartaalomzet voor het boekjaar 2025.”
  2. Belangrijkste bevinding: „Het derde kwartaal was met 4,2 miljoen pond het sterkste kwartaal, een stijging van 28% ten opzichte van het tweede kwartaal.”
  3. Opmerkelijke uitzonderingen of context: „De terugval in het eerste kwartaal wordt toegeschreven aan verstoringen in de toeleveringsketen in januari.”
Onvoldoende

Algemene alt-tekst

alt="chart"
alt="bar chart"
alt="revenue dashboard"

Deze voldoen niet aan 1.1.1. Ze identificeren de container, niet de inhoud.

Aanvaardbaar

Beschrijvende alt-tekst

“Staafdiagram met de maandelijkse omzet van januari tot en met juni 2025. Juni is het hoogst met 89,5 duizend dollar. Januari is het laagst met 42 duizend dollar.”

Voldoende voor eenvoudige grafieken. Er ontbreekt een toelichting op de trend.

Beste praktijken

Verteld in de juiste context

“Staafdiagram: Maandelijks actieve gebruikers, jan.–jun. 2025. Gelijkmatige groei elke maand. Het aantal MAU is verdubbeld van 42.000 (jan.) naar 89.500 (jun.). Het omslagpunt in maart valt samen met de lancering van versie 2.0.”

5.2 Live-regio’s voor dynamische grafieken

Wanneer grafiekgegevens in realtime worden bijgewerkt (analysedashboards, monitoringtools), gebruik dan ARIA-live regions om wijzigingen aan te kondigen zonder de huidige leespositie van de gebruiker te verstoren.

HTML + JavaScript
<!-- Polite live region: announces after current speech -->
<div
  id="chart-status"
  role="status"
  aria-live="polite"
  aria-atomic="true"
  class="sr-only">
</div>

<!-- Assertive region: interrupts for critical alerts only -->
<div
  id="chart-alert"
  role="alert"
  aria-live="assertive"
  class="sr-only">
</div>

<script>
// When data updates, push a human-readable summary
function announceChartUpdate(newData, isAlert = false) {
  const id = isAlert ? 'chart-alert' : 'chart-status';
  const el = document.getElementById(id);

  // Clear then set: forces screen readers to re-read
  el.textContent = '';
  requestAnimationFrame(() => {
    el.textContent = buildSummary(newData);
  });
}
</script>

6. Toegankelijke gegevenstabellen als alternatief

Elke grafiek zou vergezeld moeten gaan van een toegankelijke tabel – die ofwel direct zichtbaar is, ofwel kan worden weergegeven via een uitklapmenu. Dit is niet alleen een vereiste voor toegankelijkheid; het is ook een goede informatiearchitectuur. Met tabellen kunnen gebruikers specifieke waarden vinden die in grafieken vaak verborgen blijven.

6.1 Aanbevolen werkwijzen voor het opmaken van tabellen

Checklist voor het implementeren van toegankelijke gegevenstabellen
Vereiste Implementatie Gevolgen Inspanning
Bijschrift / titel <caption> element of aria-labelledby Schermlezers lezen het doel van de tabel voor, nog voordat de inhoud wordt voorgelezen Laag
Kolomkoppen <th scope="col"> voor elke kolom Celrelaties correct weergegeven Laag
Rijkopteksten <th scope="row"> voor de eerste kolom, indien van toepassing Gebruikers kunnen per rij navigeren zonder de context te verliezen Laag
Samengestelde kopteksten id + headers eigenschappen voor samengevoegde cellen Kopteksten met meerdere niveaus worden correct weergegeven in NVDA/JAWS Medium
Samenvatting <caption> of de vorige alinea met de belangrijkste conclusie Gebruikers kunnen zelf kiezen of ze de volledige tabel willen bekijken Laag
Sorteerbare kolommen aria-sort="ascending|descending|none" op <th> De huidige sorteerstatus wordt aan de schermlezer doorgegeven Medium
Overloop / scrollen Inpakken role="region" met tabindex="0" en aria-label Scrollbare gebieden die met het toetsenbord bereikbaar zijn Laag
Lege cellen Gebruik &mdash; of expliciet „Geen gegevens“ — laat dit veld nooit leeg Voorkomt verwarrende stiltes in de uitvoer van schermlezers Laag

7. Vergelijking van grafiektypen: afwegingen op het gebied van toegankelijkheid

Niet alle grafiektypen zijn standaard even toegankelijk. In de onderstaande matrix wordt elk gangbaar type beoordeeld op vier aspecten van toegankelijkheid, met aanbevolen oplossingen voor moeilijke gevallen.

Toegankelijkheidsmatrix voor grafiektypen
Grafiektype Schermlezer Kleurenblind Toetsenbord Slechtziendheid Belangrijkste risicobeperkende maatregelen
Balk / Kolom Goed Goed Goed Goed Directe labels, gegevenstabel
Lijngrafiek Eerlijk Armoede Eerlijk Eerlijk Streepjespatronen + markeringen + labels
Taart / Donut Armoede Armoede Eerlijk Armoede Gebruik waar mogelijk een staafdiagram; vermeld altijd de percentages
Spreidingsdiagram Armoede Eerlijk Armoede Armoede Dynamische tabindex; overzicht van clusters; gegevenstabel
Warmtekaart Armoede Armoede Eerlijk Armoede Opeenvolgend palet met één kleur; celwaarde-labels; tabel
Vlakdiagram Eerlijk Eerlijk Eerlijk Eerlijk Stapel niet meer dan drie series op elkaar; gebruik patronen
Meter / Radiaal Armoede Eerlijk Armoede Armoede Vermeld de numerieke waarde duidelijk; aria-valuenow/min/max
Tabel + Sparkline Goed Goed Goed Goed De beste standaardinstelling voor dashboards met veel statistieken

Aanbeveling voor cirkeldiagram

Pie charts are the hardest chart type to make accessible and often communicate less information than a sorted bar chart. Unless a specific use case requires part-to-whole relationships (and <5 segments), prefer bar charts. This is both an accessibility and a data communication recommendation.


Demo van een toegankelijke grafiek

De volgende staafdiagram geeft de patronen weer die in deze handleiding worden beschreven. Elke staaf kan via het toetsenbord worden geselecteerd en heeft een eigen aria-label, en de grafiek bevat een zichtbare alternatieve gegevenstabel.

Gebruiksgraad van toegankelijkheidsfuncties per grafiektype — enquête onder ontwikkelaars 2025
Gegevenstabellen
Staafdiagrammen
Lijngrafieken
Vlakdiagrammen
Spreidingsdiagrammen
Cirkeldiagrammen
Bekijk de onderliggende gegevens in tabelvorm
Gebruik van toegankelijkheidsfuncties per grafiektype, enquête onder ontwikkelaars 2025 (n=1.842)
Grafiektype Adoptiegraad Verandering ten opzichte van vorig jaar Belangrijkste ontbrekende functie
Gegevenstabellen82%+11 blz.Overheidsmededelingen sorteren
Staafdiagrammen71%+9 ppNavigeren met het toetsenbord tussen de balken
Lijngrafieken54%+6 blz.Overbodige codering (geen kleuronderscheid)
Vlakdiagrammen43%+4 ppVulpatronen voor gestapelde gebieden
Spreidingsdiagrammen31%+2 ppDynamische tabindex / puntnavigatie
Cirkeldiagrammen23%+1 pag.Segmenten labelen met percentages

8. Impactcalculator: een schatting maken van uw uitgesloten doelgroep

Een van de meest effectieve manieren om binnen de organisatie draagvlak te creëren voor toegankelijkheidswerk is door de omvang van de getroffen doelgroep in kaart te brengen. Gebruik de onderstaande calculator om een schatting te maken van het aantal gebruikers dat momenteel wordt uitgesloten door veelvoorkomende tekortkomingen in de toegankelijkheid van grafieken.

🧮 Berekeningsmodule voor de impact op de toegankelijkheid

Voer uw analysegegevens in om een schatting te maken van het aantal gebruikers dat mogelijk niet goed wordt bediend door uw huidige grafiekimplementaties.

Het gemiddelde aantal gebruikers dat maandelijks de hitlijsten bekijkt

9. Je implementatie testen

Geen enkel geautomatiseerd hulpmiddel kan alle toegankelijkheidsproblemen opsporen — uit onderzoek blijkt dat geautomatiseerde hulpmiddelen slechts 30–40% van de WCAG-fouten opsporen. Een complete teststrategie combineert geautomatiseerde scans, handmatige tests en gebruikerstests met ondersteunende technologie.

9.1 Testtoolchain

Aanbevolen testtools voor de toegankelijkheid van datavisualisatie
Hulpmiddel Type Het meest geschikt voor Kosten Specifiek voor de grafiek?
DevTools sluiten Browser-extensie Geautomatiseerde WCAG-controle, ARIA-validatie Gratis / Pro Gedeeltelijk
NVDA + Firefox Schermlezer (Windows) Praktijkervaring met assistieve technologie, testen in de praktijk Gratis Ja
VoiceOver + Safari Schermlezer (macOS/iOS) Het Apple-ecosysteem; Toegankelijkheid van SVG Gratis Ja
Kleurcontrastanalysator Desktop-app Contrastcontrole pixel voor pixel op elke gebruikersinterface Gratis Ja
Coblis / Sim Daltonisme Kleursimulator Voorbeeldgrafieken voor 8 soorten kleurenblindheid Gratis Ja
Navigatie uitsluitend via het toetsenbord Handleiding Tabvolgorde, detectie van focusvallen, dynamische tabindex Gratis Ja
Pa11y CI CLI/CI-integratie Geautomatiseerde regressietests voor toegankelijkheid in pijplijnen Gratis Gedeeltelijk
WAVE Browser-extensie Visuele weergave van WCAG-problemen; handig voor labels Gratis Gedeeltelijk

9.2 Aanbevolen testvolgorde

Stap 01
Geautomatiseerde scan
Voer DevTools uit op alle pagina’s die grafieken bevatten. Los eerst alle automatische fouten op — dit zijn de gemakkelijke verbeteringen die veel effect opleveren.
Stap 02
Simulatie van kleurenblindheid
Bekijk elke grafiek via Coblis of Sim Daltonism. Zoek naar coderingen die uitsluitend op tint zijn gebaseerd.
Stap 03
Navigatie uitsluitend via het toetsenbord
Koppel je muis los. Navigeer door alle grafieken met alleen de Tab-toets, Shift+Tab, de pijltjestoetsen, Enter en de spatiebalk. Heb je toegang tot alle gegevenspunten en bedieningselementen?
Stap 04
Testen met schermlezers
Gebruik NVDA + Firefox en VoiceOver + Safari. Ga naar elke grafiek – geeft de beschrijving een duidelijk beeld? Worden tooltips voorgelezen? Zijn live-updates hoorbaar?
Stap 05
200% zoomtest
Zoom de browser uit tot 200%. Grafieken moeten zich aanpassen of kunnen worden gescrolld zonder dat er informatie verloren gaat. Controleer of het contrast op alle zoomniveaus behouden blijft.
Stap 06
Gebruikerstests met gebruikers van assistieve technologie
Zoek 3 tot 5 mensen die dagelijks gebruikmaken van schermlezers of andere ondersteunende technologie. Door middel van taakgerichte tests komen problemen aan het licht die geen enkele geautomatiseerde tool kan opsporen.

10. Checklist voor de implementatie

Gebruik deze checklist bij het uitbrengen van een nieuwe grafiek, dashboard of functie voor datavisualisatie. Alle punten gemarkeerd met WCAG AA zijn in veel rechtsgebieden verplicht om aan de wettelijke voorschriften te voldoen (EN 301 549 in de EU, Section 508 in de VS).

Waarneembaar

  • De grafiek geeft een duidelijk beeld alt, aria-label, of <title>/<desc> combinatie — niet alleen ‘grafiek’ (WCAG 1.1.1)
  • Kleur is nooit het enige middel om informatie weer te geven — gebruik patronen, vormen of directe labels als alternatief (WCAG 1.4.1)
  • Alle tekst in/op grafieken voldoet aan een contrastverhouding van 4,5:1 (3:1 voor 18 pt of meer of vetgedrukte 14 pt of meer) (WCAG 1.4.3)
  • Grafische elementen (balken, lijnen, gegevenspunten) hebben een contrast van 3:1 ten opzichte van de aangrenzende achtergrond (WCAG 1.4.11)
  • De structuur en relaties in grafieken zijn programmatisch vast te stellen (ARIA-rollen toegepast) (WCAG 1.3.1)
  • De grafiek wordt opnieuw weergegeven/scrolt bij een zoomfactor van 200% zonder verlies van inhoud of functionaliteit (WCAG 1.4.10)

Bedienbaar

  • Alle interactieve grafiekelementen zijn uitsluitend met het toetsenbord bereikbaar en bedienbaar (WCAG 2.1.1)
  • Grafieken met veel punten maken gebruik van een variabele tabindex — geen honderden opeenvolgende tabstops
  • De focusindicator is zichtbaar en voldoet aan de vereisten voor grootte en contrast van 2.4.11 (WCAG 2.4.7 / 2.4.11)
  • Tooltips/pop-ups die met de Escape-toets kunnen worden gesloten en niet uitsluitend met de muis worden geactiveerd (WCAG 1.4.13)
  • Geen focusvalkuil binnen het grafiekcomponent, tenzij dit opzettelijk is (modale overlay)

Begrijpelijk

  • De titel van de grafiek en de aslabels zijn in gewone taal geschreven — geen onverklaarde afkortingen
  • Fout- en statusmeldingen hebben expliciete tekst/pictogrammen — niet alleen kleur (WCAG 1.3.3)
  • De bedieningselementen voor filteren en sorteren zijn voorzien van zichtbare labels met aria-label of daarmee verband houdend <label>

Robuust

  • Aangepaste grafiekwidgets maken naam, rol en waarde bekend aan AT via geldige ARIA (WCAG 4.1.2)
  • Voor elke niet-triviale grafiek (zichtbaar of via uitklapmenu) is een alternatieve gegevenstabel beschikbaar
  • Gebruik van dynamische updates aria-live regio’s of, indien van toepassing, het focusmanagement
  • HTML is geldig (geen dubbele ID's, geen ongeldige combinaties van ARIA-rollen en -eigenschappen)
  • Getest met NVDA + Firefox en VoiceOver + Safari vóór de release
“Toegankelijkheid is geen functie die je pas aan het einde van een project toevoegt — het is een kwaliteitskenmerk dat al vanaf de eerste ontwerpbeslissing moet worden ingebouwd. Voor datavisualisatie betekent dit dat de vraag nooit is: ‘hoe maken we deze grafiek toegankelijk?’, maar ‘wat is de meest toegankelijke manier om deze gegevens over te brengen?’” — AIOPSGROUP Engineering Practice