Ist Text auf dem Hintergrund lesbar?
Finden Sie heraus, ob Text auf seinem Hintergrund lesbar ist: #111827 auf Weiß bei 16 px hat einen Kontrast von 17.74 und besteht AA und AAA. Schriftgröße und Schriftstärke entscheiden, ob das Minimum für großen Text gilt. 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
- Farbe
- #111827
- Hintergrund
- #ffffff
- Größe
- 16
- Größeneinheit
- Px
- Größe (pt)
- 12
- Größe (px)
- 16
- Textskalierung
- normal
Gestalterinnen und Ingenieure brauchen oft ein klares Ja oder Nein auf eine täuschend schlichte Frage: Ist diese Textfarbe in dieser Größe auf jenem Hintergrund wirklich lesbar? Ein Kontrastverhältnis allein entscheidet den Fall nicht, weil die Web Content Accessibility Guidelines großen Satz nachsichtiger behandeln als den Fließtext. Diese Prüfung nimmt eine Text-Hexfarbe, eine Hintergrund-Hexfarbe und eine Schriftgröße entgegen, stuft die Probe nach der veröffentlichten Regel von achtzehn Punkt oder vierzehn Punkt fett als normal oder large ein und vergleicht das offizielle Kontrastverhältnis der relativen Luminanz mit dem Minimum der von Ihnen gewünschten Stufe. Das Urteil ist ein boolesches Feld namens legible, dazu Verhältnis, Schwelle und Skalenklasse, damit Sie die Rechnung neben der Antwort zeigen können.
Wie die WCAG-Lesbarkeit nach der Größe entschieden wird
Die Web Content Accessibility Guidelines behandeln nicht jedes Zeichen gleich. Fließtext bei sechzehn Pixeln hat eine strengere Kontrastpflicht als eine Überschrift bei vierundzwanzig Pixeln, weil größere Buchstabenformen bei kleinerem Luminanzabstand lesbar bleiben. Diese Prüfung macht daraus ein einziges boolesches Urteil.
Sie zerlegt Textfarbe und Hintergrund als opakes sRGB-Hex, linearisiert jeden Achtbitkanal mit der amtlichen stückweisen Kurve und bildet die relative Luminanz mit den Gewichten 0.2126, 0.7152 und 0.0722. Das Kontrastverhältnis ist die hellere Luminanz plus 0.05 geteilt durch die dunklere plus 0.05. Zugleich rechnet sie die gelieferte Größe in CSS-Punkt um, wobei ein Punkt vier Drittel eines Pixels entspricht, und stuft die Probe als large ein, wenn sie mindestens achtzehn Punkt erreicht oder mindestens vierzehn Punkt beträgt und fett markiert ist.
Großer Satz braucht mindestens drei zu eins für AA und vier Komma fünf zu eins für AAA; normaler Satz braucht vier Komma fünf und sieben. Die angeforderte Stufe wählt eine dieser vier Schwellen. Das ungerundete Verhältnis wird mit der Schwelle verglichen, damit ein angezeigtes 4.50 kein 4.499 unter AA durchlässt.
Nichts wird aus CSS, Bildschirmfotos oder einer lebenden Seite abgeleitet: Sie nennen das Paar und die Größe und erhalten ein wiederholbares Urteil für Tickets, Design-Token und automatisierte Tore.
Wo eine Ja-Nein-Prüfung nach der Größe ihren Nutzen zeigt
Produktteams treffen diese Frage, wenn ein Markengrau auf einer Folie elegant wirkt, als sechzehn Pixel Fließtext auf einer weißen Karte aber scheitert, oder wenn eine Überschrift bei vierundzwanzig Pixeln AA bestünde, dasselbe Paar auf einem Formularetikett aber durchfiele. Gestalterinnen fügen ein Token-Hex, die Fläche dahinter und die Größe aus der Skala ein und lesen ein einziges Flag legible, bevor sie das Paar festziehen.
Ingenieure hängen den Vertrag an Pull-Request-Prüfungen, die ein Fließtext-Token sperren, wenn regelmäßige sechzehn Pixel unter 4.5 zu 1 fallen, und lassen einer Hero-Überschrift bei achtzehn Punkt trotzdem die Großtext-Schwelle von 3 zu 1. Fachleute für Qualität und Barrierefreiheit heften das Zahlenverhältnis, die eingestufte Skala und das boolesche Feld an Tickets, damit die Korrektur das echte Paar und die echte Größe trifft, nicht eine Vermutung vom Bildschirmfoto. Marketingteams prüfen Kampagnen-Hex gegen den Seitenhintergrund in der tatsächlichen Bildunterschriftgröße, nicht in einer angenommenen Überschriftengröße.
Auf dieser Seite läuft die Arbeit vollständig in Ihrem Browser. Koppeln Sie dieses Urteil mit einem ganzseitigen Barrierefreiheitsscanner, wenn Sie lebendes Markup durchsuchen müssen, und mit einer Kontrastverhältnis-Matrix, wenn Sie alle AA- und AAA-Flaggen beider Skalen auf einmal wollen. Nutzen Sie diese Seite, wenn die Suchabsicht genau lautet, ob jener Text in jener Größe auf jenem Hintergrund sicher ist.
Anwendungsfälle
Fließtext gegen Überschrift beim gleichen Hex-Paar
Prüfen Sie, ob ein Grau-auf-Weiß-Token, das bei 16px Fließtext scheitert, als großer Text bei 24px noch besteht, bevor Sie es auf einem Hero wiederverwenden.
CI-Tore, die die Schriftenskala kennen
Lassen Sie eine Pull-Request scheitern, wenn eine primäre Fließtextfarbe bei 16px regular unter AA 4.5:1 fällt, während Überschriften die Großtext-Schwelle nutzen.
Ticketbeleg mit einem Ja-Nein-Urteil
Hängen Sie das boolesche Feld, das Verhältnis und die eingestufte Skala an einen Barrierefreiheitsfehler, damit die Korrektur die echte Größe trifft, nicht ein Bildschirmfoto.
Häufige Fragen
Woher weiß man, ob Text auf einem Hintergrund lesbar ist?
Senden Sie das Text-Hex, das Hintergrund-Hex und die Schriftgröße.
Was zählt als großer Text?
Großmaßstäblicher Text nach WCAG ist mindestens 18 point oder mindestens 14 point und fett. Dieses Werkzeug rechnet CSS-Pixel mit 1pt = 4/3 px um, daher sind 24px regular und 18.67px fett large.
Welches Kontrastminimum gilt?
Normaler Text: AA 4.5:1 und AAA 7:1. Großer Text: AA 3:1 und AAA 4.5:1. Die angeforderte Stufe (standardmäßig aa) wählt eine Schwelle; die Flaggen nutzen das ungerundete Verhältnis.
Was kostet die Prüfung, ob Text auf dem Hintergrund sicher ist?
Sie ist auf dieser Seite in Ihrem Browser kostenlos.
Warum besteht eine Überschrift, während dieselben Farben im Fließtext scheitern?
Großer Text hat ein niedrigeres Minimum: 3 zu 1 für AA statt 4.5 zu 1. Eine Überschrift mit 24 Pixeln gilt mit 18 Punkt als groß, während Fließtext mit 16 Pixeln normal ist und die strengere Schwelle erreichen muss.
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/safe-on-background \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"color":"#111827","background":"#ffffff","size":16}'const res = await fetch("https://api.kit.forhosting.com/color/safe-on-background", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"color": "#111827",
"background": "#ffffff",
"size": 16
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/color/safe-on-background",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"color": "#111827",
"background": "#ffffff",
"size": 16
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/color/safe-on-background", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"color":"#111827","background":"#ffffff","size":16}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"color":"#111827","background":"#ffffff","size":16}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/color/safe-on-background", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Beispiel-Anfrage
{
"color": "#111827",
"background": "#ffffff",
"size": 16
}Beispiel-Antwort
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "color.safe_on_background",
"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 |
max_size | 500 |
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
Dieselbe reine Funktion läuft kostenlos im Browser und auf der API zu $0.002 je erfolgreichem Aufruf. Ungültiges Hex, fehlende Größe oder eine nicht positive Größe scheitern mit invalid_input und werden nicht berechnet.
Wie die WCAG-Lesbarkeit nach der Größe entschieden wird
Die Nutzlast meldet dann legible, das auf zwei Nachkommastellen gerundete Verhältnis, das angewandte Minimum, ob die eingestufte Skala AA und AAA bestehen würde, und eine Methodenmarke wcag_relative_luminance.
Eingangsvertrag, Einheiten und Prüfung der Gültigkeit
Beide müssen #RGB oder #RRGGBB sein, mit oder ohne führendes Rautenzeichen, ohne Groß-Kleinschreibung, und höchstens zweiunddreißig Zeichen lang. Gescheiterte Gültigkeitsprüfung wird nicht berechnet. Senden Sie ein JSON-Objekt mit drei Pflichtfeldern. color ist das Hex des Textes; ebenso zulässig sind text_color, foreground, fg oder text. background ist das Hex der Fläche; ebenso zulässig sind background_color oder bg. Alpha-Suffixe, rgb()-Funktionen, hsl()-Funktionen und benannte CSS-Farben werden mit invalid_input zurückgewiesen, das das Feld nennt. size ist eine positive endliche Zahl höchstens fünfhundert; font_size ist ein Alias. size_unit ist standardmäßig px (CSS-Pixel) und darf pt (CSS-Punkt) sein. Die Umrechnung ist exakt: achtzehn Punkt sind vierundzwanzig Pixel, vierzehn Punkt sind achtzehn und zwei Drittel Pixel. bold ist standardmäßig false und nimmt ein boolesches Feld oder die Zeichenketten true und false an; ab vierzehn Punkt hebt Fett die Probe in die Klasse großer Text. level ist standardmäßig aa und muss aa oder aaa sein. Bei Erfolg spiegelt die Antwort die normalisierten Kleinbuchstaben-Hexwerte, die von Ihnen gesendete Größe, size_pt und size_px, bold, text_scale als normal oder large, die gewünschte Stufe, minimum_ratio, contrast_ratio, passes_aa, passes_aaa und das boolesche Feld legible. Es gibt keinen Netzaufruf, keine Uhr und keine Zufallsstichprobe: dasselbe Trio aus color, background und size liefert im kostenlosen Browserwerkzeug und auf der API stets dasselbe Urteil.
Wo eine Ja-Nein-Prüfung nach der Größe ihren Nutzen zeigt
Über die API kostet jede erfolgreiche Abfrage $0.002; ungültige Eingabe wird nicht berechnet; nach der Antwort wird nichts gespeichert.
Technische Fragen
Welche Farbformate werden angenommen?
Nur Hex: #RGB oder #RRGGBB, mit oder ohne führendes Rautenzeichen. rgb(), hsl(), benannte Farben und Hex mit Alpha werden mit invalid_input zurückgewiesen.