Vérifiez une palette pour protanopie et deutéranopie
Une palette catégorielle ne doit pas seulement être esthétique dans des conditions ordinaires.
Lancer gratuitement
Ses couleurs doivent rester distinctes lorsqu’une personne présentant une déficience courante de la vision rouge-vert consulte un graphique, une carte, un tableau de bord ou une interface. Ce vérificateur simule la protanopie et la deutéranopie complètes, mesure chaque paire dans un espace colorimétrique perceptuel et repère celles qui passent sous le seuil choisi. Il fournit ainsi une alerte précoce reproductible, tandis que la validation finale des libellés, formes, tracés et dimensions réelles reste du ressort de la conception.
Testez toutes les relations de la palette catégorielle
Une couleur catégorielle distingue des classes indépendantes : gammes de produits dans un graphique, itinéraires sur une carte, états dans un tableau de bord ou équipes dans un planning. Une palette peut sembler variée tout en contenant deux teintes qui convergent pour une personne présentant une déficience rouge-vert. Saisissez entre deux et soixante-quatre couleurs hexadécimales. Le vérificateur normalise les notations courte et longue, évalue chaque paire unique et renvoie les indices d’origine afin que vous retrouviez exactement les échantillons dans votre système. Le résultat indique si la palette réussit, combien de paires ont été examinées et lesquelles exigent votre attention. Il renvoie aussi les couleurs hexadécimales simulées pour la protanopie et la deutéranopie, ce qui facilite l’examen et la reproduction du calcul. Lorsqu’une paire est signalée, augmentez son écart de luminosité, saturation ou teinte, puis relancez le test. Les doublons sont naturellement signalés, leur distance perceptuelle étant nulle. Les notations incorrectes, listes trop longues et palettes de moins de deux couleurs sont refusées pour éviter toute conclusion trompeuse.
Comprenez la simulation et le seuil
Le calcul décode d’abord chaque couleur sRGB et linéarise ses canaux, car les matrices de déficience ne doivent pas être appliquées directement aux valeurs d’affichage encodées en gamma. Il applique ensuite séparément des matrices reconnues à intensité complète pour la protanopie et la deutéranopie, convertit chaque résultat simulé en CIE Lab et mesure la séparation par la formule CIE76. Une paire est signalée si sa distance est strictement inférieure au seuil. La valeur par défaut est 20 : c’est un critère pratique de dépistage des palettes catégorielles, pas l’affirmation qu’un nombre représente tous les observateurs et environnements. Vous pouvez la réduire pour un contrôle technique moins prudent ou l’augmenter si de petites marques, des traits fins, un écran médiocre ou une lecture rapide nécessitent davantage d’écart. La sortie sépare les deux simulations et fournit également une liste consolidée, afin qu’une automatisation échoue une seule fois sans perdre le diagnostic. La distance originale accompagne les paires signalées pour montrer les couleurs initialement éloignées qui convergent. Les distances affichées sont arrondies pour assurer des résultats stables.
Intégrez le résultat à une conception accessible
Une palette validée constitue un indice utile, mais pas un certificat complet d’accessibilité. L’apparence varie selon les couleurs voisines, la taille des marques, l’anticrénelage, le calibrage de l’écran, la lumière ambiante ainsi que le type et l’intensité de la vision chromatique individuelle. Surtout, une interface ne doit jamais transmettre une information essentielle par la couleur seule. Associez ce contrôle à des libellés directs, icônes, motifs, formes, pointillés ou positions afin que les catégories restent identifiables lorsque deux teintes sont difficiles à nommer. Pour un graphique, testez la visualisation terminée à sa taille prévue, plutôt que des échantillons isolés. Pour les états tels que réussite et échec, contrôlez séparément le contraste texte-fond : distance catégorielle et contraste WCAG répondent à des questions différentes. Dans un système de conception, exécutez cette capacité dès que les jetons de palette changent et conservez le JSON déterministe avec les autres contrôles. Une même entrée ordonnée produit toujours le même calcul, sans réseau, hasard, modèle ni donnée temporelle. Le navigateur et l’API partagent le solveur, ce qui permet d’expérimenter puis d’imposer le seuil en intégration continue pour $0.002 par requête.
Cas d’usage
Contrôlez les couleurs des séries
Repérez avant publication les lignes, barres ou zones susceptibles de converger avec une déficience rouge-vert.
Protégez les jetons du système de conception
Lancez un contrôle déterministe lors d’un changement de palette et bloquez toute nouvelle paire ambiguë.
Auditez les catégories de cartes et d’états
Repérez les régions, itinéraires ou états qui demandent plus d’écart, des libellés, motifs ou icônes.
Questions fréquentes
Quels formats de couleur sont acceptés ?
Utilisez des couleurs sRGB hexadécimales au format #RGB ou #RRGGBB. La forme courte est développée et la sortie normalisée en #RRGGBB majuscule.
Que signifie le seuil ?
C’est la distance CIE76 minimale autorisée après simulation. Toute paire inférieure est signalée ; la valeur par défaut est 20.
Un résultat sûr garantit-il l’accessibilité ?
Non. Il s’agit d’un dépistage de palette. Ajoutez des indices redondants, testez la réalisation finale et contrôlez les contrastes appropriés.
Quelles déficiences sont simulées ?
Le vérificateur simule séparément la protanopie et la deutéranopie complètes et indique les paires en échec dans chaque cas.
Pourquoi indiquer la distance originale ?
Elle révèle les paires qui semblent très éloignées avant simulation, puis se rapprochent dans une ou deux conditions.
Quel est le prix de l’API ?
Chaque requête API coûte $0.002. Vous pouvez aussi utiliser dans le navigateur le même solveur déterministe.
Pour les développeurs — accès API
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.
Endpoint
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é.
Appeler depuis votre stack
curl -X POST https://api.kit.forhosting.com/color/color-blind-safe-palette-check \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"colors":["#0072B2","#D55E00","#009E73","#CC79A7"]}'const res = await fetch("https://api.kit.forhosting.com/color/color-blind-safe-palette-check", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"colors": [
"#0072B2",
"#D55E00",
"#009E73",
"#CC79A7"
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/color/color-blind-safe-palette-check",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"colors": [
"#0072B2",
"#D55E00",
"#009E73",
"#CC79A7"
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/color/color-blind-safe-palette-check", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"colors":["#0072B2","#D55E00","#009E73","#CC79A7"]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"colors":["#0072B2","#D55E00","#009E73","#CC79A7"]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/color/color-blind-safe-palette-check", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemple de requête
{
"colors": [
"#0072B2",
"#D55E00",
"#009E73",
"#CC79A7"
]
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "color.color_blind_safe_palette_check",
"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.
Tarifs
Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.
Erreurs
| HTTP | Code | Signification |
|---|---|---|
401 | unauthorized | Clé API absente ou invalide : vérifiez l’en-tête Authorization. |
402 | insufficient_balance | Solde insuffisant : rechargez votre compte pour lancer cette tâche. |
404 | unknown_type | Type de tâche inconnu : vérifiez le champ type de votre requête. |
429 | rate_limited | Trop de requêtes : ralentissez la cadence, puis réessayez. |