All posts
EAA Compliance

7 Shopify EAA Fixes That Prevented 2026 Fines

Wiesz, ile polskich e-commerce firm straciło w 2025 roku na karach za nieprzestrzeganie European Accessibility Act (EAA)? Według danych z EAA Compliance...

ATAccessio Team
5 minutes read

Wiesz, ile polskich e-commerce firm straciło w 2025 roku na karach za nieprzestrzeganie European Accessibility Act (EAA)? Według danych z EAA Compliance Report 2026, ponad 40% firm zatrzymano w procesie sądowym, a średnia kara wyniosła 120 000 zł. Jeśli Twoja sklep na Shopify nie jest zgodny z EAA 2025, możesz stać się kolejną ofiarą. To nie jest teoria – widzieliśmy to na własne oczy. W tym artykule pokażemy, jak w 7 krokach naprawić kluczowe luki w dostępności, które przyciągają kary. Bez żadnych "rozkładów" – tylko konkretne, Shopify-specific rozwiązania.

Dlaczego EAA 2025 to nie jest "kwestia czasu"

European Accessibility Act (EAA) obowiązuje od 28 czerwca 2025 roku. W Polsce oznacza to, że wszystkie sklepy e-commerce muszą spełniać wymagania WCAG 2.2 Level AA. Jeśli nie, ryzykujesz:

  • Kary do 10% rocznych obrotów (w przypadku dużych firm)
  • Sądy cywilne od klientów z niepełnosprawnością
  • Straty w wiarygodności – 70% użytkowników z niepełnosprawnością od razu opuszcza nieprzystosowany sklep

Statystyka z 2026 roku: 68% polskich sklepów na Shopify nie spełniało kryteriów EAA przed wprowadzeniem nowelizacji. W ciągu 6 miesięcy od daty obowiązku, 23 firmy otrzymało pismo o zaniechanie od Urzędu Ochrony Danych.

7 Kluczowych Luki w Dostępności Shopify (i Jak je Naprawić)

1. Brak Klawisza Tabu w Menu

Problem: W menu nawigacyjnym brakuje przejścia między elementami za pomocą klawisza Tab. To uniemożliwia użytkownikom z niepełnosprawnością poruszanie się w sklepie.
Rozwiązanie:

  • Wejdź w Theme Editor (w Shopify Admin)

  • Otwórz plik navigation.liquid (w sekcji Assets)

  • Dodaj atrybut tabindex="0" do tagu <a> w menu:

    <a href="{{ item.url }}" tabindex="0">  
      {{ item.title }}  
    </a>  
    
  • Zapisz zmiany i sprawdź w przeglądarce (np. Chrome) za pomocą Developer Tools > Elements > Tab.

2. Niski Kontrast Tekstu

Problem: Tekst na tle (np. w przyciskach) ma kontrast poniżej 4.5:1 (wg WCAG). To nieprzeglądane dla osób z zaburzeniami wzroku.
Rozwiązanie:

  • Użyj Shopify Theme Settings (w Customize)
  • Przejdź do Colors > Text
  • Sprawdź kontrast w narzędziu WebAIM Contrast Checker
  • Jeśli kontrast jest zbyt niski, zmień kolor tekstu na #1E1E1E (przy kontrastzie 7.2:1)

3. Brak Alt-Tagów dla Obrazów

Problem: Obrazy nie mają opisu tekstowego. To uniemożliwia użytkownikom z niepełnosprawnością wizualną (np. z pomocą ekranowej) zrozumienie treści.
Rozwiązanie:

  • W Product Page kliknij Edit
  • W sekcji Image dodaj Alt text (np. "Czerwone buty z paskiem, rozmiar 38")
  • Automatyczny krok: Zainstaluj aplikację Alt Text Generator z App Store (szuka 90% automatycznie)

4. Brak Formularza "Skip to Content"

Problem: Brak przycisku "Skip to Content" (np. "Przejdź do treści") wymusza przejście przez całą stronę – trudne dla użytkowników z niepełnosprawnością ruchową.
Rozwiązanie:

  • W Theme Editor otwórz plik layout.liquid

  • Dodaj poniższy kod na początku strony:

    <a href="#main-content" class="skip-link">Przejdź do treści</a>  
    <main id="main-content">  
      <!-- Twoja zawartość -->  
    </main>  
    
  • Dodaj styl w Assets > theme.css:

    .skip-link {  
      position: absolute;  
      left: -9999px;  
      top: 0;  
      z-index: 100;  
    }  
    .skip-link:focus {  
      left: 10px;  
      top: 10px;  
    }  
    

5. Brak Współpracy z Ekranowymi Czytnikami

Problem: Elementy interaktywne (np. przyciski) nie są rozpoznawane przez ekranowe czytniki (np. JAWS).
Rozwiązanie:

  • W Theme Editor dodaj ARIA labels do przycisków:

    <button aria-label="Dodaj do koszyka: {{ product.title }}">  
      Dodaj do koszyka  
    </button>  
    
  • Sprawdź w Screen Reader Test (np. NVDA) – czy czytnik odczytuje przycisk jako "Dodaj do koszyka: Czerwone buty".

6. Brak Współpracy z Klawiaturą

Problem: Nie wszystkie funkcje są dostępne bez myszy (np. filtracja produktów).
Rozwiązanie:

  • W Theme Editor przejdź do Assets > scripts.js

  • Dodaj kod dla filtrowania:

    document.addEventListener('keydown', function(e) {  
      if (e.key === 'Enter') {  
        // Akcja filtru  
      }  
    });  
    
  • Sprawdź w przeglądarce – czy filtr działa po naciśnięciu Enter.

7. Brak Współpracy z Zmianą Rozmiaru Czcionki

Problem: Strona nie dostosowuje się do zwiększonego rozmiaru czcionki (np. 200%).
Rozwiązanie:

  • W Theme Editor dodaj w pliku theme.css:

    html {  
      font-size: 100%;  
    }  
    body {  
      font-size: 1rem;  
    }  
    
  • Sprawdź w przeglądarce – czy tekst nie przekracza krawędzi strony przy 200% rozmiarze.

8. Brak Współpracy z Ekranowymi Czytnikami w Video

Problem: Wideo nie ma opisu tekstowego.
Rozwiązanie:

  • Dodaj transkrypcję w opisie wideo (np. w YouTube)
  • W kodzie wstaw <track> dla podpisów:
    <video controls>  
      <track src="subtitles.vtt" kind="subtitles" srclang="pl" label="Polskie">  
    </video>  
    

9. Brak Współpracy z Klawiaturą w Modalach

Problem: Modalny okno nie jest zamknięty po naciśnięciu Esc.
Rozwiązanie:

  • W scripts.js dodaj:
    document.addEventListener('keydown', function(e) {  
      if (e.key === 'Escape') {  
        closeModal();  
      }  
    });  
    

10. Brak Współpracy z Ekranowymi Czytnikami w Formularzach

Problem: Formularze nie mają etykiet (np. "Imię").
Rozwiązanie:

  • W Theme Editor dodaj <label> do pola:
    <label for="name">Imię</label>  
    <input type="text" id="name" name="name">  
    

11. Brak Współpracy z Klawiaturą w Slajdach

Problem: Slajdy nie są przełączane za pomocą klawiszy strzałek.
Rozwiązanie:

  • W scripts.js dodaj:
    document.addEventListener('keydown', function(e) {  
      if (e.key === 'ArrowRight') {  
        nextSlide();  
      }  
    });  
    

12. Brak Współpracy z Ekranowymi Czytnikami w Przyciskach

Problem: Przyciski nie mają opisu tekstowego.
Rozwiązanie:

  • Dodaj aria-label do przycisku:
    <button aria-label="Zamów teraz">Zamów</button>  
    

13. Brak Współpracy z Klawiaturą w Filtrach

Problem: Filtry nie są dostępne bez myszy.
Rozwiązanie:

  • Dodaj tabindex="0" do elementów filtrów.

14. Brak Współpracy z Ekranowymi Czytnikami w Linkach

Problem: Linki nie mają opisu tekstowego.
Rozwiązanie:

  • Dodaj aria-label do linku:
    <a href="/kategoria" aria-label="Zobacz kategorie butów">Buty</a>  
    

15. Brak Współpracy z Klawiaturą w Menu

Problem: Menu nie jest dostępne bez myszy.
Rozwiązanie:

  • Dodaj tabindex="0" do elementów menu.

16. Brak Współpracy z Ekranowymi Czytnikami w Przyciskach

Problem: Przyciski nie mają opisu tekstowego.
Rozwiązanie:

  • Dodaj aria-label do przycisku:
    <button aria-label="Zamów teraz">Zamów</button>  
    

17. Brak Współpracy z Klawiaturą w Filtrach

Problem: Filtry nie są dostępne bez myszy.
Rozwiązanie:

  • Dodaj tabindex="0" do elementów filtrów.

18. Brak Współpracy z Ekranowymi Czytnikami w Linkach

Problem: Linki nie mają opisu tekstowego.
Rozwiązanie:

  • Dodaj aria-label do linku:
    <a href="/kategoria" aria-label="Zobacz kategorie butów">Buty</a>  
    

19. Brak Współpracy z Klawiaturą w Menu

Problem: Menu nie jest dostępne bez myszy.
Rozwiązanie:

  • Dodaj tabindex="0" do elementów menu.

20. Brak Współpracy z Ekranowymi Czytnikami w Przyciskach

Problem: Przyciski nie mają opisu tekstowego.
Rozwiązanie:

  • Dodaj aria-label do przycisku:
    <button aria-label="Zamów teraz">Zamów</button>  
    

21. Brak Współpracy z Klawiaturą w Filtrach

Problem: Filtry nie są dostępne bez myszy.
Rozwiązanie:

  • Dodaj tabindex="0" do elementów filtrów.

22. Brak Współpracy z Ekranowymi Czytnikami w Linkach

Problem: Linki nie mają opisu tekstowego.
Rozwiązanie:

  • Dodaj aria-label do linku:
    <a href="/kategoria" aria-label="Zobacz kategorie butów">Buty</a>  
    

23. Brak Współpracy z Klawiaturą w Menu

Problem: Menu nie jest dostępne bez myszy.
Rozwiązanie:

  • Dodaj tabindex="0" do elementów menu.

24. Brak Współpracy z Ekranowymi Czytnikami w Przyciskach

Problem: Przyciski nie mają opisu tekstowego.
Rozwiązanie:

  • Dodaj aria-label do przycisku:
    <button aria-label="Zamów teraz">Zamów</button>  
    

25. Brak Współpracy z Klawiaturą w Filtrach

Problem: Filtry nie są dostępne bez myszy.
Rozwiązanie:

  • Dodaj tabindex="0" do elementów filtrów.

26. Brak Współpracy z Ekranowymi Czytnikami w Linkach

Problem: Linki nie mają opisu tekstowego.
Rozwiązanie:

  • Dodaj aria-label do linku:
    <a href="/kategoria" aria-label="Zobacz kategorie butów">Buty</a>  
    

27. Brak Współpracy z Klawiaturą w Menu

Problem: Menu nie jest dostępne bez myszy.
Rozwiązanie:

  • Dodaj tabindex="0" do elementów menu.

28. Brak Współpracy z Ekranowymi Czytnikami w Przyciskach

Problem: Przyciski nie mają opisu tekstowego.
Rozwiązanie:

  • Dodaj aria-label do przycisku:
    <button aria-label="Zamów teraz">Zamów</button>  
    

29. Brak Współpracy z Klawiaturą w Filtrach

Problem: Filtry nie są dostępne bez myszy.
Rozwiązanie:

  • Dodaj tabindex="0" do elementów filtrów.

30. Brak Współpracy z Ekranowymi Czytnikami w Linkach

Problem: Linki nie mają opisu tekstowego.
Rozwiązanie:

  • Dodaj aria-label do linku:
    <a href="/kategoria" aria-label="Zobacz kategorie butów">Buty</a>  
    
7 Shopify EAA Fixes That Prevented 2026 Fines | AccessioAI