Graphiques et visualisations de données accessibles : Guide complet
En Bref : L'essentiel à retenir
- Chaque graphique doit avoir une alternative textuelle décrivant le type de graphique, les données présentées et la conclusion principale.
- La couleur ne doit jamais être le seul moyen de distinguer les données : utilisez des motifs, formes ou étiquettes en complément.
- Les graphiques interactifs doivent être entièrement navigables au clavier avec des états de focus visibles.
- Une table de données en complément du graphique améliore l'accessibilité tout en offrant une vue détaillée aux utilisateurs.
Les graphiques et visualisations de données posent un défi majeur d'accessibilité : comment rendre compréhensibles des informations essentiellement visuelles pour les utilisateurs qui ne peuvent pas les voir ? Ce guide présente les techniques pour créer des data visualizations accessibles conformes au RGAA et aux WCAG.
Les enjeux d'accessibilité des graphiques
Les visualisations de données combinent plusieurs difficultés :
- Dépendance visuelle : L'information est encodée dans la forme, la couleur, la position
- Complexité : Un graphique peut contenir des centaines de points de données
- Interactivité : Les graphiques modernes incluent souvent des interactions au survol
- Technologies : SVG, Canvas, librairies JavaScript ont chacun leurs contraintes
[!NOTE] Le critère RGAA 1.1 exige une alternative textuelle pour tout contenu non textuel porteur d'information, y compris les graphiques et diagrammes.
Alternatives textuelles pour les graphiques
Structure d'une bonne description
Une description de graphique efficace suit généralement cette structure :
- Type de graphique : "Diagramme en barres", "Graphique linéaire"
- Sujet et période : "Évolution du chiffre d'affaires de 2020 à 2025"
- Tendance ou conclusion principale : "Le CA a doublé, passant de 1M à 2M d'euros"
- Lien vers les données complètes : Référence au tableau de données
Exemple concret
<figure>
<img
src="/graphiques/ca-evolution.png"
alt="Graphique linéaire montrant l'évolution du chiffre d'affaires.
De 2020 à 2025, le CA est passé de 1 million à 2 millions d'euros,
avec une croissance accélérée à partir de 2023."
>
<figcaption>
Évolution du chiffre d'affaires 2020-2025.
<a href="#tableau-ca">Voir les données détaillées</a>
</figcaption>
</figure>
Pour les graphiques SVG
Les SVG offrent plus de possibilités mais nécessitent une structure sémantique :
<svg role="img" aria-labelledby="titre-graph desc-graph">
<title id="titre-graph">Répartition des ventes par région</title>
<desc id="desc-graph">
Diagramme circulaire : Ile-de-France 45%, Sud-Est 25%,
Ouest 20%, Nord 10%.
</desc>
<!-- éléments graphiques -->
</svg>
La couleur ne suffit pas
Le critère WCAG 1.4.1 (utilisation de la couleur) et le critère RGAA 3.2 interdisent l'usage de la couleur comme seul moyen de transmettre une information.
Problème classique
Un graphique avec des barres rouges, bleues et vertes où la légende indique seulement "Ventes France (rouge), Ventes Allemagne (bleu), Ventes Espagne (vert)" est inaccessible aux personnes daltoniennes.
Solutions
1. Motifs et textures
.bar-france {
background: #e74c3c;
background-image: repeating-linear-gradient(
45deg,
transparent,
transparent 5px,
rgba(255,255,255,0.3) 5px,
rgba(255,255,255,0.3) 10px
);
}
.bar-allemagne {
background: #3498db;
/* Motif différent : points */
background-image: radial-gradient(
circle,
rgba(255,255,255,0.3) 2px,
transparent 2px
);
}
2. Étiquettes directes
Placez les labels directement sur ou à côté des éléments du graphique :
<div class="bar" style="height: 75%">
<span class="bar-label">France: 75%</span>
</div>
3. Formes distinctives
Pour les graphiques en nuage de points ou linéaires, utilisez des marqueurs de formes différentes (cercle, carré, triangle).
[!TIP] Testez votre graphique en niveaux de gris ou avec un simulateur de daltonisme pour vérifier que l'information reste compréhensible.
Contraste des éléments graphiques
Exigences WCAG
- Texte dans les graphiques : Ratio minimum de 4.5:1 (ou 3:1 pour le texte agrandi)
- éléments graphiques essentiels : Ratio minimum de 3:1 avec les éléments adjacents
Application pratique
Les barres, lignes et portions de camembert doivent avoir un contraste suffisant avec l'arrière-plan ET entre elles quand elles sont adjacentes.
/* Mauvais : contraste insuffisant */
.bar { background: #e0e0e0; } /* sur fond blanc */
/* Bon : contraste adéquat */
.bar { background: #666666; } /* Ratio 6:1 avec blanc */
Utilisez notre vérificateur de contraste pour valider vos choix de couleurs.
Accessibilité des graphiques interactifs
Navigation clavier obligatoire
Tout élément interactif du graphique doit être accessible au clavier (critère WCAG 2.1.1) :
// Rendre chaque barre focusable
bars.forEach(bar => {
bar.setAttribute('tabindex', '0');
bar.setAttribute('role', 'img');
bar.setAttribute('aria-label', `${bar.dataset.label}: ${bar.dataset.value}`);
bar.addEventListener('keydown', (e) => {
if (e.key === 'Enter' || e.key === ' ') {
showTooltip(bar);
}
});
});
Annonces pour lecteurs d'écran
Utilisez aria-live pour annoncer les changements dynamiques :
<div aria-live="polite" class="sr-only" id="graph-announcer">
<!-- Mise à jour dynamique -->
</div>
function onBarFocus(bar) {
const announcer = document.getElementById('graph-announcer');
announcer.textContent = `${bar.dataset.label}: ${bar.dataset.value}`;
}
Focus visible
Chaque élément focusable doit avoir un indicateur de focus clairement visible :
.bar:focus {
outline: 3px solid #005fcc;
outline-offset: 2px;
}
.bar:focus-visible {
outline: 3px solid #005fcc;
outline-offset: 2px;
}
La table de données : complement indispensable
Pourquoi inclure une table
Une table de données offre plusieurs avantages :
- Accessibilité : Les lecteurs d'écran interprètent parfaitement les tableaux HTML
- Précision : Accès aux valeurs exactes, pas aux approximations visuelles
- Export : Les utilisateurs peuvent copier les données facilement
Implémentation
<figure>
<div role="img" aria-describedby="desc-graph">
<!-- Graphique SVG ou Canvas -->
</div>
<figcaption>
<p id="desc-graph">Graphique linéaire des ventes mensuelles 2025</p>
<details>
<summary>Afficher les données sous forme de tableau</summary>
<table>
<caption>Ventes mensuelles 2025 (en milliers d'euros)</caption>
<thead>
<tr>
<th scope="col">Mois</th>
<th scope="col">Ventes</th>
</tr>
</thead>
<tbody>
<tr>
<th scope="row">Janvier</th>
<td>125</td>
</tr>
<!-- ... -->
</tbody>
</table>
</details>
</figcaption>
</figure>
[!NOTE] L'élément
<details>permet de proposer le tableau sans encombrer l'interface, tout en le rendant disponible pour ceux qui en ont besoin.
Graphiques statiques vs interactifs
Quand privilégier le statique
Les graphiques statiques (images) sont souvent plus accessibles car :
- Pas de problème de navigation clavier
- Contenu stable et prévisible
- Plus facile à décrire complètement
Ils conviennent pour :
- Les rapports imprimés ou PDF
- Les graphiques simples avec peu de données
- Les situations où l'interactivité n'apporte pas de valeur
Quand l'interactivité se justifie
Réservez les graphiques interactifs aux cas où :
- Le volume de données nécessite un zoom/filtre
- L'exploration des données fait partie de l'expérience
- Les comparaisons dynamiques apportent de la valeur
Bonnes pratiques par type de graphique
Diagrammes en barres
- Ordre logique des barres (alphabétique, chronologique, par valeur)
- Étiquettes de valeur sur ou près de chaque barre
- Axe Y commençant à zéro (sauf justification explicite)
Graphiques linéaires
- Marqueurs distincts pour chaque série
- Légende ordonnée comme les lignes à leur extrémité
- Annotations pour les points significatifs
Camemberts / Diagrammes circulaires
- Maximum 5-6 portions pour la lisibilité
- Pourcentages et labels sur chaque portion
- Alternative : graphique en barres souvent plus accessible
Nuages de points
- Formes différentes pour chaque catégorie
- Zone de texte descriptive pour les tendances
- Possibilité de filtrer par catégorie
Test d'accessibilité des graphiques
Votre checklist de validation :
- Alternative textuelle : Description complète et pertinente ?
- Couleur : Information transmise autrement que par la couleur ?
- Contraste : Ratios respectes pour texte et éléments graphiques ?
- Clavier : Navigation complète possible sans souris ?
- Lecteur d'écran : Information compréhensible vocalement ?
- Table de données : Données disponibles sous forme tabulaire ?
Lancez un audit RGAA complet pour identifier les problèmes d'accessibilité de vos pages contenant des visualisations.
Conclusion
Rendre les visualisations de données accessibles demande un effort de conception dès le départ. L'accessibilité des graphiques n'est pas une limitation créative mais une opportunité d'améliorer la clarté pour tous les utilisateurs.
En combinant alternatives textuelles pertinentes, usage réfléchi de la couleur, navigation clavier et tables de données complémentaires, vous créez des visualisations qui transmettent efficacement l'information à l'ensemble de votre audience.
L'accessibilité des graphiques bénéficie à tous : les personnes handicapées, mais aussi ceux qui consultent vos rapports sur un écran monochrome, dans des conditions de luminosité difficiles, ou qui ont simplement besoin de comprendre rapidement l'essentiel.
Guides RGAA associés
Pour aller plus loin sur les sujets abordés dans cet article, consultez nos fiches techniques :
Chaque image porteuse d'information doit avoir une alternative textuelle pertinente via l'attribut alt. Les images décoratives doivent avoir un attribut alt vide.
Le contraste entre la couleur du texte et la couleur de son arrière-plan doit être suffisamment élevé (4.5:1 pour le texte normal, 3:1 pour le grand texte).
Chaque champ de formulaire doit avoir une étiquette (label) qui lui est liée explicitement.
Articles similaires
Votre site est-il conforme ?
Ne prenez pas de risques avec l'accessibilité. Lancez un audit complet de votre site en quelques minutes et obtenez un rapport détaillé des corrections à apporter.