Farbkontrast prüfen
Zwei Farben können auf einem Bildschirm gut lesbar wirken und trotzdem den nötigen Kontrast für barrierefreien Text verfehlen. Geben Sie Vorder- und Hintergrundfarbe ein, um das exakte Verhältnis und getrennte WCAG-Ergebnisse zu erhalten.
Im Browser ausführen – kostenlos
Läuft direkt in Ihrem Browser – kostenlos. Ihre Datei verlässt Ihren Browser nicht und wird an keinen Server übertragen.
Eine Messung statt eines Eindrucks
Bildschirmhelligkeit, Schriftstärke, Umgebungslicht und benachbarte Farbtöne verändern, wie dieselbe Kombination wahrgenommen wird. Eine Freigabe nach Augenmaß hängt deshalb zu stark vom Arbeitsplatz der prüfenden Person ab. Das Werkzeug wandelt beide Farben in sRGB um, berechnet ihre relative Leuchtdichte und wendet die WCAG-Kontrastformel auf den helleren und den dunkleren Wert an. Sie erhalten ein numerisches Verhältnis sowie vier getrennte Aussagen: AA und AAA für normalen Text, anschließend AA und AAA für großen Text. Eine Überschrift kann damit bestehen, obwohl derselbe Farbwert bei kleinerem Fließtext nicht ausreicht.
Farbwerte direkt aus Stylesheet oder Designsystem
Sie können drei- oder sechsstellige HEX-Werte, eine rgb()-Funktion mit drei Kanälen oder hsl() mit Prozentwerten für Sättigung und Helligkeit eingeben. Die Antwort normalisiert beide Angaben als sechsstelligen HEX-Wert und als RGB. Damit lässt sich ein CSS-Wert mit einem Design-Token vergleichen oder ein reproduzierbares Prüfergebnis dokumentieren. Alphakanäle bleiben bewusst außen vor: Die sichtbare Farbe einer transparenten Ebene hängt von allen darunterliegenden Schichten ab. Mischen Sie die Transparenz zuerst mit dem endgültigen Hintergrund und prüfen Sie danach das tatsächlich angezeigte, deckende Farbpaar.
Was die Ergebnismatrix aussagt und was nicht
Ein bestandenes Ergebnis beschreibt ausschließlich diese beiden einfarbigen Werte. Es prüft weder tatsächliche Schriftgröße und -stärke noch Verläufe, Bilder, Text auf Video, Hover-Zustände, Tastaturfokus oder die semantische Struktur einer Seite. Prüfen Sie jeden wichtigen Zustand eines Bedienelements einzeln, sobald sich eine Farbe ändert. Im Browser läuft die Berechnung lokal und eignet sich für die schnelle, nachvollziehbare Kontrolle einer vollständigen Palette in sämtlichen vorgesehenen Zuständen und Ansichten. Für automatische Prüfungen in Ihrer Entwicklungsstrecke senden Sie dieselben beiden Felder an die API. Sie erhalten dort dasselbe strukturierte Objekt und können es unmittelbar mit der festgelegten Qualitätsregel Ihres Produkts vergleichen.
Anwendungsfälle
Design-Tokens vor der Freigabe prüfen
Kontrollieren Sie Text- und Flächenfarben einer Palette getrennt für Fließtext und große Überschriften.
Komponentenzustände vergleichen
Testen Sie Normal-, Auswahl-, Fehler- und Fokuszustand, ohne sich auf die Darstellung eines einzigen Monitors zu verlassen.
Automatische Qualitätsregel
Rufen Sie die API in der kontinuierlichen Integration auf, um Farbkombinationen unterhalb der geforderten WCAG-Schwelle abzulehnen.
Häufige Fragen
Welche Farbformate werden akzeptiert?
Drei- oder sechsstellige HEX-Werte, rgb() mit drei Kanälen und hsl() mit Prozentwerten für Sättigung und Helligkeit. Farbnamen und Alpha sind ausgeschlossen.
Was bedeuten AA und AAA im Ergebnis?
Es sind WCAG-Konformitätsstufen. Sie werden für normalen und großen Text getrennt angezeigt, weil jeweils andere Kontrastanforderungen gelten.
Ist die Kontrastprüfung kostenlos?
Das Werkzeug auf dieser Seite läuft kostenlos im Desktop- oder Mobilbrowser. Über die API kostet jede erfolgreiche Anfrage $0.002 und wird von Ihrem vorausbezahlten KIT-Guthaben abgezogen.
Verwendet die native Mobilanwendung das kostenlose Browser-Werkzeug?
Nein. Die native Anwendung ruft die API auf und zeigt den Preis der Aufgabe an. Öffnen Sie diese Seite im Mobilbrowser, wenn Sie die lokale Berechnung nutzen möchten.
Beweist das Ergebnis die WCAG-Konformität meiner gesamten Seite?
Nein. Es prüft ein einziges deckendes Farbpaar. Eine vollständige Untersuchung umfasst außerdem Typografie, Tastatur, Beschriftungen, Bilder, Zustände und weitere Kriterien.
Warum werden transparente Farben abgelehnt?
Ihre sichtbare Farbe hängt von den unteren Ebenen ab. Mischen Sie die Transparenz zuerst mit dem endgültigen Hintergrund und prüfen Sie dann die beiden deckenden Farben.
Für Entwickler — API-Zugang
Alles auf dieser Seite ist auch per API verfügbar. Dieser Abschnitt richtet sich an Teams, die es in ihre eigenen Systeme einbinden möchten; alle anderen nutzen einfach das Tool oben.
Endpunkt
Authentifizierung per Bearer-Token. Ein einziger POST stellt die Aufgabe in die Warteschlange; das Ergebnis erhalten Sie per Webhook oder über einen signierten Link.
Aufruf aus Ihrem Stack
curl -X POST https://api.kit.forhosting.com/verify/color-contrast \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"items":["valor-1","valor-2"]}'const res = await fetch("https://api.kit.forhosting.com/verify/color-contrast", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"items": [
"valor-1",
"valor-2"
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/verify/color-contrast",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"items": [
"valor-1",
"valor-2"
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/verify/color-contrast", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"items":["valor-1","valor-2"]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"items":["valor-1","valor-2"]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/verify/color-contrast", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Beispiel-Anfrage
{
"items": [
"valor-1",
"valor-2"
]
}Beispiel-Antwort
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "verify.color_contrast",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}Die API arbeitet asynchron: Sie erhalten sofort eine task_id. Polling ist mit 1 Anfrage pro Sekunde erlaubt.
Preis
Der Preis steht auf der Seite – keine Tokens, keine Credits. Fehlgeschlagene Aufgaben werden nicht berechnet.
Limits
max_color_chars | 100 |
Fehler
| HTTP | Code | Bedeutung |
|---|---|---|
401 | unauthorized | Der API-Schlüssel fehlt oder ist ungültig – prüfen Sie den Authorization-Header (Bearer). |
402 | insufficient_balance | Ihr Guthaben reicht für diese Aufgabe nicht aus – Aufladungen verfallen nicht. |
404 | unknown_type | Unbekannter Aufgabentyp – prüfen Sie das Feld „type“ gegen den Katalog. |
429 | rate_limited | Zu viele Anfragen – warten Sie kurz; Polling ist mit 1 Anfrage pro Sekunde erlaubt. |