Przykładowy Raport naprawy dostępności. Harbor & Pine to fikcyjny sklep, który zbudowaliśmy z typowymi błędami dostępności, a następnie przetestowaliśmy tym samym silnikiem, który skanuje Twoją stronę.

Przeskanuj stronę za darmo

Przykładowy Raport naprawy dostępności

harborandpine.example

Platforma:
Shopify
Wygenerowano:
24 wrz 2026
Testowane podstrony:
9
Silnik:
axe-core 4.13.0

Podsumowanie

Testy automatyczne wykrywają część problemów z dostępnością na stronie, a nie wszystkie. Ten raport opisuje, co znalazły nasze testy i jak to naprawić. Nie stanowi porady prawnej i nie poświadcza zgodności z ADA, Europejskim Aktem o Dostępności ani żadnymi przepisami.

Przegląd

P1 · Napraw najpierwBlokuje odwiedzających na kluczowych podstronach
8
P2 · Napraw w drugiej kolejnościPoważne lub umiarkowane bariery
0
P3 · UlepszDrobne problemy i dobre praktyki
2

Wystąpienia według wagi

Krytyczny
73
Poważny
58
Umiarkowany
25
Drobny
0
Potwierdzone błędyTypy problemów, przy których test automatyczny wykazał błąd
10
Do sprawdzeniaOznaczone, ale wymagają decyzji człowieka
4
Zaliczone testyReguły automatyczne bez błędów
32
Nie przetestowanoKroki ścieżki i testy ręczne
7

Liczba przetestowanych podstron: 9, w tym wybranych z mapy witryny: 4. Terminy docelowe to propozycje oparte na wadze problemów; ostateczne terminy uzgodnij ze swoim programistą.

Przegląd strony

Rozpoznane na podstawie publicznych dowodów z przetestowanych podstron. Etykieta może być błędna; decyduje tylko o tym, które dodatkowe testy zostaną uruchomione.

Typ strony

  • Sklep internetowyWysoka pewność
    • Działa na platformie sklepowej Shopify
    • Link do koszyka
    • Linki do produktów lub sklepu
  • Landing pageŚrednia pewność
    • Linki tylko do 6 podstron wewnętrznych

Wykryte technologie

  • ShopifyWysoka pewność

    Zasoby lub skrypty Shopify na stronie

Testy dla tej strony

  • Testy uniwersalne: dostępność, SEO, szybkość, bezpieczeństwo i e-mail
  • Moduł e-commerce: strony kolekcji, produktu i koszyka oraz ścieżka zakupowa klawiaturą aż do przycisku przejścia do kasy
  • Uwagi dla Shopify: kroki naprawy w motywie i panelu administracyjnym; nagłówki i pliki cookie zarządzane przez platformę pokazujemy informacyjnie

Ścieżka zakupowa klawiaturą

Próbowaliśmy zrobić zakupy wyłącznie za pomocą klawiatury (Tab, Shift+Tab, Enter, Spacja, Escape), tak jak robią to osoby, które nie mogą używać myszy. Dodajemy jeden produkt do koszyka w jednorazowej sesji i zatrzymujemy się przy przycisku przejścia do kasy: nigdy nie wchodzimy do kasy ani nie wpisujemy danych osobowych czy płatniczych. Cel: Przejść ze strony głównej do przycisku przejścia do kasy, korzystając wyłącznie z klawiatury.

  1. 01Dotarcie do głównej nawigacji

    Zaliczone

    Fokus dotarł do elementu „Shop” w nawigacji po 21 naciśnięciach Tab.

    Oczekiwane: Naciskanie Tab od góry strony głównej prowadzi do linków w głównej nawigacji.

    • Uwaga: Baner cookie przetrzymywał fokus klawiatury, dopóki nie nacisnęliśmy Enter na „Accept all”.
    Jak to odtworzyć

    https://harborandpine.example/

    1. Otwórz stronę główną.
    2. Kliknij pasek adresu przeglądarki, a potem naciskaj Tab (Shift+Tab cofa).

    Zaobserwowana kolejność fokusu

    „Shop”

  2. 02Otwarcie produktu z kolekcji

    Zaliczone

    Fokus dotarł do elementu „Trail Daypack 22L” po 9 naciśnięciach Tab, a Enter otworzył /products/trail-daypack.

    Oczekiwane: Tab dociera do produktu w siatce kolekcji, a Enter otwiera jego stronę.

    Jak to odtworzyć

    https://harborandpine.example/collections/all

    1. Otwórz /collections/all.
    2. Naciskaj Tab, aż produkt w siatce zostanie wyróżniony, a potem naciśnij Enter.

    Zaobserwowana kolejność fokusu

    „Harbor & Pine” → „Shop” → „New arrivals” → „Our story” → body > header.site > div.icons > button → „Account” → body > header.site > div.icons > a → „FeaturedPrice, low to highPrice, high to low” → „Trail Daypack 22L”

  3. 03Wybór opcji i ilości

    Niezaliczone

    3 opcje produktu nie mogą otrzymać fokusu klawiatury: „S”, „M”, „L”. Reagują na mysz, ale osoba korzystająca z klawiatury nie może ich wybrać.

    Oczekiwane: Do każdej opcji produktu (rozmiar, kolor, wariant) i pola ilości można dotrzeć klawiszem Tab.

    2.1.1 Klawiatura · Poziom pewności: wysoki

    Wybór opcji i ilości: błędny element, obrysowany
    Wybór opcji i ilości: błędny element, obrysowany
    Jak to odtworzyć

    https://harborandpine.example/products/trail-daypack

    1. Otwórz /products/trail-daypack.
    2. Naciskaj Tab od góry strony i zanotuj, które elementy sterujące otrzymują fokus przed przyciskiem „Dodaj do koszyka”.

    Zaobserwowana kolejność fokusu

    „Harbor & Pine” → „Shop” → „New arrivals” → „Our story” → … jeszcze 5 … → body > header.site > div.icons > a → div.page.product > div.gallery > div.thumbs > button → div.page.product > div.gallery > div.thumbs > button → div.page.product > div.gallery > div.thumbs > button → div.page.product > div > div.swatches > button → div.page.product > div > div.swatches > button → div.page.product > div > div.swatches > button → „1” → „Add to cart”

    Element
    <div class="size-option" data-fr="opt-1">S</div>
  4. 04Dodanie do koszyka za pomocą klawiatury

    Do sprawdzenia

    Enter na przycisku „Dodaj do koszyka” zadziałał (zmienił się licznik koszyka w nagłówku, pojawił się komunikat „dodano do koszyka”), ale nie znaleźliśmy komunikatu o stanie ani okna dialogowego z fokusem, więc osoby korzystające z czytników ekranu mogą nie usłyszeć, że produkt został dodany.

    Oczekiwane: Enter na przycisku „Dodaj do koszyka” dodaje produkt, a potwierdzenie jest ogłaszane: komunikatem o stanie, oknem dialogowym, które przejmuje fokus, lub stroną koszyka.

    4.1.3 Komunikaty o stanie · Poziom pewności: średni

    Dodanie do koszyka za pomocą klawiatury: podstrona na tym etapie
    Dodanie do koszyka za pomocą klawiatury: podstrona na tym etapie
    Jak to odtworzyć

    https://harborandpine.example/products/trail-daypack

    1. Otwórz /products/trail-daypack.
    2. Naciskaj Tab, aż przycisk „Dodaj do koszyka” otrzyma fokus, a potem naciśnij Enter.
    3. Sprawdź z czytnikiem ekranu (VoiceOver: Cmd+F5), czy potwierdzenie zostaje odczytane.
  5. 05Zmiana zawartości koszyka i dotarcie do kasy

    Zaliczone

    Dotarliśmy do wszystkich 4 elementów sterujących koszyka i do przycisku przejścia do kasy („Check out”); łącznie 12 naciśnięć Tab. Nie nacisnęliśmy go.

    Oczekiwane: Do pól ilości, przycisków usuwania i przycisku przejścia do kasy można dotrzeć klawiszem Tab.

    Jak to odtworzyć

    https://harborandpine.example/cart

    1. Dodaj dowolny produkt do koszyka i otwórz stronę koszyka.
    2. Naciskaj Tab i sprawdź, czy pola ilości, przyciski usuwania i przycisk przejścia do kasy otrzymują fokus.

    Zaobserwowana kolejność fokusu

    „Harbor & Pine” → „Shop” → „New arrivals” → „Our story” → body > header.site > div.icons > button → „Account” → body > header.site > div.icons > a → „1” → tbody > tr > td > button.remove → „2” → tbody > tr > td > button.remove → „Check out”

  6. 06Zamówienie

    Nie przetestowano

    Zatrzymujemy się przy przycisku przejścia do kasy: nigdy nie wchodzimy do kasy, nie tworzymy zamówienia ani nie wpisujemy danych płatniczych. W Shopify strony kasy obsługuje Shopify, a nie Twój motyw. Sprawdź kasę ręcznie (zobacz sekcję testów ręcznych).

Mapa zarzutów z pisma

Każdy zarzut z pisma zestawiony z dowodami ze skanu. To porównanie faktów, a nie porada prawna.

  • “Images lack alternative text, so product photos are not described.”

    Obrazy bez tekstu alternatywnego. 10 wystąpień (podstrony: 3 z 5 przetestowanych).

    image-alt

    Odtworzono
  • “Text has insufficient color contrast against its background, including sale badges and prices.”

    Niski kontrast kolorów. 16 wystąpień (podstrony: 5 z 5 przetestowanych).

    color-contrast

    Odtworzono
  • “The website cannot be navigated using a keyboard alone.”

    Dostęp z klawiatury i fokus. Fokus klawiatury utyka w banerze cookie.

    Odtworzono
  • “Form fields do not have labels, including the newsletter sign-up and the quantity fields in the cart.”

    Pola formularzy bez etykiet. 4 wystąpienia (podstrony: 3 z 5 przetestowanych).

    select-name, label

    Odtworzono
  • “Product videos do not have captions.”

    Napisy do wideo i audio. Automatyczne skany nie mogą ocenić napisów. Sprawdź, czy każdy film o produkcie lub marce ma dokładne napisy i transkrypcję.

    Do ręcznego sprawdzenia
  • “Our client is legally blind and uses screen reader software.”

    Inne problemy. To ogólne stwierdzenie. Przetestuj kluczowe ścieżki (wyszukiwanie, strona produktu, dodanie do koszyka, kasa) za pomocą czytnika ekranu, np. VoiceOver lub NVDA.

    Do ręcznego sprawdzenia

Plan naprawczy

Problemy w kolejności priorytetów, z osobami odpowiedzialnymi i terminami docelowymi
PriorytetProblemStatusWCAGWystąpieniaOsoba odpowiedzialnaTermin docelowy
P1Fokus klawiatury jest uwięziony w banerze cookiePotwierdzony2.1.21dostawca aplikacji2026-10-08
P1Opcji produktu nie da się wybrać klawiaturąPotwierdzony2.1.11programista motywu2026-10-08
P1Przyciski muszą mieć odróżniający je tekst nazwyPotwierdzony4.1.241programista motywu2026-10-08
P1Obrazy muszą mieć tekst alternatywnyPotwierdzony1.1.122redaktor treści2026-10-08
P1Element formularza musi mieć etykietęPotwierdzony4.1.27programista motywu2026-10-08
P1Element select musi mieć dostępną nazwęPotwierdzony4.1.21programista motywu2026-10-08
P1Łącza muszą mieć odróżniający je tekstPotwierdzony2.4.4, 4.1.236programista motywu2026-10-08
P1Elementy muszą mieć wystarczający kontrast kolorówPotwierdzony1.4.322właściciel sklepu (ustawienia w panelu administracyjnym)2026-10-08
P3Cała treść strony musi być zawarta w obszarach kluczowychPotwierdzonyDobra praktyka18programista motywu2026-11-23
P3Poziomy nagłówków powinny wzrastać tylko o jedenPotwierdzonyDobra praktyka7programista motywu2026-11-23

Jak naprawić każdy problem

P1KrytycznyPotwierdzony błądWCAG 2.1.2

Fokus klawiatury jest uwięziony w banerze cookie

nakład pracy: średni · wykonawca: dostawca aplikacji · 2.1.2 Bez pułapki na klawiaturę

Gdy osoba korzystająca z klawiatury naciska Tab, fokus krąży między kilkoma elementami i nigdy nie dociera do reszty strony.

Osoby korzystające wyłącznie z klawiatury i z czytników ekranu w ogóle nie mogą robić zakupów, jeśli fokus jest uwięziony (WCAG 2.1.2 Bez pułapki na klawiaturę).

Dowód

Wykryte przez
Test klawiatury (przejście klawiszem Tab przez stronę główną)
Status · poziom pewności
Potwierdzony błąd · wysoki
Wykryto
24 wrz 2026 (UTC)
Gdzie
1 wystąpienie · 1 podstrona

Oczekiwane: Naciskanie Tab przenosi fokus przez wszystkie interaktywne elementy i dalej, do reszty strony.

Zaobserwowane: Po 40 naciśnięciach klawisza Tab fokus nadal krążył między: Settings, Accept all.

Jak to odtworzyć
  1. Otwórz stronę główną.
  2. Kliknij pasek adresu, a następnie naciskaj wielokrotnie Tab.
  3. Fokus wciąż wraca do tych samych kilku elementów.
Błędne elementy (pokazane: 6)
button#cc-settings
Settings
button#cc-accept.primary
Accept all
button#cc-settings
Settings
button#cc-accept.primary
Accept all
button#cc-settings
Settings
button#cc-accept.primary
Accept all
Podstrony, których to dotyczy (1)
  • https://harborandpine.example/

Jak to naprawić

Ogólne wskazówki
  1. Sprawdź w ustawieniach aplikacji banera cookie lub zgód, czy jest opcja dotycząca dostępności lub pułapki fokusu, albo poproś dostawcę o poprawkę.
  2. Okno modalne może utrzymywać fokus w swoim wnętrzu tylko wtedy, gdy jest otwarte; klawisz Escape musi je zamykać, a fokus musi wracać tam, skąd przyszedł.
Napraw z pomocą AIPokaż prompt

Wklej go do ChatGPT, Claude, Cursor lub Copilot razem z plikiem motywu. Przejrzyj zmianę przed publikacją.

Prowadzę sklep Shopify (motyw Online Store 2.0, szablony Liquid) pod adresem harborandpine.example. Test dostępności wykrył ten problem i chcę go naprawić w moim motywie.

Problem: Fokus klawiatury jest uwięziony w banerze cookie (WCAG 2.1.2).
Gdzie: 1 wystąpienie na 1 podstronie, np. /.

Jeden z błędnych elementów w postaci wyrenderowanej przez przeglądarkę:
```html
Settings
```

Dlaczego to ważne: Osoby korzystające wyłącznie z klawiatury i z czytników ekranu w ogóle nie mogą robić zakupów, jeśli fokus jest uwięziony (WCAG 2.1.2 Bez pułapki na klawiaturę).

Co trzeba zmienić:
- Sprawdź w ustawieniach aplikacji banera cookie lub zgód, czy jest opcja dotycząca dostępności lub pułapki fokusu, albo poproś dostawcę o poprawkę.
- Okno modalne może utrzymywać fokus w swoim wnętrzu tylko wtedy, gdy jest otwarte; klawisz Escape musi je zamykać, a fokus musi wracać tam, skąd przyszedł.

Zasady odpowiedzi:
- Pokaż dokładną zmianę w formie „przed” i „po” oraz wskaż plik lub ustawienie, w którym należy ją wprowadzić. Jeśli najpierw musisz zobaczyć mój plik, poproś mnie o jego wklejenie.
- Zachowaj bez zmian wygląd i całe dotychczasowe działanie.
- Nie wymyślaj nazw produktów, cen ani tekstów; użyj symboli zastępczych, które mogę uzupełnić.
- Na koniec napisz, jak mogę samodzielnie sprawdzić poprawkę.
- Napisz też, jak potwierdzić poprawkę za pomocą klawiatury i czytnika ekranu.

Sprawdź swoją poprawkę

  • Wczytaj stronę główną, naciskaj wielokrotnie Tab i potwierdź, że fokus dociera do głównej nawigacji i treści.

Wykryte przez automatyczny test klawiatury; potwierdź ręcznie.

P1KrytycznyPotwierdzony błądWCAG 2.1.1

Opcji produktu nie da się wybrać klawiaturą

nakład pracy: średni · wykonawca: programista motywu · 2.1.1 Klawiatura

Opcje rozmiaru, koloru lub wariantu reagują na mysz, ale nie mogą otrzymać fokusu klawiatury, więc osoby korzystające z klawiatury nie mogą wybrać wariantu.

Osoby robiące zakupy wyłącznie z klawiatury, w tym wiele osób używających czytników ekranu, nie mogą przejść dalej na tym etapie (WCAG 2.1.1).

Dowód

Wykryte przez
Ścieżka klawiaturą
Status · poziom pewności
Potwierdzony błąd · wysoki
Wykryto
24 wrz 2026 (UTC)
Gdzie
1 wystąpienie · 1 podstrona

Oczekiwane: Do każdej opcji produktu (rozmiar, kolor, wariant) i pola ilości można dotrzeć klawiszem Tab.

Zaobserwowane: 3 opcje produktu nie mogą otrzymać fokusu klawiatury: „S”, „M”, „L”. Reagują na mysz, ale osoba korzystająca z klawiatury nie może ich wybrać.

Opcji produktu nie da się wybrać klawiaturą: obrysowany element
Opcji produktu nie da się wybrać klawiaturą: obrysowany element
Jak to odtworzyć
  1. Otwórz /products/trail-daypack.
  2. Naciskaj Tab od góry strony i zanotuj, które elementy sterujące otrzymują fokus przed przyciskiem „Dodaj do koszyka”.
Błędne elementy (pokazane: 1)
(patrz zrzut ekranu)
<div class="size-option" data-fr="opt-1">S</div>
Podstrony, których to dotyczy (1)
  • https://harborandpine.example/products/trail-daypack

Jak to naprawić

Ogólne wskazówki
  1. Zbuduj selektory opcji z natywnych przycisków opcji (radio) lub elementu <select> z widocznymi etykietami; nadaj etykiecie wygląd próbki.
  2. Jeśli zostawiasz własne elementy, każda opcja potrzebuje tabindex="0", role="radio" z aria-checked wewnątrz role="radiogroup" oraz obsługi strzałek i spacji. Natywne przyciski opcji zapewniają to wszystko bez dodatkowej pracy.

Kod

Przykłady implementacji dla Twojego programisty. Nie mamy dostępu do kodu źródłowego Twojego motywu, więc lokalizacje plików to wskazówki, a nie dokładne ścieżki.

Przed zmianą · co znaleźliśmy · Formularz produktu w Twoim motywie (wybór wariantu)
<div class="size-option" data-fr="opt-1">S</div>
Po zmianie · przykład do dostosowania
<fieldset class="variant-picker">
  <legend>Size</legend>
  <input type="radio" id="size-s" name="Size" value="S" class="visually-hidden">
  <label for="size-s" class="size-option">S</label>
  <input type="radio" id="size-m" name="Size" value="M" class="visually-hidden">
  <label for="size-m" class="size-option">M</label>
</fieldset>

Każda opcja jest prawdziwym przyciskiem opcji (radio), osiągalnym klawiszem Tab i zmienianym strzałkami; etykieta zachowuje wygląd Twojej próbki. Użyj własnych nazw i wartości opcji.

Napraw z pomocą AIPokaż prompt

Wklej go do ChatGPT, Claude, Cursor lub Copilot razem z plikiem motywu. Przejrzyj zmianę przed publikacją.

Prowadzę sklep Shopify (motyw Online Store 2.0, szablony Liquid) pod adresem harborandpine.example. Test dostępności wykrył ten problem i chcę go naprawić w moim motywie.

Problem: Opcji produktu nie da się wybrać klawiaturą (WCAG 2.1.1).
Gdzie: 1 wystąpienie na 1 podstronie, np. /products/trail-daypack.

Jeden z błędnych elementów w postaci wyrenderowanej przez przeglądarkę:
```html
<div class="size-option" data-fr="opt-1">S</div>
```

Dlaczego to ważne: Osoby robiące zakupy wyłącznie z klawiatury, w tym wiele osób używających czytników ekranu, nie mogą przejść dalej na tym etapie (WCAG 2.1.1).

Co trzeba zmienić:
- Zbuduj selektory opcji z natywnych przycisków opcji (radio) lub elementu <select> z widocznymi etykietami; nadaj etykiecie wygląd próbki.
- Jeśli zostawiasz własne elementy, każda opcja potrzebuje tabindex="0", role="radio" z aria-checked wewnątrz role="radiogroup" oraz obsługi strzałek i spacji. Natywne przyciski opcji zapewniają to wszystko bez dodatkowej pracy.

Proponowana zmiana (Formularz produktu w Twoim motywie (wybór wariantu)):
```html
<fieldset class="variant-picker">
  <legend>Size</legend>
  <input type="radio" id="size-s" name="Size" value="S" class="visually-hidden">
  <label for="size-s" class="size-option">S</label>
  <input type="radio" id="size-m" name="Size" value="M" class="visually-hidden">
  <label for="size-m" class="size-option">M</label>
</fieldset>
```

Zasady odpowiedzi:
- Pokaż dokładną zmianę w formie „przed” i „po” oraz wskaż plik lub ustawienie, w którym należy ją wprowadzić. Jeśli najpierw musisz zobaczyć mój plik, poproś mnie o jego wklejenie.
- Zachowaj bez zmian wygląd i całe dotychczasowe działanie.
- Nie wymyślaj nazw produktów, cen ani tekstów; użyj symboli zastępczych, które mogę uzupełnić.
- Na koniec napisz, jak mogę samodzielnie sprawdzić poprawkę.
- Napisz też, jak potwierdzić poprawkę za pomocą klawiatury i czytnika ekranu.

Sprawdź swoją poprawkę

  • Powtórz kroki odtworzenia, używając wyłącznie klawiatury.
  • Zleć ponowny test z poziomu tego raportu: ścieżka zostanie uruchomiona ponownie.
P1KrytycznyPotwierdzony błądWCAG 4.1.2

Przyciski muszą mieć odróżniający je tekst nazwy

nakład pracy: mały · wykonawca: programista motywu · 4.1.2 Nazwa, rola, wartość

Niektóre przyciski nie mają dostępnej nazwy, więc osoby korzystające z czytników ekranu słyszą tylko „przycisk”.

WCAG 4.1.2 wymaga, aby każdy element sterujący miał nazwę. Wśród przycisków bez nazw często są przyciski zmiany ilości, przyciski zamykania i strzałki suwaków.

Dowód

Wykryte przez
Reguła automatyczna axe-core
Status · poziom pewności
Potwierdzony błąd · wysoki
Wykryto
24 wrz 2026 (UTC)
Gdzie
41 wystąpień · 9 podstron

Oczekiwane: Przyciski muszą mieć odróżniający je tekst nazwy

Zaobserwowane: Element nie ma wewnętrznego tekstu, który jest widoczny dla czytników ekranu. Atrybut aria-label nie istnieje lub jest pusty. Atrybut aria-labelledby nie istnieje albo elementy, do których odwołuje atrybut aria-labelledby, nie istnieją lub są puste. Element nie ma atrybutu title. Element formularza nie ma dorozumianej etykiety (nie jest owinięty w label). Element formularza nie ma jawnie określonej label. Domyślna semantyka elementu nie została nadpisana przez role="none" ani role="presentation".

Przyciski muszą mieć odróżniający je tekst nazwy: obrysowany element na /
Przyciski muszą mieć odróżniający je tekst nazwy: obrysowany element na /
Przyciski muszą mieć odróżniający je tekst nazwy: obrysowany element na /collections/all
Przyciski muszą mieć odróżniający je tekst nazwy: obrysowany element na /collections/all
Jak to odtworzyć
  1. Otwórz https://harborandpine.example/ w Chrome lub Edge.
  2. Otwórz DevTools (F12) › Elements, naciśnij Ctrl+F (Cmd+F na Macu) i wyszukaj: .icons > button[type="button"]
  3. W panelu Accessibility w DevTools obliczona nazwa (Name) elementu jest pusta.
  4. Możesz też uruchomić na stronie darmowe rozszerzenie przeglądarki axe DevTools: zgłasza ono ten problem jako „button-name”.
Błędne elementy (pokazane: 4)
.icons > button[type="button"]
<button type="button"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="11" cy="11" r="7"></circle><path d="M20 20l-3.5-3.5"></path></svg></button>
.thumbs > button:nth-child(1)
<button type="button"><img src="/img/daypack.svg"></button>
.thumbs > button:nth-child(2)
<button type="button"><img src="/img/jacket.svg"></button>
.thumbs > button:nth-child(3)
<button type="button"><img src="/img/bottle.svg"></button>
Podstrony, których to dotyczy (9)
  • https://harborandpine.example/
  • https://harborandpine.example/collections/all
  • https://harborandpine.example/products/trail-daypack
  • https://harborandpine.example/cart
  • https://harborandpine.example/pages/about
  • https://harborandpine.example/products/pine-wool-beanie
  • https://harborandpine.example/products/enamel-camp-mug
  • https://harborandpine.example/products/harbor-lantern
  • https://harborandpine.example/products/insulated-bottle

Jak to naprawić

Kod przygotowany na podstawie kodu HTML Twojej podstrony
  1. Znajdź przyciski w poniższych przykładach.
  2. Dodaj widoczny tekst, tekst ukryty wizualnie lub atrybut aria-label, który mówi, co robi przycisk (np. aria-label="Close" lub aria-label="Increase quantity").

Kod

Przykłady implementacji dla Twojego programisty. Nie mamy dostępu do kodu źródłowego Twojego motywu, więc lokalizacje plików to wskazówki, a nie dokładne ścieżki.

Przed zmianą · co znaleźliśmy · Kod Twojego motywu (wyszukaj w nim pokazany fragment HTML)
<button type="button">…</button>
Po zmianie · na podstawie błędnego elementu
<button type="button" aria-label="[What this button does]">…</button>

Zastąp tekst w nawiasach kwadratowych opisem tego, co robi przycisk. Sprawdzi się też widoczny tekst lub tekst ukryty wizualnie wewnątrz przycisku.

Przed zmianą · co znaleźliśmy · Kod Twojego motywu (wyszukaj w nim pokazany fragment HTML)
<button type="button"><img src="/img/daypack.svg"></button>
Po zmianie · na podstawie błędnego elementu
<button type="button" aria-label="[Describe the image, e.g. Back view]"><img src="/img/daypack.svg"></button>

Zastąp tekst w nawiasach kwadratowych opisem tego, co robi przycisk. Sprawdzi się też widoczny tekst lub tekst ukryty wizualnie wewnątrz przycisku.

Przed zmianą · co znaleźliśmy · Kod Twojego motywu (wyszukaj w nim pokazany fragment HTML)
<button type="button"><img src="/img/jacket.svg"></button>
Po zmianie · na podstawie błędnego elementu
<button type="button" aria-label="[Describe the image, e.g. Back view]"><img src="/img/jacket.svg"></button>

Zastąp tekst w nawiasach kwadratowych opisem tego, co robi przycisk. Sprawdzi się też widoczny tekst lub tekst ukryty wizualnie wewnątrz przycisku.

Przed zmianą · co znaleźliśmy · Kod Twojego motywu (wyszukaj w nim pokazany fragment HTML)
<button type="button"><img src="/img/bottle.svg"></button>
Po zmianie · na podstawie błędnego elementu
<button type="button" aria-label="[Describe the image, e.g. Back view]"><img src="/img/bottle.svg"></button>

Zastąp tekst w nawiasach kwadratowych opisem tego, co robi przycisk. Sprawdzi się też widoczny tekst lub tekst ukryty wizualnie wewnątrz przycisku.

Napraw z pomocą AIPokaż prompt

Wklej go do ChatGPT, Claude, Cursor lub Copilot razem z plikiem motywu. Przejrzyj zmianę przed publikacją.

Prowadzę sklep Shopify (motyw Online Store 2.0, szablony Liquid) pod adresem harborandpine.example. Test dostępności wykrył ten problem i chcę go naprawić w moim motywie.

Problem: Przyciski muszą mieć odróżniający je tekst nazwy (WCAG 4.1.2).
Gdzie: 41 wystąpień na 9 podstronach, np. /, /collections/all, /products/trail-daypack, /cart.

Jeden z błędnych elementów w postaci wyrenderowanej przez przeglądarkę:
```html
<button type="button"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="11" cy="11" r="7"></circle><path d="M20 20l-3.5-3.5"></path></svg></button>
```

Dlaczego to ważne: WCAG 4.1.2 wymaga, aby każdy element sterujący miał nazwę. Wśród przycisków bez nazw często są przyciski zmiany ilości, przyciski zamykania i strzałki suwaków.

Co trzeba zmienić:
- Znajdź przyciski w poniższych przykładach.
- Dodaj widoczny tekst, tekst ukryty wizualnie lub atrybut aria-label, który mówi, co robi przycisk (np. aria-label="Close" lub aria-label="Increase quantity").

Proponowana zmiana (Kod Twojego motywu (wyszukaj w nim pokazany fragment HTML)):
```html
<button type="button" aria-label="[What this button does]">…</button>
```

Zasady odpowiedzi:
- Pokaż dokładną zmianę w formie „przed” i „po” oraz wskaż plik lub ustawienie, w którym należy ją wprowadzić. Jeśli najpierw musisz zobaczyć mój plik, poproś mnie o jego wklejenie.
- Zachowaj bez zmian wygląd i całe dotychczasowe działanie.
- Nie wymyślaj nazw produktów, cen ani tekstów; użyj symboli zastępczych, które mogę uzupełnić.
- Na koniec napisz, jak mogę samodzielnie sprawdzić poprawkę.
- Napisz też, jak potwierdzić poprawkę za pomocą klawiatury i czytnika ekranu.

Sprawdź swoją poprawkę

  • Przeskanuj ponownie podstrony, których to dotyczy.
  • Sprawdź przyciski za pomocą czytnika ekranu.

Szczegółowe wskazówki: https://dequeuniversity.com/rules/axe/4.13/button-name?application=playwright

P1KrytycznyPotwierdzony błądWCAG 1.1.1

Obrazy muszą mieć tekst alternatywny

nakład pracy: średni · wykonawca: redaktor treści · 1.1.1 Treść nietekstowa

Obrazy nie mają tekstu alternatywnego, więc osoby korzystające z czytników ekranu nie wiedzą, co przedstawiają.

WCAG 1.1.1 wymaga tekstu alternatywnego dla obrazów niosących treść. Bez niego osoba korzystająca z czytnika ekranu nie wie, jaki produkt przedstawia zdjęcie.

Dowód

Wykryte przez
Reguła automatyczna axe-core
Status · poziom pewności
Potwierdzony błąd · wysoki
Wykryto
24 wrz 2026 (UTC)
Gdzie
22 wystąpienia · 7 podstron

Oczekiwane: Obrazy muszą mieć tekst alternatywny

Zaobserwowane: Element nie ma atrybutu alt. Atrybut aria-label nie istnieje lub jest pusty. Atrybut aria-labelledby nie istnieje albo elementy, do których odwołuje atrybut aria-labelledby, nie istnieją lub są puste. Element nie ma atrybutu title. Domyślna semantyka elementu nie została nadpisana przez role="none" ani role="presentation".

Obrazy muszą mieć tekst alternatywny: obrysowany element na /
Obrazy muszą mieć tekst alternatywny: obrysowany element na /
Obrazy muszą mieć tekst alternatywny: obrysowany element na /collections/all
Obrazy muszą mieć tekst alternatywny: obrysowany element na /collections/all
Jak to odtworzyć
  1. Otwórz https://harborandpine.example/ w Chrome lub Edge.
  2. Otwórz DevTools (F12) › Elements, naciśnij Ctrl+F (Cmd+F na Macu) i wyszukaj: img[src$="hero-photo.jpg"]
  3. W panelu Accessibility w DevTools obliczona nazwa (Name) elementu jest pusta.
  4. Możesz też uruchomić na stronie darmowe rozszerzenie przeglądarki axe DevTools: zgłasza ono ten problem jako „image-alt”.
Błędne elementy (pokazane: 4)
img[src$="hero-photo.jpg"]
<img src="/img/hero-photo.jpg" loading="lazy">
img[src$="mug.svg"]
<img src="/img/mug.svg">
img[src$="beanie.svg"]
<img src="/img/beanie.svg">
img[src$="jacket.svg"]
<img src="/img/jacket.svg">
Podstrony, których to dotyczy (7)
  • https://harborandpine.example/
  • https://harborandpine.example/collections/all
  • https://harborandpine.example/products/trail-daypack
  • https://harborandpine.example/products/pine-wool-beanie
  • https://harborandpine.example/products/enamel-camp-mug
  • https://harborandpine.example/products/harbor-lantern
  • https://harborandpine.example/products/insulated-bottle

Jak to naprawić

Kod przygotowany na podstawie kodu HTML Twojej podstrony
  1. W panelu administracyjnym Shopify otwórz Produkty > [produkt] > Multimedia, kliknij każdy obraz i uzupełnij pole „Tekst alternatywny”. W przypadku obrazów w sekcjach otwórz Sklep online > Motywy > Dostosuj i ustaw tekst alternatywny obrazu w ustawieniach sekcji.
  2. Opisz to, co ważne dla kupującego: nazwę produktu, kolor i ujęcie (np. „Płócienna torba w kolorze oliwkowym, widok z przodu”).
  3. Obrazy dekoracyjne powinny mieć pusty atrybut alt (alt=""), aby czytniki ekranu je pomijały.

Kod

Przykłady implementacji dla Twojego programisty. Nie mamy dostępu do kodu źródłowego Twojego motywu, więc lokalizacje plików to wskazówki, a nie dokładne ścieżki.

Przed zmianą · co znaleźliśmy · Zdjęcia produktów: panel Shopify › Produkty › Multimedia › Tekst alternatywny. Inne obrazy: kod Twojego motywu
<img src="/img/hero-photo.jpg" loading="lazy">
Po zmianie · na podstawie błędnego elementu
<img src="/img/hero-photo.jpg" loading="lazy" alt="[Describe the image for a shopper]">

Opisz, co przedstawia obraz (w przypadku zdjęcia produktu: produkt, kolor, ujęcie). Jeśli obraz jest czysto dekoracyjny, użyj zamiast tego alt="", aby czytniki ekranu go pomijały.

Przed zmianą · co znaleźliśmy · Zdjęcia produktów: panel Shopify › Produkty › Multimedia › Tekst alternatywny. Inne obrazy: kod Twojego motywu
<img src="/img/mug.svg">
Po zmianie · na podstawie błędnego elementu
<img src="/img/mug.svg" alt="[Describe the image for a shopper]">

Opisz, co przedstawia obraz (w przypadku zdjęcia produktu: produkt, kolor, ujęcie). Jeśli obraz jest czysto dekoracyjny, użyj zamiast tego alt="", aby czytniki ekranu go pomijały.

Przed zmianą · co znaleźliśmy · Zdjęcia produktów: panel Shopify › Produkty › Multimedia › Tekst alternatywny. Inne obrazy: kod Twojego motywu
<img src="/img/beanie.svg">
Po zmianie · na podstawie błędnego elementu
<img src="/img/beanie.svg" alt="[Describe the image for a shopper]">

Opisz, co przedstawia obraz (w przypadku zdjęcia produktu: produkt, kolor, ujęcie). Jeśli obraz jest czysto dekoracyjny, użyj zamiast tego alt="", aby czytniki ekranu go pomijały.

Przed zmianą · co znaleźliśmy · Zdjęcia produktów: panel Shopify › Produkty › Multimedia › Tekst alternatywny. Inne obrazy: kod Twojego motywu
<img src="/img/jacket.svg">
Po zmianie · na podstawie błędnego elementu
<img src="/img/jacket.svg" alt="[Describe the image for a shopper]">

Opisz, co przedstawia obraz (w przypadku zdjęcia produktu: produkt, kolor, ujęcie). Jeśli obraz jest czysto dekoracyjny, użyj zamiast tego alt="", aby czytniki ekranu go pomijały.

Napraw z pomocą AIPokaż prompt

Wklej go do ChatGPT, Claude, Cursor lub Copilot razem z plikiem motywu. Przejrzyj zmianę przed publikacją.

Prowadzę sklep Shopify (motyw Online Store 2.0, szablony Liquid) pod adresem harborandpine.example. Test dostępności wykrył ten problem i chcę go naprawić w moim motywie.

Problem: Obrazy muszą mieć tekst alternatywny (WCAG 1.1.1).
Gdzie: 22 wystąpienia na 7 podstronach, np. /, /collections/all, /products/trail-daypack, /products/pine-wool-beanie.

Jeden z błędnych elementów w postaci wyrenderowanej przez przeglądarkę:
```html
<img src="/img/hero-photo.jpg" loading="lazy">
```

Dlaczego to ważne: WCAG 1.1.1 wymaga tekstu alternatywnego dla obrazów niosących treść. Bez niego osoba korzystająca z czytnika ekranu nie wie, jaki produkt przedstawia zdjęcie.

Co trzeba zmienić:
- W panelu administracyjnym Shopify otwórz Produkty > [produkt] > Multimedia, kliknij każdy obraz i uzupełnij pole „Tekst alternatywny”. W przypadku obrazów w sekcjach otwórz Sklep online > Motywy > Dostosuj i ustaw tekst alternatywny obrazu w ustawieniach sekcji.
- Opisz to, co ważne dla kupującego: nazwę produktu, kolor i ujęcie (np. „Płócienna torba w kolorze oliwkowym, widok z przodu”).
- Obrazy dekoracyjne powinny mieć pusty atrybut alt (alt=""), aby czytniki ekranu je pomijały.

Proponowana zmiana (Zdjęcia produktów: panel Shopify › Produkty › Multimedia › Tekst alternatywny. Inne obrazy: kod Twojego motywu):
```html
<img src="/img/hero-photo.jpg" loading="lazy" alt="[Describe the image for a shopper]">
```

Zasady odpowiedzi:
- Pokaż dokładną zmianę w formie „przed” i „po” oraz wskaż plik lub ustawienie, w którym należy ją wprowadzić. Jeśli najpierw musisz zobaczyć mój plik, poproś mnie o jego wklejenie.
- Zachowaj bez zmian wygląd i całe dotychczasowe działanie.
- Nie wymyślaj nazw produktów, cen ani tekstów; użyj symboli zastępczych, które mogę uzupełnić.
- Na koniec napisz, jak mogę samodzielnie sprawdzić poprawkę.
- Napisz też, jak potwierdzić poprawkę za pomocą klawiatury i czytnika ekranu.

Sprawdź swoją poprawkę

  • Przeskanuj ponownie podstrony, których to dotyczy.
  • Użyj czytnika ekranu (VoiceOver: Cmd+F5 na Macu), aby usłyszeć, jak odczytywane są obrazy produktów.

Szczegółowe wskazówki: https://dequeuniversity.com/rules/axe/4.13/image-alt?application=playwright

P1KrytycznyPotwierdzony błądWCAG 4.1.2

Element formularza musi mieć etykietę

nakład pracy: mały · wykonawca: programista motywu · 4.1.2 Nazwa, rola, wartość

Niektóre pola formularzy nie mają etykiet, więc osoby korzystające z czytników ekranu nie wiedzą, co wpisać.

WCAG 1.3.1, 3.3.2 i 4.1.2 wymagają, aby pola formularzy miały etykiety. Najczęściej dotyczy to pól zapisu do newslettera i pól wyszukiwania.

Dowód

Wykryte przez
Reguła automatyczna axe-core
Status · poziom pewności
Potwierdzony błąd · wysoki
Wykryto
24 wrz 2026 (UTC)
Gdzie
7 wystąpień · 6 podstron

Oczekiwane: Element formularza musi mieć etykietę

Zaobserwowane: Element formularza nie ma dorozumianej etykiety (nie jest owinięty w label). Element formularza nie ma jawnie określonej label. Atrybut aria-label nie istnieje lub jest pusty. Atrybut aria-labelledby nie istnieje albo elementy, do których odwołuje atrybut aria-labelledby, nie istnieją lub są puste. Element nie ma atrybutu title. Element nie ma atrybutu placeholder. Domyślna semantyka elementu nie została nadpisana przez role="none" ani role="presentation".

Element formularza musi mieć etykietę: obrysowany element na /products/trail-daypack
Element formularza musi mieć etykietę: obrysowany element na /products/trail-daypack
Element formularza musi mieć etykietę: obrysowany element na /cart
Element formularza musi mieć etykietę: obrysowany element na /cart
Jak to odtworzyć
  1. Otwórz https://harborandpine.example/products/trail-daypack w Chrome lub Edge.
  2. Otwórz DevTools (F12) › Elements, naciśnij Ctrl+F (Cmd+F na Macu) i wyszukaj: input
  3. W panelu Accessibility w DevTools obliczona nazwa (Name) elementu jest pusta.
  4. Możesz też uruchomić na stronie darmowe rozszerzenie przeglądarki axe DevTools: zgłasza ono ten problem jako „label”.
Błędne elementy (pokazane: 2)
input
<input type="number" value="1" min="1">
input[value="2"]
<input type="number" value="2" min="1">
Podstrony, których to dotyczy (6)
  • https://harborandpine.example/products/trail-daypack
  • https://harborandpine.example/cart
  • https://harborandpine.example/products/pine-wool-beanie
  • https://harborandpine.example/products/enamel-camp-mug
  • https://harborandpine.example/products/harbor-lantern
  • https://harborandpine.example/products/insulated-bottle

Jak to naprawić

Kod przygotowany na podstawie kodu HTML Twojej podstrony
  1. Nadaj każdemu polu element <label for="field-id"> albo przynajmniej atrybut aria-label.
  2. Sam tekst zastępczy (placeholder) nie jest etykietą.

Kod

Przykłady implementacji dla Twojego programisty. Nie mamy dostępu do kodu źródłowego Twojego motywu, więc lokalizacje plików to wskazówki, a nie dokładne ścieżki.

Przed zmianą · co znaleźliśmy · Kod Twojego motywu (wyszukaj w nim pokazany fragment HTML)
<input type="number" value="1" min="1">
Po zmianie · na podstawie błędnego elementu
<input type="number" value="1" min="1" aria-label="Quantity">

Pole nie ma id, więc najszybszą poprawką jest aria-label. Widoczny element <label> jest lepszy dla wszystkich. Tekst etykiety „Quantity” został odgadnięty na podstawie pola; w razie potrzeby go popraw.

Przed zmianą · co znaleźliśmy · Kod Twojego motywu (wyszukaj w nim pokazany fragment HTML)
<input type="number" value="2" min="1">
Po zmianie · na podstawie błędnego elementu
<input type="number" value="2" min="1" aria-label="Quantity">

Pole nie ma id, więc najszybszą poprawką jest aria-label. Widoczny element <label> jest lepszy dla wszystkich. Tekst etykiety „Quantity” został odgadnięty na podstawie pola; w razie potrzeby go popraw.

Napraw z pomocą AIPokaż prompt

Wklej go do ChatGPT, Claude, Cursor lub Copilot razem z plikiem motywu. Przejrzyj zmianę przed publikacją.

Prowadzę sklep Shopify (motyw Online Store 2.0, szablony Liquid) pod adresem harborandpine.example. Test dostępności wykrył ten problem i chcę go naprawić w moim motywie.

Problem: Element formularza musi mieć etykietę (WCAG 4.1.2).
Gdzie: 7 wystąpień na 6 podstronach, np. /products/trail-daypack, /cart, /products/pine-wool-beanie, /products/enamel-camp-mug.

Jeden z błędnych elementów w postaci wyrenderowanej przez przeglądarkę:
```html
<input type="number" value="1" min="1">
```

Dlaczego to ważne: WCAG 1.3.1, 3.3.2 i 4.1.2 wymagają, aby pola formularzy miały etykiety. Najczęściej dotyczy to pól zapisu do newslettera i pól wyszukiwania.

Co trzeba zmienić:
- Nadaj każdemu polu element <label for="field-id"> albo przynajmniej atrybut aria-label.
- Sam tekst zastępczy (placeholder) nie jest etykietą.

Proponowana zmiana (Kod Twojego motywu (wyszukaj w nim pokazany fragment HTML)):
```html
<input type="number" value="1" min="1" aria-label="Quantity">
```

Zasady odpowiedzi:
- Pokaż dokładną zmianę w formie „przed” i „po” oraz wskaż plik lub ustawienie, w którym należy ją wprowadzić. Jeśli najpierw musisz zobaczyć mój plik, poproś mnie o jego wklejenie.
- Zachowaj bez zmian wygląd i całe dotychczasowe działanie.
- Nie wymyślaj nazw produktów, cen ani tekstów; użyj symboli zastępczych, które mogę uzupełnić.
- Na koniec napisz, jak mogę samodzielnie sprawdzić poprawkę.
- Napisz też, jak potwierdzić poprawkę za pomocą klawiatury i czytnika ekranu.

Sprawdź swoją poprawkę

  • Przeskanuj ponownie i potwierdź, że reguła label jest już spełniona.
  • Kliknij każdą etykietę i sprawdź, czy przenosi fokus do swojego pola.

Szczegółowe wskazówki: https://dequeuniversity.com/rules/axe/4.13/label?application=playwright

P1KrytycznyPotwierdzony błądWCAG 4.1.2

Element select musi mieć dostępną nazwę

nakład pracy: mały · wykonawca: programista motywu · 4.1.2 Nazwa, rola, wartość

Lista rozwijana (często wybór sortowania lub wariantu) nie ma etykiety.

WCAG 4.1.2 wymaga, aby listy wyboru miały dostępną nazwę.

Dowód

Wykryte przez
Reguła automatyczna axe-core
Status · poziom pewności
Potwierdzony błąd · wysoki
Wykryto
24 wrz 2026 (UTC)
Gdzie
1 wystąpienie · 1 podstrona

Oczekiwane: Element select musi mieć dostępną nazwę

Zaobserwowane: Element formularza nie ma dorozumianej etykiety (nie jest owinięty w label). Element formularza nie ma jawnie określonej label. Atrybut aria-label nie istnieje lub jest pusty. Atrybut aria-labelledby nie istnieje albo elementy, do których odwołuje atrybut aria-labelledby, nie istnieją lub są puste. Element nie ma atrybutu title. Domyślna semantyka elementu nie została nadpisana przez role="none" ani role="presentation".

Element select musi mieć dostępną nazwę: obrysowany element na /collections/all
Element select musi mieć dostępną nazwę: obrysowany element na /collections/all
Jak to odtworzyć
  1. Otwórz https://harborandpine.example/collections/all w Chrome lub Edge.
  2. Otwórz DevTools (F12) › Elements, naciśnij Ctrl+F (Cmd+F na Macu) i wyszukaj: select
  3. W panelu Accessibility w DevTools obliczona nazwa (Name) elementu jest pusta.
  4. Możesz też uruchomić na stronie darmowe rozszerzenie przeglądarki axe DevTools: zgłasza ono ten problem jako „select-name”.
Błędne elementy (pokazane: 1)
select
<select><option>Featured</option><option>Price, low to high</option><option>Price, high to low</option></select>
Podstrony, których to dotyczy (1)
  • https://harborandpine.example/collections/all

Jak to naprawić

Kod przygotowany na podstawie kodu HTML Twojej podstrony
  1. Dodaj element <label> powiązany z listą wyboru albo atrybut aria-label, np. aria-label="Sort by".

Kod

Przykłady implementacji dla Twojego programisty. Nie mamy dostępu do kodu źródłowego Twojego motywu, więc lokalizacje plików to wskazówki, a nie dokładne ścieżki.

Przed zmianą · co znaleźliśmy · Kod Twojego motywu (wyszukaj w nim pokazany fragment HTML)
<select><option>Featured</option><option>Price, low to high</option><option>Price, high to low</option></select>
Po zmianie · na podstawie błędnego elementu
<select aria-label="[Field label]"><option>Featured</option><option>Price, low to high</option><option>Price, high to low</option></select>

Pole nie ma id, więc najszybszą poprawką jest aria-label. Widoczny element <label> jest lepszy dla wszystkich. Zastąp tekst w nawiasach kwadratowych etykietą pola.

Napraw z pomocą AIPokaż prompt

Wklej go do ChatGPT, Claude, Cursor lub Copilot razem z plikiem motywu. Przejrzyj zmianę przed publikacją.

Prowadzę sklep Shopify (motyw Online Store 2.0, szablony Liquid) pod adresem harborandpine.example. Test dostępności wykrył ten problem i chcę go naprawić w moim motywie.

Problem: Element select musi mieć dostępną nazwę (WCAG 4.1.2).
Gdzie: 1 wystąpienie na 1 podstronie, np. /collections/all.

Jeden z błędnych elementów w postaci wyrenderowanej przez przeglądarkę:
```html
<select><option>Featured</option><option>Price, low to high</option><option>Price, high to low</option></select>
```

Dlaczego to ważne: WCAG 4.1.2 wymaga, aby listy wyboru miały dostępną nazwę.

Co trzeba zmienić:
- Dodaj element <label> powiązany z listą wyboru albo atrybut aria-label, np. aria-label="Sort by".

Proponowana zmiana (Kod Twojego motywu (wyszukaj w nim pokazany fragment HTML)):
```html
<select aria-label="[Field label]"><option>Featured</option><option>Price, low to high</option><option>Price, high to low</option></select>
```

Zasady odpowiedzi:
- Pokaż dokładną zmianę w formie „przed” i „po” oraz wskaż plik lub ustawienie, w którym należy ją wprowadzić. Jeśli najpierw musisz zobaczyć mój plik, poproś mnie o jego wklejenie.
- Zachowaj bez zmian wygląd i całe dotychczasowe działanie.
- Nie wymyślaj nazw produktów, cen ani tekstów; użyj symboli zastępczych, które mogę uzupełnić.
- Na koniec napisz, jak mogę samodzielnie sprawdzić poprawkę.
- Napisz też, jak potwierdzić poprawkę za pomocą klawiatury i czytnika ekranu.

Sprawdź swoją poprawkę

  • Przeskanuj ponownie strony kolekcji i produktów.

Szczegółowe wskazówki: https://dequeuniversity.com/rules/axe/4.13/select-name?application=playwright

P1PoważnyPotwierdzony błądWCAG 1.4.3

Elementy muszą mieć wystarczający kontrast kolorów

nakład pracy: mały · wykonawca: właściciel sklepu (ustawienia w panelu administracyjnym) · 1.4.3 Kontrast (minimum)

Część tekstu nie odróżnia się wystarczająco od tła, by mogły go odczytać osoby słabowidzące.

WCAG 1.4.3 wymaga współczynnika kontrastu co najmniej 4,5:1 dla zwykłego tekstu i 3:1 dla dużego tekstu. Blade ceny, plakietki i banery są trudne do odczytania dla osób słabowidzących, a w jasnym świetle dla wszystkich.

Dowód

Wykryte przez
Reguła automatyczna axe-core
Status · poziom pewności
Potwierdzony błąd · wysoki
Wykryto
24 wrz 2026 (UTC)
Gdzie
22 wystąpienia · 9 podstron

Oczekiwane: Elementy muszą mieć wystarczający kontrast kolorów

Zaobserwowane: Element ma niewystarczający kontrast kolorów 3.09 (kolor pierwszego planu: #ffffff, kolor tła: #e76f51, rozmiar czcionki: 9.8pt (13px), waga czcionki: normal). Oczekiwany współczynnik kontrastu: 4.5:1.

Elementy muszą mieć wystarczający kontrast kolorów: obrysowany element na /
Elementy muszą mieć wystarczający kontrast kolorów: obrysowany element na /
Elementy muszą mieć wystarczający kontrast kolorów: obrysowany element na /collections/all
Elementy muszą mieć wystarczający kontrast kolorów: obrysowany element na /collections/all
Jak to odtworzyć
  1. Otwórz https://harborandpine.example/ w Chrome lub Edge.
  2. Otwórz DevTools (F12) › Elements, naciśnij Ctrl+F (Cmd+F na Macu) i wyszukaj: .announce
  3. W panelu Styles kliknij próbkę koloru obok koloru elementu, aby zobaczyć zmierzony współczynnik kontrastu.
  4. Możesz też uruchomić na stronie darmowe rozszerzenie przeglądarki axe DevTools: zgłasza ono ten problem jako „color-contrast”.
Błędne elementy (pokazane: 4)
.announce
<div class="announce">Free shipping on orders over $75 · Easy 30-day returns</div>
article:nth-child(3) > .badge
<span class="badge">Sale</span>
article:nth-child(3) > .price > .compare
<span class="compare">$72</span>
article:nth-child(4) > .price > .compare
<span class="compare">$40</span>
Podstrony, których to dotyczy (9)
  • https://harborandpine.example/
  • https://harborandpine.example/collections/all
  • https://harborandpine.example/products/trail-daypack
  • https://harborandpine.example/cart
  • https://harborandpine.example/pages/about
  • https://harborandpine.example/products/pine-wool-beanie
  • https://harborandpine.example/products/enamel-camp-mug
  • https://harborandpine.example/products/harbor-lantern
  • https://harborandpine.example/products/insulated-bottle

Jak to naprawić

Kod przygotowany na podstawie kodu HTML Twojej podstrony
  1. Otwórz wymienione poniżej błędne elementy i zanotuj kolory tekstu i tła podane w podsumowaniu błędu.
  2. W sekcji Sklep online > Motywy > Dostosuj > Ustawienia motywu > Kolory przyciemnij kolor tekstu lub rozjaśnij tło w danym schemacie kolorów, aż współczynnik wyniesie co najmniej 4,5:1.
  3. Zwróć szczególną uwagę na plakietki promocji, tekst zastępczy (placeholder), linki w stopce i przyciski na obrazach.

Kod

Przykłady implementacji dla Twojego programisty. Nie mamy dostępu do kodu źródłowego Twojego motywu, więc lokalizacje plików to wskazówki, a nie dokładne ścieżki.

Przed zmianą · co znaleźliśmy · Ustawienia motywu › Kolory lub plik CSS Twojego motywu
<div class="announce">Free shipping on orders over $75 · Easy 30-day returns</div>
Po zmianie · na podstawie błędnego elementu
.announce {
  background-color: #b95941; /* was #e76f51: 3.09:1, now 4.59:1 */
}

Zmierzono 3,09:1 dla tekstu 13px; WCAG 1.4.3 wymaga 4,5:1. Kolor #b95941 zachowuje ten sam odcień i spełnia wymóg. To selektor użyty w naszym teście; Twój motyw może nadawać ten sam styl przez szerszą klasę.

Przed zmianą · co znaleźliśmy · Ustawienia motywu › Kolory lub plik CSS Twojego motywu
<span class="badge">Sale</span>
Po zmianie · na podstawie błędnego elementu
.badge {
  background-color: #9f693f; /* was #f4a261: 2.06:1, now 4.59:1 */
}

Zmierzono 2,06:1 dla pogrubionego tekstu 12px; WCAG 1.4.3 wymaga 4,5:1. Kolor #9f693f zachowuje ten sam odcień i spełnia wymóg. To selektor użyty w naszym teście; Twój motyw może nadawać ten sam styl przez szerszą klasę.

Przed zmianą · co znaleźliśmy · Ustawienia motywu › Kolory lub plik CSS Twojego motywu
<span class="compare">$72</span>
Po zmianie · na podstawie błędnego elementu
.compare {
  color: #78736c; /* was #b0a99f: 2.29:1, now 4.62:1 */
}

Zmierzono 2,29:1 dla tekstu 14px; WCAG 1.4.3 wymaga 4,5:1. Kolor #78736c zachowuje ten sam odcień i spełnia wymóg. To selektor użyty w naszym teście; Twój motyw może nadawać ten sam styl przez szerszą klasę.

Napraw z pomocą AIPokaż prompt

Wklej go do ChatGPT, Claude, Cursor lub Copilot razem z plikiem motywu. Przejrzyj zmianę przed publikacją.

Prowadzę sklep Shopify (motyw Online Store 2.0, szablony Liquid) pod adresem harborandpine.example. Test dostępności wykrył ten problem i chcę go naprawić w moim motywie.

Problem: Elementy muszą mieć wystarczający kontrast kolorów (WCAG 1.4.3).
Gdzie: 22 wystąpienia na 9 podstronach, np. /, /collections/all, /products/trail-daypack, /cart.

Jeden z błędnych elementów w postaci wyrenderowanej przez przeglądarkę:
```html
<div class="announce">Free shipping on orders over $75 · Easy 30-day returns</div>
```

Dlaczego to ważne: WCAG 1.4.3 wymaga współczynnika kontrastu co najmniej 4,5:1 dla zwykłego tekstu i 3:1 dla dużego tekstu. Blade ceny, plakietki i banery są trudne do odczytania dla osób słabowidzących, a w jasnym świetle dla wszystkich.

Co trzeba zmienić:
- Otwórz wymienione poniżej błędne elementy i zanotuj kolory tekstu i tła podane w podsumowaniu błędu.
- W sekcji Sklep online > Motywy > Dostosuj > Ustawienia motywu > Kolory przyciemnij kolor tekstu lub rozjaśnij tło w danym schemacie kolorów, aż współczynnik wyniesie co najmniej 4,5:1.
- Zwróć szczególną uwagę na plakietki promocji, tekst zastępczy (placeholder), linki w stopce i przyciski na obrazach.

Proponowana zmiana (Ustawienia motywu › Kolory lub plik CSS Twojego motywu):
```css
.announce {
  background-color: #b95941; /* was #e76f51: 3.09:1, now 4.59:1 */
}
```

Zasady odpowiedzi:
- Pokaż dokładną zmianę w formie „przed” i „po” oraz wskaż plik lub ustawienie, w którym należy ją wprowadzić. Jeśli najpierw musisz zobaczyć mój plik, poproś mnie o jego wklejenie.
- Zachowaj bez zmian wygląd i całe dotychczasowe działanie.
- Nie wymyślaj nazw produktów, cen ani tekstów; użyj symboli zastępczych, które mogę uzupełnić.
- Na koniec napisz, jak mogę samodzielnie sprawdzić poprawkę.
- Napisz też, jak potwierdzić poprawkę za pomocą klawiatury i czytnika ekranu.

Sprawdź swoją poprawkę

  • Uruchom skan ponownie i potwierdź, że reguła color-contrast już się nie pojawia.
  • Sprawdź wyrywkowo dokładne kolory w narzędziu do badania kontrastu.

Szczegółowe wskazówki: https://dequeuniversity.com/rules/axe/4.13/color-contrast?application=playwright

P3UmiarkowanyPotwierdzony błąd

Cała treść strony musi być zawarta w obszarach kluczowych

nakład pracy: średni · wykonawca: programista motywu

Część treści nie znajduje się w żadnym punkcie orientacyjnym strony (header, nav, main lub footer).

Punkty orientacyjne pozwalają osobom korzystającym z czytników ekranu szybko przechodzić między częściami strony. To dobra praktyka wspierająca WCAG 1.3.1 i 2.4.1.

Dowód

Wykryte przez
Reguła automatyczna axe-core
Status · poziom pewności
Potwierdzony błąd · wysoki
Wykryto
24 wrz 2026 (UTC)
Gdzie
18 wystąpień · 9 podstron

Oczekiwane: Cała treść strony musi być zawarta w obszarach kluczowych

Zaobserwowane: Pewna część strony znajduje się poza punktami orientacyjnymi.

Cała treść strony musi być zawarta w obszarach kluczowych: obrysowany element na /
Cała treść strony musi być zawarta w obszarach kluczowych: obrysowany element na /
Cała treść strony musi być zawarta w obszarach kluczowych: obrysowany element na /cart
Cała treść strony musi być zawarta w obszarach kluczowych: obrysowany element na /cart
Jak to odtworzyć
  1. Otwórz https://harborandpine.example/ w Chrome lub Edge.
  2. Otwórz DevTools (F12) › Elements, naciśnij Ctrl+F (Cmd+F na Macu) i wyszukaj: .announce
  3. Możesz też uruchomić na stronie darmowe rozszerzenie przeglądarki axe DevTools: zgłasza ono ten problem jako „region”.
Błędne elementy (pokazane: 2)
.announce
<div class="announce">Free shipping on orders over $75 · Easy 30-day returns</div>
#cookie-banner > p
<p>We use cookies to improve your experience and measure traffic.</p>
Podstrony, których to dotyczy (9)
  • https://harborandpine.example/
  • https://harborandpine.example/collections/all
  • https://harborandpine.example/products/trail-daypack
  • https://harborandpine.example/cart
  • https://harborandpine.example/pages/about
  • https://harborandpine.example/products/pine-wool-beanie
  • https://harborandpine.example/products/enamel-camp-mug
  • https://harborandpine.example/products/harbor-lantern
  • https://harborandpine.example/products/insulated-bottle

Jak to naprawić

Ogólne wskazówki
  1. Treść znajdującą się poza punktami orientacyjnymi (paski z ogłoszeniami, pop-upy, widżety czatu) umieść w odpowiednim punkcie orientacyjnym lub wewnątrz <main>.
Napraw z pomocą AIPokaż prompt

Wklej go do ChatGPT, Claude, Cursor lub Copilot razem z plikiem motywu. Przejrzyj zmianę przed publikacją.

Prowadzę sklep Shopify (motyw Online Store 2.0, szablony Liquid) pod adresem harborandpine.example. Test dostępności wykrył ten problem i chcę go naprawić w moim motywie.

Problem: Cała treść strony musi być zawarta w obszarach kluczowych.
Gdzie: 18 wystąpień na 9 podstronach, np. /, /collections/all, /products/trail-daypack, /cart.

Jeden z błędnych elementów w postaci wyrenderowanej przez przeglądarkę:
```html
<div class="announce">Free shipping on orders over $75 · Easy 30-day returns</div>
```

Dlaczego to ważne: Punkty orientacyjne pozwalają osobom korzystającym z czytników ekranu szybko przechodzić między częściami strony. To dobra praktyka wspierająca WCAG 1.3.1 i 2.4.1.

Co trzeba zmienić:
- Treść znajdującą się poza punktami orientacyjnymi (paski z ogłoszeniami, pop-upy, widżety czatu) umieść w odpowiednim punkcie orientacyjnym lub wewnątrz <main>.

Zasady odpowiedzi:
- Pokaż dokładną zmianę w formie „przed” i „po” oraz wskaż plik lub ustawienie, w którym należy ją wprowadzić. Jeśli najpierw musisz zobaczyć mój plik, poproś mnie o jego wklejenie.
- Zachowaj bez zmian wygląd i całe dotychczasowe działanie.
- Nie wymyślaj nazw produktów, cen ani tekstów; użyj symboli zastępczych, które mogę uzupełnić.
- Na koniec napisz, jak mogę samodzielnie sprawdzić poprawkę.
- Napisz też, jak potwierdzić poprawkę za pomocą klawiatury i czytnika ekranu.

Sprawdź swoją poprawkę

  • Przeskanuj ponownie podstrony, których to dotyczy.

Szczegółowe wskazówki: https://dequeuniversity.com/rules/axe/4.13/region?application=playwright

P3UmiarkowanyPotwierdzony błąd

Poziomy nagłówków powinny wzrastać tylko o jeden

nakład pracy: średni · wykonawca: programista motywu

Poziomy nagłówków są pomijane (np. z H2 od razu na H4), przez co struktura strony jest niejasna dla osób korzystających z czytników ekranu.

Osoby korzystające z czytników ekranu poruszają się po stronie według nagłówków. To dobra praktyka wspierająca WCAG 1.3.1.

Dowód

Wykryte przez
Reguła automatyczna axe-core
Status · poziom pewności
Potwierdzony błąd · wysoki
Wykryto
24 wrz 2026 (UTC)
Gdzie
7 wystąpień · 7 podstron

Oczekiwane: Poziomy nagłówków powinny wzrastać tylko o jeden

Zaobserwowane: Kolejność nagłówków jest niepoprawna.

Poziomy nagłówków powinny wzrastać tylko o jeden: obrysowany element na /collections/all
Poziomy nagłówków powinny wzrastać tylko o jeden: obrysowany element na /collections/all
Poziomy nagłówków powinny wzrastać tylko o jeden: obrysowany element na /products/trail-daypack
Poziomy nagłówków powinny wzrastać tylko o jeden: obrysowany element na /products/trail-daypack
Jak to odtworzyć
  1. Otwórz https://harborandpine.example/collections/all w Chrome lub Edge.
  2. Otwórz DevTools (F12) › Elements, naciśnij Ctrl+F (Cmd+F na Macu) i wyszukaj: article:nth-child(1) > a[href$="trail-daypack"] > h3
  3. Możesz też uruchomić na stronie darmowe rozszerzenie przeglądarki axe DevTools: zgłasza ono ten problem jako „heading-order”.
Błędne elementy (pokazane: 3)
article:nth-child(1) > a[href$="trail-daypack"] > h3
<h3>Trail Daypack 22L</h3>
h3
<h3>Reviews</h3>
h3:nth-child(3)
<h3>Started on the trail</h3>
Podstrony, których to dotyczy (7)
  • https://harborandpine.example/collections/all
  • https://harborandpine.example/products/trail-daypack
  • https://harborandpine.example/pages/about
  • https://harborandpine.example/products/pine-wool-beanie
  • https://harborandpine.example/products/enamel-camp-mug
  • https://harborandpine.example/products/harbor-lantern
  • https://harborandpine.example/products/insulated-bottle

Jak to naprawić

Ogólne wskazówki
  1. Popraw poziomy nagłówków w sekcjach, których to dotyczy, tak aby następowały po kolei, bez pomijania poziomów.
  2. Zmień tylko tag, a nie wygląd (rozmiar ustawiaj klasami CSS).

Kod

Przykłady implementacji dla Twojego programisty. Nie mamy dostępu do kodu źródłowego Twojego motywu, więc lokalizacje plików to wskazówki, a nie dokładne ścieżki.

Przed zmianą · co znaleźliśmy · Kod Twojego motywu (wyszukaj w nim pokazany fragment HTML)
<h3>Trail Daypack 22L</h3>
Po zmianie · przykład do dostosowania
<h2 class="h3">Trail Daypack 22L</h2>

Użyj poziomu, który następuje po poprzednim nagłówku na stronie (często o jeden poziom wyżej), i zachowaj wygląd za pomocą klasy. Przed zmianą sprawdź strukturę nagłówków strony.

Przed zmianą · co znaleźliśmy · Kod Twojego motywu (wyszukaj w nim pokazany fragment HTML)
<h3>Reviews</h3>
Po zmianie · przykład do dostosowania
<h2 class="h3">Reviews</h2>

Użyj poziomu, który następuje po poprzednim nagłówku na stronie (często o jeden poziom wyżej), i zachowaj wygląd za pomocą klasy. Przed zmianą sprawdź strukturę nagłówków strony.

Przed zmianą · co znaleźliśmy · Kod Twojego motywu (wyszukaj w nim pokazany fragment HTML)
<h3>Started on the trail</h3>
Po zmianie · przykład do dostosowania
<h2 class="h3">Started on the trail</h2>

Użyj poziomu, który następuje po poprzednim nagłówku na stronie (często o jeden poziom wyżej), i zachowaj wygląd za pomocą klasy. Przed zmianą sprawdź strukturę nagłówków strony.

Napraw z pomocą AIPokaż prompt

Wklej go do ChatGPT, Claude, Cursor lub Copilot razem z plikiem motywu. Przejrzyj zmianę przed publikacją.

Prowadzę sklep Shopify (motyw Online Store 2.0, szablony Liquid) pod adresem harborandpine.example. Test dostępności wykrył ten problem i chcę go naprawić w moim motywie.

Problem: Poziomy nagłówków powinny wzrastać tylko o jeden.
Gdzie: 7 wystąpień na 7 podstronach, np. /collections/all, /products/trail-daypack, /pages/about, /products/pine-wool-beanie.

Jeden z błędnych elementów w postaci wyrenderowanej przez przeglądarkę:
```html
<h3>Trail Daypack 22L</h3>
```

Dlaczego to ważne: Osoby korzystające z czytników ekranu poruszają się po stronie według nagłówków. To dobra praktyka wspierająca WCAG 1.3.1.

Co trzeba zmienić:
- Popraw poziomy nagłówków w sekcjach, których to dotyczy, tak aby następowały po kolei, bez pomijania poziomów.
- Zmień tylko tag, a nie wygląd (rozmiar ustawiaj klasami CSS).

Proponowana zmiana (Kod Twojego motywu (wyszukaj w nim pokazany fragment HTML)):
```html
<h2 class="h3">Trail Daypack 22L</h2>
```

Zasady odpowiedzi:
- Pokaż dokładną zmianę w formie „przed” i „po” oraz wskaż plik lub ustawienie, w którym należy ją wprowadzić. Jeśli najpierw musisz zobaczyć mój plik, poproś mnie o jego wklejenie.
- Zachowaj bez zmian wygląd i całe dotychczasowe działanie.
- Nie wymyślaj nazw produktów, cen ani tekstów; użyj symboli zastępczych, które mogę uzupełnić.
- Na koniec napisz, jak mogę samodzielnie sprawdzić poprawkę.
- Napisz też, jak potwierdzić poprawkę za pomocą klawiatury i czytnika ekranu.

Sprawdź swoją poprawkę

  • Przeskanuj ponownie i sprawdź strukturę nagłówków za pomocą rozszerzenia przeglądarki, np. HeadingsMap.

Szczegółowe wskazówki: https://dequeuniversity.com/rules/axe/4.13/heading-order?application=playwright

Wymaga ręcznego sprawdzenia

Testy automatyczne oznaczyły te elementy, ale nie mogły ich rozstrzygnąć, np. tekst na obrazie lub treść, która może nie mieścić się na ekranie telefonu. Nie są liczone jako błędy. Poproś programistę o sprawdzenie każdego z nich.

  • Do sprawdzeniaWCAG 4.1.3

    Ścieżka klawiaturą: Dodanie do koszyka za pomocą klawiatury

    Enter na przycisku „Dodaj do koszyka” zadziałał (zmienił się licznik koszyka w nagłówku, pojawił się komunikat „dodano do koszyka”), ale nie znaleźliśmy komunikatu o stanie ani okna dialogowego z fokusem, więc osoby korzystające z czytników ekranu mogą nie usłyszeć, że produkt został dodany.

    1 wystąpienie · 1 podstrona · Jak to sprawdzić

  • Do sprawdzeniaWCAG 1.4.10

    Strona produktu może nie mieścić się na wąskim ekranie bez przewijania w poziomie

    Przy szerokości 320 pikseli CSS (co odpowiada powiększeniu 400%) strona jest o 200px szersza niż ekran. Tabele danych i mapy mogą się przewijać; tekst i elementy sterujące nie powinny.

    2 wystąpienia · 1 podstrona · Jak to sprawdzić

    Elementy do sprawdzenia (pokazane: 2)
    div.icons
    <div class="icons"> <button type="button"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="11" cy="11" r="7"></circle><path d="M20 20l-3.5-3.5"></path></svg></bu
    div
    <div> <p style="color:#6a6a60;font-size:14px">Harbor &amp; Pine</p> <h1>Trail Daypack 22L</h1> <p class="price" style="font-size:22px">$128<span class="compare">$150</span></p> <p class="opt-label">Si
  • Do sprawdzeniaWCAG 1.4.10

    Strona główna może nie mieścić się na wąskim ekranie bez przewijania w poziomie

    Przy szerokości 320 pikseli CSS (co odpowiada powiększeniu 400%) strona jest o 55px szersza niż ekran. Tabele danych i mapy mogą się przewijać; tekst i elementy sterujące nie powinny.

    3 wystąpienia · 1 podstrona · Jak to sprawdzić

    Elementy do sprawdzenia (pokazane: 3)
    div.icons
    <div class="icons"> <button type="button"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="11" cy="11" r="7"></circle><path d="M20 20l-3.5-3.5"></path></svg></bu
    article.card
    <article class="card"><span class="badge">Sale</span><a href="/products/trail-daypack"><img src="/img/beanie.svg"><h3>Pine Wool Beanie</h3></a><p class="price">$32<span class="compare">$40</span></p><
    button.btn.light
    <button class="btn light" type="submit">Subscribe</button>
  • Do sprawdzeniaWCAG 1.4.3

    Elementy muszą mieć wystarczający kontrast kolorów

    Nie można określić koloru tła elementu, ponieważ element zawiera węzeł obrazu.

    1 wystąpienie · 1 podstrona · Jak to sprawdzić

    Elementy do sprawdzenia (pokazane: 1)
    h1
    <h1>Gear for the long way home</h1>

Sprawdź poprawki ponownym testem

Gdy Twój programista wprowadzi zmiany, uruchom ponowny test. Ponownie wykonujemy te same testy automatyczne na tych samych podstronach, test klawiatury i test ścieżki klawiaturą, a następnie pokazujemy, których problemów nie da się już odtworzyć. W cenie jest 5 ponownych testów.

Ponowne testy są dostępne w płatnych raportach.

Testy ręczne

Narzędzia automatyczne nie mogą tego ocenić. Wykonaj te testy, zanim uznasz pracę za zakończoną.

  • Przejdź cały proces zakupu wyłącznie z klawiatury: nasz automatyczny test zatrzymuje się przy przycisku przejścia do kasy i nigdy nie wchodzi do kasy.
  • Powtórz to z czytnikiem ekranu (VoiceOver na Macu: Cmd+F5; NVDA w Windows) i potwierdź, że ceny, warianty i błędy są odczytywane.
  • Powiększ widok przeglądarki do 200% i potwierdź, że nic się nie nakłada ani nie znika.
  • Sprawdź, czy filmy o produktach i marce mają dokładne napisy.
  • Wyślij formularze z błędami (newsletter, kontakt, kasa) i potwierdź, że błędy są opisane tekstem.
  • Sprawdź, czy karuzele i pop-upy można wstrzymać lub zamknąć, także klawiszem Escape.

Projekt deklaracji dostępności

Uzupełnij fragmenty w nawiasach kwadratowych i opublikuj tekst na podstronie, do której prowadzi link w stopce.

Deklaracja dostępności strony harborandpine.example

Chcemy, aby każdy mógł robić zakupy w sklepie harborandpine.example, w tym osoby korzystające z czytników ekranu, nawigacji klawiaturą, powiększenia lub innych technologii wspomagających. Dążymy do spełnienia Wytycznych dotyczących dostępności treści internetowych (WCAG) 2.2 na poziomie AA.

Co robimy
- Testujemy nasz sklep za pomocą automatycznych narzędzi do badania dostępności i naprawiamy wykryte przez nie problemy.
- Kluczowe etapy zakupów (przeglądanie, strony produktów, koszyk i kasę) testujemy za pomocą klawiatury i czytnika ekranu.
- Przed dodaniem aplikacji i widżetów zewnętrznych sprawdzamy ich dostępność.

Znane ograniczenia (stan na 24 września 2026)
- Dostęp z klawiatury i fokus (WCAG 2.1.1). Planujemy to naprawić do 2026-10-08.
- Linki i przyciski bez nazw (WCAG 2.4.4, 4.1.2). Planujemy to naprawić do 2026-10-08.
- Obrazy bez tekstu alternatywnego (WCAG 1.1.1). Planujemy to naprawić do 2026-10-08.
- Pola formularzy bez etykiet (WCAG 4.1.2). Planujemy to naprawić do 2026-10-08.
- Niski kontrast kolorów (WCAG 1.4.3). Planujemy to naprawić do 2026-10-08.

Informacje zwrotne i pomoc
Jeśli masz trudności z korzystaniem z jakiejkolwiek części naszego sklepu, skontaktuj się z nami: [Twój adres e-mail] lub [Twój numer telefonu]. Podaj stronę i opisz problem, a pomożemy Ci dokończyć zakup i odpowiemy w ciągu 5 dni roboczych.

Tę deklarację przygotowano 24 września 2026; będzie weryfikowana co najmniej raz w roku.

Dziennik dowodów

Każda podstrona została wczytana w Chromium i przetestowana przez axe-core 4.13.0. Skrót SHA-256 identyfikuje surowe wyniki każdej podstrony.

Przetestowane podstrony ze znacznikami czasu i skrótami wyników
PodstronaPrzetestowano (UTC)HTTPProblemySHA-256
Strona głównahttps://harborandpine.example/2026-09-24 14:05:0020015da1e5470a57859a864332912dd1e4f62b4c4f64487ba144865b74879519599a3
Strona kolekcjihttps://harborandpine.example/collections/all2026-09-24 14:05:092002028d8dfcf5ca953af353264a930a351bea3cf23f98a303874b32e5da355a4c8b0
Strona produktuhttps://harborandpine.example/products/trail-daypack2026-09-24 14:05:182002068a173ddfd16eeeef5e36d6c0fa9d426769f0d96e358c5e35b67608dd84139b4
Koszykhttps://harborandpine.example/cart2026-09-24 14:05:27200125b7945c2cdf779dcef2bd8975d96eb8f42d8dedbf10e767ec80199dd22ce257c
Strona z treściąhttps://harborandpine.example/pages/about2026-09-24 14:05:362009daf61ae856358a574e63f9357db0bfd9ae6079065acf3aebd5b3c5a7f460e53f
Dodatkowa podstronahttps://harborandpine.example/products/pine-wool-beanie2026-09-24 14:08:0020020f708ccd7de34dfb65d59d3716580b6ec15a6420020c8387fa4da4e2ff5bd52d3
Dodatkowa podstronahttps://harborandpine.example/products/enamel-camp-mug2026-09-24 14:08:0720019c619bcd29e89d06099d174b9fc19305a42f2fa9bdddb600a750c867fc7477022
Dodatkowa podstronahttps://harborandpine.example/products/harbor-lantern2026-09-24 14:08:14200205720b7433b75050ba413ac74c2bd726b0620aaa68f7918083052383257d5c418
Dodatkowa podstronahttps://harborandpine.example/products/insulated-bottle2026-09-24 14:08:21200196f1972c22e477c9a63e2dfde1123ed759718f6a75e1606b23f208848691510fd

Zakres i metoda

Co przetestowaliśmy

  • 9 podstron (strona główna, strona kolekcji, strona produktu, koszyk, strona z treścią, dodatkowa podstrona) wczytanych w Chromium w rozdzielczości 1366×900.
  • Reguły axe-core 4.13.0 dla WCAG 2.0, 2.1 i 2.2 na poziomach A i AA oraz reguły dobrych praktyk (oznaczone jako P3).
  • Test klawiatury: 40 naciśnięć klawisza Tab na stronie głównej w poszukiwaniu pułapek i brakujących wskaźników fokusu.
  • Ścieżka zakupowa wyłącznie z klawiatury od strony głównej do przycisku przejścia do kasy (patrz wyżej).
  • Test reflow przy szerokości 320 pikseli CSS, sprawdzone podstrony: strona główna i strona produktu (WCAG 1.4.10).

Czego nie testowaliśmy

  • Strony kasy i płatności, wysyłanie formularzy, strony konta i podstrony dostępne po zalogowaniu.
  • To, co faktycznie odczytuje czytnik ekranu, poza zakresem reguł automatycznych.
  • Napisy do filmów i audiodeskrypcja, dokumenty PDF oraz treści w ramkach osadzonych przez podmioty zewnętrzne.
  • Prosty język, dostępność poznawcza i wszystko inne, co wymaga oceny człowieka (patrz Testy ręczne).

Jak czytać wyniki

Potwierdzony błąd
Test automatyczny lub test ścieżki klawiaturą wykazał błąd; dowody są pokazane.
Do sprawdzenia
Test oznaczył coś, czego nie mógł rozstrzygnąć; powinien to sprawdzić człowiek.
Zaliczone
Reguła automatyczna nie znalazła błędów na przetestowanych podstronach.
Nie przetestowano
Poza zakresem tego, co mogą tu objąć testy automatyczne; patrz Testy ręczne.

Zamów ten raport dla swojej strony.

Zacznij od darmowego skanu, aby zobaczyć problemy na swojej stronie i to, jak mają się do zarzutów z Twojego pisma. Raport naprawy dostępności kosztuje $249 jednorazowo i jest gotowy w około 10 minut.

Przeskanuj stronę za darmo

Ten raport opisuje wyniki testów automatycznych i zawiera wskazówki naprawcze. Nie stanowi porady prawnej i nie poświadcza zgodności z ADA, Europejskim Aktem o Dostępności ani żadnymi innymi przepisami.