Logowanie nie może wymagać rozwiązywania zagadek ani przepisywania kodów z pamięci. Kryterium WCAG 2.2 3.3.8 (Accessible Authentication – Minimum) na poziomie AA mówi wprost: każdy krok uwierzytelnienia musi mieć ścieżkę bez testu funkcji poznawczych albo mechanizm, który taki test ułatwia. Sprawdzamy, co to oznacza dla sklepów, banków i aplikacji – oraz jak szybko sprawdzić własne formularze logowania.
Co dokładnie wymaga 3.3.8
Kryterium pochodzi z WCAG 2.2 i dotyczy uwierzytelniania istniejącego konta, a nie zakładania nowego. W3C w dokumencie Understanding SC 3.3.8 definiuje test funkcji poznawczych jako zadanie, które wymaga zapamiętania, manipulowania albo przepisania informacji. Przykłady: zapamiętanie hasła, przepisanie zniekształconego tekstu z CAPTCHA, ręczne wpisanie kodu jednorazowego, rozwiązanie łamigłówki albo działania matematycznego.
Takiego testu nie wolno wymagać na żadnym kroku logowania, chyba że spełniony jest co najmniej jeden z wyjątków:
- Metoda alternatywna – inna ścieżka logowania bez testu poznawczego (np. link w e-mailu, passkey/WebAuthn, logowanie przez zewnętrznego dostawcę OAuth).
- Mechanizm wspomagający – narzędzie, które pomaga przejść test (np. menedżer haseł wypełniający pola albo możliwość wklejenia kodu).
- Rozpoznawanie obiektów – np. CAPTCHA typu „zaznacz wszystkie zdjęcia z samochodem” (wyjątek tylko na poziomie AA).
- Treść osobista – rozpoznanie treści, którą użytkownik wcześniej sam dodał (np. wybór własnego zdjęcia).
W3C podkreśla, że wyjątki 3 i 4 nadal wykluczają część osób z niepełnosprawnościami poznawczymi, więc lepiej ich unikać i celować w 3.3.9 Accessible Authentication (Enhanced) na poziomie AAA, gdzie tych dwóch wyjątków już nie ma.
Jeśli logowanie ma kilka kroków (hasło + MFA), każdy krok musi spełniać kryterium. Musi istnieć kompletna ścieżka przez cały proces bez testu poznawczego albo z działającym mechanizmem wspomagającym. To samo dotyczy odzyskiwania konta.
Co przechodzi, a co odpada w praktyce
Formularz e-mail + hasło
Zwykły login z polem nazwy użytkownika (lub e-maila) i hasła spełnia 3.3.8, o ile:
- pola mają poprawną etykietę dostępną (WCAG 4.1.2),
- cel pól da się programowo określić (WCAG 1.3.5), np.
autocomplete="username"iautocomplete="current-password", - przeglądarka i menedżer haseł mogą je wypełnić,
- nie blokujesz wklejania (paste).
Wystarczy skrypt, który wyłącza paste albo ustawia autocomplete="off" na polu hasła, żeby kryterium runąć – chyba że oferujesz inną metodę logowania. W3C jako wystarczającą technikę wymienia też G218: Email link authentication: użytkownik podaje adres e-mail i klika link z wiadomości, bez wpisywania hasła.
Kody jednorazowe (OTP / TOTP / SMS)
Wymaganie ręcznego przepisania kodu z telefonu na laptop bez możliwości wklejenia nie przechodzi. Bezpieczne podejścia:
- jedno pole na cały kod z
autocomplete="one-time-code"i otwartym paste, - push na urządzenie („to Ty się logujesz?”),
- klucz sprzętowy / passkey,
- wybór kilku metod drugiego składnika.
Typowa porażka to sześć osobnych pól na cyfry, w które wklejenie całego kodu wypełnia tylko pierwsze. To klasyczny przykład opisywany przez W3C i powiązany z failure F109 (blokowanie ponownego wprowadzenia hasła lub kodu w tym samym formacie). Inny fail: „wpisz 1., 3. i 5. znak hasła” – zmusza do przepisywania z pamięci.
CAPTCHA przy logowaniu
- Zniekształcony tekst do przepisania (nawet z wersją audio do przepisania) – to test poznawczy; potrzebujesz metody bez takiego testu.
- „Zaznacz wszystkie obrazy z…” – na AA wyjątek „object recognition” to dopuszcza; na AAA już nie.
- Zagadki, równania, obracanie obiektów 3D – bez wyjątku; musi być alternatywa.
Kryterium dotyczy też CAPTCHA, które pojawia się tylko czasem (np. po kilku nieudanych próbach albo przy włączonym adblockerze).
Dlaczego to ważne akurat teraz w Polsce
Usługi handlu elektronicznego są objęte Polskim Aktem o Dostępności od 28 czerwca 2025 r. Logowanie, koszyk i płatność to miejsca, w których bariera najczęściej urywa zakup. Nadzór nad e-handlem sprawuje Minister Cyfryzacji.
Sama norma EN 301 549 w wersji v4.1.1 przenosi punkt odniesienia dla stron i oprogramowania na WCAG 2.2 AA – pisaliśmy o tym w artykule Nowa norma EN 301 549 V4.1.1 i WCAG 2.2. Do formalnego cytowania nowej wersji w Dzienniku Urzędowym UE warto już teraz domykać luki z WCAG 2.2, w tym 3.3.8. Hasło i CAPTCHA przy logowaniu to też częsty temat w audytach e-sklepów – obok kontrastu i nazw przycisków, o których pisaliśmy przy badaniu EAA Watch.
Lista kontrolna: sprawdź logowanie w 15 minut
- [ ] Otwórz formularz logowania i upewnij się, że menedżer haseł wypełnia pola (albo że da się wkleić login i hasło).
- [ ] Sprawdź
autocompletena polach:username/emailorazcurrent-password. - [ ] Potwierdź, że żaden skrypt nie blokuje zdarzenia paste.
- [ ] Przy MFA: kod jednorazowy da się wkleić w jedno pole (nie w sześć osobnych).
- [ ] Unikaj „wpisz wybrane znaki hasła” – to wymusza przepisywanie.
- [ ] Jeśli jest CAPTCHA tekstowa lub zagadka, daj metodę logowania bez niej (link e-mail, passkey, OAuth, push).
- [ ] Przetestuj też odzyskiwanie hasła i zmianę danych konta tą samą logiką.
- [ ] Dodaj opcjonalne „pokaż hasło” przy tworzeniu lub zmianie hasła – obniża obciążenie poznawcze przy wpisywaniu.
- [ ] Przejdź całą ścieżkę logowania klawiaturą i czytnikiem ekranu (np. NVDA).
- [ ] Udokumentuj w checklistach audytu kryterium 3.3.8 obok 2.2 AA; nie polegaj wyłącznie na skanerze automatycznym – to kryterium wymaga testu ręcznego.
Co wdrożyć w pierwszej kolejności
- Odblokuj paste i autofill – często zero linii nowego UI, a od razu spełniasz mechanizm wspomagający.
- Jedno pole na OTP z możliwością wklejenia całego kodu.
- Druga metoda logowania bez hasła: magic link (G218), passkey albo logowanie przez zaufanego dostawcę.
- Wybór drugiego składnika zamiast wyłącznie SMS do przepisania.
- Zamień tekstową CAPTCHA na ochronę niewidoczną dla użytkownika albo na ścieżkę bez zagadki.
Bezpieczeństwo i dostępność nie stoją tu w sprzeczności: menedżery haseł, passkeys i push MFA to jednocześnie lepsza ochrona i mniejszy test pamięci.