Verifichi le palette per protanopia e deuteranopia
Una palette categoriale non deve soltanto apparire gradevole in condizioni ordinarie.
Esegui gratis nel browser
I suoi colori devono rimanere distinguibili quando un grafico, una mappa, un pannello o un’interfaccia vengono osservati da una persona con una comune alterazione della visione rosso-verde. Questo strumento simula protanopia e deuteranopia complete, misura ogni coppia in uno spazio cromatico percettivo e individua quelle sotto la soglia scelta. Offre così un avviso preliminare riproducibile, lasciando alla progettazione la verifica finale nel contesto di etichette, forme, tratti e dimensioni effettive.
Verifichi ogni relazione nella palette categoriale
Il colore categoriale distingue classi indipendenti: linee di prodotto in un grafico, percorsi su una mappa, stati in un pannello o squadre in una pianificazione. Una palette può sembrare varia ma contenere due colori che convergono per una persona con un’alterazione della visione rosso-verde. Inserisca da due a sessantaquattro colori esadecimali. Lo strumento normalizza la notazione breve e lunga, valuta ogni coppia unica e restituisce gli indici originali, così Lei può ritrovare i campioni esatti nel sistema sorgente. Il risultato indica se la palette supera il controllo, quante coppie sono state esaminate e quali richiedono attenzione. Restituisce inoltre i colori esadecimali simulati per protanopia e deuteranopia, facilitando l’ispezione o la riproduzione del calcolo. Una coppia segnalata invita ad aumentare la differenza di luminosità, saturazione o tonalità e a ripetere il test. I duplicati vengono segnalati perché la distanza percettiva è zero. Notazioni non valide, elenchi troppo lunghi e palette con meno di due colori vengono rifiutati anziché produrre conclusioni fuorvianti.
Comprenda la simulazione e la soglia
Il calcolo decodifica anzitutto ogni colore sRGB e ne linearizza i canali, poiché le matrici delle alterazioni non vanno applicate direttamente ai valori dello schermo codificati con gamma. Applica quindi separatamente matrici consolidate a intensità completa per protanopia e deuteranopia, converte ogni risultato simulato in CIE Lab e misura la separazione con la formula CIE76. Una coppia viene segnalata quando la distanza è strettamente inferiore alla soglia. Il valore predefinito è 20: un criterio pratico di screening per palette categoriali, non la pretesa che un numero rappresenti ogni osservatore o condizione. Lei può ridurlo per un controllo tecnico meno prudente oppure aumentarlo quando simboli piccoli, linee sottili, schermi scadenti o una lettura rapida richiedono maggiore separazione. L’output mantiene distinti i risultati delle due condizioni e fornisce anche un elenco consolidato, affinché l’automazione possa fallire una volta senza perdere i dettagli diagnostici. La distanza originale accompagna le coppie segnalate per mostrare quali colori inizialmente lontani convergono dopo la simulazione. Le distanze visualizzate vengono arrotondate per ottenere risultati stabili.
Usi il risultato come parte del design accessibile
Una palette approvata è una prova utile, ma non un certificato completo di accessibilità. L’aspetto dei colori varia con quelli circostanti, la dimensione dei segni, l’antialiasing, la calibrazione dello schermo, la luce ambientale e il tipo o l’intensità della visione cromatica individuale. Soprattutto, un’interfaccia non dovrebbe comunicare informazioni essenziali soltanto tramite il colore. Abbini questo controllo a etichette dirette, icone, motivi, forme, tratteggi o posizione, affinché le categorie restino riconoscibili anche quando due colori sono difficili da nominare. Per i grafici, provi la visualizzazione completa nella dimensione prevista, non soltanto campioni isolati. Per stati come successo e errore, verifichi separatamente il contrasto fra testo e sfondo: distanza categoriale e contrasto WCAG rispondono a domande differenti. In un sistema di design, esegua questa capacità quando cambiano i token della palette e conservi il JSON deterministico con gli altri controlli. Lo stesso input ordinato produce sempre lo stesso calcolo, senza rete, casualità, modelli o dati temporali. Browser e API condividono il medesimo risolutore, permettendo di sperimentare e imporre la soglia nell’integrazione continua per $0.002 a richiesta.
Casi d'uso
Controlli i colori delle serie grafiche
Trovi colori di linee, barre o aree che possono convergere per alterazioni rosso-verde prima di pubblicare un pannello.
Protegga i token del sistema di design
Esegua un controllo deterministico quando cambiano i token categoriali e blocchi nuove coppie ambigue.
Verifichi categorie di mappe e stati
Individui regioni, percorsi o stati che richiedono più separazione, etichette, motivi o icone.
Domande frequenti
Quali formati di colore sono accettati?
Usi colori sRGB esadecimali in formato #RGB o #RRGGBB. La forma breve viene estesa e l’output normalizzato in #RRGGBB maiuscolo.
Che cosa indica la soglia?
È la distanza CIE76 minima consentita dopo la simulazione. Una coppia inferiore viene segnalata; il valore predefinito è 20.
Un risultato sicuro garantisce l’accessibilità?
No. È uno screening della palette. Usi segnali ridondanti, provi il design finito e svolga i controlli di contrasto appropriati.
Quali alterazioni vengono simulate?
Lo strumento simula separatamente protanopia e deuteranopia complete e riporta le coppie problematiche per ciascuna condizione.
Perché includere la distanza originale?
Aiuta a scoprire coppie inizialmente molto separate che diventano vicine in una o in entrambe le simulazioni.
Quanto costa l’API?
Ogni richiesta API costa $0.002. Lei può usare anche nel browser lo stesso risolutore deterministico.
Per sviluppatori — accesso via API
Tutto quello che vedi in questa pagina è disponibile anche via API. Questa sezione è per i team che vogliono integrarlo nei propri sistemi; chi non ne ha bisogno può semplicemente usare lo strumento qui sopra.
Endpoint
Autenticazione con Bearer token: un POST mette in coda l'attività e il risultato arriva via webhook o link firmato.
Chiamala dal tuo 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)Esempio di richiesta
{
"colors": [
"#0072B2",
"#D55E00",
"#009E73",
"#CC79A7"
]
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "color.color_blind_safe_palette_check",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L'API è asincrona: ricevi subito un task_id e puoi fare polling fino a 1 richiesta al secondo.
Prezzi
Prezzo pubblicato, senza token né crediti. Se l'attività fallisce, non paghi.
Errori
| HTTP | Codice | Significato |
|---|---|---|
401 | unauthorized | Chiave API mancante o non valida: controlla l'header Authorization. |
402 | insufficient_balance | Credito esaurito: ricarica per continuare a eseguire attività. |
404 | unknown_type | Tipo di attività sconosciuto: controlla il campo type della richiesta. |
429 | rate_limited | Troppe richieste in poco tempo: rallenta e riprova tra qualche secondo. |