ForHosting KIT · Outils pour développeurs

Calculer le contraste WCAG des couleurs

Ce calculateur compare une couleur de premier plan à une couleur d’arrière-plan selon la méthode de luminance relative WCAG.

● BetaGratuit · dans votre navigateur
Utilisez-le depuis WebAPIE-mailTelegramApp bientôt

Il renvoie la luminance de chaque couleur, le rapport de contraste obtenu et des indicateurs précis de réussite AA et AAA pour le texte normal et le grand texte. Vous pouvez l’utiliser pour contrôler des jetons de conception, valider des couleurs d’interface avant publication ou ajouter un contrôle d’accessibilité reproductible à un processus automatisé. Les entrées sont des couleurs hexadécimales explicites, les calculs sont déterministes et tout format incorrect produit une erreur utile. L’outil web convient aux contrôles ponctuels ; chaque appel par API coûte $0.002.

Comprenez les valeurs fournies par le calculateur

Le résultat commence par normaliser les deux entrées sous forme de couleurs hexadécimales minuscules à six chiffres ; une notation courte comme #fff devient donc systématiquement #ffffff. Il indique ensuite la luminance relative du premier plan et de l’arrière-plan. Cette luminance varie de zéro pour le noir à un pour le blanc. Elle est dérivée des canaux sRGB linéarisés, puis pondérée afin de représenter les sensibilités différentes de l’œil à la lumière rouge, verte et bleue. Le rapport de contraste compare la luminance la plus claire à la plus sombre et va de 1:1 pour deux couleurs identiques à 21:1 pour le noir et le blanc. Le rapport affiché est arrondi à deux décimales, mais chaque décision utilise la valeur complète non arrondie. Ainsi, une valeur affichée à 4.50 ne réussit pas si sa valeur réelle reste inférieure à 4.5. La réponse regroupe quatre booléens pour le texte normal et le grand texte, faciles à présenter à une équipe de conception ou à vérifier dans des tests automatisés.

Saisissez des couleurs valides et interprétez AA et AAA

Indiquez le premier plan et l’arrière-plan sous forme de couleurs hexadécimales à trois ou six chiffres, avec ou sans croisillon initial. Les valeurs #123, 123, #112233 et AABBCC sont acceptées puis normalisées. Les noms de couleurs CSS, les expressions rgb() ou hsl(), les valeurs hexadécimales alpha à quatre ou huit chiffres, les chaînes vides et les valeurs non textuelles sont refusés, car l’opacité et la composition demandent davantage de contexte. Pour un texte normal, WCAG AA impose au moins 4.5:1 et AAA impose 7:1. Pour un grand texte, AA demande 3:1 et AAA demande 4.5:1. Le grand texte correspond généralement à au moins 18 points en graisse normale ou 14 points en gras. Cette capacité n’examine pas la typographie ; elle fournit les deux matrices afin que votre application retienne la bonne. Un rapport réussi n’est qu’un élément d’un contrôle d’accessibilité et ne prouve pas que toute une interface est accessible.

Intégrez les résultats aux processus de conception et de livraison

Utilisez les véritables jetons de premier plan et d’arrière-plan du composant plutôt que des couleurs prélevées dans une capture compressée. Lors d’un contrôle manuel, comparez le corps du texte, le texte secondaire, les liens, les libellés de boutons, les aides de formulaire, les indicateurs de focus et les états désactivés à chaque surface concernée. Dans un système de conception, conservez une petite matrice de paires approuvées et appelez l’API à chaque changement de palette. Un contrôle d’intégration continue peut refuser une paire proposée lorsque AA est faux pour le texte normal, tout en autorisant une combinaison décorative ou un grand titre selon une règle documentée. Enregistrez les couleurs normalisées et le rapport avec le test afin que les réviseurs reproduisent le constat. Chaque appel automatisé coûte $0.002 ; une entrée incorrecte produit une erreur. L’algorithme n’utilise ni réseau, ni hasard, ni heure courante : une même paire donne toujours le même résultat. Pour les transparences, dégradés, photos ou états interactifs, déterminez d’abord les couleurs rendues ou utilisez un audit de navigateur complet.

Contrôler des jetons de conception

Comparez les jetons de texte et de surface avant de publier un thème clair ou sombre.

Sécuriser les demandes de modification

Faites échouer un contrôle automatique lorsqu’une paire modifiée ne respecte plus le niveau de texte requis.

Documenter les constats d’accessibilité

Ajoutez des couleurs normalisées, des luminances et un rapport reproductible à un ticket ou rapport d’audit.

Quels formats de couleur pouvez-vous utiliser ?

Utilisez des couleurs hexadécimales à trois ou six chiffres, avec ou sans croisillon initial. Alpha, noms, rgb() et hsl() sont refusés.

Quels seuils WCAG sont appliqués ?

Le texte normal utilise 4.5:1 pour AA et 7:1 pour AAA. Le grand texte utilise 3:1 pour AA et 4.5:1 pour AAA.

La réussite dépend-elle du rapport arrondi ?

Non. Le rapport est arrondi uniquement pour l’affichage ; les indicateurs comparent la valeur calculée complète à chaque seuil.

Une paire réussie rend-elle la page conforme à WCAG ?

Non. Elle confirme uniquement le contraste des deux couleurs opaques fournies. Un contrôle complet d’accessibilité couvre bien davantage.

Quel est le prix d’un appel API ?

Chaque appel API coûte $0.002. Vous pouvez aussi utiliser le calculateur web pour des contrôles interactifs ponctuels.

Tout sur cette page est disponible par programmation. Cette section s'adresse aux équipes qui veulent l'intégrer à leurs systèmes ; les autres peuvent simplement utiliser l'outil ci-dessus.

POSThttps://api.kit.forhosting.com/color/contrast-ratio-wcag

Authentification par jeton Bearer : un seul POST met la tâche en file d’attente, et le résultat vous parvient par webhook ou lien signé.

curl -X POST https://api.kit.forhosting.com/color/contrast-ratio-wcag \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"foreground":"#111827","background":"#ffffff"}'
{
  "foreground": "#111827",
  "background": "#ffffff"
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "color.contrast_ratio_wcag",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

L’API est asynchrone : chaque appel renvoie un task_id immédiatement, puis vous interrogez l’état à raison d’une requête par seconde.

par requête$0.002

Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.

HTTPCodeSignification
401unauthorizedClé API absente ou invalide : vérifiez l’en-tête Authorization.
402insufficient_balanceSolde insuffisant : rechargez votre compte pour lancer cette tâche.
404unknown_typeType de tâche inconnu : vérifiez le champ type de votre requête.
429rate_limitedTrop de requêtes : ralentissez la cadence, puis réessayez.

Consulter la documentation complète du KIT →