Essentiel Mis à jour : 2026-05

Mesurer et corriger les contrastes

Les outils indispensables pour mesurer le contraste, un workflow d'audit en quatre étapes, comment corriger dans theme.json, et les générateurs de palettes accessibles.

Table des matières

Mesurer le contraste ne nécessite pas de connaître la formule mathématique. Il faut les bons outils et savoir quoi mesurer. Corriger un contraste insuffisant ne nécessite pas de redesign complet, souvent, assombrir légèrement une couleur ou ajuster sa teinte suffit.

Les outils indispensables

Colour Contrast Analyser (TPGi) : la référence

Téléchargement : Colour Contrast Checker lien externe qui s'ouvre dans un nouvel onglet , gratuit, Windows et macOS.

C’est l’outil de référence pour la mesure manuelle. Son atout principal : la pipette couleur qui échantillonne directement sur l’écran, n’importe quelle application, n’importe quel site.

Utilisation :

  1. Ouvrir Colour Contrast Analyser
  2. Utiliser la pipette “Foreground” → cliquer sur la couleur du texte à l’écran
  3. Utiliser la pipette “Background” → cliquer sur la couleur du fond
  4. Lire le ratio et le verdict WCAG AA / AAA

Cet outil permet de mesurer le contraste dans des situations complexes : texte sur image, texte sur dégradé, couleurs calculées par CSS qui ne sont pas explicitement dans le code.

Firefox DevTools : intégré, pratique pour les cas simples

Dans l’onglet Accessibilité de Firefox DevTools, cliquer sur n’importe quel élément texte affiche son ratio de contraste calculé, en tenant compte des couleurs réelles rendues par le navigateur, pas des valeurs brutes du CSS.

Utile pour un diagnostic rapide. Insuffisant pour les cas complexes (texte sur image, overlays CSS semi-transparents).

axe DevTools : pour les audits automatiques

L’extension axe signale automatiquement les contrastes insuffisants lors d’un audit de page. Elle ne mesure pas les couleurs manuellement mais détecte les problèmes courants dans le code CSS.

Limitation : axe ne peut pas mesurer le contraste du texte sur image, il signale alors “à vérifier manuellement”.

Simulateurs de daltonisme

Ces outils ne mesurent pas le contraste mais permettent de vérifier si une palette de couleurs reste lisible pour différents types de daltonisme.

Le workflow d’audit contraste en quatre étapes

Étape 1 : Audit automatique avec axe

Lancer axe DevTools sur la page. Les contrastes insuffisants identifiables automatiquement (texte sur fond uni, couleurs définies en CSS) sont signalés avec le ratio mesuré et le ratio requis.

Exemple d’erreur axe : "Element has insufficient color contrast of 3.52 (foreground color: #767676, background color: #f5f5f5, font size: 14pt, font weight: normal). Expected contrast ratio of 4.5:1"

Ces erreurs sont les plus simples à corriger, axe donne la valeur exacte, il suffit d’ajuster la couleur jusqu’à atteindre le seuil.

Étape 2 : Audit manuel avec Colour Contrast Analyser

Pour les éléments qu’axe ne peut pas mesurer automatiquement :

  • Texte sur image (photos de bannière, images de fond)
  • Texte sur dégradé: mesurer au point le plus défavorable
  • Texte sur fond semi-transparent (overlays avec rgba ou opacity)
  • Icônes et composants d’interface (critère 3.3)
  • Indicateurs de focus (outline sur fond variable)

Méthode pour le texte sur image :

  1. Faire une capture d’écran de la zone concernée
  2. Ouvrir dans Colour Contrast Analyser
  3. Pipette sur la couleur du texte
  4. Pipette sur plusieurs points de l’image derrière le texte
  5. Retenir le ratio le plus défavorable (le plus bas)

Si ce ratio minimum passe 4,5:1, le critère est respecté même si d’autres zones de l’image sont plus favorables.

Étape 3 : Simulation daltonisme

Activer la simulation de deutéranopie dans Chrome DevTools. Observer :

  • Les liens sont-ils encore distinguables du texte environnant ?
  • Les badges d’état (succès, erreur, avertissement) sont-ils encore distinguables entre eux ?
  • Les graphiques ou cartes sont-ils encore lisibles ?

Note les éléments où la distinction devient difficile ou impossible, ce sont des non-conformités (NC) potentielles sur le critère 3.1 (information par la couleur seule).

Étape 4 : Test niveaux de gris

/* Dans les DevTools → Console */
document.documentElement.style.filter = 'grayscale(1)';

Identifier les éléments qui perdent leur lisibilité ou leur distinctivité. Retirer le filtre avant de quitter les DevTools.

Les cas difficiles à mesurer

Texte sur image de fond (background-image)

Cas le plus fréquent sur les sites web : une section “hero” avec une photo et un titre blanc par-dessus.

La méthode pipette du Colour Contrast Analyser est la plus fiable. Mesurer à plusieurs endroits de l’image derrière le texte pour trouver le point le plus défavorable.

Si le contraste est insuffisant au point le plus défavorable, les solutions sont :

  • Ajouter un overlay semi-opaque entre l’image et le texte
  • Ajouter une ombre de texte forte (text-shadow: 0 1px 4px rgba(0,0,0,0.8))
  • Forcer l’image dans les tons sombres en CSS (filter: brightness(0.5))
  • Utiliser une couleur de texte plus foncée (si l’image est claire)

Couleurs calculées par CSS (calc(), variables CSS, OKLCH)

Les couleurs définies avec des fonctions CSS modernes ne sont pas toujours lisibles directement dans le code. Exemple :

--couleur-primaire: oklch(55% 0.2 240);
color: color-mix(in srgb, var(--couleur-primaire) 80%, white);

La couleur résultante dépend du moteur de rendu. Les DevTools Firefox et Chrome affichent la valeur calculée dans l’inspecteur d’éléments (format RGB ou HEX). Copier cette valeur dans Colour Contrast Analyser.

Texte sur gradient

background: linear-gradient(to right, #1A56A0, #0D2E5A);
color: white;

Le contraste varie le long du gradient. Mesurer à l’extrémité la plus claire (ici #1A56A0) pour le point le plus défavorable. Si le contraste passe à l’extrémité la plus claire, il passera partout.

Corriger dans theme.json sur WordPress

WordPress FSE centralise les couleurs dans theme.json. C’est le meilleur endroit pour corriger les contrastes. Une seule modification impacte toutes les instances de la couleur sur le site.

Vérifier la palette existante

{
  "settings": {
    "color": {
      "palette": [
        { "slug": "primaire",     "color": "#1A56A0", "name": "Primaire" },
        { "slug": "texte",        "color": "#1F2937", "name": "Texte" },
        { "slug": "fond",         "color": "#FFFFFF", "name": "Fond" },
        { "slug": "gris-clair",   "color": "#9CA3AF", "name": "Gris clair" }
      ]
    }
  }
}

Mesurer le ratio gris-clair (#9CA3AF) sur fond blanc (#FFFFFF) → 2,32:1. NC sévère.

Correction : assombrir gris-clair jusqu’à atteindre 4,5:1 sur fond blanc.

#9CA3AF sur #FFFFFF → 2,32:1 ✗
#6B7280 sur #FFFFFF → 4,63:1 ✓ (juste au-dessus du seuil)
#4B5563 sur #FFFFFF → 7,22:1 ✓✓ (niveau AAA)
{ "slug": "gris-clair", "color": "#6B7280", "name": "Gris texte" }

Corriger les styles par défaut des éléments

theme.json permet de définir le contraste par défaut de chaque élément :

{
  "styles": {
    "color": {
      "text": "#1F2937",
      "background": "#FFFFFF"
    },
    "elements": {
      "link": {
        "color": {
          "text": "#1A56A0"
        },
        "typography": {
          "textDecoration": "underline"
        }
      },
      "heading": {
        "color": {
          "text": "#111827"
        }
      },
      "button": {
        "color": {
          "text": "#FFFFFF",
          "background": "#1A56A0"
        }
      }
    }
  }
}

Vérifier chaque combinaison :

  • Texte (#1F2937) sur fond (#FFFFFF) → 16,1:1 ✓
  • Lien (#1A56A0) sur fond (#FFFFFF) → 5,9:1 ✓
  • Bouton texte (#FFFFFF) sur fond bouton (#1A56A0) → 5,9:1 ✓

Générateurs de palettes accessibles

Quand il faut choisir une nouvelle couleur (ou ajuster une existante) en garantissant le contraste, ces outils font le travail de recherche.

Accessible Palette

Génère une palette complète à partir d’une teinte, avec les ratios de contraste calculés pour chaque combinaison. Particulièrement utile pour créer une gamme cohérente de dégradés (du plus clair au plus foncé) dont les valeurs extrêmes passent les seuils WCAG.

Leonardo (Adobe) lien externe qui s'ouvre dans un nouvel onglet

Permet de définir des contraintes de contraste et génère les valeurs de couleur qui les respectent. Utile pour créer des couleurs d’état (succès, erreur, avertissement, info) qui passent toutes 4,5:1 sur fond blanc.

Coolors lien externe qui s'ouvre dans un nouvel onglet

Générateur de palettes populaire qui affiche les ratios de contraste pour chaque paire de couleurs. Moins précis qu’Accessible Palette mais plus rapide pour explorer des options.

APCA Contrast Checker lien externe qui s'ouvre dans un nouvel onglet

APCA (Advanced Perceptual Contrast Algorithm) est un algorithme de contraste plus précis que celui de WCAG 2.x, qui tient mieux compte des polices fines et des petites tailles. Il est prévu pour WCAG 3.0 (en préparation). Utile pour explorer ce que sera la prochaine génération de règles de contraste, sans remplacer le calcul WCAG 2.x actuel pour la conformité RGAA.

Récapitulatif — les outils par usage

BesoinOutil
Mesurer le contraste d’un texte sur fond uniFirefox DevTools ou axe
Mesurer le contraste sur une image ou un dégradéColour Contrast Analyser (pipette)
Audit automatique de toute la pageaxe DevTools
Simuler le daltonismeChrome DevTools → Rendering
Test rapide niveaux de grisDevTools Console : document.documentElement.style.filter = 'grayscale(1)'
Choisir une couleur accessibleAccessible Palette ou Leonardo
Corriger dans WordPress FSEtheme.json → palette et styles des éléments

La lettre de l'Atelier A11Y

Ressources pédagogiques, critères RGAA commentés et retours de terrain : une lettre mensuelle pour progresser sur l'accessibilité numérique, sans jargon.

  • Nouveaux articles et ressources pédagogiques
  • Critères RGAA décortiqués avec des exemples concrets
  • Bonnes pratiques et retours d'expérience terrain
S'abonner à la newsletter (s'ouvre dans un nouvel onglet)

Gratuit. Désabonnement possible à tout moment.