Matrice di contrasto colori
Una palette può sembrare coerente e contenere comunque combinazioni che rendono il testo difficile o impossibile da leggere.
Esegui gratis nel browser
Questa matrice calcola la luminanza relativa WCAG 2 di ogni colore esadecimale fornito, confronta tutti i colori tra loro e restituisce i risultati in una matrice quadrata stabile. Designer, sviluppatori e professionisti dell’accessibilità possono esaminare in una sola volta l’intera palette di un sistema di progettazione, senza verificare ogni coppia separatamente. Gli input vengono convalidati, i colori normalizzati e il risultato deterministico è adatto ad audit automatici e rapporti versionati.
Legga la matrice mantenendo il riferimento ai colori
Invii un elenco contenente da due a cento colori esadecimali. Sono accettati i formati a tre e sei cifre, con o senza cancelletto iniziale, e ogni valore valido viene normalizzato in un codice minuscolo a sei cifre. La risposta elenca i colori normalizzati nello stesso ordine e assegna un indice a ciascuno. Righe e colonne rispettano esattamente tale ordine: il valore alla riga due e colonna cinque descrive quindi il contrasto tra i colori con indici due e cinque. La diagonale vale sempre 1, perché un colore non contrasta con sé stesso, e la matrice è simmetrica, dato che invertire primo piano e sfondo non modifica il rapporto WCAG. Ogni rapporto visualizzato viene arrotondato a due decimali e ogni luminanza a sei. I colori duplicati restano posizioni separate, una scelta utile per controllare token con lo stesso valore ma ruoli semantici diversi. Questo modello posizionale rende semplice mostrare una tabella, conservare una prova di audit o confrontare diverse versioni.
Comprenda il calcolo e le soglie WCAG
Il calcolo segue il metodo di luminanza relativa WCAG 2 per i colori sRGB. Ogni canale rosso, verde e blu viene convertito dal valore sRGB codificato alla luce lineare, quindi combinato usando i coefficienti standard. Per ogni coppia, la luminanza più chiara più 0.05 viene divisa per quella più scura più 0.05, ottenendo un rapporto da 1 a 21. La risposta include le soglie WCAG note: 4.5 per testo normale AA, 7 per testo normale AAA, 3 per testo grande AA e 4.5 per testo grande AAA. Confronti le celle con la soglia appropriata al contenuto e alla tipografia effettivi. Un rapporto da solo non certifica accessibile un’intera interfaccia, poiché contano anche dimensione e peso del carattere, stati interattivi, elementi non testuali e contesto. Lo strumento restituisce prove numeriche anziché un verdetto generale, così Lei può applicare la regola corretta a ogni abbinamento previsto senza scambiare un valore arrotondato per una garanzia complessiva.
Usi risultati deterministici negli audit di design
Una matrice completa è particolarmente utile quando il controllo della palette deve essere ripetibile. Mantenga i colori in un ordine documentato, per esempio neutri seguiti da token di marca, stato e accento, quindi salvi la matrice con la versione del sistema di progettazione. Un controllo di integrazione continua può confrontare celle selezionate con le soglie richieste, mentre chi esegue la revisione può esaminare l’intera tabella per trovare combinazioni deboli inattese. Poiché l’algoritmo non usa rete, casualità, ora corrente, stili del browser o stime del profilo colore, input JSON identici generano output JSON identici. Elenchi non validi, palette fuori limite e valori esadecimali errati vengono rifiutati con un indice chiaro. Il limite di cento colori circoscrive la matrice quadratica a diecimila celle. Gestisca trasparenza e composizione prima della chiamata: i colori alfa vengono rifiutati perché il risultato visibile dipende dallo sfondo. Converta inoltre nomi, HSL, valori ad ampia gamma oppure oggetti degli strumenti di design in hex sRGB opaco, per una base esplicita e riproducibile.
Casi d'uso
Controllare i token di design
Generi una matrice indicizzata per token di marca, superficie, testo, bordo e stato prima di pubblicare una versione del sistema di progettazione.
Verificare le migrazioni dei temi
Confronti le matrici delle palette precedente e nuova per individuare combinazioni il cui contrasto è peggiorato durante la riprogettazione.
Automatizzare la revisione dell’accessibilità
Fornisca rapporti stabili alle regole di integrazione continua che impongono la soglia WCAG adatta alle coppie di token approvate.
Domande frequenti
Quanto costa una richiesta?
Il prezzo base dell’API è $0.002 per richiesta.
Quali formati di colore sono accettati?
Sono accettati colori hex sRGB opachi a tre o sei cifre, con o senza cancelletto iniziale. Alfa, nomi, HSL e formati ad ampia gamma vengono rifiutati.
Come corrispondono righe, colonne e colori?
Entrambi gli assi seguono l’ordine originale dell’input. Ogni colore restituito contiene il proprio indice e matrix[row][column] è il rapporto fra i due colori indicizzati.
Perché ogni valore diagonale è 1?
Un colore confrontato con sé stesso ha luminanza identica, quindi la formula di contrasto WCAG produce sempre un rapporto pari a 1.
Un rapporto dimostra che un design è accessibile?
No. Fornisce la prova di contrasto usata nei controlli WCAG, ma l’accessibilità dipende anche da tipografia, stati, contenuto e uso corretto di ogni coppia.
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/palette-contrast-matrix \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"colors":["#ffffff","#111827","#2563eb","#facc15"]}'const res = await fetch("https://api.kit.forhosting.com/color/palette-contrast-matrix", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"colors": [
"#ffffff",
"#111827",
"#2563eb",
"#facc15"
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/color/palette-contrast-matrix",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"colors": [
"#ffffff",
"#111827",
"#2563eb",
"#facc15"
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/color/palette-contrast-matrix", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"colors":["#ffffff","#111827","#2563eb","#facc15"]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"colors":["#ffffff","#111827","#2563eb","#facc15"]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/color/palette-contrast-matrix", 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": [
"#ffffff",
"#111827",
"#2563eb",
"#facc15"
]
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "color.palette_contrast_matrix",
"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.
Limiti
max_items | 100 |
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. |