Funkcjonalność · Poziom A

2.2.1 Możliwość dostosowania czasu

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

Występuje w: WCAG 2.0, WCAG 2.1 i WCAG 2.2.

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.