Funkcjonalność · Poziom A

2.2.1 Możliwość dostosowania czasu

Limit czasu nie powinien zabierać użytkownikowi kontroli nad zadaniem.

Krótko

Jeśli strona narzuca limit czasu, użytkownik musi móc go wyłączyć, dostosować albo przed końcem łatwo wydłużyć, chyba że działa jeden z wyjątków WCAG.

Problem w praktyce

Użytkownik wypełnia długi wniosek. Po 10 minutach sesja wygasa, a dane z formularza znikają. Osoba, która potrzebuje więcej czasu na czytanie, pisanie albo obsługę technologii wspomagającej, traci pracę i musi zaczynać od początku.

To kryterium nie dotyczy jakości walidacji pól. Chodzi o sam limit czasu i o to, czy użytkownik ma nad nim kontrolę.

Kogo to dotyczy

  • Osób z trudnościami ruchowymi, które wpisują dane wolniej.
  • Osób niewidomych korzystających z czytnika ekranu.
  • Osób słabowidzących, które potrzebują czasu na powiększenie i odczyt treści.
  • Osób z trudnościami poznawczymi, językowymi albo pamięciowymi.

Dobry przykład

  • Przed rozpoczęciem formularza użytkownik może wybrać dłuższy czas sesji.
  • System ostrzega przed wygaśnięciem i daje co najmniej 20 sekund na proste wydłużenie.
  • Limit można wyłączyć, jeśli nie jest niezbędny.
  • Po wydłużeniu użytkownik wraca dokładnie do tego samego stanu formularza.

Zły przykład

  • Sesja wygasa bez ostrzeżenia.
  • Ostrzeżenie znika po kilku sekundach i nie da się go obsłużyć klawiaturą.
  • Przycisk „Przedłuż sesję” pojawia się za późno albo jest trudny do znalezienia.
  • Po czasie formularz kasuje dane, choć limit nie był istotą zadania.

Przykłady kodu

Dobry przykład: ostrzeżenie i wydłużenie

Użytkownik dostaje jasny komunikat i prostą akcję.

Kod — HTML

<section class="session-warning">
  <h2>Sesja wkrótce wygaśnie</h2>
  <p>Masz jeszcze 2 minuty. Możesz wydłużyć czas pracy.</p>
  <button type="button">Wydłuż czas sesji</button>
</section>

Dobry przykład: ustawienie przed rozpoczęciem

Użytkownik może poprosić o dłuższy limit przed wejściem w proces.

Kod — HTML

<label>
  <input type="checkbox" name="long-session">
  Potrzebuję więcej czasu na wypełnienie formularza
</label>

Zły przykład: automatyczne przekierowanie po czasie

Meta refresh tworzy limit czasu bez kontroli użytkownika.

Kod — HTML

<meta http-equiv="refresh" content="300;url=/wylogowano">

Przykład graficzny

Źle

00:00 → wylogowanie

Brak ostrzeżenia, brak wydłużenia, utrata pracy.

Dobrze

02:00 → „Wydłuż czas sesji”

Użytkownik może zareagować prostą akcją.

Schemat pokazuje, że limit czasu musi być przewidywalny i możliwy do kontrolowania, jeśli nie jest niezbędny.

Jak sprawdzić

  1. Znajdź formularze, sesje logowania, koszyki, testy i procesy z czasem na wykonanie zadania.
  2. Sprawdź, czy limit czasu jest ustawiony przez treść lub aplikację.
  3. Ustal, czy użytkownik może wyłączyć, dostosować albo wydłużyć limit.
  4. Przetestuj ostrzeżenie: czy pojawia się przed końcem i da się je obsłużyć klawiaturą.
  5. Sprawdź, czy po wydłużeniu dane i miejsce w procesie zostają zachowane.

Co sprawdzi automat, a czego nie

Automat może wykryć

  • meta refresh z opóźnieniem,
  • część automatycznych przekierowań i odświeżeń,
  • skrypty z licznikami czasu.

Automat nie oceni pewnie

  • czy limit jest niezbędny,
  • czy użytkownik realnie ma dość czasu na wydłużenie,
  • czy po wydłużeniu system zachowuje stan zadania.

Typowe błędy

  • Automatyczne wylogowanie bez ostrzeżenia.
  • Ostrzeżenie o końcu czasu dostępne tylko wizualnie.
  • Limit w formularzu rekrutacyjnym bez możliwości wydłużenia.
  • Odświeżanie strony po czasie i utrata wpisanych danych.