Aller au contenu principal
Design & Contenu30 janvier 20269 min

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.
Data visualizationWCAGSVGLecteurs d'écran

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 :

  1. Type de graphique : "Diagramme en barres", "Graphique linéaire"
  2. Sujet et période : "Évolution du chiffre d'affaires de 2020 à 2025"
  3. Tendance ou conclusion principale : "Le CA a doublé, passant de 1M à 2M d'euros"
  4. Lien vers les données complètes : Référence au tableau de données

Exemple concret

CODE
<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 :

CODE
<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

CODE
.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 :

CODE
<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.

CODE
/* 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

Tout élément interactif du graphique doit être accessible au clavier (critère WCAG 2.1.1) :

CODE
// 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 :

CODE
<div aria-live="polite" class="sr-only" id="graph-announcer">
  <!-- Mise à jour dynamique -->
</div>
CODE
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 :

CODE
.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

CODE
<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 :

  1. Alternative textuelle : Description complète et pertinente ?
  2. Couleur : Information transmise autrement que par la couleur ?
  3. Contraste : Ratios respectes pour texte et éléments graphiques ?
  4. Clavier : Navigation complète possible sans souris ?
  5. Lecteur d'écran : Information compréhensible vocalement ?
  6. 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.

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.