Jak sprawdzić kontrast kolorów?
- 1.
Podaj kolor tekstu
Wpisz kolor w formacie HEX (np. #777777), rgb() lub hsl() albo wybierz go z palety.
- 2.
Podaj kolor tła
W ten sam sposób ustaw kolor tła. Przyciskiem ze strzałkami zamienisz kolory miejscami.
- 3.
Odczytaj wynik
Współczynnik kontrastu i tabela pokażą, czy para spełnia AA i AAA dla zwykłego i dużego tekstu oraz próg 3:1 dla elementów interfejsu.
- 4.
Popraw kolor
Jeśli kontrast jest za niski, wybierz cel (AA, AAA lub 3:1) i kliknij „Użyj” przy proponowanym, najbliższym kolorze tekstu lub tła.
Wymagania kontrastu WCAG 2.2 - tabela progów
WCAG 2.2 (tak samo jak 2.1) wymaga minimalnego współczynnika kontrastu między tekstem a tłem. Współczynnik przyjmuje wartości od 1:1 (ten sam kolor) do 21:1 (czarny na białym).
| Element | AA | AAA |
|---|---|---|
| Zwykły tekst | 4,5:1 (1.4.3) | 7:1 (1.4.6) |
| Duży tekst (od 24 px lub od 18,66 px pogrubiony) | 3:1 | 4,5:1 |
| Ikony, obramowania pól, wykresy, stan fokusu | 3:1 (1.4.11) | - |
Progi nie podlegają zaokrąglaniu: para o kontraście 4,48:1 nie spełnia AA, mimo że po zaokrągleniu wyglądałaby na 4,5:1. Dlatego wynik tuż pod progiem (np. 4,499:1) narzędzie pokazuje jako 4,49:1, a nie 4,50:1. Wymaganie nie dotyczy logotypów, elementów nieaktywnych (disabled) i czysto dekoracyjnych.
Jak oblicza się kontrast? Wzór z przykładem
Kontrast to (L1 + 0,05) / (L2 + 0,05), gdzie L1 i L2 to luminancja względna jaśniejszego i ciemniejszego koloru. Luminancję liczy się z kanałów sRGB po linearyzacji: L = 0,2126·R + 0,7152·G + 0,0722·B - zieleń ma największy wpływ na postrzeganą jasność, niebieski najmniejszy.
Przykład: szary #777777 ma kanał 119/255 = 0,467, po linearyzacji 0,184, więc L = 0,184. Biel ma L = 1. Kontrast = (1 + 0,05) / (0,184 + 0,05) = 4,48:1 - za mało dla zwykłego tekstu w AA. Najjaśniejszy szary, który na białym tle spełnia 4,5:1, to #767676 (4,54:1).
Kogo w Polsce obowiązuje kontrast WCAG?
Podmioty publiczne (urzędy, szkoły, szpitale) muszą spełniać WCAG 2.1 na poziomie AA na mocy ustawy z 4 kwietnia 2019 r. o dostępności cyfrowej stron internetowych i aplikacji mobilnych podmiotów publicznych. Od 28 czerwca 2025 r. wymagania dostępności - w praktyce również WCAG na poziomie AA przez normę EN 301 549 - obejmują też wiele firm prywatnych: sklepy internetowe, banki, przewoźników i dostawców e-booków. Podstawą jest ustawa z 26 kwietnia 2024 r. o zapewnianiu spełniania wymagań dostępności niektórych produktów i usług przez podmioty gospodarcze (wdrożenie Europejskiego Aktu o Dostępności). Mikroprzedsiębiorstwa świadczące usługi są z niej zwolnione.
WCAG 2.2 nie zmieniło progów kontrastu względem 2.1, więc para kolorów zgodna z 2.2 spełnia też 2.1.
Najczęstsze błędy z kontrastem
- Jasnoszary tekst na białym - modne #999 lub #aaa dają tylko 2,85:1 i 2,32:1.
- Placeholder jako etykieta - domyślny szary tekst podpowiedzi w polach często ma kontrast poniżej 4,5:1.
- Biały tekst na kolorowym przycisku - np. biały na #4A90E2 to ok. 3,3:1, wystarczy tylko dla dużego tekstu.
- Obramowania pól formularza - ramka #ddd na białym (1,36:1) nie spełnia 3:1 z kryterium 1.4.11.
- Tekst na zdjęciu - kontrast trzeba sprawdzić w najjaśniejszym miejscu tła; pomaga półprzezroczysta nakładka.
Podpowiedź koloru zmienia tylko jasność w przestrzeni OKLCH, więc niebieski przycisk pozostaje niebieski - jest tylko ciemniejszy lub jaśniejszy. Kolory do kodu przeliczysz w konwerterze kolorów.
APCA - nowa metoda z projektu WCAG 3
APCA (Accessible Perceptual Contrast Algorithm) lepiej niż wzór z WCAG 2 oddaje to, jak widzimy jasny tekst na ciemnym tle i cienkie fonty. Wynik podaje się jako Lc od ok. −108 do 106: około 75 wystarcza dla tekstu ciągłego, 60 dla treści, 45 dla dużych nagłówków. Znak minus oznacza jasny tekst na ciemnym tle. APCA jest wciąż projektem i nie jest wymagana prawnie - zgodność ocenia się według WCAG 2.x, a Lc pokazujemy wyłącznie informacyjnie.
Najczęściej zadawane pytania
Jaki kontrast jest wymagany przez WCAG?
+
Czy #777 na białym tle spełnia WCAG?
+
Czy można zaokrąglić 4,48 do 4,5?
+
Co to jest duży tekst według WCAG?
+
Czy kontrast dotyczy logo i nieaktywnych przycisków?
+
Czym różni się WCAG 2.2 od 2.1 w kwestii kontrastu?
+
Jak sprawdzić kontrast koloru z przezroczystością?
+
Aktualizacja: