Sprytne Okazje — promocje, kody rabatowe i wyprzedaże

Sprawdzanie kontrastu WCAG

Sprawdź kontrast kolorów tekstu i tła pod kątem WCAG 2.1 (AA i AAA). Podgląd na żywo, sugestia koloru. Bezpłatnie.

Bezpieczne (SSL)
Przetwarzanie Lokalne
100% Darmowe
Instrukcja
  • 1
    Wprowadź dane
    Wpisz treść, wklej tekst lub załaduj plik z dysku.
  • 2
    Kliknij przycisk
    Narzędzie natychmiast przetworzy Twoje dane w przeglądarce.
  • 3
    Pobierz wynik
    Skopiuj gotowy tekst lub zapisz plik na urządzeniu.
function runTool() {
  return "Wynik gotowy w 0.1s";
}
Kolor tekstu
Kolor tła

Duży tekst — 24 px (lub 18,7 px pogrubiony)

Zwykły tekst akapitu — 16 px. Tak wyglądałby opis na stronie przy tych kolorach.

Drobny tekst 13 px — stopki, podpisy pod zdjęciami, przypisy.

Przycisk

Oceń to narzędzie:

Powiązane narzędzia

Inne narzędzia, które mogą Ci się przydać

Sprawdzanie kontrastu WCAG – AA i AAA dla dostępności

Kontrast kolorów to kluczowy wymóg dostępności (WCAG). Niski kontrast sprawia, że tekst jest nieczytelny dla osób z niedowidzeniem, daltonizmem lub czytaniem w słonecznym świetle. Narzędzie sprawdza parę kolor tekstu / kolor tła i ocenia zgodność z WCAG 2.1.

kontrast kolorów WCAG sprawdź kontrast tekstu dostępność kolorów AA AAA color contrast checker

WCAG 2.1 – poziomy kontrastu

AA (minimum): tekst normalny (< 18px lub <14px bold) ≥ 4.5:1. Tekst duży (≥ 18px lub ≥ 14px bold) ≥ 3:1. Komponenty UI i grafikę informacyjną ≥ 3:1. AAA (zwiększone): tekst normalny ≥ 7:1. Tekst duży ≥ 4.5:1. Poziom AAA: zalecany dla treści krytycznych (instrukcje medyczne, formularze prawne).

Jak obliczany jest kontrast

Relative luminance (L): L = 0.2126R + 0.7152G + 0.0722B (po linearyzacji gamma). Kontrast ratio = (L1+0.05)/(L2+0.05) gdzie L1 > L2. Wynik: 1:1 (brak kontrastu) do 21:1 (biały na czarnym). Narzędzie oblicza automatycznie dla dowolnej pary HEX/RGB/HSL.

Jak działa sprawdzanie kontrastu

Wybierz kolory próbnikiem albo wpisz je jako HEX, rgb() lub hsl(). Narzędzie liczy współczynnik kontrastu według WCAG 2 i od razu ocenia pięć kryteriów: zwykły i duży tekst na poziomach AA i AAA oraz elementy interfejsu i grafikę (3:1, kryterium 1.4.11). Podgląd pokazuje tekst 24 px, 16 px i 13 px oraz przycisk w wybranych kolorach.

Gdy para nie spełnia progu, pojawia się propozycja najbliższego koloru tekstu, który go spełnia — ta sama barwa, zmieniona tylko jasność — osobno dla AA i AAA. Jedno kliknięcie podstawia kolor. Przycisk „Zamień kolory” sprawdza odwrotny układ (jasny tekst na ciemnym tle).

Najczęstsze błędy kontrastu

Szary tekst na białym tle: #999999 na #FFFFFF = 2.85:1 (fail). Jasnoniebieski link na białym: #74B9FF = 2.4:1 (fail). Żółty tekst na białym: prawie zawsze fail. Placeholder input: często za jasny (wielu deweloperów nie sprawdza placeholderów). Disabled states: WCAG zwalnia z wymogu dla wyłączonych elementów.

Wskazówki przy doborze kolorów

Ciemny tekst na jasnym tle: łatwiej osiągnąć wysokie ratio. Lekko ciemniejszy primary: #0060DF zamiast #0085FF – lepszy kontrast przy zachowanym kolorze. Tryb ciemny: biały tekst na ciemnym tle – sprawdź osobno. Narzędzie sugeruje automatycznie najbliższy kolor spełniający AA.

Jak narzędzie liczy kontrast – wzór WCAG krok po kroku

Narzędzie przyjmuje dwa kolory: tekstu i tła. Niezależnie od formatu wejściowego (HEX, RGB czy HSL) sprowadza je najpierw do trzech kanałów w zakresie 0–255, a potem dzieli każdy przez 255, otrzymując wartości z przedziału 0–1. Dzięki temu ten sam wzór działa dla zapisu #999999, rgb(153,153,153) i hsl(0, 0%, 60%). Porównanie jest symetryczne – nie ma znaczenia, który kolor wskażesz jako tekst, a który jako tło.

Każdy kanał jest następnie linearyzowany, bo oko reaguje na jasność nieliniowo. Jeśli wartość kanału jest mniejsza lub równa 0,03928, dzieli się ją przez 12,92; w przeciwnym razie stosuje się wzór ((c + 0,055) / 1,055) podniesione do potęgi 2,4. Z trzech składowych powstaje luminancja względna: L = 0,2126 * R + 0,7152 * G + 0,0722 * B. Zielony waży najwięcej, niebieski najmniej, dlatego żółty ma tak wysoką luminancję, a nasycony niebieski tak niską.

Sam kontrast to iloraz: (L jaśniejszego koloru + 0,05) / (L ciemniejszego koloru + 0,05). Stała 0,05 zapobiega dzieleniu przez zero i odpowiada za to, że wynik mieści się w przedziale od 1:1 dla identycznych barw do 21:1 dla czerni i bieli. Narzędzie zestawia otrzymaną wartość z progami WCAG 2.1: AA wymaga 4,5:1 dla tekstu normalnego i 3:1 dla dużego, AAA odpowiednio 7:1 i 4,5:1. Kanał alfa nie jest uwzględniany – kolory trzeba podać już złożone z tłem.

Przykład krok po kroku: szary #999999 na białym tle

  1. Ustalamy parę: kolor tekstu #999999, kolor tła #FFFFFF. To klasyczna sytuacja – szary tekst na białej karcie.
  2. Rozbijamy HEX na kanały. 99 szesnastkowo to 153 dziesiętnie, więc R = G = B = 153. Po podzieleniu przez 255 każdy kanał wynosi 0,6.
  3. Linearyzujemy kanał: (0,6 + 0,055) / 1,055 = 0,6209, a następnie 0,6209 do potęgi 2,4 = 0,3186.
  4. Liczymy luminancję względną: 0,2126 * 0,3186 + 0,7152 * 0,3186 + 0,0722 * 0,3186. Współczynniki sumują się do 1, a kanały są równe, więc L = 0,3186.
  5. Luminancja bieli wynosi 1,0. Podstawiamy do wzoru: (1,0 + 0,05) / (0,3186 + 0,05) = 1,05 / 0,3686 = 2,85.
  6. Wynik 2,85:1 jest poniżej progu 4,5:1, więc tekst normalny nie przechodzi poziomu AA i trzeba przyciemnić szary. Dla porównania biały tekst na tle #767676 daje 4,48:1, czyli wciąż minimalnie za mało dla tekstu normalnego.

Zestawienie typowych par i ich ocena

Para (tekst na tle)KontrastOcena
Biały #FFFFFF na czarnym #00000021:1maksymalny możliwy wynik, AAA
Czarny #000000 na żółtym #FFFF0019,1:1AAA dla obu poziomów tekstu
Biały #FFFFFF na #7676764,48:1poniżej AA dla tekstu normalnego, powyżej progu 3:1 dla dużego
#999999 na białym #FFFFFF2,85:1poniżej AA i AAA
#74B9FF na białym #FFFFFF2,4:1poniżej AA, typowy zbyt jasny link
Żółty #FFFF00 na białym #FFFFFFbardzo niski, poniżej proguwariant prawie zawsze kończy się niepowodzeniem

Praktyczne wskazówki przy pracy z kontrastem

  • Testuj paletę hurtowo, nie ekran po ekranie – jeśli kolory są zdefiniowane jako tokeny, przejrzyj każdy kolor tekstu w zestawieniu z każdym tłem, na którym faktycznie występuje. Pojedynczy sprawdzony przycisk nie gwarantuje, że ten sam odcień zadziała w komunikacie błędu.
  • Pamiętaj o stanach interakcji – link domyślny, hover, focus, aktywny przycisk i tekst na przycisku to osobne pary kolorów. Najczęściej to właśnie stan hover wypada najsłabiej, bo rozjaśnia kolor bazowy.
  • Traktuj duży tekst jako wyjątek, nie regułę – niższy próg 3:1 dla poziomu AA dotyczy naprawdę dużych nagłówków. Gdy w responsywnym layoucie czcionka zmniejszy się poniżej progu, wymaganie wraca do 4,5:1.
  • Nie zostawiaj koloru jako jedynego wyróżnika – wysoki kontrast nie zastąpi informacji przekazywanej wyłącznie barwą. Link bez podkreślenia czy pole oznaczone tylko czerwienią wymagają dodatkowego sygnału: podkreślenia, ikony, pogrubienia.
  • Sprawdzaj realne tło, a nie deklarowany kolor – tekst często leży na półprzezroczystej nakładce, karcie z cieniem albo gradiencie. Policz kolor wynikowy lub sprawdź skrajne punkty gradientu, bo środek może wypaść lepiej niż brzeg.

Czego narzędzie nie sprawdza

  • Tylko jedna para kolorów naraz – gradient, zdjęcie w tle, cień i nakładka z przezroczystością nie są analizowane. Kanał alfa jest ignorowany, więc półprzezroczysty tekst trzeba najpierw złożyć z kolorem pod nim.
  • Rzeczywistego renderowania czcionki – wynik liczony jest z surowych wartości sRGB. Antyaliasing, grubość kroju, rozstrzelenie i skalowanie systemowe zmieniają to, co ostatecznie widzi użytkownik.
  • Pozostałych wymagań WCAG – kontrast to jedno z kryteriów sukcesu. Narzędzie nie oceni semantyki, kolejności nagłówków, obsługi klawiatury, tekstów alternatywnych ani widoczności fokusu.
  • Właściwego progu za Ciebie – czy tekst jest normalny, czy duży, a także czy wymagany jest poziom AA czy AAA, zależy od projektu i przepisów, a nie od samych wartości kolorów.

Najczęstsze pytania

Czy WCAG jest obowiązkowe prawnie?

W Polsce: Ustawa o dostępności cyfrowej (2019, implementacja dyrektywy UE 2016/2102) obowiązuje podmioty publiczne. W UE: European Accessibility Act (2022) rozszerzy wymóg na sektor prywatny (e-commerce) od 2025. USA: Section 508 (rząd), ADA (firmy). Prywatne strony komercyjne w Polsce: brak bezpośredniego obowiązku, ale narażenie na skargi.

Czy kontrast 4.5:1 to dużo?

Dla kontekstu: biały na czarnym = 21:1. Biały na ciemno szarym #767676 = 4.48:1 (prawie AA). Czarny na żółtym #FFFF00 = 19.1:1. Ciemnoniebieska navy na białym: ~12-15:1. Dla zwykłego projektu: 4.5:1 jest osiągalne bez rezygnacji z designu, trzeba tylko sprawdzić.

Jak testować kontrast na całej stronie?

axe DevTools (rozszerzenie Chrome): skanuje całą stronę. WAVE (web accessibility evaluation tool): visual overlay z błędami. Lighthouse: audyt dostępności w Chrome DevTools. Pa11y: CLI tool. Storybook: a11y addon testuje komponenty. Automated testing: 30-40% WCAG issues – resztę trzeba sprawdzić manualnie.

Jak kontrast wpływa na SEO?

Google nie mierzy bezpośrednio kontrastu jako czynnik rankingowy. Ale: niska dostępność = wyższy bounce rate = negatywny sygnał UX. Google Mobile-Friendly Test i PageSpeed mogą flagować problemy dostępności. Core Web Vitals: nie kontrast, ale ogólna jakość UX.

Czy animowany tekst musi spełniać kontrast?

WCAG 1.4.3 (kontrast): dotyczy tekstu "prezentowanego jako tekst" – animacje HTML/CSS podlegają. Tekst na filmach i materiałach video: WCAG 1.4.3 nie dotyczy bezpośrednio, ale WCAG 1.2.2 (napisy) tak. WCAG 2.3.1 (błyski): animowane treści mogą powodować napady – limit 3 błyski/sekundę.

Czy kolejność kolorów ma znaczenie przy liczeniu kontrastu?

Nie. Do jaśniejszej luminancji zawsze dodaje się 0,05 i dzieli przez ciemniejszą powiększoną o 0,05, więc wynik dla pary biały–czarny i czarny–biały jest identyczny i wynosi 21:1.

Tekst ma 20 px i pogrubienie, czy wystarczy 3:1?

Dla poziomu AA duży tekst wymaga 3:1, więc taki wynik wystarczy. Na poziomie AAA duży tekst musi mieć już 4,5:1, a tekst normalny 7:1. Próg zależy też od tego, jak tekst faktycznie się renderuje po skalowaniu.

Jak policzyć kontrast tekstu na przezroczystym tle?

Trzeba najpierw złożyć kolor tekstu z kolorem pod nim i wyznaczyć odcień wynikowy. Narzędzie przyjmuje dwa nieprzezroczyste kolory, więc podaj już złożoną wartość tła.

Dlaczego wynik narzędzia różni się od pomiaru z ekranu?

Narzędzie liczy na wartościach zapisanych w kodzie, a przeglądarka renderuje kolor przez profile barwne, antyaliasing i ewentualne nakładki. Różnice są zwykle niewielkie, ale przy wyniku blisko progu warto zachować zapas.

Czy link wyróżniony tylko kolorem musi mieć wyższy kontrast?

Tak. Jeśli link w treści nie jest podkreślony ani inaczej oznaczony, powinien mieć co najmniej 3:1 kontrastu względem otaczającego tekstu. Sam kontrast linku z tłem tego wymagania nie zastępuje.

Powiązane narzedzia: konwerter HEX na HSL, tester schematow kolorow i generator triadycznych schematow.

Zainstaluj Webp.pl Miej narzędzia we własnej kieszeni!