Перейти к содержимому
Все статьи
Интерфейсы 4 мин чтения

Форма заявки, которую удобно заполнить

Форма заявки — маленький интерфейс с большой ответственностью. Человек уже решил связаться, но ещё может остановиться из-за непонятного поля, ошибки или сомнения, что произошло после нажатия. Хорошая форма не требует объяснений рядом с каждой кнопкой. Она последовательно отвечает на три вопроса: что указать, зачем это нужно и что будет дальше.

Евгений Порывкин

Веб-разработчик

Начните с одного действия

Определите цель формы. Первичное знакомство, запись на встречу и оформление заказа — разные сценарии с разным объёмом информации. Для первого разговора не стоит собирать все данные, которые теоретически пригодятся в будущем. Каждый обязательный вопрос должен иметь понятное назначение.

Попросите команду закончить фразу: «Без этого поля мы не сможем…». Если убедительного продолжения нет, поле можно сделать необязательным или перенести в следующий этап. Это не обещание автоматического роста конверсии, а способ убрать необоснованные препятствия из сценария.

Дайте каждому полю постоянную подпись

Связывайте текстовую подпись label с конкретным input через for и id. Подсказка внутри поля может помогать с примером, но не должна быть единственным названием. После ввода она исчезает, а назначение поля должно оставаться понятным. Основы HTML-форм в MDN.

Сформулируйте подписи человеческим языком. «Как к вам обращаться» подходит для знакомства лучше, чем внутреннее название поля из базы. Обязательность показывайте заранее, а не только после ошибки. Для необязательного телефона полезно прямо написать, что его можно не указывать.

HTML · связанная подпись и поле
<label for="project-email">Email для ответа</label>
<input
  id="project-email"
  name="email"
  type="email"
  autocomplete="email"
  required
>

Пройдите форму без мыши

Проверьте переходы клавишей Tab, видимость фокуса и работу кнопки с клавиатуры. Визуальный порядок должен соответствовать последовательности действий. Не заменяйте обычную кнопку элементом div только ради внешнего вида: семантический HTML уже предоставляет полезное стандартное поведение. Доступность с клавиатуры.

Затем повторите проверку на телефоне. Удобно ли нажимать подписи, выбирать услугу, исправлять введённое значение? Не перекрывает ли клавиатура подсказку? Не требуйте идеального формата телефона там, где достаточно сохранить понятный номер и уточнить его при необходимости.

Ошибка должна подсказывать следующий шаг

Сообщение «некорректные данные» почти не помогает. Лучше назвать поле и ожидаемое исправление: например, проверить адрес электронной почты. Уже введённая информация не должна исчезать после одной ошибки. Человеку нужно продолжить действие, а не начинать весь процесс заново.

Отделяйте ошибку поля от технической проблемы отправки. В первом случае пользователь может исправить значение. Во втором — проблема не обязательно связана с его действиями. Сообщение должно честно объяснить ситуацию и предложить альтернативный способ связи, если он предусмотрен.

Покажите, что произошло после нажатия

Продумайте состояния отправки, успешного приёма и сбоя. Не объявляйте успех только потому, что человек нажал кнопку. В рабочем проекте подтверждение должно соответствовать результату обработки, иначе интерфейс создаёт ложное ощущение, что заявка уже у команды.

Для статического макета честнее отключить отправку и подписать демонстрационный режим. Это позволяет показать дизайн, не собирать сведения и не обещать несуществующий ответ. Отдельная страница благодарности тоже должна быть обозначена как пример, если она не связана с действующим процессом.

Проверьте сценарий целиком

Попросите человека, который не участвовал в разработке, заполнить форму по заданной ситуации. Не объясняйте заранее, что куда писать. Запишите вопросы и места остановки, затем исправьте наиболее заметные препятствия. Наблюдение здесь полезнее спора о любимом расположении кнопки.

В результате должна получиться не самая короткая форма любой ценой, а достаточная и понятная. Она собирает нужную информацию, объясняет обязательность, позволяет исправить ошибку и честно показывает итог. Именно эта последовательность делает небольшой интерфейс надёжным.

Для итоговой проверки удобно подготовить три истории. В первой человек всё вводит правильно. Во второй ошибается в адресе и исправляет его. В третьей данные заполнены верно, но отправка не завершается из-за технической проблемы. Во всех случаях спросите участника, что, по его мнению, произошло и какое действие доступно дальше. Если ответ расходится с реальным состоянием, уточните сообщение или расположение подсказки. Так вы проверяете не отдельный текст ошибки, а понимание ситуации целиком, включая момент, когда пользователь решает подождать, попробовать ещё раз или выбрать другой способ связи.

Конкретные решения проверяйте на задачах и ограничениях своего проекта.