Barrierefreiheit

WCAG-Kontrastverhältnisse erklärt: Ein Praxisleitfaden für Designer

Vom colorPaletteFinder-Team8 Min. Lesezeit

Hier ist eine Zahl, zu der ich immer wieder zurückkomme: Im WebAIM-Million-Report 2025 war Text mit niedrigem Kontrast der mit Abstand häufigste Barrierefreiheitsfehler im Web, vorhanden auf 79,1 % der eine Million am häufigsten besuchten Startseiten. Nicht fehlender Alt-Text. Nicht unbeschriftete Buttons. Kontrast. Das am häufigsten erkannte Barrierefreiheitsproblem der Welt sind zwei Farben, die einander zu ähnlich sind, und fast jedes Team, das es ausliefert, ahnt nichts davon.

Ich habe diesen Bug selbst ausgeliefert. Vor Jahren baute ich ein "Premium"-Dashboard mit elegantem Text in Grau #9CA3AF auf Weiß, abgesegnet von allen im Raum, weil es auf einem nagelneuen Retina-Display in einem abgedunkelten Konferenzraum edel aussah. Eine Woche später kam ein Support-Ticket von einem Nutzer in einem sonnendurchfluteten Zug, der die Beschriftungen schlicht nicht lesen konnte. Der Text lag bei ungefähr 2.6:1. WCAG verlangt 4.5:1. Diese Lücke ist das ganze Thema dieses Artikels.

Was ein WCAG-Kontrastverhältnis eigentlich ist

Ein WCAG-Kontrastverhältnis ist eine einzelne Zahl, die beschreibt, wie unterschiedlich zwei Farben in ihrer Helligkeit sind, ausgedrückt als Verhältnis von 1:1 bis 21:1. Weiß auf Weiß ist 1:1 (unsichtbar). Reines Schwarz auf reinem Weiß ist 21:1 (das Maximum). Alles, was du gestaltest, liegt irgendwo dazwischen, und WCAG legt den Boden fest, unter den du nicht fallen darfst.

Das Entscheidende, das man früh verinnerlichen sollte: Beim Kontrast geht es um Leuchtdichte, nicht darum, ob Farben "unterschiedlich aussehen". Rot und Grün sehen für die meisten Menschen wild verschieden aus, aber ein gesättigtes Rot (#FF0000) auf einem gesättigten Grün (#008000) liegt bei nur etwa 1.3:1, weil sie nahezu dieselbe Helligkeit tragen. Für eine Person mit Rot-Grün-Sehschwäche – oder für jeden, der auf einen minderwertigen Bildschirm schaut – ist diese Kombination Brei. Dein Auge lässt sich vom Farbton täuschen; die Kontrastformel nicht.

Die Formel, in einfachen Worten

Das Verhältnis wird berechnet als (L1 + 0.05) / (L2 + 0.05), wobei L1 die relative Leuchtdichte der helleren Farbe und L2 die Leuchtdichte der dunkleren ist. Du wirst das fast nie von Hand berechnen, aber die beiden Stufen zu verstehen verrät dir, warum dein Instinkt dich in die Irre führt.

Zuerst wird die relative Leuchtdichte jeder Farbe ermittelt, indem man ihre Rot-, Grün- und Blaukanäle nimmt, sie "linearisiert" (die Gamma-Kurve rückgängig macht, die Bildschirme anwenden, nach der Regel, dass Kanäle mit Wert kleiner oder gleich 0.03928 durch 12.92 geteilt werden und höhere durch ((c + 0.055) / 1.055) ^ 2.4 laufen) und sie dann gewichtet: 0,2126 für Rot, 0,7152 für Grün und 0,0722 für Blau. Diese Gewichte sind nicht willkürlich. Das menschliche Auge ist außerordentlich empfindlich für Grün und im Vergleich dazu für Blau nahezu blind.

Das ist die mit Abstand nützlichste Erkenntnis aus der Mathematik: Grün trägt rund das Zehnfache der wahrgenommenen Helligkeit von Blau. Deshalb ist reiner blauer Text auf Schwarz schmerzhaft und besteht gerade so, während dieselbe "Dunkelheit" in Grün gut lesbar ist. Deshalb wirken deine blauen Links auf dunklem Hintergrund schwach, egal wie gesättigt du sie machst. Wenn du dir nur eine Sache über die Formel merkst, merke dir die Gewichte.

Die + 0.05 im Verhältnis ist eine Konstante, die das Umgebungslicht modelliert, das vom Bildschirm reflektiert wird, sodass selbst theoretisch perfektes Schwarz nie ein unendliches Verhältnis ergibt. Sie ist der Grund, warum Kontrastverhältnisse bei 21:1 enden.

Die drei Schwellenwerte, die du kennen musst

WCAG (die Web Content Accessibility Guidelines, gepflegt vom W3C) definiert eine kleine Menge von Zahlen. Lerne diese auswendig, und du hast den allergrößten Teil der realen Arbeit abgedeckt.

Beachte das Muster: Jede Stufe entspricht grob der nächsthöheren. Groß-AA und Nicht-Text teilen sich 3:1; Normal-AA und Groß-AAA teilen sich 4.5:1. Das ist weniger zu merken, als es aussieht.

AA vs. AAA: Welches schuldest du eigentlich?

AA ist der reale Standard. Es ist das, worauf sich der European Accessibility Act, die ADA-getriebenen Vergleiche in den USA, Section 508 und im Grunde jeder Beschaffungsvertrag beziehen. Wenn ein Jurist oder Auditor "WCAG-konform" sagt, meint er AA. AAA ist die Goldstufe, und die Richtlinien selbst sagen ausdrücklich, dass AAA-Konformität nicht als allgemeine Richtlinie für ganze Websites verlangt wird – teils, weil manche Inhalte 7:1 schlicht nicht erreichen können, ohne kaputt auszusehen.

Meine ehrliche Einschätzung nach Jahren damit: Gestalte Fließtext so, dass er AA bequem überschreitet, und behandle dann AAA als Ziel, das du für die wichtigsten Inhalte erreichst – die Hauptlesespalte eines Artikels, Fehlermeldungen, alles, was ein gestresster oder sehbeeinträchtigter Nutzer unter Druck erfassen muss. 7:1 auf jeder Bildunterschrift und jedem deaktivierten Label zu jagen, ist ein aussichtsloser Kampf, der deine ganze Palette zu Schwarz-auf-Weiß plattdrückt.

Normaler Text vs. großer Text – und die Falle darin

WCAG lässt großen Text einfacher davonkommen (3:1 statt 4.5:1), weil größere, kräftigere Buchstabenformen bei niedrigerem Kontrast lesbar sind. Aber die Definition von "groß" ist spezifisch, und die Leute verstehen sie ständig falsch.

Die Umrechnung, über die alle stolpern, ist 1pt = 1,333px, weshalb aus 18pt 24px werden und aus 14pt ~18.5px. Eine 19px reguläre Überschrift ist also kein großer Text nach WCAG-Definition – sie schuldet immer noch die vollen 4.5:1. Ein 16px fettes Label ist ebenfalls nicht groß. Ich habe Designs in jemandes Kopf "bestehen" sehen, weil die Überschrift "groß aussah", während sie in Pixeln knapp unter der Schwelle lag und das strengere Verhältnis brauchte. Im Zweifel halte Fließtext und Zwischenüberschriften auf 4.5:1 und beanspruche die 3:1-Erleichterung nur für wirklich große Display-Schrift.

Nicht-Text-Kontrast: das Kriterium, das alle vergessen (1.4.11)

Hier ist die Stelle, an der die meisten sonst sorgfältigen Teams scheitern. WCAG 2.1 fügte Erfolgskriterium 1.4.11, Nicht-Text-Kontrast hinzu und verlangt 3:1 für zwei Kategorien, die nichts mit Lesen zu tun haben:

Der klassische Verstoß: ein Suchfeld, das nur eine #FFFFFF-Box mit einem #E5E7EB hellgrauen 1px-Rahmen auf einer weißen Seite ist. Dieser Rahmen liegt bei etwa 1.2:1. Sehende Nutzer mit eingeschränktem Sehvermögen finden buchstäblich nicht, wo sie klicken sollen. Blasser Platzhaltertext und Ghost-Button-Umrisse scheitern auf dieselbe Weise. Reine Dekoration ist ausgenommen, und ebenso der Text innerhalb der Komponente (der fällt stattdessen unter 1.4.3) – aber das, was "das ist interaktiv" signalisiert, muss 3:1 gegenüber dem erreichen, was direkt daneben liegt.

Wie man es misst – und wie man es behebt

Kontrast beurteilt man nicht nach Augenmaß. Man misst ihn. Mein Alltags-Workflow:

Wenn etwas nicht besteht, widerstehe dem Drang, am Farbton zu drehen. Die Sättigung zu ändern bewegt den Kontrast kaum; die Helligkeit zu ändern bewegt ihn stark. Konkret:

Die Fehler, die ich in echten Teams sehe

Ein Wort zur Zukunft: WCAG 3 erkundet ein wahrnehmungsbasiertes Modell namens APCA, das Kontrast eher so beurteilt wie das menschliche Auge und Textgröße und -stärke gemeinsam berücksichtigt statt eines pauschalen Verhältnisses. Es ist vielversprechend und im Auge zu behalten, aber Stand heute sind die Verhältnisse in diesem Artikel – gestützt auf W3Cs Understanding 1.4.3 – das, was dich rechtlich und praktisch konform macht. Baue danach, lass dir einen Spielraum, und miss, statt zu raten. Die 79,1 % der Seiten, die scheitern, scheiterten größtenteils, weil niemand geprüft hat. Prüfen ist die ganze Aufgabe.

Häufig gestellte Fragen

Was ist das Mindest-Kontrastverhältnis nach WCAG für normalen Text?

Normaler Fließtext braucht ein Kontrastverhältnis von mindestens 4.5:1 gegenüber seinem Hintergrund, um WCAG Level AA zu erfüllen – das ist der Standard, auf den sich die meisten Gesetze und Verträge beziehen. Großer Text (18pt/24px regulär oder 14pt/~18.5px fett) braucht nur 3:1. Die strengere AAA-Stufe hebt normalen Text auf 7:1 und großen Text auf 4.5:1 an.

Was ist der Unterschied zwischen WCAG AA und AAA beim Kontrast?

AA ist der praxistaugliche, gesetzlich referenzierte Standard: 4.5:1 für normalen Text und 3:1 für großen Text. AAA ist die erweiterte Stufe für Nutzer mit eingeschränktem Sehvermögen: 7:1 für normalen Text und 4.5:1 für großen. Das W3C verlangt AAA nicht für eine gesamte Website, daher bauen die meisten Teams Fließtext nach AA mit Reserve und behalten AAA den wichtigsten Leseinhalten vor.

Was zählt nach WCAG als großer Text?

Großer Text ist 18pt und größer (24px) bei normaler Schriftstärke oder 14pt und größer (etwa 18.5px) bei Fettschrift. Die Umrechnung lautet 1pt = 1,333px. Ein häufiger Fehler ist die Annahme, dass eine Überschrift, die bloß groß aussieht, qualifiziert – eine 19px oder 20px reguläre Überschrift liegt noch unter 24px und muss die vollen 4.5:1 für normalen Text erfüllen.

Verlangt WCAG Kontrast für Buttons und Icons, nicht nur für Text?

Ja. Erfolgskriterium 1.4.11 (Nicht-Text-Kontrast), eingeführt in WCAG 2.1, verlangt ein Verhältnis von 3:1 für die Begrenzungen von UI-Komponenten, die einen Zustand anzeigen – Eingabefeld-Rahmen, Fokus-Ringe, Checkbox-Umrisse – sowie für grafische Objekte wie Icon-Formen und Diagrammelemente, die zum Verständnis nötig sind. Reine Dekoration ist ausgenommen.

Wie behebe ich Text, der die Kontrastprüfung nicht besteht?

Passe die Helligkeit an, nicht den Farbton oder die Sättigung – die bewegen das Verhältnis kaum. Dunkle den Vordergrund ab oder helle den Hintergrund auf, bis du die Schwelle überschreitest; bei hellem Text auf einem farbigen Button ist es meist am schnellsten, die Hintergrundfarbe zu vertiefen. Miss das Ergebnis mit einem Kontrast-Checker, statt es nach Augenmaß zu beurteilen, denn Farbtonunterschiede täuschen das Auge, aber nicht die Leuchtdichteformel.

Lust, mit Farben zu experimentieren?

Probiere unseren kostenlosen Farbpaletten-Generator aus und finde deine perfekte Harmonie — mit integriertem WCAG-Kontrastprüfer.

Generator öffnen