Jak powiązać label z inputem w formularzu?
Każdy natywny input, select i textarea powinien mieć dostępną nazwę wynikającą z widocznej etykiety. Najprostszy i najstabilniejszy mechanizm to label[for] + id.
Kiedy stosować
Stosuj dla pojedynczych pól formularza. Dla grup checkbox/radio używaj dodatkowo fieldset i legend, bo etykieta pojedynczego pola nie opisuje całej grupy.
Wdrożenie
- Nadaj polu unikalny id w obrębie dokumentu.
- Ustaw label for na dokładnie tę samą wartość co id pola.
- W React użyj htmlFor zamiast for.
- Zostaw placeholder jako przykład formatu, nie jako jedyną etykietę.
<label for="email">Adres e-mail</label>
<input id="email" name="email" type="email" autocomplete="email"><span>Adres e-mail</span>
<input name="email" type="email" placeholder="Adres e-mail">Checklista testowa
- Kliknięcie etykiety ustawia fokus w polu.
- Czytnik ekranu odczytuje nazwę pola razem z typem kontrolki.
- Nie ma zduplikowanych id w formularzu.
- Test axe nie zgłasza reguł label, label-title-only ani aria-input-field-name dla tego pola.