Design & Contenu24 juin 20267 min

Conformité des Contrastes : au-delà du Ratio 4.5:1 (WCAG AAA)

En Bref : L'essentiel à retenir

  • Le niveau AA exige 4.5:1 pour le texte normal et 3:1 pour le grand texte. Le niveau AAA monte à 7:1 et 4.5:1.
  • WCAG 2.1 étend les exigences aux éléments non-textuels (icônes, bordures de champs) avec un minimum de 3:1.
  • Le ratio 7:1 (AAA) compense la perte de sensibilité au contraste des personnes avec une vision équivalente à 20/80.
  • Évitez le contraste maximum (21:1 noir/blanc) qui peut causer des migraines chez certains utilisateurs.
CouleursContrasteWCAGRGAAAAAdesign

Le contraste des couleurs est souvent réduit à une simple vérification de ratio. Pourtant, la conformité complète implique bien plus que le fameux 4.5:1. Ce guide explore les niveaux de conformité, les éléments non-textuels et les évolutions à venir.

Rappel des exigences WCAG

Le critère 1.4.3 Contraste (Minimum) exige :

  • Texte normal : Ratio minimum de 4.5:1
  • Grand texte (18pt ou 14pt bold) : Ratio minimum de 3:1

Niveau AAA (recommandé)

Le critère 1.4.6 Contraste (amélioré) renforce les exigences :

  • Texte normal : Ratio minimum de 7:1
  • Grand texte : Ratio minimum de 4.5:1

Définition du "grand texte"

  • 18 points (environ 24px) ou plus
  • 14 points (environ 18.66px) en gras ou plus

Pourquoi viser le niveau AAA ?

Le ratio de 7:1 n'est pas arbitraire. Il a été calculé pour compenser la perte de sensibilité au contraste des personnes avec une acuité visuelle équivalente à 20/80 (la limite avant utilisation de technologies d'assistance).

Qui en bénéficie ?

  • Personnes avec déficiences visuelles légères à modérées
  • Personnes avec daltonisme
  • Utilisateurs âgés (la sensibilité au contraste diminue avec l'âge)
  • Toute personne dans un environnement lumineux difficile (soleil, écran fatigué)

La "zone Goldilocks" du contraste

Contrairement à ce qu'on pourrait penser, le contraste maximum (21:1, noir pur sur blanc pur) n'est pas idéal. Il peut provoquer :

  • Fatigue visuelle
  • Migraines chez les personnes sensibles
  • Effets de "halo" pour les dyslexiques

Le niveau AAA (7:1) représente un excellent équilibre entre lisibilité et confort.

Les éléments non-textuels (WCAG 2.1)

Critère 1.4.11 : Contraste des éléments non-textuels

Ce critère, ajouté dans WCAG 2.1, exige un ratio de 3:1 pour :

  • Les composants d'interface : Bordures de champs de formulaire, boutons, cases à cocher
  • Les objets graphiques : Icônes significatives, graphiques, diagrammes

Exemples concrets

Champ de formulaire conforme :

CODE
input {
  border: 2px solid #767676; /* Ratio 4.54:1 sur fond blanc */
  background: white;
}

input:focus {
  border-color: #0066cc; /* Ratio 4.77:1 */
  outline: 2px solid #0066cc;
}

Icône significative :

CODE
<!-- L'icône doit avoir 3:1 de contraste avec l'arrière-plan -->
<svg fill="#767676" aria-label="Panier d'achat">
  <!-- ... -->
</svg>

Note

Les icônes purement décoratives ne sont pas concernées par cette exigence.

Tester vos contrastes

Outils recommandés

Pour le texte :

Pour les éléments non-textuels :

  • Colour Contrast Analyser (outil desktop)
  • axe DevTools
  • Figma plugins (Stark, Contrast)

Méthode de vérification

  1. Identifiez tous les textes et leur couleur d'arrière-plan
  2. Mesurez chaque combinaison avec un outil fiable
  3. Vérifiez les états interactifs (hover, focus, disabled)
  4. N'oubliez pas les éléments graphiques significatifs

Astuce

Consultez notre article sur le futur algorithme APCA pour comprendre les évolutions à venir du calcul de contraste.

Cas particuliers

Texte sur images

Lorsque du texte apparaît sur une image de fond :

  • Testez le contraste sur la zone la plus claire ET la plus sombre de l'image
  • Ajoutez une superposition semi-transparente si nécessaire
  • Considérez un fond solide derrière le texte
CODE
.text-on-image {
  background: linear-gradient(
    rgba(0, 0, 0, 0.7),
    rgba(0, 0, 0, 0.7)
  ), url('background.jpg');
  color: white;
}

Texte placeholder

Les placeholders de formulaires sont souvent en gris clair. Attention :

  • Ils doivent respecter le ratio de contraste
  • Mais ils ne remplacent pas un label visible
  • Privilégiez des labels permanents plutôt que des placeholders

Texte désactivé

Les éléments désactivés (disabled) sont exempts des exigences de contraste WCAG. Cependant, ils doivent rester identifiables comme désactivés.

Logos et images de marque

Les logos sont exemptes des exigences de contraste. Cependant, si le logo contient du texte informatif crucial, envisagez une alternative accessible.

Palettes accessibles

Construction d'une palette conforme

  1. Définissez vos couleurs de base (marque, accent)
  2. Créez des variations claires et sombres
  3. Testez toutes les combinaisons texte/fond possibles
  4. Documentez les combinaisons autorisées

Exemple de palette avec ratios

CombinaisonRatioNiveau
#1a1a1a sur #ffffff16.1:1AAA
#2d5d7b sur #ffffff7.2:1AAA
#0066cc sur #ffffff4.77:1AA
#767676 sur #ffffff4.54:1AA
#959595 sur #ffffff3.03:1AA (grand texte)

Automatiser la vérification

Intégration dans votre workflow

Dans votre design System :

CODE
// Fonction de validation de contraste
function checkContrast(foreground, background) {
  const ratio = calculateContrastRatio(foreground, background);
  return {
    ratio,
    passAA: ratio >= 4.5,
    passAAA: ratio >= 7,
    passAALarge: ratio >= 3,
    passAAALarge: ratio >= 4.5
  };
}

Dans vos tests automatisés :

CODE
// Avec axe-core
axe.run(document, {
  rules: {
    'color-contrast': {
      // Tester au niveau AAA
      options: {
        noScroll: false,
        contrastRatio: { normal: { expected: 7 } }
      }
    }
  }
});

Conclusion

La conformité des contrastes va au-delà d'une simple vérification de ratio. En visant le niveau AAA (7:1) et en n'oubliant pas les éléments non-textuels, vous créez une expérience visuelle accessible à un plus grand nombre d'utilisateurs.

Pour une vérification complète de votre site, utilisez notre outil d'audit RGAA qui analyse automatiquement les contrastes de vos pages.

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.