Меню
Поиск

Сложные интерфейсы и данные · Формы

Как собрать понятную форму: подписи, лишние поля, пометки и тексты ошибок

Форма — это вопросы, на которые человек отвечает, чтобы сделать дело. В уроке разберём, почему подпись стоит над полем, а не внутри, как убрать лишние поля и обосновать оставшиеся, какие поля отмечать, где показывать ошибку и как написать, что исправить. Для практики — форма «Новый сорт» из админки «Лесной обжарки»: живые поля, два тренажёра и поиск ошибок в макете.

Пример для всего урока. Та же админка «Лесной обжарки», что и в уроке про таблицы. Обжарщик прислал новый сорт: описание, фото и цену. Контент-менеджер заводит его в каталог через форму «Новый сорт», а покупатели потом видят карточку на витрине. Эту форму вы и соберёте.

1Подпись над полем, а не внутри

Подпись над полем видна всё время. Серый текст внутри поля пропадает, как только человек начинает вводить, и вместе с ним пропадает вопрос.

Серый текст внутри пустого поля называют плейсхолдером. Его часто ставят вместо подписи: форма выглядит короче и чище.

Попробуйте сами: введите цену в оба поля. А потом посмотрите на первое и скажите, о чём оно спрашивало.

Живые поля · введите цену

Подсказка внутри поля

Подпись над полем

Как на витрине, например 890
В первом поле после ввода остаётся «890» — и уже не видно, цена это, вес в граммах или остаток на складе.

В Nielsen Norman Group насчитали семь причин не ставить подсказку внутри поля вместо подписи. Четыре из них:

  • человек держит вопрос в голове, пока вводит ответ, а отвлёкся — и вопроса уже не видно;
  • перед отправкой нельзя проверить, что куда вписано: подписей нет ни у одного заполненного поля;
  • когда появляется ошибка, подсказки о формате уже нет — непонятно, как исправить;
  • серый текст принимают за значение, которое форма подставила сама, и пропускают поле.

Подпись и доступность

Там же — про доступность:

  • бледный серый текст плохо виден;
  • людям с когнитивными и двигательными нарушениями подсказка вместо подписи добавляет работы;
  • экранные дикторы читают её не всегда.

В WCAG 2.2 у поля, куда человек вводит данные, должна быть подпись или инструкция. Это критерий 3.3.2, уровень A, самый базовый.

Подсказка внутри поля с этим не справляется: после ввода её не видно.

Подпись — над полем и видна всегда. Пример и формат — подсказкой под подписью, а не внутри поля: подсказка под подписью тоже не исчезает.

Подпись можно поставить и слева от поля — так делают в широких формах настроек. Но на телефоне места слева нет, и подпись всё равно уезжает наверх. Подпись над полем работает на любой ширине, поэтому с неё и начинают.

Иногда в её пользу приводят исследование Google, где подписи над полями «победили». Илья Бирман в «Советах» Бюро Горбунова разбирает, что в улучшенной форме тогда поменяли сразу и подписи, и поля, и кнопки. Так что про подписи оно ничего не доказывает, а довод про ширину экрана проще и надёжнее.

2Каждое поле — с причиной

Каждое поле — это вопрос, на который человеку надо ответить. Поле без причины отнимает время и даёт ещё один повод ошибиться.

Первую версию формы «Новый сорт» собрали разработчики, и в неё попали все поля из базы — восемнадцать. Контент-менеджер заполняет её несколько раз в неделю, на каждый новый сорт. Лишнее поле он заполняет столько же раз.

Лишние поля — не особенность админок. Baymard Institute в 2024 году насчитал в оформлении заказа интернет-магазинов в среднем 11,3 поля, хотя большинству магазинов хватило бы восьми.

Три вопроса к каждому полю

Про каждое поле задайте три вопроса:

  1. Что сломается без него? Если ничего — поле лишнее.
  2. Может ли система узнать это сама? Артикул, дату добавления и автора она знает лучше человека.
  3. Нужно ли это сейчас? Скидку ставят, когда начинается акция, а не когда сорт появляется в каталоге. Такое поле переезжает в другую форму или на другой шаг.

Проверьте себя

Восемь полей из первой версии формы. Оставить, убрать или спросить позже?

Тренажёр · оставить, убрать или спросить позже
  1. Название сорта: «Эфиопия Иргачеффе».

  2. Артикул товара.

  3. Цена за пачку.

  4. Старая цена — та, что будет перечёркнута.

  5. Дата добавления в каталог.

  6. Степень обжарки: светлая, средняя, тёмная.

  7. SEO-заголовок страницы сорта.

  8. Остаток на складе, пачек.

Убрать — значит, ответ знает система. Спросить позже — значит, ответ понадобится в другом деле.

Что осталось

После разбора из восемнадцати полей осталось девять: название, страна, обработка зерна, степень обжарки, вес пачки, цена, описание, фото и отметка «Новинка». Для каждого можно сказать, что без него сломается.

ПолеЧто сломается без него
НазваниеСорт не найти ни покупателю, ни сотрудникам
СтранаНе работает фильтр «Страна» в каталоге
Обработка зернаНе работает фильтр «Обработка», а покупатель выбирает по вкусу
Степень обжаркиНе работает фильтр «Обжарка»
Вес пачкиСклад не знает, какую упаковку брать; цену не с чем сравнить
ЦенаСорт нельзя продать
ФотоКарточка на витрине пустая — такие не покупают
ОписаниеПокупатель не узнает вкус. Сорт можно выставить и без описания, но продаётся он хуже
Отметка «Новинка»Сорт не попадает в подборку новинок на главной

Если поле правда нужно, но человек может не понять зачем, объясните это в подсказке. Максим Ильяхов в «Советах» Бюро Горбунова показывает, как объяснение пользы работает лучше сухого «необходимо ввести». И советует спрашивать данные тогда, когда они понадобились, а не все сразу.

Для каждого поля назовите, что сломается без него. Не назвали — поле убирают. Ответ знает система — тоже убирают. Ответ понадобится позже — поле переезжает туда, где он нужен.

3Какие поля отмечать

Человек должен понять, без чего форма не сохранится, до того как нажмёт кнопку, а не после. Для этого поля отмечают — и выбирают, что именно.

В новой форме обязательных полей семь из девяти: без названия, страны, обработки, обжарки, веса, цены и фото сорт не выставить на витрину. Необязательных два: описание и отметка «Новинка».

Форма «Новый сорт» · пометки

Звёздочки у обязательных

Название * Страна * Вес пачки, г * Цена за пачку, ₽ * Описание … и ещё три поля со звёздочкой и одно без * — обязательные поля
Звёздочки у обязательныхСемь звёздочек из девяти полей. Поле без звёздочки среди них выглядит так, будто его просто забыли отметить, а не нарочно оставили необязательным.

Слово у необязательных

Название Страна Вес пачки, г Цена за пачку, ₽ Описание (необязательно) … и ещё три поля без пометки и одно с ней
Слово у необязательныхДве пометки на девять полей, и обе понятны без расшифровки. Всё, что не помечено, нужно заполнить.
Отмечают то, чего меньше: пометка, которая стоит почти у всех полей, перестаёт что-то сообщать.

Слово или звёздочка

Здесь руководства расходятся.

GOV.UK Design System: необязательные поля помечать словом «(optional)», а обязательные звёздочкой не отмечать никогда.

Ралука Будиу из Nielsen Norman Group спорит именно с этим. Звёздочку, по её словам, ставят у каждого обязательного поля, даже если таких большинство: она занимает мало места и её все узнают.

Пометка только у необязательных, считает Будиу, заставляет человека угадывать. А объяснение над формой не спасает: инструкции над формой не читают.

Урок держится правила GOV.UK: слово «необязательно» понятно без расшифровки и стоит там, где нужно, — у самого поля.

Артём Горбунов в «Советах» Бюро Горбунова приходит к тому же с другой стороны. Необязательное поле лучше убрать или объяснить, что даст его заполнение, — и тогда отмечать приходится именно его.

Если в вашем продукте приняты звёздочки, ставьте их у каждого обязательного поля, как советует Будиу.

Отмечайте одним способом на весь продукт. Слово «необязательно» у необязательных полей понятно без расшифровки. Если в продукте приняты звёздочки — они стоят у каждого обязательного поля. В одной форме два способа не смешивают.

Если необязательных полей набралось много, это повод вернуться к прошлому разделу: может быть, часть из них не нужна вовсе.

4Где показывать ошибку

Ошибку показывают у того поля, в котором она случилась, и словами. Общее сообщение сверху без пометки у поля заставляет перечитывать всю форму.

Контент-менеджер заполнил форму и нажал «Добавить сорт». В двух полях форма нашла ошибку: вес вписан в килограммах, а цена не указана.

Вот три способа об этом сказать.

Форма «Новый сорт» · после нажатия «Добавить сорт»

Только сверху

Форма заполнена с ошибкамиПроверьте данные и попробуйте снова. НазваниеЭфиопия Иргачеффе Вес пачки, г0,25 Цена за пачку, ₽
Только сверхуЧто-то не так, но что и где — неизвестно. Человек перечитывает каждое поле и угадывает. В длинной форме сообщение сверху ещё и не видно, если ошибка внизу.

Только цветом

НазваниеЭфиопия Иргачеффе Вес пачки, г0,25 Цена за пачку, ₽
Только цветомВидно где, но не видно что: почему вес «0,25» не подошёл? Человек, который не различает красный, не увидит и этого. Экранный диктор рамку не прочтёт вовсе.

У поля и сводка

Проверьте два поля
  • Вес пачки — в граммах, от 100 до 1000
  • Введите цену за пачку
НазваниеЭфиопия Иргачеффе Вес пачки, гВес пачки — в граммах, от 100 до 10000,25 Цена за пачку, ₽Введите цену за пачку
У поля и сводкаУ каждого поля словами сказано, что не так. Сводка сверху перечисляет ошибки и в настоящей форме ведёт ссылкой к полю — это нужно в длинной форме, где до ошибки надо листать. В короткой хватит ошибок у полей.
Цвет и толстая рамка помогают заметить ошибку, а объясняет её только текст.

Требование доступности здесь такое же простое, как с подписями. По WCAG 2.2 ошибку, которую форма нашла сама, надо обозначить и описать текстом — критерий 3.3.1, уровень A.

Красная рамка без слов этому не отвечает. В Nielsen Norman Group к этому добавляют: показывайте ошибку рядом с тем местом, где она случилась.

Сводка ошибок над формой

Её предлагает GOV.UK Design System. Сводка перечисляет ошибки тем же текстом, что у полей, и ведёт ссылками к полям.

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

Ошибка — у поля и словами. Цветом и рамкой её выделяют, но не объясняют. В длинной форме над ней — сводка со ссылками на поля.

Сообщение об ошибке ставят между подписью и полем или сразу под полем — главное, одинаково во всей форме. В GOV.UK его ставят под подписью и подсказкой, над полем. У такого места есть и практический плюс: ошибку не закроет выпадающий список или клавиатура телефона.

5Текст ошибки: что не так и что сделать

Хорошая ошибка отвечает на два вопроса: что не так с этим полем и что вписать, чтобы стало так.

«Неверный формат» говорит только, что форма недовольна.

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

БылоСталоЧто изменилось
Поле обязательно для заполненияВведите цену за пачкуСказано, какое поле и что сделать
Неверный форматВведите цену только цифрамиСказано, чего ждут. Пример уже стоит в подсказке, в ошибке его не повторяют
Недопустимое значениеВес пачки — в граммах, от 100 до 1000Названы единицы и границы
Вы не выбрали странуВыберите странуБез упрёка: сразу что сделать
Ошибка загрузки файлаФото больше 10 МБ. Уменьшите его или выберите другоеНазвана причина и два выхода
Объект с таким именем уже существуетСорт «Кения АА» уже есть в каталоге. Откройте его или назовите новый иначеСлова человека вместо слов базы данных

Так пишут ошибки в GOV.UK Design System: текст говорит, что случилось и как это исправить, простыми словами и по делу.

Там же список того, чего в ошибках не бывает:

  • технических кодов;
  • «недопустимо» и «запрещено»;
  • «вы забыли»;
  • «пожалуйста» — будто можно и не исправлять;
  • «извините» — оно ничего не исправляет;
  • «верный» и «неверный» — они ничего не добавляют.

В Nielsen Norman Group добавляют: не вините человека и предлагайте выход, а не только называйте сбой.

Пример в тексте ошибки нужен, если его нет рядом. Если подсказка под подписью уже говорит «например, 890», в GOV.UK советуют не повторять пример в ошибке.

Проверьте себя

Восемь текстов ошибок из формы «Новый сорт». Что не так с каждым?

Тренажёр · что не так с текстом ошибки
  1. «Неверный формат» под полем «Цена».

  2. «Вы ввели неправильную цену».

  3. «Выберите степень обжарки».

  4. «Ошибка 422».

  5. «Вы забыли загрузить фото!»

  6. «Вес пачки — в граммах, от 100 до 1000».

  7. «Поле заполнено некорректно».

  8. «Сорт «Кения АА» уже есть в каталоге. Откройте его или назовите новый иначе».

Проверка простая: прочтите ошибку человеку, который не видит форму. Если он может сказать, что вписать, — текст годится.
В тексте ошибки — что не так и что сделать. Название поля или значения, ожидаемый формат, пример или границы. Без кодов, без «некорректно» и без упрёков.

6Найдите ошибки в форме «Новый сорт»

Макет формы, который новый дизайнер принёс на обсуждение, — сразу в состоянии после нажатия кнопки. Пять мест в нём мешают контент-менеджеру.

Нажимайте на куски формы, которые вы бы переделали. В разборе будет, что с ними не так. Нормальные куски тоже можно нажать.

Макет формы · найдите ошибки

Новый сорт

НазваниеКак на витрине: страна и регионКолумбия Уила СтранаВыберите Степень обжаркиСветлаяСредняяТёмная Вес пачки, гНеверный формат0,25 890 Артикул *Например, LO-0142 Описание (необязательно) Фото пачкиJPG или PNG, до 10 МБВыбрать файл Очистить формуДобавить сорт
  1. Поле «Название» с подсказкой под подписью.Оставить. Подпись видна, а подсказка под ней объясняет, как назвать сорт, и не исчезает при вводе.
  2. Красная рамка у «Страны» без текста.Дописать. Видно, что поле не понравилось форме, но не сказано чем. Под рамкой нужен текст: «Выберите страну».
  3. Три варианта обжарки видны сразу.Оставить. Вариантов всего три — их удобнее видеть сразу, чем открывать список.
  4. Ошибка «Неверный формат» у веса.Переписать. Человек вписал «0,25», думая в килограммах. Нужно сказать, чего ждёт поле: «Вес пачки — в граммах, от 100 до 1000».
  5. Поле с числом 890 без подписи.Переделать. Подпись была подсказкой внутри поля и пропала при вводе. Теперь не понять, что значит 890. Подпись «Цена за пачку, ₽» — над полем.
  6. Обязательное поле «Артикул».Убрать. Артикул система присваивает сама. Подсказка «Например, LO-0142» к тому же написана внутри поля.
  7. Пометка «(необязательно)» у описания.Оставить. Необязательных полей в форме меньше, их и отмечают — словом, понятным без расшифровки.
  8. Подсказка «JPG или PNG, до 10 МБ» у фото.Оставить. Ограничения сказаны до загрузки, а не в ошибке после неё.
  9. Кнопка «Очистить форму» рядом с «Добавить сорт».Убрать. Один промах — и всё введённое пропало. Начать заново человек может и без кнопки: закрыть форму. В Nielsen Norman Group это один из десяти главных советов по формам: не ставить кнопки «Сбросить» и «Очистить».
  10. Кнопка «Добавить сорт».Оставить. На кнопке — что произойдёт, глаголом и предметом, а не безликое «Отправить».

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

Нормальные куски тоже можно нажать: вы прочитаете, почему там всё в порядке, а счётчик «Найдено» не изменится.
Проверяйте форму в состоянии с ошибками. Пустая аккуратная форма скрывает главные проблемы: подписи-подсказки пропадают при вводе, а тексты ошибок появляются только после кнопки.

7Задание

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

Часть 1 · Сократить, 20 минут

  1. Выберите форму, которую заполняют часто: заявка, регистрация, карточка товара, новый клиент. Если своего продукта нет, возьмите форму «Новый сорт» из урока в первой версии на восемнадцать полей.
  2. Выпишите все поля и у каждого — что сломается без него.
  3. Разложите поля: оставить, убрать, потому что знает система, или спросить позже, в другом деле.
  4. Решите, что отмечать: обязательных больше — отмечайте необязательные.
Поля и ошибки · заполните перед макетом
ФОРМА: ______________________        Дата: __.__.____
КТО ЗАПОЛНЯЕТ: ______________________
КАК ЧАСТО: ______________________

ПОЛЯ
поле ____________  что сломается без него ____________  оставить / убрать / позже
поле ____________  что сломается без него ____________  оставить / убрать / позже
поле ____________  что сломается без него ____________  оставить / убрать / позже

БЫЛО ПОЛЕЙ: ____   СТАЛО: ____
ОТМЕЧАЕМ: обязательные / необязательные — почему: ______________________

ОШИБКИ
поле ____________  когда ____________
  было: ______________________
  стало: ______________________
поле ____________  когда ____________
  было: ______________________
  стало: ______________________
В строке «стало» должно быть, что вписать. Нет — текст ещё не готов.

Часть 2 · Нарисовать, 40 минут

  1. Соберите форму с подписями над полями. Пример и формат — подсказкой под подписью.
  2. Отметьте поля выбранным способом — одним на всю форму.
  3. Нарисуйте второй экран — форму после нажатия кнопки, с двумя–тремя ошибками у полей.
  4. Если форма длиннее одного экрана, добавьте сводку ошибок над ней.

Часть 3 · Проверить, 10 минут

  1. Прочтите каждую ошибку вслух человеку, который не видит форму. Если он не может сказать, что вписать, — перепишите.
  2. Заполните форму на макете до конца и посмотрите на неё: про каждое заполненное поле видно, что в нём?
Как понять, что задание выполнено. По каждому оставшемуся полю можно сказать, зачем оно и что сломается без него.

Что должно получиться

  • Два экрана формы: до отправки и после, с ошибками у полей.
  • Список полей с причиной у каждого: было столько-то, стало столько-то.
  • Список ошибок: было — стало.

План работы: 20 минут на поля, 40 на макет, 10 на проверку. Всего — чуть больше часа.

Частые сложности

  • «Все поля нужны, так сказал заказчик». Спросите, что он сделает с ответом. Поле, на которое не нашлось дела, заказчик отдаст сам.
  • «Без подсказки внутри форма выглядит пустой». Пустое поле с подписью над ним понятнее серого текста. Пример можно дать подсказкой под подписью.
  • «Не знаю, какие ошибки бывают». Для каждого поля спросите: что будет, если его оставить пустым, вписать не то или вписать слишком много? Это и есть ошибки.
  • «Разработчики показывают ошибки, которые возвращает сервер». Попросите список кодов и напишите человеческий текст для каждого. Код останется в журнале, а человек увидит, что делать.

8Чек-лист и ошибки

Форма готова, если

  • У каждого поля есть подпись над ним, и она видна, когда поле заполнено
  • Пример и формат — подсказкой под подписью, а не внутри поля
  • Для каждого поля названо, что сломается без него
  • В форме нет полей, которые система знает сама
  • Отмечено то, чего меньше, и одним способом
  • Ошибка стоит у своего поля и написана словами
  • В тексте ошибки сказано, что вписать
  • В длинной форме над полями есть сводка ошибок

Что мешает

  • Подпись внутри поля. Пропадает при вводе, и заполненную форму не проверить.
  • Все поля базы в форме. Каждое лишнее поле заполняют каждый раз.
  • Звёздочки почти у всех полей. Пометка перестаёт что-то сообщать.
  • Ошибка только цветом. Видно где, не видно что.
  • «Неверный формат». Непонятно, что вписать.

9Три ступени темы

В этом уроке учимся собирать короткую понятную форму. На следующих ступенях — делать длинные формы, которые можно бросить и продолжить, а потом сводить все формы продукта к общим правилам.

СтупеньЧто нужно уметьКак проверить результат
Junior — этот урок Ставить подпись над полем; убирать лишние поля и обосновывать оставшиеся; отмечать то, чего меньше; показывать ошибку у поля и словами; писать, что исправить По каждому оставшемуся полю можно сказать, зачем оно и что сломается без него
Middle Разводить подпись, подсказку и текст ошибки; выбирать момент проверки; разбивать длинную форму на шаги по смыслу; сохранять черновик; продумывать ошибку отправки Можно закрыть вкладку на середине, вернуться и продолжить с того же места
Senior Задавать единый момент проверки; собирать словарь ошибок; описывать порядок полей и поведение кнопки отправки; проверять новые формы по правилам Одна и та же ошибка во всех формах продукта звучит одинаково
Ориентир по этой теме: про любое поле своей формы вы можете сказать, зачем оно, и про любую ошибку — что человек сделает, когда её прочтёт.

Что почитать дальше

  • Исследование Гугля: пользователям легче читать, когда подписи над полямиСоветы Бюро Горбунова, Илья Бирман, 2018 · на русском · бесплатноБирман разбирает исследование Google с ай-трекингом: в «улучшенной» форме поменяли сразу и подписи, и длину полей, и кнопки, так что вывод о подписях не доказан. Короткий совет 2018 года о положении подписи, а не о подсказке внутри поля.
  • Хотелось бы разобраться с вопросом выделения обязательных полей на формеСоветы Бюро Горбунова, Артём Горбунов, 2010 · на русском · бесплатноГорбунов отвечает, как помечать обязательные поля: необязательное поле лучше убрать или объяснить, что даст его заполнение, — и поэтому пометка нужна скорее необязательным. Совет 2010 года, примеры из веба тех лет.
  • Как сформулировать просьбу заполнить поля, чтобы люди вводили настоящие данные?Советы Бюро Горбунова, Максим Ильяхов, 2014 · на русском · бесплатноИльяхов на шести парах подписей показывает, как объяснение пользы заменяет сухое «Необходимо ввести паспортные данные», и предлагает спрашивать данные тогда, когда они нужны. Совет 2014 года про формы для клиентов.
  • Placeholders in Form Fields Are HarmfulNielsen Norman Group, Кэти Шервин · на английском · бесплатноСемь причин, почему подсказка внутри поля вместо подписи мешает: память, проверка перед отправкой, исправление ошибок, клавиатура, доступность. Отдельно разобраны «плавающие подписи». Статья 2014 года, пересмотрена в 2018.
  • Marking Required Fields in FormsNielsen Norman Group, Ралука Будиу · на английском · бесплатноРалука Будиу спорит с правилом урока: отмечать звёздочкой каждое обязательное поле, даже если их большинство, а «optional» — по желанию. Объясняет, почему инструкцию над формой не читают и почему метка только у необязательных заставляет угадывать.
  • Error messageGOV.UK Design System · на английском · бесплатноРуководство GOV.UK по тексту ошибки: где ставить сообщение, каких слов в нём не бывает («please», «invalid», «you forgot»), когда писать инструкцию, а когда описание, почему не повторять пример и не очищать поля. Примеры из британских госуслуг.