Popis obrázku: Vzorky barev a tabulka barev vedle smartphonu, na kterém jsou zobrazeny barevné varianty.
Přehledná vizualizace dat
Přístupná vizualizace dat
Komplexní průvodce pro vývojáře k tvorbě grafů, dashboardů a infografik, které jsou vnímatelné, ovladatelné, srozumitelné a odolné – v plném souladu s WCAG 2.2 AA.
Vizualizace dat patří k nejúčinnějším nástrojům v arzenálu moderního vývojáře – a zároveň je jedním z nejčastěji nedostupných. Graf, který vypadá krásně pro vidoucí uživatele s normálním barevným viděním, může být zcela nečitelný pro uživatele čtečky obrazovky, osobu s deuteranopií nebo někoho, kdo se pohybuje po stránce výhradně pomocí klávesnice. Nejedná se o ojedinělý okrajový případ: přibližně 1 z 12 mužů a 1 ze 200 žen trpí nějakou formou poruchy barevného vidění (údaje o prevalenci vycházejí především ze studií populace v severní Evropě; míry se liší podle populace). Podle WHO žije přibližně 16 % světové populace – zhruba 1,3 miliardy lidí – s nějakou formou postižení.
A ta dobrá zpráva? Přístupnost vizualizace dat je z velké části technický problém s dobře známými řešeními. Tato příručka vás provede všemi jednotlivými úrovněmi – od barevného kontrastu a sémantického značkování až po vzory ARIA, navigaci pomocí klávesnice a alternativy datových tabulek –, aby vaše grafy a řídicí panely byly přístupné pro všechny.
“
jednu neshodu s WCAG (WebAIM 2024)
Lidé s nějakým druhem zdravotního postižení na celém světě — přibližně 16 % (WHO)
spotřebitelů se zdravotním postižením (Velká Británie/USA)
1. WCAG 2.2 pro vizualizaci dat: Základy
WCAG 2.2 rozděluje požadavky do čtyř principů – vnímatelnost, ovladatelnost, srozumitelnost a odolnost (POUR). Každé selhání vizualizace dat lze vysledovat až k porušení jednoho nebo více z těchto principů. Následující tabulka přiřazuje nejdůležitější kritéria úspěšnosti pro grafy k jednotlivým principům na úrovni AA.
| Kritérium | Úroveň | Co to znamená pro grafy | Častá porucha | Priorita |
|---|---|---|---|---|
| 1.1.1 Obsah, který není textem | A | Každý graf musí mít textovou alternativu nebo odpovídající datovou tabulku | SVG/canvas bez aria-label nebo title |
Kritický |
| 1.3.1 Informace a vztahy | A | Struktura vyjádřená vizuálně musí být programově určitelná | Legendy bez sémantické vazby na datové řady | Kritický |
| 1.3.3 Senzorické vlastnosti | A | Pokyny se nesmí opírat pouze o barvu nebo tvar | „Červené pruhy představují chyby“ v popiscích grafu | Kritický |
| 1.4.1 Použití barev | A | Barva nemůže být jediným vizuálním prostředkem k předávání informací | Čárové grafy s rozlišením jednotlivých řad pouze pomocí barev | Kritický |
| 1.4.3 Kontrast (minimální) | AA | Text v grafech nebo na grafech musí splňovat poměr 4,5:1 (3:1 u velkého textu) | Popisky os nebo popisky nástrojů na pozadí s nízkým kontrastem | Vysoká |
| 1.4.11 Kontrast prvků jiných než textových | AA | Komponenty uživatelského rozhraní a grafické prvky musí mít kontrast 3:1 vůči sousední barvě | Světle šedé datové body na bílém pozadí | Vysoká |
| 2.1.1 Klávesnice | A | Všechny funkce grafů jsou dostupné pomocí klávesnice | Popisky, které se zobrazí pouze při najetí myší | Kritický |
| 2.4.3 Pořadí zaostření | A | Kurzor se pohybuje po prvcích grafu v logickém pořadí | Prvky SVG v DOM se neshodují s vizuálním pořadím | Vysoká |
| 2.4.7 Zvýraznit viditelné | AA | Prvek grafu, na kterém je právě aktivní fokus, musí mít viditelný indikátor fokusu | Výchozí osnova potlačena pomocí outline: none |
Vysoká |
| 4.1.2 Název, role, hodnota | A | Vlastní grafické widgety musí pro asistivní technologie zpřístupňovat název, funkci a stav | Vlastní přepínací filtry bez stavu ARIA | Kritický |
WCAG 2.2 vs. 2.1
WCAG 2.2 zavádí 9 nových kritérií splnění, ruší kritérium 4.1.1 „Parsing“ (v moderních prohlížečích již zastaralé) a přesouvá požadavek na viditelnost fokusu z kritéria 2.4.7 na přísnější kritérium 2.4.11. Největší dopad na grafy mají kritéria 2.4.11 Focus Appearance (vylepšené požadavky na velikost a kontrast indikátoru fokusu) a 2.5.3 Label in Name (které ovlivňuje popisky ikonových tlačítek na ovládacích prvcích grafů). Shoda s úrovní AA vyžaduje splnění všech kritérií A a AA. Pro ověření aktuálních kritérií vždy nahlédněte do oficiální specifikace W3C.
2. Barva: Více než jen červená a zelená
Barva je nejčastěji zmiňovaným problémem v oblasti přístupnosti při vizualizaci dat. Řešením není vyhýbat se barvám – jde o to nikdy se nespoléhat pouze na barvy. Přístupnost barev v grafech má tři úrovně: výběr palety, kontrastní poměry a redundantní kódování.
2.1 Palety vhodné pro osoby s poruchou barevného vidění
Nejnebezpečnější barevnou dvojicí ve vizualizaci dat je kombinace červené a zelené – tuto kombinaci nedokáže rozlišit přibližně 8 % mužské populace. Následující paleta patří mezi nejčastěji uváděné možnosti vhodné pro osoby s barevnou slepotou ve výzkumu vizualizace dat a je navržena tak, aby byla rozlišitelná u deuteranopie, protanopie i tritanopie – konkrétní barevné kombinace by však měly být i tak ověřeny pomocí simulátoru barevné slepoty v kontextu konkrétního grafu.
Doporučeno: Paleta Okabe-Ito (obecně považovaná za vhodnou pro osoby s barevnou slepotou; kombinace si ověřte ve svém konkrétním kontextu)
Příklady kontrastu – vypočítané podle vzorce pro relativní jas podle WCAG
2.2 Redundantní kódování
Nejúčinnější technikou pro zajištění přístupnosti grafů je redundantní kódování: tj. sdělování stejných informací současně prostřednictvím více vizuálních kanálů. Nikdy se nespoléhejte pouze na barvu – doplňte ji alespoň jedním z následujících prvků: tvarem, vzorem, polohou, popiskem nebo strukturou.
Čistě barevný sloupcový graf
Tři řady, které se liší pouze odstínem (červená/zelená/modrá). Pro osoby s deuteranopií nerozeznatelné. Žádné popisky u řádků. Popisky se zobrazují pouze při najetí myší.
Kódování barev a vzorů
Tyto tři linky mají stejnou barvu i odlišné vzory čárek (plná / přerušovaná / tečkovaná). Každá linka je na konečné stanici přímo označena. Značky mají různé tvary (kruh / čtverec / trojúhelník).
Redundantní kódování + alternativní text + tabulka
Barva + vzor + tvar + přímé popisky + komplexní aria-label + skrytý souhrnný odstavec + tabulka s odkazy. Funguje pro všechny uživatele a ve všech situacích.
Pastí panelů se stavovými údaji
Indikátory stavu ve formě semaforu (červená/oranžová/zelená) patří k nejčastějším problémům s přístupností v podnikových řídicích panelech. Vždy je doplňujte ikonou nebo textovým popiskem: aria-label="Status: Error" a viditelný text nebo symbol. Nikdy nepoužívejte k vyjádření stavu systému pouze barvu.
3. Sémantické značkování a ARIA pro grafy
Grafy vykreslené ve formátu SVG nebo <canvas> jsou často pro asistenční technologie nepřístupné,
pokud se o to výslovně neusiluje. SVG může odhalit sémantiku, je-li kód správně napsán; <canvas>,
jako bitmapová plocha, nemá vůbec žádný vlastní model přístupnosti. V každém případě však smysluplná
přístupnost vyžaduje promyšlenou strategii značkování. Zde je přehled přístupů,
od nejjednoduššího po nejkomplexnější.
3.1 Přístupnost formátu SVG
Při správném použití disponuje formát SVG vlastní sémantikou přístupnosti. Plně přístupný graf ve formátu SVG vyžaduje
<title>, <desc>a odpovídající role u nejvnějšího prvku.
<!-- 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 Grafy v aplikaci Canvas
<canvas> se vykreslí jako bitmapa — má ne vlastní sémantika přístupnosti.
Vzor přístupného plátna využívá záložní podstrom DOM uvnitř prvku `canvas`,
který místo toho čtou asistenční technologie.
<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
Plugin pro komunitu chartjs-plugin-a11y automaticky generuje přístupné náhradní tabulky a popisy ARIA z datových objektů Chart.js. Týmům, které již Chart.js používají, to ušetří značné množství rutinní práce.
4. Navigace pomocí klávesnice a správa fokusu
Přístupnost grafů pomocí klávesnice znamená tři věci: možnost ovládat všechny interaktivní prvky pomocí klávesnice, ovládat tyto prvky bez myši a získávat stejné informace (popisky, přiblížení, filtry) jako uživatelé myši.
4.1 Vzor s posuvným tabindexem
U grafů s velkým počtem datových bodů (např. bodový graf s 200 body) vede zařazení každého bodu do
pořadí tabulačních kláves k nepoužitelné aplikaci. Použijte pohyblivý tabindex vzor: v sekvenci tabulatorů se nachází vždy
pouze jeden bod (tabindex="0"); šipkami se pohybujete mezi
prvky v rámci skupiny grafů.
// 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 Klíčové ukazatele
WCAG 2.2 zavádí přísnější požadavky na indikátor fokusu prostřednictvím požadavku 2.4.11 Vzhled fokusu (AA). Indikátor musí mít plochu odpovídající alespoň obvodu komponenty bez fokusu násobené 2 CSS pixely, přičemž kontrastní poměr mezi stavem s fokusem a stavem bez fokusu musí být alespoň 3:1.
/* 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. Vzory pro čtečky obrazovky
Navrhovat pro čtečky obrazovky znamená přizpůsobit data , která jsou ze své podstaty prostorová a vizuální , pro lineární zvukový zážitek. Klíčovým poznatkem je, že graf nepřevádíte – ale píšete popis toho, co graf sděluje.
5.1 Jak psát dobré popisky k grafům
Dobrý popis grafu se skládá ze tří částí:
- Typ a účel: „Sloupcový graf znázorňující čtvrtletní tržby za fiskální rok 2025.“
- Hlavní zjištění: „Třetí čtvrtletí bylo nejúspěšnější s obratem 4,2 milionu liber, což představuje nárůst o 28 % oproti druhému čtvrtletí.“
- Významné výjimky nebo souvislosti: „Pokles v prvním čtvrtletí byl způsoben narušením dodavatelského řetězce v lednu.“
Obecný alternativní text
alt="chart"alt="bar chart"alt="revenue dashboard"
Tyto nesplňují požadavek 1.1.1. Identifikují kontejner, nikoli obsah.
Popisný alternativní text
„Sloupcový graf znázorňující měsíční tržby za období leden–červen 2025. Nejvyšší hodnota byla zaznamenána v červnu (89,5 tis. USD), nejnižší v lednu (42 tis. USD).“
Pro jednoduché grafy dostačující. Chybí však popis trendů.
Vyprávěno v kontextu
„Sloupcový graf: Počet aktivních uživatelů za měsíc, leden–červen 2025. Každý měsíc dochází k trvalému růstu. Počet aktivních uživatelů za měsíc (MAU) se zdvojnásobil ze 42 000 (leden) na 89 500 (červen). Zlomový bod v březnu se časově shoduje se spuštěním verze 2.0.“
5.2 Živé oblasti pro dynamické grafy
Pokud se data v grafech aktualizují v reálném čase (analytické panely, monitorovací nástroje), použijte živé oblasti ARIA k oznámení změn, aniž by došlo k narušení aktuální pozice, na které uživatel právě čte.
<!-- 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. Tabulky s dostupnými daty jako náhradní řešení
Každý graf by měl mít k dispozici přístupnou datovou tabulku – buď viditelnou, nebo zobrazitelnou pomocí rozbalovacího prvku. Nejde pouze o požadavek na přístupnost, ale také o správnou informační architekturu. Tabulky umožňují uživatelům vyhledat konkrétní hodnoty, které grafy často zakrývají.
6.1 Osvědčené postupy pro značkování tabulek
| Požadavek | Realizace | Dopad | Úsilí |
|---|---|---|---|
| Popisek / název | <caption> prvek nebo aria-labelledby |
Čtečky obrazovky nejprve přečtou účel tabulky a teprve poté její obsah | Nízká |
| Záhlaví sloupců | <th scope="col"> pro každý sloupec |
Vztahy mezi buňkami jsou správně vyznačeny | Nízká |
| Záhlaví řádků | <th scope="row"> pro první sloupec, pokud to dává smysl |
Uživatelé mohou procházet řádky, aniž by ztratili přehled o kontextu | Nízká |
| Složité záhlaví | id + headers atributy sloučených buněk |
Víceúrovňové záhlaví se v NVDA/JAWS načtou správně | Střední |
| Shrnutí | <caption> nebo předchozí odstavec s hlavním sdělením |
Uživatelé se mohou rozhodnout, zda si prohlédnou celou tabulku | Nízká |
| Sloupce, které lze třídit | aria-sort="ascending|descending|none" na <th> |
Aktuální stav třídění oznámen čtečce obrazovky | Střední |
| Přetečení / posouvání | Zabalit do role="region" s tabindex="0" a aria-label |
Oblasti, které lze posouvat a ovládat pomocí klávesnice | Nízká |
| Prázdné buňky | Použití — nebo výslovně „Žádná data“ – nikdy nenechávejte prázdné |
Zabraňuje vzniku matoucích pauz ve výstupu čtečky obrazovky | Nízká |
7. Porovnání typů grafů: Kompromisy v oblasti přístupnosti
Ne všechny typy grafů jsou ihned po instalaci stejně přístupné. Následující tabulka hodnotí každý běžný typ z hlediska čtyř aspektů přístupnosti a uvádí doporučená řešení pro obtížné případy.
| Typ grafu | Čtečka obrazovky | Barvoslepý | Klávesnice | Slabozrakost | Klíčová opatření ke zmírnění dopadů |
|---|---|---|---|---|---|
| Sloupec / Tabulka | Dobré | Dobré | Dobré | Dobré | Přímé popisky, datová tabulka |
| Čárový graf | Veletrh | Chudý | Veletrh | Veletrh | Vzory čar + značky + popisky |
| Koláč / Kobliha | Chudý | Chudý | Veletrh | Chudý | Pokud je to možné, nahraďte sloupcovým grafem; procenta vždy označte |
| Bodový graf | Chudý | Veletrh | Chudý | Chudý | Pohyblivý index; přehled skupin; datová tabulka |
| Teplotní mapa | Chudý | Chudý | Veletrh | Chudý | Sekvenční jednobarevná paleta; popisky hodnot buněk; tabulka |
| Plošný graf | Veletrh | Veletrh | Veletrh | Veletrh | Nevykládejte více než 3 řady na sebe; používejte vzory |
| Měřidlo / Radiální | Chudý | Veletrh | Chudý | Chudý | Číselnou hodnotu uveďte na viditelném místě; aria-value: now/min/max |
| Tabulka + mini graf | Dobré | Dobré | Dobré | Dobré | Nejvhodnější výchozí nastavení pro řídicí panely s velkým počtem metrik |
Doporučení ohledně výsečového grafu
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.
Ukázka přístupného grafu
Následující sloupcový graf využívá vzory popsané v této příručce. Na každý sloupec lze přesunout fokus klávesnicí a každý má vlastní aria-labela graf obsahuje viditelnou náhradní datovou tabulku.
Zobrazit podkladová data v tabulce
| Typ grafu | Míra přijetí | Meziroční změna | Nejžádanější chybějící funkce |
|---|---|---|---|
| Tabulky s údaji | 82% | +11 bodů | Seřadit oznámení státu |
| Sloupcové grafy | 71% | +9 bodů | Navigace mezi lištami pomocí klávesnice |
| Čárové grafy | 54% | +6 bodů | Redundantní kódování (bez rozlišení barev) |
| Plošné grafy | 43% | +4 body | Vzory výplně pro vrstvené oblasti |
| Bodové grafy | 31% | +2 body | Pohyblivý tabindex / navigace pomocí kurzoru |
| Výsečové grafy | 23% | +1 bod | Označování segmentů pomocí procent |
8. Kalkulátor dopadu: Odhad počtu vyloučených uživatelů
Jedním z nejúčinnějších způsobů, jak v organizaci získat podporu pro práci v oblasti přístupnosti, je kvantifikovat počet dotčených uživatelů. Pomocí níže uvedené kalkulačky odhadněte, kolik uživatelů je v současné době vyloučeno z důvodu běžných nedostatků v přístupnosti grafů.
🧮 Kalkulátor dopadu na přístupnost
Zadejte své analytické údaje, abyste odhadli, kolik uživatelů vaše současné implementace grafů možná nezachytí.
9. Testování vaší implementace
Žádný automatizovaný nástroj nedokáže odhalit všechny problémy s přístupností – výzkumy naznačují, že automatizované nástroje odhalí pouze 30–40 % neshod s WCAG. Komplexní testovací strategie kombinuje automatizované skenování, ruční testování a uživatelské testování s využitím asistenčních technologií.
9.1 Testovací nástroje
| Nástroj | Typ | Nejvhodnější pro | Náklady | Týká se to konkrétního grafu? |
|---|---|---|---|---|
| axe DevTools | Rozšíření pro prohlížeč | Automatická kontrola dodržování WCAG, ověření ARIA | Základní / Pro | Částečný |
| NVDA + Firefox | Čtečka obrazovky (Windows) | Praktické zkušenosti s asistivními technologiemi, testování v reálném prostředí | Zdarma | Ano |
| VoiceOver + Safari | Čtečka obrazovky (macOS/iOS) | Ekosystém Apple; přístupnost SVG | Zdarma | Ano |
| Analyzátor barevného kontrastu | Aplikace pro stolní počítače | Kontrola kontrastu pixel po pixelu v jakémkoli uživatelském rozhraní | Zdarma | Ano |
| Coblis / Sim Daltonismus | Simulátor barev | Náhled grafů u 8 typů poruch barevného vidění | Zdarma | Ano |
| Navigace pouze pomocí klávesnice | Návod k použití | Pořadí tabulatorů, detekce pastí na fokus, dynamický index tabulatorů | Zdarma | Ano |
| Pa11y CI | Integrace CLI a CI | Automatizované testování přístupnosti v rámci procesních řetězců | Zdarma | Částečný |
| WAVE | Rozšíření pro prohlížeč | Vizuální znázornění problémů podle WCAG; užitečné pro popisky | Zdarma | Částečný |
9.2 Doporučený postup testování
10. Kontrolní seznam pro implementaci
Tento kontrolní seznam použijte při zavádění jakéhokoli nového grafu, řídicího panelu nebo funkce pro vizualizaci dat. Všechny položky označené jako WCAG AA jsou v mnoha jurisdikcích nezbytné pro dodržení zákonných požadavků (EN 301 549 v EU, Section 508 v USA).
Vnímatelný
-
Graf má významný
alt,aria-labelnebo<title>/<desc>kombinace – nejen „graf“ (WCAG 1.1.1) - Barva nikdy není jediným prostředkem k zakódování informací — vzor, tvar nebo přímý popisek používaný redundantně (WCAG 1.4.1)
- Veškerý text v grafech a na grafech splňuje poměr kontrastu 4,5:1 (3:1 pro velikost 18 bodů a více nebo tučné písmo o velikosti 14 bodů a více) (WCAG 1.4.3)
- Grafické prvky (sloupce, čáry, datové body) splňují požadavek na kontrast 3:1 vůči sousednímu pozadí (WCAG 1.4.11)
- Struktura a vztahy v grafech jsou programově určitelné (použity role ARIA) (WCAG 1.3.1)
- Graf se při 200% zvětšení přizpůsobí / posouvá bez ztráty obsahu nebo funkčnosti (WCAG 1.4.10)
Funkční
- Všechny interaktivní prvky grafu jsou dostupné a ovladatelné pouze pomocí klávesnice (WCAG 2.1.1)
- Grafy s mnoha body používají pohyblivý tabindex — ne stovky po sobě jdoucích tabulátorů
- Indikátor zaostření je viditelný a splňuje požadavky na velikost a kontrast podle bodu 2.4.11 (WCAG 2.4.7 / 2.4.11)
- Nápovědy/vyskakovací okna lze zavřít klávesou Escape a nejsou spouštěna pouze myší (WCAG 1.4.13)
- Žádná past na zaostření v rámci komponenty grafu, pokud to není záměrné (modální překrytí)
Pochopitelné
- Názvy grafů a popisky os jsou psány srozumitelným jazykem — bez nevysvětlených zkratek
- Stavy chyb a stavu mají explicitní text/ikonu — ne pouze barvu (WCAG 1.3.3)
-
Ovládací prvky pro filtrování a řazení mají viditelné popisky s
aria-labelnebo související<label>
Robustní
- Vlastní widgety grafů zpřístupňují název, roli a hodnotu pro asistivní technologie prostřednictvím platného ARIA (WCAG 4.1.2)
- Pro každý netriviální graf (viditelný nebo skrytý) je k dispozici náhradní datová tabulka
-
Využití dynamických aktualizací
aria-liveregiony nebo cílené řízení, podle potřeby - HTML je validní (žádné duplicitní ID, žádné neplatné kombinace rolí/vlastností ARIA)
- Před vydáním testováno s NVDA + Firefox a VoiceOver + Safari
„Přístupnost není funkce, kterou přidáte až na konci projektu – je to kvalitativní vlastnost, kterou je třeba zabudovat již při prvních rozhodnutích o návrhu. V případě vizualizace dat to znamená, že otázka nikdy nezní ‚jak zajistíme, aby byl tento graf přístupný?‘, ale ‚jaký je nejpřístupnější způsob, jak tato data sdělit?‘“ — AIOPSGROUP Engineering Practice