Comment choisir des combinaisons de couleurs accessibles

· 9 min de lecture

Les choix de couleurs ressemblent à une décision esthétique et agissent comme une décision juridique. Environ 4 000 procès d'accessibilité web par an touchent les défendeurs américains depuis 2021, et un contraste de couleur insuffisant est l'un des trois problèmes les plus cités dans les dossiers basés sur WCAG (aux côtés du texte alternatif manquant et des champs de formulaire non étiquetés). La bonne nouvelle : le contraste est le plus simple des trois à corriger : un ratio est un nombre, le seuil WCAG est un nombre, et vous pouvez calculer l'un contre l'autre en quelques secondes. La mauvaise nouvelle : « accessible » va au-delà du ratio principal : daltonisme, indicateurs de focus, mode sombre et tokenisation comptent tous.

Une brève histoire de l'accessibilité couleur numérique

Le contraste de couleur comme norme écrite date du premier travail de la Web Accessibility Initiative du W3C en 1997. Les Web Content Accessibility Guidelines 1.0 originales (mai 1999) recommandaient un contraste suffisant en termes qualitatifs sans nombre concret. WCAG 2.0 (décembre 2008) a introduit la formule de luminance relative désormais familière et le ratio 4,5:1 au niveau AA, tiré de recherches de Lighthouse International sur ce que des utilisateurs âgés portant des lunettes pouvaient confortablement lire à l'écran.

Le poids juridique est venu après. La Section 508 du US Rehabilitation Act a référencé WCAG 2.0 en 2018 ; l'ADA, après l'arrêt Robles v. Domino's du Ninth Circuit le 15 janvier 2019 (Cour suprême ayant refusé l'appel en octobre 2019), est désormais lue par les tribunaux américains comme couvrant l'accessibilité numérique sous le Titre III. L'European Accessibility Act est entré en vigueur le 28 juin 2025, exigeant WCAG 2.1 AA sur les services numériques grand public pour le secteur public et beaucoup de privés. En pratique, 4,5:1 texte normal + 3:1 grand texte + 3:1 composants UI est le plancher de facto pour tout site public construit aujourd'hui.

La science a continué d'évoluer. WCAG 2.1 (2018) a ajouté la règle de contraste non-textuel 3:1. L'algorithme APCA, développé par Andrew Somers pour WCAG 3, modélise la perception de luminosité plus précisément et donne des nombres différents pour les paires très sombres et très claires ; c'est un Editor's Draft en 2026, pas encore un standard. Les OKLAB et OKLCH de Bjorn Ottosson (2020) ont donné aux designers un espace colorimétrique perceptuellement uniforme qui rend la génération d'échelles couleur accessibles bien plus facile qu'en HSL ou RGB.

Ce que « couleur accessible » signifie vraiment

Quatre choses comptent, pas juste le ratio :

  1. Contraste premier plan vs arrière-plan. Le nombre principal. Le corps de texte a besoin de 4,5:1, le grand texte 3:1, les contrôles UI et indicateurs de focus 3:1 contre les couleurs adjacentes.
  2. Daltonisme. Environ 8 % des hommes et 0,5 % des femmes voient moins de couleurs que ne le suppose le design. Les trois types principaux sont protanopie et deutéranopie (rouge-vert, les plus communs), et tritanopie (bleu-jaune).
  3. La couleur n'est jamais le seul signal. WCAG 1.4.1 interdit de se fier à la couleur seule pour transmettre du sens. Une bordure d'erreur rouge a besoin d'une icône ou d'un libellé aussi.
  4. Indicateurs de focus. Les utilisateurs clavier ont besoin de voir où est le focus. La règle WCAG 2.4.7 exige un indicateur de focus visible, et la mise à jour 2.4.11 (WCAG 2.2) exige au moins 2 pixels CSS d'épaisseur et 3:1 de contraste contre la couleur adjacente.

Comment choisir des couleurs accessibles, étape par étape

  1. Partez de tokens sémantiques, pas de couleurs brutes. Définissez text-primary, text-secondary, surface-default, surface-elevated, border-default, accent-primary, accent-danger, etc.
  2. Choisissez l'échelle de luminosité. Utilisez les valeurs de luminosité OKLCH pour construire une échelle de 5 à 9 paliers où chaque palier a une différence perceptuelle constante avec le suivant.
  3. Choisissez les teintes à chaque palier. Prenez la teinte de marque, puis prenez teintes complémentaires ou d'accent qui maintiennent une chroma similaire.
  4. Calculez les ratios de contraste. Chaque paire de tokens qui se touche a besoin du bon ratio. Corps de texte sur surface par défaut : 4,5:1. Texte désactivé : au moins 3:1 s'il doit rester lisible.
  5. Lancez un simulateur de daltonisme. Prenez un écran clé et re-rendez-le à travers les simulateurs protanopie, deutéranopie et tritanopie.
  6. Testez avec une vraie techno d'assistance. Mac VoiceOver, NVDA, JAWS et TalkBack devraient tous pouvoir naviguer sans dépendre des indices de couleur.
  7. Ajoutez le signal non-couleur partout où la couleur porte du sens. Icônes pour erreur/succès/avertissement, soulignements pour les liens dans le corps, motifs pour les séries de graphiques.
  8. Documentez les tokens. Une bibliothèque Figma, une page Storybook, ou un site de design-system statique.

Référence des ratios de contraste

PaireWCAG 2.1 minNiveau AANiveau AAA
Corps de texte (sous 18 pt regular ou 14 pt gras)4,5:14,5:17:1
Grand texte (18 pt regular ou 14 pt gras)3:13:14,5:1
Composants UI (bordures formulaire, états toggle, focus)3:13:1n/a
Objets graphiques (icônes porteuses de sens)3:13:1n/a
Texte à l'intérieur d'un logoexemptéexemptéexempté
Contrôles désactivésexemptéexemptén/a
Texte décoratifexemptéexemptéexempté

Types de daltonisme et comment vérifier

TypePrévalenceVoit moins deÉchec courant
Protanopie~1 % des hommesRougeErreur rouge vs succès vert indistinguables
Deutéranopie~5 % des hommesVertIdem : confusion rouge-vert
Tritanopie~0,005 %BleuBleu vs jaune indistinguables
Achromatopsie~0,003 %Toute couleurNe voit que la luminance en niveaux de gris
Trichromasie anomale~5 %Sensibilité réduite sur un canalDifférences couleur subtiles fusionnent

Pièges courants

Algorithmes et standards alternatifs

AlgorithmeAnnéeStatutForce
Ratio de contraste WCAG 2.x2008Exigé par la plupart des réglementationsMaths simples, largement outillé
APCA2020Editor's Draft WCAG 3Meilleur sur la luminosité perceptuelle
ISO 9241-3022008Norme ergonomique poste de travailTrès stricte, orientée matériel
Avertissements de contraste Lighthouse2018Chrome DevToolsGratuit, dans le navigateur
axe-core2015Bibliothèque open sourceStandard de l'industrie pour test auto

Pour le travail réglementé aujourd'hui, WCAG 2.1 AA est le plancher. APCA vaut la peine d'être suivi à mesure que WCAG 3 mûrit ; beaucoup d'équipes design-system reportent déjà les deux nombres.

Outils pour choisir des couleurs accessibles

OutilObjetForce
Vérificateur de contraste (navigateur)Noter une paire premier plan/arrière-planInstantané, pas de téléversement
Générateur de palette accessibleConstruire une échelle complète à chroma constantOKLCH pour uniformité perceptuelle
Simulateur de daltonismeRe-rendre un écran tel qu'un daltonien le voitDétecte les soucis rouge-vert avant lancement
Chrome DevTools LensInspecter contraste et daltonisme sur placeIntégré au navigateur
WebAIM Contrast CheckerRéférence WCAG 2 classiqueDe confiance, largement cité
Stark (plugin Figma)Auditer les designs FigmaDétecte les soucis dès le design
axe DevTools (navigateur)Scan WCAG automatiséStandard de l'industrie
Échelles Tailwind, Radix, Open PropsPalettes OKLCH pré-testéesAccessibilité curatée par équipes design

Confidentialité et les outils

Le vérificateur de contraste, le générateur de palette accessible et le simulateur de daltonisme tournent entièrement dans votre navigateur. Les couleurs que vous choisissez ou collez sont traitées par JavaScript sur votre appareil, les résultats sont rendus sur la page, et rien n'est envoyé à un serveur. Pas de télémétrie, pas d'analytics sur l'entrée, pas de scripts tiers. Pour les couleurs de marque pas encore publiques, les palettes produit internes, ou les designs sous embargo, ce flux strictement local est la différence entre confier vos assets de marque non sortis à l'outil d'un inconnu et ne pas le faire. Les outils peuvent tourner hors-ligne une fois la page chargée, ce que vous pouvez vérifier en coupant le réseau et en recontrôlant une paire.

Questions fréquentes

What contrast ratio does WCAG require?

WCAG 2.1 Level AA requires at least 4.5:1 for normal body text and 3:1 for large text (18 pt regular or 14 pt bold). Level AAA raises that to 7:1 for normal text and 4.5:1 for large text. Non-text UI components and graphical objects need 3:1 against adjacent colors.

Are WCAG contrast ratios scientifically accurate?

They are based on the WCAG 2.0 algorithm from 2008, which compares the relative luminance of two colors using the sRGB color space. The formula is imperfect for very dark and very light combinations and for some color hues; the APCA (Accessible Perceptual Contrast Algorithm) being developed for WCAG 3 produces more perceptually accurate results. For 2026 work, WCAG 2.x is still the standard most regulations cite.

How do I check whether my colors work for color-blind users?

Run them through a color-blindness simulator that converts your palette to what someone with protanopia, deuteranopia, or tritanopia sees. About 8% of men and 0.5% of women have some form of color vision deficiency, so this matters.

Should I use the same color palette for light and dark mode?

Usually not. Dark mode needs slightly desaturated colors at the same hue, otherwise vivid colors that look fine on white become eye-strain on black. Define semantic tokens (text-primary, surface-secondary) and map them to different physical colors per mode.

What does OKLCH have to do with accessibility?

OKLCH is a perceptually uniform color space (Bjorn Ottosson, 2020) where equal numerical changes produce equal perceptual changes. That makes it much easier to generate accessible color scales because you can step the lightness in equal increments and the perceived brightness step is consistent, which is hard to do in HSL or RGB. CSS supports OKLCH directly since 2023 in all major browsers.