Audyt dostępności WCAG 2.2 AA
Audyt dostępności WCAG 2.2 AA
Pełen samoaudyt zgodności serwisu dlasamorzadu.pl z wytycznymi WCAG 2.2 na poziomie AA, zgodnie z ustawą z dnia 4 kwietnia 2019 r. o dostępności cyfrowej.
Wynik audytu: 54 z 54 kryteriów – PASS lub N/A. Pełna zgodność WCAG 2.2 AA.
Data audytu: 2026-04-29 | Metodologia: samoocena podmiotu publicznego (axe DevTools, WAVE, Lighthouse, NVDA screen reader, manual testing)
Tabela 54 kryteriów
| Kryterium | Nazwa | Poziom | Status | Narzędzie | Dowód / opis |
|---|---|---|---|---|---|
| 1.1.1 | Treść nietekstowa | A | PASS | axe + manual | Wszystkie obrazy mają atrybut alt (informacyjne) lub alt="" (dekoracyjne). Brak <img> bez alt. |
| 1.2.1 | Tylko audio i tylko wideo (nagrane) | A | N/A | – | Brak multimediów na serwisie. |
| 1.2.2 | Napisy rozszerzone (nagrane) | A | N/A | – | Brak wideo z dźwiękiem. |
| 1.2.3 | Audiodeskrypcja lub alternatywa multimediów (nagrane) | A | N/A | – | Brak wideo. |
| 1.2.4 | Napisy rozszerzone (na żywo) | AA | N/A | – | Brak transmisji na żywo. |
| 1.2.5 | Audiodeskrypcja (nagrana) | AA | N/A | – | Brak wideo. |
| 1.3.1 | Informacje i relacje | A | PASS | axe + WAVE | Semantic HTML: <header>, <nav>, <main>, <footer>, <article>, <section>. Hierarchia H1-H6 logiczna. |
| 1.3.2 | Zrozumiała kolejność | A | PASS | manual + reading order | DOM order zgodny z visual order. Test wyłączenia CSS – treść nadal logiczna. |
| 1.3.3 | Charakterystyki zmysłowe | A | PASS | manual | Instrukcje nie zależą wyłącznie od koloru/kształtu/dźwięku. |
| 1.3.4 | Orientacja | AA | PASS | manual | Treść działa w portrait i landscape, brak wymuszania orientacji. |
| 1.3.5 | Określenie pożądanej wartości | AA | PASS | manual | Pola formularza mają autocomplete (name, email, tel, organization). |
| 1.4.1 | Użycie koloru | A | PASS | manual | Linki podkreślone, błędy formularza nie tylko kolorem (ikona + tekst). |
| 1.4.2 | Kontrola odtwarzania dźwięku | A | N/A | – | Brak auto-odtwarzającego się dźwięku. |
| 1.4.3 | Kontrast (minimum) | AA | PASS | WAVE + axe | Tekst min. 4.5:1 (#0B1D33 na #FFFFFF = 14.83:1). Linki min. 3:1. |
| 1.4.4 | Zmiana rozmiaru tekstu | AA | PASS | manual zoom 200% | CSS clamp() + rem – tekst skalowalny do 200%+ bez utraty funkcji. |
| 1.4.5 | Obrazy tekstu | AA | PASS | manual | Brak obrazów z tekstem (logo wyjątek). |
| 1.4.10 | Reflow | AA | PASS | manual 320px | Treść responsywna – 320px viewport bez horizontal scroll. |
| 1.4.11 | Kontrast nietekstowy | AA | PASS | WAVE + manual | Border, outline, focus rings min. 3:1. Focus outline 2px solid #0EA5E9. |
| 1.4.12 | Odstępy w tekście | AA | PASS | CSS test | Tekst akceptuje line-height 1.5+, paragraph spacing 2x font, letter-spacing 0.12em. |
| 1.4.13 | Treść spod kursora lub fokusu | AA | PASS | manual hover/focus | Tooltips/popovers (cookie banner) dismissable bez utraty hover. |
| 2.1.1 | Klawiatura | A | PASS | manual Tab nav | Wszystkie interaktywne elementy dostępne z klawiatury. Brak div onclick. |
| 2.1.2 | Brak pułapek na klawiaturę | A | PASS | manual | Mobile menu: focus trap + Esc do wyjścia. Cookie banner: Tab navigable. |
| 2.1.4 | Skróty klawiszowe | A | PASS | manual | Brak dedykowanych skrótów (zgodnie z deklaracją). |
| 2.2.1 | Możliwość dostosowania czasu | A | PASS | manual | Brak time-limited content (formularz session 1h, ale można odświeżyć). |
| 2.2.2 | Pauzowanie, zatrzymywanie, ukrywanie | A | PASS | manual | Brak auto-aktualizujących treści, brak migotania. |
| 2.3.1 | Trzy błyski lub mniej | A | PASS | manual | Brak migotania >3x/s. Animacje subtle (fade, scale). |
| 2.4.1 | Ominięcie bloków | A | PASS | manual | Skip link "Przejdź do treści" widoczny po Tab. |
| 2.4.2 | Tytuł strony | A | PASS | manual | Każda podstrona ma unikalny <title> generowany przez Yoast SEO. |
| 2.4.3 | Kolejność fokusu | A | PASS | manual Tab | Tab order zgodny z visual order. Brak tabindex>0. |
| 2.4.4 | Cel linku (w kontekście) | A | PASS | manual | Linki opisowe (np. "Czytaj WCAG 2.1 – checklista 47 punktów"). |
| 2.4.5 | Wiele dróg | AA | PASS | manual | Sitemap, kategorie, pillarki, search, menu – 5 dróg do treści. |
| 2.4.6 | Nagłówki i etykiety | AA | PASS | manual | Headings opisowe i informacyjne. Labels jasne. |
| 2.4.7 | Widoczność fokusu | AA | PASS | manual + axe | Outline 2px solid #0EA5E9 + offset 2px na wszystkich :focus-visible. |
| 2.4.11 | Fokus nie zasłonięty (minimum) – WCAG 2.2 NEW | AA | PASS | manual | scroll-padding-top: 80px (dla sticky header). Focus zawsze widoczny. |
| 2.5.1 | Gesty z użyciem wskaźnika | A | PASS | manual | Brak multi-touch / path-based gestów. |
| 2.5.2 | Anulowanie wskazania | A | PASS | manual | Click triggers on mouseup, brak destructive actions na mousedown. |
| 2.5.3 | Etykieta w nazwie | A | PASS | manual | Visible label = accessible name (aria-label = visible text). |
| 2.5.4 | Aktywowanie przez ruch | A | PASS | manual | Brak motion-based actions (np. shake to undo). |
| 2.5.7 | Ruchy przeciągania – WCAG 2.2 NEW | AA | PASS | manual | Brak drag-and-drop. Wszystko klik/tap. |
| 2.5.8 | Rozmiar celu (minimum) – WCAG 2.2 NEW | AA | PASS | manual + DevTools | CTAs min. 44x44px. Małe ikony (close, scroll-top) min. 32x32px target area. |
| 3.1.1 | Język strony | A | PASS | manual | <html lang="pl-PL"> na wszystkich stronach. |
| 3.1.2 | Język części | AA | PASS | manual | Obcojęzyczne fragmenty oznaczone lang="" (np. WCAG 2.1). |
| 3.2.1 | Po otrzymaniu fokusu | A | PASS | manual | Focus nie powoduje zmian kontekstu. |
| 3.2.2 | Podczas wprowadzania danych | A | PASS | manual | Wpisywanie nie wywołuje submit. Submit tylko na klik buttona. |
| 3.2.3 | Spójna nawigacja | AA | PASS | manual | Header/footer/nav identyczne na wszystkich stronach. |
| 3.2.4 | Spójna identyfikacja | AA | PASS | manual | Te same komponenty (CTA, formularz) zachowują się tak samo. |
| 3.2.6 | Pomoc spójna – WCAG 2.2 NEW | A | PASS | manual | Email kontakt@dlasamorzadu.pl widoczny w footer + na każdej stronie kontaktowej. |
| 3.3.1 | Identyfikacja błędów | A | PASS | manual + axe | Pola błędne: aria-invalid="true", czerwony border + ikona X + tekst. |
| 3.3.2 | Etykiety lub instrukcje | A | PASS | manual | Każde pole <label for="…"> + placeholder przykład. |
| 3.3.3 | Sugestie poprawy błędów | AA | PASS | manual | Komunikaty błędów konkretne ("Prawidłowy email", "Telefon wymagany"). |
| 3.3.4 | Zapobieganie błędom (prawne, finansowe, dane) | AA | PASS | manual | Brak transakcji. Form: można poprawić przed submit, autoresponder potwierdza. |
| 3.3.7 | Zbędne wpisywanie – WCAG 2.2 NEW | A | PASS | manual | Pola autocomplete: name, email, tel, organization. Browser autofill działa. |
| 3.3.8 | Dostępne uwierzytelnianie (minimum) – WCAG 2.2 NEW | AA | N/A | – | Brak rejestracji/logowania dla użytkowników. |
| 4.1.1 | Parsowanie (DEPRECATED w WCAG 2.2) | A | PASS | W3C validator | HTML5 valid. Brak duplikatów ID. Tagi domknięte. |
| 4.1.2 | Nazwa, rola, wartość | A | PASS | axe | role="navigation", aria-label, aria-expanded, aria-controls, aria-current="page". |
| 4.1.3 | Komunikaty o stanie | AA | PASS | NVDA test | aria-live="polite" + role="status" na komunikatach formularza. Cookie banner aria-hidden toggling. |
Metodologia audytu
Narzędzia użyte
- axe DevTools (Chrome extension, Deque Systems) – automatyczne wykrywanie błędów WCAG
- WAVE (WebAIM) – https://wave.webaim.org/ – wizualizacja problemów dostępności
- Lighthouse (Chrome DevTools) – score Accessibility 95+
- NVDA screen reader (NV Access) – manualny test nawigacji głosowej
- Manualne testy: Tab navigation, klawiszowe skróty, viewport 320px, zoom 200%, prefers-reduced-motion
Strony testowane
- Strona główna – https://dlasamorzadu.pl/
- Kontakt + formularz – https://dlasamorzadu.pl/kontakt/
- 5 pillar pages – https://dlasamorzadu.pl/poradnik/
- Lista artykułów + sample 10 random – https://dlasamorzadu.pl/blog/
- Polityka prywatności + Deklaracja dostępności + O Redakcji
WCAG 2.2 nowe kryteria (2023)
Audyt obejmuje 9 nowych kryteriów wprowadzonych w WCAG 2.2 (październik 2023):
- 2.4.11 Fokus nie zasłonięty (Minimum) – AA – PASS
- 2.4.12 Fokus nie zasłonięty (Enhanced) – AAA – opcjonalne
- 2.4.13 Wygląd fokusu – AAA – opcjonalne
- 2.5.7 Ruchy przeciągania – AA – PASS (brak drag)
- 2.5.8 Rozmiar celu (Minimum) – AA – PASS
- 3.2.6 Pomoc spójna – A – PASS
- 3.3.7 Zbędne wpisywanie – A – PASS
- 3.3.8 Dostępne uwierzytelnianie (Minimum) – AA – N/A (brak login)
- 3.3.9 Dostępne uwierzytelnianie (Enhanced) – AAA – N/A
Niepełnosprawni użytkownicy znajdą problem? Prosimy o kontakt: kontakt@dlasamorzadu.pl. Odpowiadamy w ciągu 7 dni roboczych. Pełna procedura: Deklaracja dostępności.
Plan ciągłego audytu
| Częstotliwość | Co | Kto |
|---|---|---|
| Codziennie | Lighthouse CI – automatyczny test po każdym commit | Pipeline |
| Co tydzień | axe DevTools manualny test home + 1 random pillar | Redakcja |
| Co miesiąc | Pełen WAVE test 5 stron + screen reader (NVDA) | Redakcja |
| Co rok | Pełen audyt 54 kryteriów + aktualizacja deklaracji | Redakcja |
Dlaczego publikujemy audyt? dlasamorzadu.pl jest serwisem doradczym dla JST w zakresie dostępności cyfrowej. Naszym obowiązkiem etycznym jest być wzorem – nie tylko głosić wymagania, ale je spełniać. Audyt jest publicznie weryfikowalny.
Aktualizacja audytu: 2026-04-29 (wersja 3.9.4). Następny pełen audyt: 2027-04-29.