Standardy · WCAG 2.2

SC 2.2.5 Poziom AAA WCAG 2.0

Ponowne uwierzytelnianie

Gdy uwierzytelniona sesja wygaśnie, użytkownik musi mieć możliwość kontynuowania zadania bez utraty wprowadzonych danych. Sesja kończy się, praca w toku — nie.

Czego wymaga kryterium

Jeśli uwierzytelniona sesja wygaśnie w trakcie zadania, użytkownik musi mieć możliwość ponownego uwierzytelnienia i wznowienia działania bez utraty wprowadzonych danych. Pola formularza pozostają wypełnione, koszyk zakupowy pozostaje pełny, niedokończony komentarz pozostaje wersją roboczą.

Jak spełnić kryterium

  • Należy zapisywać stan formularza na serwerze (lub w lokalnym magazynie danych z monitem o odtworzenie) przy każdej istotnej zmianie — nie tylko przy przesyłaniu.
  • Gdy sesja wygaśnie, należy zwrócić kod 401 do wywołania API, ale pozostawić użytkownika na tej samej stronie; zamiast pełnego przekierowania należy wyświetlić formularz logowania w obrębie strony.
  • Po pomyślnym ponownym uwierzytelnieniu należy powtórzyć pierwotną akcję z pierwotnym ładunkiem. Użytkownik nie powinien odczuć żadnej przerwy.
  • W przypadku wieloetapowych przepływów postęp należy śledzić po stronie serwera powiązanego z kontem użytkownika, a nie z tokenem sesji.

Typowe błędy

  • Przepływy transferu bankowego, gdzie wygaśnięcie sesji przenosi użytkownika na ekran logowania, a częściowo wypełniony formularz przelewu znika.
  • Systemy komentarzy, w których długa odpowiedź jest tracona przy przekierowaniu po ponownym uwierzytelnieniu — powszechne na Reddit, stronach informacyjnych i forach.
  • Wielostronicowe formularze rządowe, które tracą wszystkie wprowadzone dane po wygaśnięciu sesji i wymagają rozpoczęcia od strony pierwszej.
  • Przepływy zakupowe, w których koszyk przeżywa, ale dane dotyczące wysyłki i płatności muszą być wprowadzone ponownie.

Dlaczego to ma znaczenie

Kryterium dotyczy poszanowania wysiłku użytkownika. Ponowne wpisanie długiego formularza jest uciążliwe dla każdego; dla osoby korzystającej z czytnika ekranu, sterowania głosem lub przełącznika może oznaczać kolejne dwadzieścia do czterdziestu minut pracy — i jest często powodem rezygnacji. Większość komercyjnych serwisów nie spełnia jeszcze tego kryterium, ale aplikacje biurowe w chmurze (Google Docs, Office 365, nowoczesna bankowość) rozwiązały ten problem dzięki automatycznemu zapisywaniu i uwierzytelnianiu w tle.