Zrozumiałość · Poziom A

3.3.1 Identyfikacja błędu

Błędy i walidacja muszą być jasno wskazane i opisane tekstem, a nie tylko wizualnie, na przykład kolorem albo podświetleniem.

Krótko

Jeśli użytkownik popełni błąd w formularzu, strona musi jasno wskazać, gdzie jest błąd i na czym polega.

Problem w praktyce

Użytkownik wysyła formularz, ale coś jest nie tak. Jeśli strona pokazuje tylko komunikat „formularz zawiera błędy” albo zaznacza pole samym kolorem, użytkownik może nie wiedzieć, które pole poprawić i co dokładnie jest błędne.

W praktyce osoba może wrócić na formularz po wysłaniu i nie zauważyć błędu, zwłaszcza gdy komunikat jest poza aktualnym widokiem, znika po chwili albo nie jest powiązany z polem.

Kogo to dotyczy?

  • Osób niewidomych korzystających z czytników ekranu, które potrzebują tekstowej informacji o błędzie.
  • Osób słabowidzących, dla których sam kolor albo cienkie obramowanie może być niewystarczające.
  • Osób z trudnościami poznawczymi, które potrzebują jasnego wskazania problemu.
  • Osób korzystających z klawiatury, które przechodzą przez formularz pole po polu.
  • Osób w stresie, pośpiechu albo na urządzeniach mobilnych, gdzie łatwo przeoczyć komunikat.

Dobry przykład

  • Przy polu e-mail pojawia się tekst „Wpisz adres e-mail w formacie nazwa@example.com”.
  • Przy wymaganym polu pojawia się tekst „To pole jest wymagane”.
  • Na początku formularza pojawia się podsumowanie błędów z linkami do pól.
  • Błędne pole ma komunikat tekstowy połączony z polem.
  • Błąd nie jest sygnalizowany wyłącznie kolorem.

Zły przykład

  • Komunikat „Błąd formularza” bez wskazania pola.
  • Czerwone obramowanie bez tekstu.
  • Komunikat znika po chwili.
  • Błąd pojawia się tylko jako placeholder.
  • Czytnik ekranu nie ma informacji, które pole jest błędne.
  • Użytkownik trafia z powrotem na formularz, ale nie wie, co poprawić.

Przykłady kodu

Pole z komunikatem błędu po walidacji

Pole ma etykietę, tekstowy komunikat błędu i relację między polem a komunikatem.

Kod — HTML

<label for="email">Adres e-mail</label>
<input
  id="email"
  name="email"
  type="email"
  aria-describedby="email-error"
  aria-invalid="true"
>
<p id="email-error">
  Wpisz adres e-mail w formacie nazwa@example.com.
</p>

Jak to działa

label identyfikuje pole. aria-describedby łączy pole z komunikatem błędu. aria-invalid="true" oznacza, że wartość jest błędna, ale sam atrybut nie wystarczy: użytkownik potrzebuje jeszcze tekstu błędu.

Podsumowanie błędów nad formularzem

W dłuższych formularzach podsumowanie pomaga szybko znaleźć błędy i przejść do konkretnych pól.

Kod — HTML

<div class="form-error-summary">
  <h2>Popraw błędy w formularzu</h2>
  <ul>
    <li>
      <a href="#email">Adres e-mail: wpisz adres w formacie nazwa@example.com.</a>
    </li>
    <li>
      <a href="#phone">Telefon: wpisz 9 cyfr bez spacji.</a>
    </li>
  </ul>
</div>

Jak to działa

Podsumowanie wskazuje, które pola są błędne. Linki prowadzą do konkretnych pól, co jest szczególnie przydatne w długich formularzach.

Zły przykład: sam kolor

Samo czerwone obramowanie nie wystarcza. Użytkownik musi dostać tekstową informację, że pole zawiera błąd i jaki to błąd.

Kod — HTML

<label for="name">Imię</label>
<input
  id="name"
  name="name"
  class="error"
>

Jak to działa

Kolor może wspierać komunikat, ale nie może być jedyną informacją o błędzie.

Przykład graficzny

To jest statyczna makieta edukacyjna, a nie działający formularz. Pokazuje różnicę między błędnym i poprawnym sposobem prezentowania błędów.

Źle

Adres e-mail anna.example.com

Widać tylko czerwone obramowanie. Brakuje tekstu, który mówi, na czym polega błąd.

Dobrze

Adres e-mail anna.example.com Wpisz adres e-mail w formacie nazwa@example.com.

Statyczne demo pokazuje różnicę między samym kolorem a tekstowym wskazaniem błędu przy konkretnym polu.

Jak sprawdzić?

  1. Wypełnij formularz błędnymi danymi albo zostaw wymagane pola puste.
  2. Wyślij formularz.
  3. Sprawdź, czy strona wskazuje konkretne pola z błędami.
  4. Sprawdź, czy każdy błąd ma tekstowy opis.
  5. Sprawdź, czy informacja o błędzie nie jest przekazana wyłącznie kolorem.
  6. Sprawdź, czy komunikat błędu jest blisko pola albo połączony z polem programistycznie.
  7. Przejdź po formularzu klawiaturą.
  8. Uruchom czytnik ekranu, np. NVDA albo VoiceOver.
  9. Sprawdź, czy użytkownik słyszy etykietę pola i komunikat błędu.
  10. W dłuższym formularzu sprawdź, czy jest podsumowanie błędów z linkami do pól.

Co sprawdzi automat, a czego nie?

Automat może wykryć

  • Pola bez etykiet.
  • Część niepoprawnych relacji aria-describedby.
  • Niektóre problemy z aria-invalid.
  • Część problemów kontrastu komunikatów.
  • Niektóre błędy struktury formularza.

Automat nie oceni pewnie

  • Czy komunikat błędu jest zrozumiały.
  • Czy wskazuje dokładnie problem.
  • Czy użytkownik wie, co poprawić.
  • Czy błąd jest pokazany w dobrym momencie.
  • Czy cały proces walidacji jest logiczny.
  • Czy osoba korzystająca z czytnika ekranu faktycznie zrozumie sytuację.

Typowe błędy

  • Komunikat „Wystąpił błąd” bez wskazania pola.
  • Czerwony kolor jako jedyna informacja o błędzie.
  • Brak powiązania komunikatu z polem formularza.
  • Błędy widoczne tylko po najechaniu myszą.
  • Błędy ukryte poza aktualnym widokiem.
  • Brak podsumowania błędów w długich formularzach.
  • Placeholder używany jako jedyna instrukcja.
  • Komunikaty techniczne, np. „invalid input” albo „wrong value”.

Powiązane kryteria

Źródła