WCAG-Kontrastverhältnis-Prüfer
Erfahren Sie, ob ein Text auf seinem Hintergrund nach WCAG lesbar bleibt: #111827 auf Weiß erreicht 17.74 zu 1 und besteht AA und AAA für normalen wie großen Text. Eine Zahl, die Ihre Barrierefreiheits-Tickets zitieren können. Kostenlos in Ihrem Browser.
- Kostenlos
- Läuft in Ihrem Browser
- Ohne Anmeldung
- Ihre Daten bleiben auf Ihrem Gerät
Im Browser ausführen – kostenlos
Rechenbeispiel
- Vordergrund
- #111827
- Hintergrund
- #ffffff
- Kontrastverhältnis
- 17,74
Dieser WCAG-Kontrastverhältnis-Prüfer nimmt zwei Hex-Farben — Vordergrund und Hintergrund — entgegen und liefert das offizielle Kontrastverhältnis nach den Web Content Accessibility Guidelines, zusammen mit klaren AA- und AAA-Bestehen-Kennzeichen für normalen und großen Text. Designer, Entwickler und Prüfer nutzen dieses Verhältnis, um zu entscheiden, ob Fließtext, Schaltflächen, Beschriftungen und Bedienelemente für Menschen mit eingeschränktem Sehvermögen oder Farbsehschwächen lesbar bleiben. Die Engine folgt der WCAG-2.x-Formel für relative Leuchtdichte: Jeder Hex-Kanal wird aus sRGB linearisiert, die Leuchtdichte wird mit den Standardkoeffizienten 0,2126, 0,7152 und 0,0722 gewichtet, und das Kontrastverhältnis ist (L heller plus 0,05) geteilt durch (L dunkler plus 0,05). Die Schwellenwerte sind ungerundet: Normaler Text benötigt mindestens 4,5 für AA und 7 für AAA; großer Text benötigt mindestens 3 für AA und 4,5 für AAA. Die Ergebnisse sind deterministisch, ohne Netzwerkaufrufe, Stichproben oder datumsabhängige Abkürzungen.
Was das WCAG-Kontrastverhältnis misst und was die Antwort enthält
Das Kontrastverhältnis ist die eine Zahl, mit der WCAG beschreibt, wie stark sich Text von seinem Hintergrund abhebt, unter Berücksichtigung der menschlichen Leuchtdichtewahrnehmung statt eines einfachen RGB-Abstands. Ein Paar reines Schwarz auf reinem Weiß erreicht einundzwanzig zu eins, das theoretische Maximum für deckende sRGB-Farben, während identische Farben eins zu eins ergeben und jedes Textkriterium nicht bestehen.
Großer Text bedeutet im Sinne der WCAG mindestens 18 Punkt regulär oder das Äquivalent von 14 Punkt fett; das Tool misst die Schriftgröße nicht selbst — es wendet lediglich die Schwellenwerte für großen Text an, damit Sie die Matrix Ihrer Typografie-Skala zuordnen können. Es gibt kein Crawling von Seiten, kein CSS-Parsing, keine Deckkraft-Mischung und keine Verlaufs-Abtastung: Sie geben zwei explizite Hex-Farben an und erhalten eine reproduzierbare Matrix, geeignet für Design-Token-CI, Figma-Plugin-Backends und Ticketkommentare, die ein numerisches Verhältnis statt einer Screenshot-Meinung anführen müssen.
Wie Hex-Eingaben gelesen werden und wie AA und AAA reproduzierbar bleiben
Beide Werte müssen Hex-Werte sein: mit optionalem führendem Rautezeichen, entweder drei Ziffern, die auf sechs erweitert werden (#abc wird zu #aabbcc), oder sechs volle Ziffern, ohne Berücksichtigung der Groß-/Kleinschreibung. Alpha-Suffixe, rgb()-Funktionen, hsl()-Funktionen, benannte CSS-Farben und blanke Ganzzahlen werden mit einer Meldung abgelehnt, die das Feld benennt und zeigt, was empfangen wurde, damit ein fehlerhaftes Token nie zu einem stillen Fail-Open wird. Jede Farbe ist auf zweiunddreißig Zeichen begrenzt, um die Validierung günstig zu halten und Einfügeunfälle zu blockieren.
Nach dem Parsen werden die Kanäle mit der stückweisen WCAG-sRGB-Kurve linearisiert — dividieren durch 12,92 unterhalb der Schwelle 0,04045, andernfalls ((c plus 0,055) über 1,055) hoch 2,4 — und anschließend zur relativen Leuchtdichte kombiniert. Das Verhältnis verwendet die hellere Leuchtdichte im Zähler; die Bestehen-Kennzeichen vergleichen das ungerundete Gleitkomma-Verhältnis mit 4,5, 7,0 und 3,0, damit eine angezeigte 4,50 keine tatsächliche 4,499 verbirgt, die AA nicht bestehen sollte.
Wo Kontrastprüfungen in Design-Systemen, UI-Reviews und CI zum Einsatz kommen
Produktteams stoßen auf Kontrastanforderungen, wenn eine Markenpalette auf einer Marketing-Folie elegant wirkt, aber bei Fließtext auf einer weißen Karte scheitert, wenn ein Dark-Mode-Theme aus hellen Tokens generiert wird, oder wenn Rechts- und Compliance-Verantwortliche vor dem Launch einen dokumentierten AA-Nachweis verlangen. Ingenieure verdrahten denselben Vertrag mit Pull-Request-Prüfungen, die eine Token-Änderung blockieren, wenn AA für normalen Text bei primären Fließtextfarben unter 4,5 fällt, oder protokollieren den AAA-Status für großen Text bei Hero-Überschriften, die absichtlich näher an der Oberfläche liegen.
QA- und Barrierefreiheits-Spezialisten nutzen das numerische Verhältnis in Fehlerberichten, damit Entwickler das genaue Paar korrigieren können, statt anhand eines Screenshots zu raten. Content- und Marketingteams prüfen, ob Kampagnen-Hex-Codes auf hellen oder dunklen Website-Hintergründen weiterhin bestehen. Kombinieren Sie ihn mit Farbkonvertierungs-Tools, wenn Sie RGB- oder HSL-Zwischenwerte benötigen, sowie mit vollständigen Barrierefreiheits-Audits, wenn Sie lebendes Markup statt zwei expliziter Hex-Werte scannen müssen.
Anwendungsfälle
Design-Token- und Paletten-Review
Prüfen Sie jedes Vordergrund/Hintergrund-Paar einer Markenpalette gegen AA und AAA, bevor Sie Tokens für helle und dunkle Themes festschreiben.
Barrierefreiheits-Fehlerberichte
Fügen Sie Tickets ein numerisches Kontrastverhältnis und die AA/AAA-Matrix bei, damit Entwickler das genaue Hex-Paar korrigieren können statt eines vagen Screenshots.
Häufige Fragen
Was kostet der WCAG-Kontrastverhältnis-Prüfer?
Auf dieser Seite ist er in Ihrem Browser kostenlos nutzbar.
Welche AA- und AAA-Schwellenwerte werden hier verwendet?
Normaler Text: AA ≥ 4,5 und AAA ≥ 7. Großer Text: AA ≥ 3 und AAA ≥ 4,5. Die Kennzeichen verwenden das ungerundete Verhältnis; das angezeigte Verhältnis ist auf zwei Nachkommastellen gerundet.
Scannt dieses Tool meine Website nach Kontrastproblemen?
Nein. Es vergleicht ausschließlich zwei von Ihnen angegebene Hex-Farben. Für Prüfungen lebender Seiten verwenden Sie einen dedizierten Barrierefreiheits-Scanner; dieser Endpunkt beantwortet die WCAG-Verhältnisfrage für zwei Farben.
Warum ist ein Paar bei AA durchgefallen, obwohl es mir gut aussieht?
Die menschliche Wahrnehmung variiert, und das Umgebungslicht unterscheidet sich. WCAG verwendet relative Leuchtdichte auf linearisiertem sRGB, nicht die wahrgenommene Leuchtkraft. Vertrauen Sie für Compliance-Prüfungen dem numerischen Verhältnis und passen Sie die Hex-Werte an, bis die Matrix besteht.
Welche Farbformate akzeptiert der WCAG-Prüfer?
Nur Hex-Farben mit drei oder sechs Stellen, mit oder ohne führende Raute, in Groß- oder Kleinschreibung. Farbnamen, RGB- oder HSL-Schreibweise und Transparenz werden abgelehnt, damit ein falscher Wert nie als bestanden gilt.
Verwandte Tools
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/color/contrast \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"foreground":"#111827","background":"#ffffff"}'const res = await fetch("https://api.kit.forhosting.com/color/contrast", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"foreground": "#111827",
"background": "#ffffff"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/color/contrast",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"foreground": "#111827",
"background": "#ffffff"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/color/contrast", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"foreground":"#111827","background":"#ffffff"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"foreground":"#111827","background":"#ffffff"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/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
{
"foreground": "#111827",
"background": "#ffffff"
}Beispiel-Antwort
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "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 | 32 |
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. |
Technische Hinweise
Nutzen Sie ihn kostenlos im Browser für Paletten-Reviews und Design-Tokens, oder rufen Sie die API zu $0.002 pro erfolgreicher Anfrage auf, wenn Sie dieselbe Matrix in CI, Design-Systemen oder automatisierten Barrierefreiheits-Gates benötigen.
Was das WCAG-Kontrastverhältnis misst und was die Antwort enthält
Dieser Prüfer normalisiert jeden eingegebenen Hex-Wert zu einer kanonischen Kleinbuchstaben-Form #rrggbb und einem Echo rgb(r, g, b), liefert dann contrast_ratio gerundet auf zwei Nachkommastellen zur Anzeige sowie ein Objekt wcag mit den Zweigen normal_text und large_text, die jeweils boolesche Felder aa und aaa enthalten. Die Methodenkennung wcag_relative_luminance dokumentiert, dass der Weg der veröffentlichten Formel für relative Leuchtdichte folgt, nicht einem perzeptuellen Delta-E- oder APCA-Verfahren. Ungültige Hex-Codes, fehlende Felder, nicht-String-Werte und überlange Zeichenketten werden mit invalid_input abgelehnt und nie berechnet. Wenn Sie eine vollständige Site-Prüfung benötigen, kombinieren Sie diesen Endpunkt mit einem umfassenderen Barrierefreiheits-Scanner; diese Seite beantwortet ausschließlich die Zwei-Farben-Frage mit stabilem JSON für Menschen und Maschinen gleichermaßen.
Wie Hex-Eingaben gelesen werden und wie AA und AAA reproduzierbar bleiben
Die bevorzugten Felder sind foreground für die Text- oder Symbolfarbe und background für die dahinterliegende Fläche; akzeptiert werden zudem die Aliase fg, color1, text und hex1 für die erste Farbe sowie bg, color2 und hex2 für die zweite, damit Formulare, Abfragezeichenfolgen und Tabellenkalkulationen denselben Vertrag wiederverwenden können, ohne Spalten umzubenennen. Kombinieren Sie den kostenlosen Browser-Check auf dieser Seite mit der kostenpflichtigen API, wenn Design-System-Pipelines das identische mathematische Ergebnis benötigen, ohne die Leuchtdichte-Mathematik in jeder Sprache neu zu implementieren.
Wo Kontrastprüfungen in Design-Systemen, UI-Reviews und CI zum Einsatz kommen
Designer können Hex-Paare aus Figma oder einer Token-JSON-Datei einfügen und die AA- und AAA-Matrix lesen, bevor sie eine Farbskala festschreiben. Auf dieser Seite läuft die Berechnung vollständig in Ihrem Browser; über die API kostet jeder erfolgreiche Abruf $0.002, fehlgeschlagene Validierung wird nicht berechnet, und nach der Antwort wird nichts gespeichert. Diese Aufteilung — freie interaktive Erkundung und eine kostenpflichtige, identische API — entspricht dem Rest des KIT-Tier-A-Katalogs und ermöglicht den Übergang von einem Paletten-Workshop zu einer automatisierten Pipeline, ohne das mathematische Ergebnis zu verändern.
Integrationsbeispiele
CI-Gates für UI-Farben
Rufen Sie die API aus Pull Requests auf, um Builds fehlschlagen zu lassen, wenn Hex-Paare für Fließtext oder Schaltflächen unter das AA-Kriterium für normalen Text (4,5:1) fallen.
Technische Fragen
Welche Farbformate werden akzeptiert?
Nur Hex: #RGB oder #RRGGBB, mit oder ohne führendes Rautezeichen, ohne Berücksichtigung der Groß-/Kleinschreibung. rgb(), hsl(), benannte Farben und Alpha-Hex werden mit invalid_input abgelehnt.