Ob eine Textfarbe lesbar ist, entscheidet nicht das Auge des Designers, sondern eine nachpruefbare Zahl: das Kontrastverhaeltnis. Es ergibt sich direkt aus den HEX- oder RGB-Werten von Vordergrund und Hintergrund und laesst sich mit der offiziellen WCAG-Formel exakt berechnen. Dieser Ratgeber zeigt, wie aus zwei Farbcodes ein Verhaeltnis von 1:1 bis 21:1 entsteht, welche Schwellenwerte die Stufen AA und AAA verlangen und warum seit dem 28. Juni 2025 mit dem Barrierefreiheitsstärkungsgesetz (BFSG) reale rechtliche Pflichten dranhaengen.
Was das Kontrastverhaeltnis ist und woher es kommt
Das Kontrastverhaeltnis beschreibt, wie stark sich zwei Farben in ihrer wahrgenommenen Helligkeit unterscheiden. Definiert ist es im W3C-Erfolgskriterium 1.4.3 (Contrast Minimum) als (L1 + 0,05) / (L2 + 0,05). L1 ist die relative Luminanz der helleren Farbe, L2 die der dunkleren. Der kleinste mögliche Wert ist 1:1, wenn beide Farben identisch sind. Der größte ist 21:1, naemlich reines Schwarz (#000000) auf reinem Weiss (#FFFFFF).
Wichtig ist: Es geht nicht um den blossen Farbunterschied, sondern um Luminanz, also um Helligkeit unter Beruecksichtigung der unterschiedlichen Empfindlichkeit des menschlichen Auges für Rot, Grün und Blau. Deshalb können zwei kraeftige, sehr verschiedene Farben (etwa ein mittleres Rot und ein mittleres Grün) trotzdem einen schwachen Kontrast haben: Ihre Luminanz ist ähnlich, auch wenn der Farbton stark abweicht. Genau das ist der Grund, warum man Kontrast rechnen muss und nicht schaetzen darf.
Tipp: Verlassen Sie sich nie allein auf Farbe, um Information zu transportieren. Ein roter und ein grüner Status-Punkt mit identischer Luminanz sind für rotgrünblinde Personen ununterscheidbar. Ergaenzen Sie Farbe immer durch Form, Text oder Symbol (WCAG-Kriterium 1.4.1, Use of Color).
Schritt 1: Von HEX/RGB zur relativen Luminanz
Bevor zwei Farben verglichen werden können, braucht jede einzelne ihre relative Luminanz. Der Weg dorthin ist immer derselbe und besteht aus drei Teilschritten je Farbkanal.
- HEX in RGB zerlegen: Aus #1A56DB werden die Kanaele R=26, G=86, B=219. Jeder Wert liegt zwischen 0 und 255.
- Auf 0 bis 1 normalisieren: Jeden Kanal durch 255 teilen. R=0,1020, G=0,3373, B=0,8588.
- Gamma-Korrektur (sRGB linearisieren): Ist der normalisierte Wert c kleiner oder gleich 0,03928, gilt c / 12,92. Andernfalls gilt ((c + 0,055) / 1,055) hoch 2,4.
Aus den drei linearisierten Werten R, G und B ergibt sich die relative Luminanz mit der gewichteten Summe L = 0,2126 R + 0,7152 G + 0,0722 B. Die Gewichte spiegeln wider, dass das Auge auf Grün am empfindlichsten reagiert und auf Blau am schwaechsten. Diese Koeffizienten stammen aus der sRGB-Definition und sind in der WCAG so festgeschrieben.
Schritt 2: Das Kontrastverhaeltnis am konkreten Beispiel
Nehmen wir das Markenblau #1A56DB als Textfarbe auf weissem Hintergrund (#FFFFFF). Weiss hat per Definition die relative Luminanz 1,0. Für das Blau ergibt der oben beschriebene Rechenweg rund 0,1116. Eingesetzt in die Formel:
L_weiss = 1,0000
L_blau = 0,1116
Kontrast = (1,0000 + 0,05) / (0,1116 + 0,05)
= 1,0500 / 0,1616
= 6,50 : 1 Ein Verhaeltnis von 6,50:1 liegt komfortabel über den 4,5:1 für AA bei normalem Text und sogar knapp unter AAA (7:1). Das Blau ist als Fliesstextfarbe auf Weiss also AA-konform. Wuerde man dasselbe Blau jedoch auf einem mittelgrauen Hintergrund (#888888, Luminanz rund 0,2462) verwenden, faellt das Verhaeltnis auf etwa 1,77:1 und damit klar durch. Dieselbe Vordergrundfarbe, ein anderer Hintergrund, ein voellig anderes Ergebnis: Das ist der wichtigste praktische Merksatz.
In JavaScript laesst sich der gesamte Rechenweg in wenigen Zeilen abbilden, etwa für eine Live-Pruefung im Browser:
function luminanz(hex) {
const v = hex.replace('#','').match(/.{2}/g)
.map(h => parseInt(h, 16) / 255)
.map(c => c <= 0.03928 ? c / 12.92 : ((c + 0.055) / 1.055) ** 2.4);
return 0.2126 * v[0] + 0.7152 * v[1] + 0.0722 * v[2];
}
function kontrast(a, b) {
const [l1, l2] = [luminanz(a), luminanz(b)].sort((x, y) => y - x);
return (l1 + 0.05) / (l2 + 0.05);
}
kontrast('#1A56DB', '#FFFFFF'); // 6.50 Schritt 3: Welche Schwellenwerte gelten?
Die WCAG unterscheiden nach Textgröße und Konformitaetsstufe. Grosser Text ist definiert als mindestens 18,66px (14pt) fett oder mindestens 24px (18pt) regulaer. Logos und reine Dekoration sind von den Anforderungen ausgenommen.
Recht: Was das BFSG seit Juni 2025 verlangt
Das Barrierefreiheitsstärkungsgesetz setzt die europaeische Richtlinie (EU) 2019/882 (European Accessibility Act) in deutsches Recht um und gilt seit dem 28. Juni 2025. Betroffen sind unter anderem Onlineshops, Bank- und Zahlungsdienste, Buchungs- und Ticketsysteme sowie Telekommunikationsdienste, die sich an Verbraucher richten. Diese müssen barrierefrei gestaltet sein, und Farbkontrast ist ein zentraler, leicht pruefbarer Bestandteil davon.
Der technische Massstab ist nicht das BFSG selbst, sondern die harmonisierte europaeische Norm EN 301 549. Sie verweist für Webinhalte auf WCAG 2.1 Stufe AA, womit die 4,5:1- und 3:1-Schwellen praktisch verbindlich werden. Ausnahmen bestehen für Kleinstunternehmen (weniger als 10 Beschaeftigte und hoechstens 2 Millionen Euro Jahresumsatz) bei der Erbringung von Dienstleistungen, sowie in Faellen unverhaeltnismaessiger Belastung. Die Marktüberwachung liegt bei den Laendern, koordiniert durch die Marktüberwachungsstelle der Laender (MLBF).
Warnung: Helles Grau auf Weiss (etwa #AAAAAA auf #FFFFFF) ist ein Klassiker, der durchfaellt: Es erreicht nur rund 2,3:1 und verfehlt damit AA für normalen Text deutlich. Auch sehr beliebte Platzhalter- und Hilfetexte in Hellgrau sind häufig nicht konform. Pruefen Sie gerade diese unscheinbaren Stellen, nicht nur die Ueberschriften.
Praxis: Kontrast zuverlässig in Projekten sichern
Kontrastpruefung sollte kein einmaliger Schritt am Ende sein, sondern fest im Workflow verankert. Drei Massnahmen haben sich bewährt:
- Designtokens pruefen, nicht Screenshots: Legen Sie Vordergrund- und Hintergrundpaare als Tokens an und berechnen Sie deren Verhaeltnis automatisiert. So faellt eine schwache Kombination auf, bevor sie ins Design kommt.
- Alle Zustaende abdecken: Hover, Fokus, Disabled, Fehler und Erfolg haben oft eigene Farben. Jeder Zustand braucht einen eigenen Kontrast-Check, insbesondere der sichtbare Fokus-Ring (WCAG 2.4.11).
- Text auf Bildern absichern: Ueber Fotos hilft ein halbtransparenter Overlay oder ein Textschatten, um eine definierte Mindestluminanz des Hintergrunds zu garantieren.
Wer die Werte schnell pruefen will, gibt Vorder- und Hintergrundfarbe einfach als HEX in einen Converter ein und liest die RGB-Werte sowie die Luminanz ab. Unser HEX zu RGB Converter rechnet beide Farben lokal im Browser um, ganz ohne Upload, sodass Sie die Kanalwerte direkt in die Kontrastformel übernehmen können.
Häufige Fragen zum WCAG-Kontrast
Was ist das WCAG-Kontrastverhaeltnis genau?
Das Kontrastverhaeltnis nach WCAG ist das Verhaeltnis der relativen Luminanz der helleren zur dunkleren von zwei Farben. Es reicht von 1:1 (zwei identische Farben) bis 21:1 (reines Schwarz auf reinem Weiss). Berechnet wird es mit der Formel (L1 + 0,05) / (L2 + 0,05), wobei L1 die hellere und L2 die dunklere relative Luminanz ist.
Welcher Mindestkontrast gilt für WCAG 2.2 AA?
Für normalen Text verlangt Stufe AA ein Kontrastverhaeltnis von mindestens 4,5:1. Für grossen Text (ab 24px regulaer oder ab 18,66px fett) genuegen 3:1. Grafische Bedienelemente und Zustaende müssen ebenfalls mindestens 3:1 erreichen (Erfolgskriterium 1.4.11).
Gilt das Barrierefreiheitsstärkungsgesetz auch für normale Firmen-Websites?
Das BFSG gilt seit dem 28. Juni 2025 für viele Produkte und Dienstleistungen im elektronischen Geschaeftsverkehr, etwa Online-Shops, Buchungssysteme und Banking. Reine Imageseiten ohne Vertragsabschluss sind nicht zwingend erfasst, Kleinstunternehmen bei Dienstleistungen teils ausgenommen. Als technischer Massstab gilt die harmonisierte Norm EN 301 549, die wiederum WCAG 2.1 AA referenziert.
Kann ich den Kontrast direkt aus zwei HEX-Codes berechnen?
Ja. Man wandelt jeden HEX-Code in seine RGB-Kanaele um, normalisiert die Werte auf 0 bis 1, wendet die sRGB-Gamma-Korrektur an, bildet die gewichtete relative Luminanz und setzt beide Luminanzen in die Kontrastformel ein. Genau diesen Rechenweg zeigt dieser Ratgeber Schritt für Schritt mit einem konkreten Beispiel.
Reicht es, nur gegen Weiss zu pruefen?
Nein. Massgeblich ist immer der tatsaechliche Hintergrund, vor dem ein Text steht, inklusive Hover-, Fokus- und Fehlerzustaenden. Eine Farbe kann auf Weiss bestehen und auf einer hellgrauen Karte oder über einem Foto durchfallen. Pruefen Sie jede reale Farbkombination einzeln.
Wie unterscheidet sich AAA von AA beim Kontrast?
Stufe AAA verlangt 7:1 für normalen Text und 4,5:1 für grossen Text. AAA ist deutlich strenger und laesst sich nicht für jede Markenfarbe erreichen. Die WCAG empfehlen AAA nicht als pauschale Pflicht für ganze Websites, sondern als anzustrebendes Ziel für einzelne Inhalte.
Quellen
- W3C, WCAG 2.2: Web Content Accessibility Guidelines 2.2 (Erfolgskriterien 1.4.3, 1.4.6, 1.4.11)
- W3C, Understanding Success Criterion 1.4.3 Contrast (Minimum) inklusive Kontrastformel
- MDN Web Docs, Color contrast
- ETSI, EN 301 549 (Harmonisierte Norm für Barrierefreiheitsanforderungen)
- Bundesfachstelle Barrierefreiheit, Informationen zum BFSG (Barrierefreiheitsstärkungsgesetz)
Verwandte Artikel
Hexadezimalsystem verstehen: Wie aus #FF5733 RGB-Werte werden
GrundlagenHEX, RGB, HSL und RGBA: Welches Farbformat wofür?
GrundlagenHEX in RGB umrechnen: Die einfache Anleitung mit Beispielen
Farben jetzt umrechnen und pruefen
HEX in RGB, RGBA und HSL umwandeln, mit Live-Vorschau und 100% lokal im Browser. Ideal als erster Schritt für Ihre Kontrastpruefung.
Zum HEX zu RGB Converter