Die Kurzfassung
- Farbkontrast ist der Helligkeitsunterschied zwischen Text und Hintergrund, gemessen als Verhältnis von 1:1 (kein Unterschied) bis 21:1 (Schwarz auf Weiß).
- WCAG 2 Stufe AA verlangt mindestens 4,5:1 für normalen Text und 3:1 für große Schrift, das sind etwa 24 px normal oder 18,66 px fett.
- Auch Icons, Rahmen von Eingabefeldern und andere Teile einer Oberfläche, die man sehen muss, brauchen mindestens 3:1 gegenüber ihrer Umgebung.
- Auf Weiß ist
#767676das hellste schlichte Grau, das 4,5:1 für Fließtext erreicht, und#777777fällt knapp durch. - Auf einem Farbverlauf ändert sich der Kontrast von Punkt zu Punkt, daher musst du die schlechteste Stelle hinter den Worten testen, nicht die Durchschnittsfarbe.
Auf dieser Seite
Farbkontrast ist der Helligkeitsunterschied zwischen Text und der Farbe dahinter, und er entscheidet, ob Menschen deine Worte überhaupt lesen können. Die Web Content Accessibility Guidelines (WCAG) messen ihn als Verhältnis von 1:1, wenn beide Farben identisch sind, bis 21:1, Schwarz auf Weiß. Für Stufe AA braucht normaler Text mindestens 4,5:1 und große Schrift mindestens 3:1. Alles Weitere in diesem Leitfaden dreht sich darum, diese Werte zu erreichen, ohne dein Design zaghaft zu machen.
Kontrast ist für alle wichtig, nicht nur für Menschen mit schwachem Sehvermögen. Handys in der Sonne, dunkle Beamer, billige Monitore und müde Augen verkleinern den Unterschied zwischen Farben. Designs mit genug Kontrast werden schlicht öfter gelesen.
Die WCAG-Kontrastverhältnisse in einfachen Worten
Drei Regeln in WCAG 2 decken fast jede Designentscheidung ab. Sie stammen aus den Erfolgskriterien des W3C und sind das, worauf sich die meisten Barrierefreiheitsprüfungen und Vorschriften beziehen.
| Was | Stufe AA | Stufe AAA | Hinweise |
|---|---|---|---|
| Normaler Text | 4,5:1 | 7:1 | Fließtext, Bildunterschriften, Beschriftungen, Buttons |
| Große Schrift | 3:1 | 4,5:1 | Mindestens 18 pt (etwa 24 px) oder 14 pt fett (etwa 18,66 px) |
| Icons und Teile der Oberfläche | 3:1 | 3:1 | Rahmen von Eingabefeldern, Diagrammlinien mit Bedeutung, Icons ohne Beschriftung |
| Logos und Dekoration | Keine | Keine | Wortmarken und rein dekorativer Text sind ausgenommen |
Zwei Details erwischen viele. Erstens bezieht sich „groß“ auf die dargestellte Größe, eine 24-px-Überschrift, die ein Handy verkleinert, zählt womöglich nicht mehr als groß. Zweitens ist ein deaktivierter Button ausgenommen, ein hellgrauer Platzhalter, den man verstehen muss, aber nicht.
So wird das Kontrastverhältnis berechnet
Das Verhältnis vergleicht die relative Leuchtdichte der beiden Farben: wie viel Licht jede abgibt, gewichtet so, wie das Auge sieht. Grün trägt am meisten bei, Rot weniger und Blau sehr wenig, weshalb ein gesättigtes Blau überraschend dunkel und ein Gelb überraschend hell sein kann. Die Formel lautet (L1 + 0.05) / (L2 + 0.05), wobei L1 die hellere Farbe ist.
// WCAG 2 contrast ratio between two hex colours
const channel = (c) => {
c /= 255
return c <= 0.04045 ? c / 12.92 : ((c + 0.055) / 1.055) ** 2.4
}
const luminance = (hex) => {
const [r, g, b] = [1, 3, 5].map((i) => channel(parseInt(hex.slice(i, i + 2), 16)))
return 0.2126 * r + 0.7152 * g + 0.0722 * b
}
const contrast = (a, b) => {
const [hi, lo] = [luminance(a), luminance(b)].sort((x, y) => y - x)
return (hi + 0.05) / (lo + 0.05)
}
contrast('#767676', '#ffffff') // 4.54, passes for body text
contrast('#777777', '#ffffff') // 4.48, failsVon Hand rechnen musst du nicht. Der WebAIM-Kontrastprüfer nimmt zwei Hex-Codes und sagt dir, welche Stufen bestanden sind, und die Farbauswahl in den Entwicklertools von Chrome zeigt das Verhältnis jedes untersuchten Textes.
Farbpaare, die bestehen und durchfallen
Markenfarben liegen oft in der unglücklichen Mitte, zu dunkel für dunklen Text und zu hell für weißen. Mittlere Grüntöne, Orange, Pink und helle Blautöne sind die üblichen Verdächtigen. Hier gängige Kombinationen mit ihren echten Verhältnissen.
| Text auf Hintergrund | Verhältnis | Normaler Text | Große Schrift |
|---|---|---|---|
Weiß auf Violett #7c3aed | 5,7:1 | Bestanden | Bestanden |
Weiß auf hellem Violett #8b5cf6 | 4,2:1 | Durchgefallen | Bestanden |
Weiß auf Blau #2563eb | 5,2:1 | Bestanden | Bestanden |
Weiß auf Himmelblau #3b82f6 | 3,7:1 | Durchgefallen | Bestanden |
Weiß auf Grün #10b981 | 2,5:1 | Durchgefallen | Durchgefallen |
Fast Schwarz #0b0b10 auf Grün #10b981 | 7,7:1 | Bestanden | Bestanden |
Weiß auf Bernstein #f59e0b | 2,2:1 | Durchgefallen | Durchgefallen |
Grau #999999 auf Weiß | 2,9:1 | Durchgefallen | Durchgefallen |
Grau #6b7280 auf Weiß | 4,8:1 | Bestanden | Bestanden |
Warum Farbverläufe den Kontrast erschweren
Ein einfarbiger Hintergrund hat ein Kontrastverhältnis. Ein Farbverlauf hat an jedem Punkt ein anderes. Weißer Text, der über dem dunklen Ende eines Verlaufs mühelos besteht, kann am hellen Ende komplett durchfallen, und eine Überschrift, die sich über den Verlauf zieht, besteht und fällt in derselben Zeile durch.
linear-gradient(90deg, #1f0b3a 0%, #7c3aed 55%, #f472b6 100%)Die Regel ist einfach: Teste den hellsten Punkt hinter hellem Text oder den dunkelsten Punkt hinter dunklem Text. Besteht der schlechteste Punkt, besteht die ganze Zeile. Durchschnittsfarben und Pipettenproben aus der Mitte führen dich in die Irre.
So behebst du Kontrast auf einem Farbverlauf
- 1
Verschiebe die Worte ans ruhige Ende
Setze Text über den dunkelsten oder hellsten Teil des Verlaufs und lass den leuchtenden Übergang weit davon entfernt stattfinden.
- 2
Verengte den Bereich hinter dem Text
Halte den Teil des Verlaufs hinter den Worten in einem kleinen Helligkeitsbereich. Der Rest der Fläche darf so kräftig sein, wie du willst.
- 3
Füge einen weichen Schleier hinzu
Ein sanftes dunkles oder helles Ausblenden hinter dem Text, etwa ein Verlauf von transparent zu 30 % Schwarz, hebt den Kontrast ohne sichtbaren Kasten.
- 4
Nimm größere und kräftigere Schrift
Große Schrift braucht nur 3:1. Ein fetterer Schnitt und eine größere Größe können eine durchfallende Zeile in eine bestandene verwandeln.
- 5
Teste auf einem echten Handy
Prüfe das Design bei voller und bei niedriger Helligkeit, wenn möglich draußen. Verhältnisse sind die Untergrenze, nicht das Ziel.
.card {
background: linear-gradient(90deg, #1f0b3a 0%, #7c3aed 55%, #f472b6 100%);
color: #ffffff;
}
/* A soft scrim keeps white text above 4.5:1 across the pink end */
.card .text {
background: linear-gradient(90deg, transparent 0%, rgb(31 11 58 / 0.55) 60%);
padding: 1rem 1.25rem;
}Die Worte laufen direkt über den hellsten Teil der Fläche, und ihr Kontrast sinkt.
Dasselbe Design, bei dem die ruhige, dunkle Region hinter die Worte gerückt ist.
Das ist die Idee hinter der Lesbarkeit in Gradiently: Ein Mark weiß, wo deine Worte stehen, rückt seine ruhigste, kontrastreichste Region dahinter und wählt aus seiner eigenen Palette pro Zeile helle oder dunkle Schriftfarbe. Weitere Techniken, die überall funktionieren, findest du in Text auf einem Farbverlauf und lesbarer Text über Fotos. Speziell für dunkle Oberflächen siehe Design für den Dark Mode.
Häufige Fragen
Was ist ein gutes Farbkontrastverhältnis?
Mindestens 4,5:1 für normalen Text und 3:1 für große Schrift erfüllen WCAG Stufe AA. Für langes Lesen ist 7:1 (Stufe AAA) angenehmer.
Was zählt in WCAG als große Schrift?
Text ab 18 Punkt, etwa 24 px, oder ab 14 Punkt fett, etwa 18,66 px. Große Schrift braucht auf Stufe AA nur 3:1.
Welches ist das hellste Grau, das ich auf Weiß nutzen kann?
#767676 ist das hellste schlichte Grau, das auf Weiß 4,5:1 erreicht. #777777 misst 4,48:1 und fällt für Fließtext durch.
Müssen Logos Kontrastvorgaben erfüllen?
Nein. WCAG nimmt Text aus, der Teil eines Logos oder Markennamens ist, und rein dekorativen Text. Alles, was Menschen lesen oder bedienen müssen, zählt weiterhin.
Wie prüfe ich den Kontrast auf einem Farbverlaufshintergrund?
Miss die Textfarbe gegen den hellsten Punkt hinter hellem Text oder den dunkelsten Punkt hinter dunklem Text. Besteht dieser schlechteste Punkt, besteht die ganze Zeile.
Geschrieben von Gradiently
Das Team hinter Gradiently, einem Designtool rund um Marks: lebendige Farbverläufe, durch die alles, was du gestaltest, nach dir aussieht.
Unser Profil ansehen


