Tutoriels

Liste de contrôle de l'accessibilité des couleurs pour les développeurs web

11 min de lecture

Environ 300 millions de personnes dans le monde souffrent d'une forme de déficience de la vision des couleurs. Bien d'autres encore — personnes utilisant des écrans de mauvaise qualité, travaillant en plein soleil ou connaissant des changements visuels liés à l'âge — peinent avec des couleurs qui paraissent parfaitement correctes à un jeune adulte avec une vision typique assis devant un moniteur calibré. La conception de couleurs accessibles n'est pas une préoccupation de niche ; c'est un socle de qualité qui concerne une part substantielle du public de chaque produit.

Cette liste de contrôle organise le travail d'accessibilité des couleurs en critères clairs et actionnables. Elle est structurée autour des Web Content Accessibility Guidelines (WCAG), la norme internationale régissant l'accessibilité numérique et juridiquement obligatoire dans de nombreuses juridictions.


1. Comprendre les critères d'accessibilité WCAG

Les WCAG sont organisées en quatre principes (Perceptible, Utilisable, Compréhensible, Robuste) et trois niveaux de conformité : A (minimum), AA (standard) et AAA (amélioré). Les exigences liées aux couleurs apparaissent principalement sous le principe Perceptible.

Les deux critères de couleur les plus importants pour les développeurs sont :

1.4.1 Utilisation de la couleur (Niveau A) : La couleur ne doit pas être le seul moyen visuel de transmettre une information, d'indiquer une action, de susciter une réponse ou de distinguer un élément visuel.

1.4.3 Contraste (Minimum) (Niveau AA) : Le texte et les images de texte doivent présenter un rapport de contraste d'au moins 4,5:1. Le texte de grande taille (18pt ou 14pt en gras) exige un rapport minimum de 3:1.

1.4.11 Contraste des éléments non textuels (Niveau AA) : Les composants de l'interface utilisateur et les objets graphiques doivent présenter un rapport de contraste d'au moins 3:1 par rapport aux couleurs adjacentes.

1.4.6 Contraste (Amélioré) (Niveau AAA) : Le texte doit présenter un rapport de contraste d'au moins 7:1 (texte de grande taille : 4,5:1).

Comprendre ces critères avant de plonger dans l'implémentation évite des remaniements coûteux par la suite. La conformité AA est l'objectif pratique pour la plupart des produits commerciaux.


2. Respecter les exigences de rapport de contraste pour le texte

Le rapport de contraste est calculé en comparant la luminance relative de deux couleurs. L'échelle va de 1:1 (aucun contraste — couleurs identiques) à 21:1 (contraste maximum — noir sur blanc).

Aperçu des exigences de contraste textuel

Type de texte Minimum WCAG AA Minimum WCAG AAA
Texte normal (<18pt, non gras) 4,5:1 7:1
Texte de grande taille (≥18pt ou ≥14pt gras) 3:1 4,5:1
Texte désactivé (interface inactive) Sans exigence Sans exigence
Logo / texte décoratif Sans exigence Sans exigence

L'erreur la plus courante est de traiter « semble lisible » comme équivalent à « passe le contraste ». La perception humaine est dépendante du contexte et peu fiable pour ce jugement. Une couleur de texte confortable sur votre moniteur calibré dans une pièce sombre peut échouer pour un utilisateur avec une légère déficience visuelle sur un écran de téléphone en plein jour.

Action : Testez chaque paire texte/fond avec le Vérificateur de contraste. Entrez la couleur de premier plan et la couleur d'arrière-plan — l'outil calcule le rapport exact et indique si elle passe AA et AAA.

Échecs courants à surveiller

Texte gris clair sur fond blanc. Une tendance de conception omniprésente. Même le texte #767676 sur blanc (#FFFFFF) passe à peine AA à 4,54:1. Passer à #808080 échoue à 3,95:1.

/* Échoue — 3,95:1 */
color: #808080;
background: #FFFFFF;

/* Passe AA — 4,54:1 */
color: #767676;
background: #FFFFFF;

Texte coloré sur fonds colorés. Un texte aux couleurs de la marque sur un fond teinté peut sembler harmonieux mais échouer aux exigences de contraste. Testez chaque combinaison, pas seulement le noir sur blanc.

Texte sur images ou dégradés. Il n'existe pas de couleur d'arrière-plan unique à tester. Testez le pire cas — en général la région la plus lumineuse ou à la teinte la plus proche de l'image. Ajouter un calque semi-transparent sous le texte est une solution courante :

.text-over-image {
  /* Un calque sombre garantit la lisibilité du texte quel que soit le contenu de l'image */
  text-shadow: 0 1px 3px rgba(0, 0, 0, 0.8);
  /* Ou utilisez un fond semi-transparent */
}

3. Contraste des éléments non textuels (composants et icônes)

WCAG 1.4.11 étend les exigences de contraste au-delà du texte aux composants interactifs et aux graphiques significatifs. Un rapport minimum de 3:1 s'applique à :

  • Bordures des boutons et des champs de saisie
  • Indicateurs de cases à cocher et de boutons radio
  • Pistes des boutons bascule
  • Contours d'icônes (lorsque l'icône transmet une signification)
  • Graphiques, diagrammes et éléments de visualisation de données
  • Indicateurs de focus (voir Section 5)

Exemples

Un bouton avec une bordure blanche sur fond blanc échoue à moins que la couleur de remplissage du bouton ne fournisse le contraste 3:1. Une icône qui repose uniquement sur la couleur pour se distinguer du contenu environnant doit avoir un contraste suffisant par rapport à ce contenu.

/* Champ de saisie : la bordure doit être à 3:1 par rapport à son arrière-plan */
.input {
  border: 1px solid #767676; /* Passe 3:1 sur blanc */
  background: #FFFFFF;
}

/* Case à cocher : l'indicateur visuel doit être à 3:1 par rapport au fond */
.checkbox-checked {
  background: #1D4ED8; /* Bleu profond — passe 3:1 sur blanc */
}

Testez tous les composants de l'interface avec le Vérificateur de contraste en entrant la couleur du composant et sa couleur d'arrière-plan.


4. Ne jamais utiliser la couleur seule

WCAG 1.4.1 est l'un des critères les plus fréquemment violés dans le développement web, et il est facile de l'ignorer car la violation est souvent visuellement subtile.

La couleur seule ne peut pas transmettre : - Quel champ de formulaire contient une erreur - Quelle option d'un ensemble est sélectionnée - La direction de tendance dans un graphique - Les champs obligatoires par rapport aux champs facultatifs - Le texte de lien par rapport au texte environnant (si la couleur est la seule différenciation)

Indicateurs redondants requis

Associez chaque état codé par couleur à au moins un autre indicateur visuel :

Modèle couleur seule Alternative accessible
Bordure d'erreur rouge uniquement Bordure rouge + icône d'erreur + texte de message d'erreur
Indicateur vert « actif » Vert + libellé texte « Actif »
Soulignement supprimé pour les liens Soulignement conservé, ou liens en gras / police différente
Segments de graphique colorés Colorés + étiquetés avec texte ou remplissages à motifs
Champ obligatoire rouge Rouge + astérisque (*) + « obligatoire » dans la légende du formulaire

Le test en niveaux de gris

Convertissez votre conception en niveaux de gris (ou visualisez-la à travers un filtre niveaux de gris) et demandez-vous : Peut-on encore identifier chaque distinction significative ? Si la réponse est non, vous avez un problème de couleur seule.

Utilisez le Simulateur de daltonisme pour prévisualiser votre conception sous plusieurs formes de déficience de la vision des couleurs, y compris le niveau de gris intégral (achromatopsie).

Exemples concrets courants

Applications boursières et financières. Afficher les gains en vert et les pertes en rouge est un échec classique de la couleur seule — le daltonisme rouge-vert affecte environ 8 % des hommes. Ajoutez des flèches haut/bas ou des symboles +/- en complément du codage couleur.

Validation de formulaire. Une bordure rouge est invisible pour certains utilisateurs comme signal distinct. Ajoutez un message d'erreur en ligne sous le champ et envisagez d'ajouter une icône d'erreur.

État actif de navigation. Si le lien de la page actuelle n'est distingué que par la couleur, ajoutez du texte en gras, un soulignement ou un marqueur d'icône comme indicateur redondant.


5. Indicateurs de focus

WCAG 2.4.11 Apparence du focus (AA dans WCAG 2.2) exige que les indicateurs de focus respectent des exigences minimales de taille et de contraste :

  • L'indicateur de focus doit avoir une surface d'au moins le périmètre du composant au carré multiplié par 0,0625 (simplifié : visible et non minuscule)
  • L'indicateur de focus doit présenter un rapport de contraste d'au moins 3:1 entre ses états avec et sans focus

En termes pratiques : ne supprimez jamais le contour de focus par défaut avec outline: none ou outline: 0 sans fournir un remplacement supérieur.

Styles de focus conformes

/* Ne faites pas cela sans remplacement */
:focus {
  outline: none; /* Supprime tout retour visuel pour les utilisateurs au clavier */
}

/* Faites cela à la place — anneau de focus personnalisé à contraste élevé */
:focus-visible {
  outline: 2px solid #1D4ED8;
  outline-offset: 2px;
}

/* Ou utilisez box-shadow pour plus de flexibilité de conception */
:focus-visible {
  outline: none;
  box-shadow: 0 0 0 3px #FFFFFF, 0 0 0 5px #1D4ED8;
}

Le bleu #1D4ED8 offre un contraste suffisant contre la plupart des arrière-plans. Testez la couleur de l'anneau de focus par rapport à l'arrière-plan de la page avec le Vérificateur de contraste (minimum 3:1).

L'utilisation de :focus-visible (plutôt que :focus) affiche l'anneau de focus uniquement lorsque la navigation au clavier est détectée, ce qui évite la plainte courante que les anneaux de focus semblent mauvais pour les utilisateurs de souris tout en les préservant pour les utilisateurs de clavier et de commutateur.


6. Simuler le daltonisme

Le daltonisme n'est pas une condition unique — il existe plusieurs types distincts affectant différents photorécepteurs :

Type Prévalence Ce qui est affecté
Deutéranopie (déficience du vert) ~5 % des hommes Ne peut pas voir le vert
Protanopie (déficience du rouge) ~1 % des hommes Ne peut pas voir le rouge
Deutéranomalie (faiblesse du vert) ~5 % des hommes Le vert apparaît décalé
Protanomalie (faiblesse du rouge) ~1 % des hommes Le rouge apparaît décalé
Tritanopie (déficience du bleu) ~0,003 % Ne peut pas voir le bleu
Achromatopsie Très rare Ne voit qu'en niveaux de gris

Au total, environ 8 % des hommes et 0,5 % des femmes présentent une forme de déficience de la vision des couleurs. Les formes les plus courantes sont les types rouge-vert (deutéranopie et deutéranomalie combinées).

Action : Utilisez le Simulateur de daltonisme pour visualiser votre palette de couleurs à travers le prisme de chaque condition. Concentrez-vous particulièrement sur la deutéranopie et la protanopie, qui sont les plus répandues.

Ce qu'il faut rechercher

Sous la simulation de daltonisme, vérifiez si : - Les états d'erreur (souvent rouges) sont encore distinguables des états de succès (souvent verts) - Les séries de graphiques qui ne diffèrent que par le rouge et le vert peuvent encore être séparées - Les états actifs de navigation sont encore identifiables - Les éléments d'interface d'avertissement et d'information sont distinguables les uns des autres

Si des éléments qui devraient sembler différents deviennent indiscernables sous simulation, repensez-les pour ajouter une différenciation par motif, forme, icône ou étiquette en complément de la différenciation par couleur.


7. Utiliser des outils de test automatisés

L'inspection manuelle détecte la plupart des problèmes mais rate les cas limites à grande échelle. Intégrez des tests d'accessibilité automatisés dans votre flux de travail de développement.

Extensions de navigateur (vérification ponctuelle manuelle)

axe DevTools (extension de navigateur par Deque) : Inspecte n'importe quelle page et signale les violations WCAG, y compris les échecs de contraste. Le niveau gratuit couvre la plupart des besoins.

Lighthouse (intégré aux DevTools Chrome) : L'audit Accessibilité utilise axe en coulisse. Exécutez-le avec F12 → Lighthouse → Accessibilité.

WAVE (WebAIM) : Superpose des indicateurs visuels directement sur la page pour afficher les erreurs et les alertes.

Intégration CI automatisée

axe-core (package npm) : S'intègre avec Playwright, Cypress ou Jest pour des tests d'accessibilité automatisés dans votre pipeline CI :

// Exemple : Playwright avec axe-core
import { checkA11y } from 'axe-playwright';

test('La page d\'accueil respecte WCAG AA', async ({ page }) => {
  await page.goto('/');
  await checkA11y(page, null, {
    runOnly: { type: 'tag', values: ['wcag2aa'] },
  });
});

pa11y (CLI et npm) : Outil en ligne de commande pour vérifier par lots des URL par rapport aux normes WCAG. Utile pour les grands sites.

Limites des tests automatisés

Les outils automatisés détectent environ 30 à 40 % des problèmes d'accessibilité. Ils sont efficaces pour détecter les échecs de contraste, le texte alternatif manquant et les étiquettes de formulaire manquantes — mais ils ne peuvent pas déterminer si la couleur est utilisée comme seul différenciateur pour un modèle d'interface complexe, si un indicateur de focus est visuellement adéquat en contexte, ou si l'expérience utilisateur globale est réellement utilisable par une personne en situation de handicap.

Complétez les tests automatisés par des tests manuels de navigation au clavier et des tests avec de vrais utilisateurs en situation de handicap.


8. Résumé de la liste de contrôle pratique

Utilisez cette liste de contrôle lors de la révision de toute page web ou composant :

Contraste du texte

  • [ ] Tout le texte normal respecte le rapport de contraste minimum de 4,5:1
  • [ ] Tout le texte de grande taille (18pt+ ou 14pt+ gras) respecte le minimum de 3:1
  • [ ] Texte coloré sur fonds colorés testé — pas seulement noir sur blanc
  • [ ] Texte sur images ou dégradés avec contraste adéquat dans la région la plus défavorable
  • [ ] Le texte d'espace réservé dans les champs de formulaire respecte le contraste (le texte placeholder est du texte courant, non exempté)

Contraste non textuel

  • [ ] Les bordures des champs de saisie respectent 3:1 par rapport au fond
  • [ ] Les bordures ou remplissages des boutons respectent 3:1 par rapport à leur fond
  • [ ] Les icônes significatives respectent 3:1 par rapport aux couleurs adjacentes
  • [ ] Les éléments de graphique respectent un contraste 3:1 entre les séries de données adjacentes

Communication par couleur seule

  • [ ] Les états d'erreur utilisent une icône ou du texte, pas seulement la couleur
  • [ ] Les liens se distinguent du texte courant par plus que la couleur
  • [ ] Les champs obligatoires des formulaires sont marqués avec plus que la couleur rouge
  • [ ] Les séries de graphiques se distinguent par des motifs ou des étiquettes, pas seulement par la couleur
  • [ ] L'état actif de navigation utilise plus que la couleur

Indicateurs de focus

  • [ ] Pas de outline: none sans style de focus de remplacement
  • [ ] Les anneaux de focus personnalisés respectent un contraste de 3:1
  • [ ] L'anneau de focus est visible sur le fond de la page
  • [ ] :focus-visible utilisé plutôt que :focus pour éviter la friction avec les utilisateurs de souris

Daltonisme

  • [ ] Conception vérifiée sous simulation de deutéranopie et de protanopie
  • [ ] Les paires rouge/vert ont des indicateurs redondants
  • [ ] La conception passe le test en niveaux de gris pour toutes les distinctions significatives

Vérifications automatisées

  • [ ] axe DevTools ou Lighthouse exécutés et aucune erreur de contraste signalée
  • [ ] Tests d'accessibilité intégrés dans le pipeline CI

Points clés

  • WCAG AA exige un contraste de 4,5:1 pour le texte normal, 3:1 pour le texte de grande taille et les composants d'interface. Ce sont des exigences légales dans de nombreuses juridictions, pas des directives optionnelles.
  • N'utilisez jamais la couleur comme seul moyen de transmettre une information — associez toujours la couleur à un second indicateur tel qu'une icône, un libellé textuel ou un motif.
  • Supprimez les contours de focus uniquement lorsque vous les remplacez par un style de focus personnalisé supérieur qui respecte l'exigence de contraste 3:1.
  • Environ 8 % des hommes souffrent de daltonisme rouge-vert. Utilisez le Simulateur de daltonisme pour vérifier que votre conception se lit correctement sous deutéranopie et protanopie.
  • Les outils automatisés détectent environ 30 à 40 % des problèmes d'accessibilité. Complétez-les avec des tests manuels et des tests utilisateurs réels.
  • Utilisez le Vérificateur de contraste pour vérifier chaque paire de couleurs premier plan/arrière-plan avant de finaliser une conception ou de valider du code.

Couleurs associées

Marques associées

Outils associés