Witly Logo
FunkcjonalnościCennikKontakt
Zaloguj się Umów konsultację
Dostępność

Headless frontend a dostępność — jak budujemy storefront zgodny z WCAG

Platformy e-commerce generują HTML, którego nie kontrolujesz. Headless frontend daje pełną kontrolę nad kodem — i pozwala budować dostępność od fundamentów, zamiast łatać ją nakładkami. Ten artykuł opisuje, co konkretnie robimy i dlaczego to działa.

Bartosz Jagielski
Bartosz Jagielski14 maja 2026

Dlaczego headless zmienia zasady gry dla dostępności

Tradycyjny sklep na Shoperze, WooCommerce czy PrestaShop renderuje HTML na serwerze platformy. Właściciel sklepu kontroluje treść — ale nie strukturę kodu. Nie może dodać skip linka, zmienić hierarchii nagłówków ani naprawić fokusa w nawigacji. Może co najwyżej wkleić overlay — a ten nie rozwiązuje problemów strukturalnych.

Headless frontend oddziela warstwę prezentacji od platformy. Sklep pobiera dane przez API, a cały HTML, CSS i JavaScript pisze zespół frontendowy. To oznacza pełną kontrolę nad semantyką, klawiaturą, ARIA i każdym elementem DOM.

Kluczowa różnica: Overlay próbuje naprawić kod, którego nie kontroluje — dlatego nie działa. Headless frontend pisze ten kod od zera — dlatego może być dostępny z założenia.

Co konkretnie implementujemy — i jakie kryteria WCAG to adresuje

WCAG 2.4.1 (A)

Skip link — „Przejdź do treści"

Ukryty link na samej górze strony, widoczny po naciśnięciu Tab. Pozwala użytkownikowi klawiatury ominąć header, nawigację i wyszukiwarkę — i przeskoczyć bezpośrednio do treści. Bez tego każda podstrona zaczyna się od kilkunastu Tab-ów przez menu.

WCAG 1.3.1 (A)

Semantyczny HTML i landmarki

Każda strona ma poprawną strukturę: <header>, <main>, <footer>, <nav>. Nagłówki tworzą logiczną hierarchię (h1 → h2 → h3). Screen reader JAWS, NVDA czy VoiceOver widzi stronę jako uporządkowany dokument, nie jako płaski ciąg elementów.

WCAG 2.1.1 (A)

Pełna nawigacja klawiaturą

Każdy interaktywny element — przycisk, link, pole formularza, filtr, modal — jest dostępny Tab-em i obsługuje klawisze Enter, Escape, strzałki. Modale mają focus trap (Tab nie ucieka poza modal) i przywracają fokus po zamknięciu. Focus ring (czerwona ramka 3px) jest zawsze widoczny na aktywnym elemencie.

WCAG 4.1.2 (A)

ARIA na dynamicznych komponentach

Wyszukiwarka ma role="search", sugestie mają role="listbox" z aria-expanded i aria-controls. Modale mają role="dialog" z aria-modal. Panel dostępności używa role="switch" z aria-checked na każdym przełączniku. Checkboxy mają role="checkbox" z aria-label.

WCAG 4.1.3 (AA)

aria-live — ogłaszanie zmian dynamicznych

Gdy użytkownik dodaje produkt do koszyka — screen reader ogłasza nową liczbę produktów. Gdy wyszukiwarka zwraca sugestie — ogłasza ile ich jest. Bez aria-live dynamiczne zmiany na stronie są niewidoczne dla osób korzystających z czytników ekranu.

WCAG 3.1.1 (A)

Atrybut lang na <html>

Strona deklaruje język treści (np. lang="pl"), dzięki czemu screen reader wie jakiej wymowy użyć. Bez tego czytnik może czytać polski tekst z angielską fonetyką — co czyni treść niezrozumiałą.

WCAG 2.3.1 (A)

prefers-reduced-motion z systemu operacyjnego

Oprócz przełącznika w widgecie, storefront respektuje systemowe ustawienia użytkownika. Jeśli ktoś włączył „zmniejsz ruch" w macOS, Windows czy iOS — strona automatycznie wyłącza animacje CSS bez potrzeby ręcznej konfiguracji.

Widget preferencji wizualnych — 11 funkcji dostosowania

Oprócz fundamentów w kodzie, storefront zawiera panel preferencji wizualnych z 11 kontrolkami: regulacja rozmiaru tekstu, odstępów między literami, wysokości linii, tryb wysokiego kontrastu, zatrzymanie animacji, ukrycie obrazów, powiększony kursor, linia czytania, podświetlenie linków, podświetlenie nagłówków i wyciszenie dźwięków.

Widget to narzędzie wygody — nie certyfikat zgodności. Adresuje 7 z 78 kryteriów WCAG 2.1. Pozostałe 71 kryteriów wymagają zmian w kodzie źródłowym — i to właśnie daje headless frontend. Szczegółowa analiza prawna i naukowa widgetu: Widget dostępności — co robi, czego nie robi i dlaczego.

Dlaczego accessibility overlaye nie działają

Narzędzia typu overlay obiecują zgodność z WCAG po wklejeniu jednej linijki JavaScript. W praktyce:

FTC (USA, 2025)

Federalna Komisja Handlu ukarała dostawcę overlay kwotą 1 000 000 USD za fałszywe twierdzenia o zgodności z WCAG. Wewnętrzne testy dostawcy wykrywały błędy na niemal wszystkich testowanych stronach.

Komisja Europejska

DG COMM w Europa Web Guide stwierdza, że żadne narzędzie automatyczne nie pokrywa wszystkich kryteriów WCAG 2.1. Overlaye mogą obniżyć dostępność strony dla części użytkowników.

Automatyczne wykrywanie

Narzędzia automatyczne wykrywają ok. 13% kryteriów WCAG 2.2 AA. Pozostałe 70% wymaga oceny człowieka. Overlay nie naprawi semantyki HTML, nawigacji klawiaturą ani opisów alt.

WebAIM (2021, n=676)

69% specjalistów ds. dostępności oceniło overlaye jako nieskuteczne lub zupełnie nieskuteczne. Wśród respondentów z niepełnosprawnościami — 72%.

Problem overlayów jest strukturalny: próbują naprawić kod HTML, którego nie kontrolują, przez nałożenie warstwy JavaScript. To jak próba naprawienia fundamentów domu przez przemalowanie fasady.

5 testów, które możesz zrobić sam w 10 minut

Nie potrzebujesz audytora ani specjalistycznego oprogramowania, żeby sprawdzić podstawową dostępność swojego sklepu. Poniższe testy wykryją najczęstsze problemy — te same, które odpowiadają za ponad 80% błędów zgłaszanych przez użytkowników z niepełnosprawnościami.

1

Test klawiatury — odłóż myszkę

Otwórz stronę główną sklepu i nawiguj wyłącznie klawiaturą: Tab (przód), Shift+Tab (tył), Enter (klik), Escape (zamknij). Przejdź przez: menu → wyszukiwarkę → produkt → dodaj do koszyka → koszyk.

Czego szukasz: Czy zawsze widzisz, który element jest aktywny (focus ring)? Czy gdzieś „utknąłeś" i nie możesz się wydostać (keyboard trap)? Czy modal/koszyk zamyka się Escape-em? Jeśli na którymkolwiek etapie nie wiesz gdzie jesteś albo nie możesz kontynuować — użytkownik klawiatury też nie może.
2

Test skip linka

Otwórz stronę i naciśnij Tab raz. Czy pojawił się link „Przejdź do treści" (lub podobny)? Kliknij Enter — czy fokus przeskoczył do głównej treści strony, pomijając header i menu?

Czego szukasz: Jeśli skip link nie istnieje, użytkownik klawiatury musi Tab-ować przez każdy element nawigacji na każdej podstronie. Przy menu z 15 kategoriami to 15+ naciśnięć Tab zanim dotrze do treści.
3

Test nagłówków — drzewko struktury

Zainstaluj rozszerzenie HeadingsMap (Chrome/Firefox) i otwórz dowolną stronę kategorii lub produktu. Sprawdź drzewko nagłówków.

Czego szukasz: Czy jest dokładnie jeden h1? Czy nagłówki tworzą logiczną hierarchię (h1 → h2 → h3) bez przeskoków (np. h1 → h4)? Screen reader pozwala nawigować po nagłówkach — jeśli hierarchia jest zepsuta, użytkownik nie może szybko znaleźć sekcji, której szuka.
4

Test kontrastu — 4.5:1

Kliknij prawym przyciskiem na tekst → Zbadaj element. Sprawdź kolor tekstu i kolor tła. Wpisz oba kolory w dowolny kontrast checker (np. wbudowany w Chrome DevTools — ikonka kontrastu przy kolorze w panelu Styles).

Czego szukasz: Ratio poniżej 4.5:1 dla normalnego tekstu lub poniżej 3:1 dla dużego tekstu (18px bold / 24px regular) oznacza problem. Najczęstsze winowajcy: jasnoszary tekst na białym tle, placeholder w polach formularza, tekst na zdjęciach bez ciemnego podkładu.
5

Test screen readera — 2 minuty z VoiceOver

Na macOS: Cmd+F5 włącza VoiceOver. Nawiguj po stronie produktu. Na Windows: pobierz NVDA (darmowy) i zrób to samo.

Czego szukasz: Czy przyciski mają sensowne nazwy (a nie „button" lub „przycisk 1")? Czy zdjęcia produktów mają opisy alt (a nie „IMG_4521.jpg")? Czy po dodaniu do koszyka usłyszysz potwierdzenie? 2 minuty z czytnikiem ekranu uczą więcej niż godzina czytania dokumentacji.
Narzędzie automatyczne na koniec: Po testach manualnych uruchom Lighthouse w Chrome DevTools (zakładka Accessibility) — wykryje brakujące atrybuty alt, niski kontrast i brakujące etykiety formularzy. Pamiętaj: automatyczne narzędzia wykrywają ok. 13% kryteriów WCAG. Testy 1–5 powyżej pokrywają to, czego automat nie znajdzie.

Czy logo powinno być linkiem do strony głównej?

Tak — i to jest wymóg WCAG, nie kwestia gustu. Logo sklepu w nagłówku powinno być linkiem prowadzącym do strony głównej. To uniwersalna konwencja webowa, którą użytkownicy — zarówno widzący, jak i korzystający z czytników ekranu — traktują jako nawigację „home".

Logo jako link do strony głównej
  • WCAG SC 3.2.3 (AA) — „Consistent Navigation": nawigacja powtarzalna na każdej podstronie w tej samej kolejności
  • WCAG SC 3.2.4 (AA) — „Consistent Identification": ten sam element pełni tę samą funkcję na każdej stronie
  • Screen reader ogłasza: „Strona główna, link" — użytkownik natychmiast wie jak wrócić
  • Konwencja znana od lat 90. — badania NNGroup potwierdzają, że 96% użytkowników oczekuje klikalnego logo
Logo bez linku lub link do wyszukiwarki
  • Łamie oczekiwania użytkownika — klik na logo nie robi nic lub prowadzi w nieoczekiwane miejsce
  • Screen reader nie ogłosi tego jako nawigację — użytkownik nie wie jak wrócić na stronę główną
  • Zwiększa cognitive load — użytkownik musi szukać innego sposobu powrotu
  • Linkowanie do wyszukiwarki dezorientuje — wyszukiwarka jest już widoczna w nagłówku
Jak to robimy: Logo w naszym storefroncie jest linkiem z aria-label="Strona główna". Nawigacja do wyszukiwarki jest rozwiązana inaczej — skip link pozwala przeskoczyć do treści, a wyszukiwarka jest dostępna w stałej pozycji w nagłówku, zarówno myszką jak i klawiaturą.

Headless = kontrola = dostępność

WCAG 2.1 AA wymaga zmian w 78 kryteriach sukcesu — od semantyki HTML, przez nawigację klawiaturą, po dynamiczne ogłaszanie zmian. Żaden overlay ani widget tego nie zrobi. Headless frontend daje jedyną rzecz, która jest potrzebna: pełną kontrolę nad kodem źródłowym.

Źródła

  • WCAG 2.1 — W3C Recommendation, 5 czerwca 2018
    w3.org/TR/WCAG21/
  • EN 301 549 V3.2.1 — ETSI, CEN, CENELEC (marzec 2021)
    etsi.org/deliver/etsi_en/301500_301599/301549/03.02.01_60/en_301549v030201p.pdf
  • FTC, sprawa nr 2223156 — overlay accessibility (styczeń–kwiecień 2025)
    ftc.gov/legal-library/browse/cases-proceedings/2223156-accessibe-inc
  • DG COMM, Komisja Europejska — Accessibility Overlays, Europa Web Guide
    fondazionelia.org/en/research-and-development/accessibility-overlays-are-not-the-solution-says-the-european-commission/
  • Accessible.org: Accessibility Scans Reliably Flag 13% of WCAG Criteria
    accessible.org/automated-scans-wcag/
  • WebAIM Practitioners Survey #3 (styczeń 2021, n=758)
    webaim.org/projects/practitionersurvey3/
  • NNGroup: Accessibility Widgets Are Not Enough for Screen-Reader Users
    nngroup.com/videos/accessibility-widget/
  • EDF + IAAP: Joint Statement on Accessibility Overlays (maj 2023)
    edf-feph.org/publications/joint-statement-on-accessibility-overlays/
  • NNGroup: Homepage Links Remain a Necessity (logo linking study)
    nngroup.com/articles/homepage-links/

Automatyzacja obsługi sklepu

Gotowy na rewolucję w obsłudze klienta?

Dołącz do firm, które już usprawniły działanie swojego sklepu

Umów konsultację →
FunkcjonalnościCennikShoper AIWooCommerce AIPrestaShop AIRegulaminPolityka prywatności

🇵🇱 Tworzone w Polsce • Polskie rozwiązania AI

© 2026 Witly. Wszystkie prawa zastrzeżone.