Encodera

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.

Оглавление

Подписи и группы полей

Поле без подписи — загадка: непонятно, что в него вводить. В HTML подпись — не просто текст рядом с полем, а отдельный элемент <label>, связанный с полем. Связь даёт сразу две вещи: щелчок по подписи активирует поле, а программа чтения с экрана произносит подпись, когда пользователь попадает в поле.

Подпись через for и id

Атрибут for у <label> содержит id поля, к которому относится подпись:

<label for="email">Электронная почта</label>
<input type="email" id="email">

Щёлкните по словам «Электронная почта» — курсор встанет в поле.

Поле внутри подписи

Поле можно вложить прямо в <label>. Тогда связь возникает сама, и for с id не нужны:

<p><label>Имя <input type="text"></label></p>
<p><label>Город <input type="text"></label></p>

Оба способа правильные. Первый удобнее, когда подпись и поле стоят в разных местах разметки.

Подписи у флажков

Для флажков и переключателей подпись особенно важна: сам квадратик маленький, и попасть в него трудно. С <label> нажимать можно на весь текст:

<p><label><input type="checkbox"> Запомнить меня</label></p>
<p><label><input type="checkbox"> Согласен с условиями доставки</label></p>

Группа полей

<fieldset> объединяет связанные поля в группу, а <legend> — название группы. Браузер обводит группу рамкой:

<fieldset>
  <legend>Доставка</legend>
  <p><label>Улица <input type="text"></label></p>
  <p><label>Дом <input type="text"></label></p>
</fieldset>

Группа переключателей

Чаще всего <fieldset> нужен для переключателей: у каждого варианта своя подпись, а у всей группы — общий вопрос в <legend>:

<fieldset>
  <legend>Размер кофе</legend>
  <label><input type="radio" name="size" value="s"> Маленький</label>
  <label><input type="radio" name="size" value="m" checked> Средний</label>
  <label><input type="radio" name="size" value="l"> Большой</label>
</fieldset>

Программа чтения с экрана скажет «Размер кофе, Средний» — без <legend> человек услышал бы только «Средний» и не понял бы, о чём вопрос.

Отключённая группа

Атрибут disabled у <fieldset> выключает сразу все поля внутри: их нельзя изменить, и они не отправляются:

<fieldset disabled>
  <legend>Подарочная упаковка (нет в наличии)</legend>
  <label><input type="checkbox"> Упаковать в подарок</label>
</fieldset>

Частая ошибка

placeholder не заменяет подпись. Он исчезает, как только человек начал печатать, — и уже не вспомнить, что это было за поле. Многие программы чтения с экрана его не читают. Название поля пишите в <label>, а в placeholder — пример значения:

<label for="phone">Телефон</label>
<input type="tel" id="phone" placeholder="+1 202 555 0123">

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.