Afbeeldingsbeschrijving: Kleurstalen en een kleurenpalet naast een smartphone waarop kleuropties worden weergegeven.
Toegankelijke datavisualisatie
Toegankelijke datavisualisatie
Een complete handleiding voor ontwikkelaars voor het maken van grafieken, dashboards en infographics die waarneembaar, bedienbaar, begrijpelijk en robuust zijn — volledig in overeenstemming met WCAG 2.2 AA.
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.
'
één WCAG-fout (WebAIM 2024)
mensen een handicap — ca. 16% (WHO)
, 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.
| 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)
Voorbeelden van contrast — Berekend met behulp van de WCAG-formule voor relatieve luminantie
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.
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.
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).
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.
<!-- 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.
<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.
// 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.
/* 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:
- Type en doel: „Staafdiagram met de kwartaalomzet voor het boekjaar 2025.”
- Belangrijkste bevinding: „Het derde kwartaal was met 4,2 miljoen pond het sterkste kwartaal, een stijging van 28% ten opzichte van het tweede kwartaal.”
- Opmerkelijke uitzonderingen of context: „De terugval in het eerste kwartaal wordt toegeschreven aan verstoringen in de toeleveringsketen in januari.”
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.
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.
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.
<!-- 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
| 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 — 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.
| 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.
Bekijk de onderliggende gegevens in tabelvorm
| Grafiektype | Adoptiegraad | Verandering ten opzichte van vorig jaar | Belangrijkste ontbrekende functie |
|---|---|---|---|
| Gegevenstabellen | 82% | +11 blz. | Overheidsmededelingen sorteren |
| Staafdiagrammen | 71% | +9 pp | Navigeren met het toetsenbord tussen de balken |
| Lijngrafieken | 54% | +6 blz. | Overbodige codering (geen kleuronderscheid) |
| Vlakdiagrammen | 43% | +4 pp | Vulpatronen voor gestapelde gebieden |
| Spreidingsdiagrammen | 31% | +2 pp | Dynamische tabindex / puntnavigatie |
| Cirkeldiagrammen | 23% | +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.
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
| 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
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-labelof 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-liveregio’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