Правила создания качественных форм

Самые распространённые ошибки дизайна и способы их исправления. Перевод статьи от Эндрю Койла.

В закладки

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

Формы должны идти столбцом

Несколько столбцов нарушают вертикальный импульс пользователя.

Заголовки — строго сверху

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

Группируйте заголовки с полями ввода

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

Долой CapsLock

Текст, написанный только заглавными буквами, сложнее считывается и воспринимается.

Покажите все варианты, если их меньше шести

Размещение вариантов в раскрывающемся списке требует двух кликов мыши и скрывает варианты. Используйте селектор, если вариантов больше пяти. Включите контекстный поиск в раскрывающемся списке, если вариантов больше 25.

Не используйте текст-заполнитель в качестве заголовка

Заманчиво оптимизировать пространство, используя в качестве меток текст-заполнитель. Это вызывает много проблем с UX, которые обобщила Кэти Шервин из Nielsen Norman Group.

Ставьте флажки друг над другом

Никакого дополнительного текста, так просто легче искать.

Делайте кнопки описательными

Призыв к действию должен излагать намерение.

Указывайте на ошибки

Покажите пользователю, где произошла ошибка, и укажите причину.

Используйте встроенную проверку после того, как пользователь заполняет поле

Не используйте встроенную проверку, пока пользователь печатает, если это не помогает ему, как в случае создания пароля, имени пользователя или сообщения с количеством символов.

Не скрывайте основной вспомогательный текст

Выставляйте основной вспомогательный текст везде, где это возможно. Для сложного вспомогательного текста рассмотрите возможность размещения его рядом со вводом во время выделенного состояния.

Отделяйте первичное действие от вторичного

Существует большая философская дискуссия о том, следует ли вообще включать вторичный вариант.

Используйте длину поля как ориентир

Длина поля задаёт длину ответа. Используйте это для полей с определённым количеством символов, таких как номера телефонов или почтовые индексы.

Забудьте про «*» и обозначьте необязательные поля

Пользователи не всегда понимают, что подразумевается под обязательным маркером поля «*». Вместо этого лучше обозначить необязательные поля.

Группируйте информацию

Длинные формы подавляют. Если есть логические группы, пользователь будет быстрее понимать смысл формы.

Зачем

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

У меня, кстати, есть Telegram-канал, где я регулярно выкладываю другие переводы статей, интервью с дизайнерами и полезные инструменты для работы.

#ux

Материал опубликован пользователем.
Нажмите кнопку «Написать», чтобы поделиться мнением или рассказать о своём проекте.

Написать
{ "author_name": "Знаешь Первый", "author_type": "self", "tags": ["ux"], "comments": 7, "likes": 24, "favorites": 159, "is_advertisement": false, "subsite_label": "design", "id": 87091, "is_wide": true, "is_ugc": true, "date": "Tue, 08 Oct 2019 15:35:07 +0300", "is_special": false }
0
{ "id": 87091, "author_id": 372723, "diff_limit": 1000, "urls": {"diff":"\/comments\/87091\/get","add":"\/comments\/87091\/add","edit":"\/comments\/edit","remove":"\/admin\/comments\/remove","pin":"\/admin\/comments\/pin","get4edit":"\/comments\/get4edit","complain":"\/comments\/complain","load_more":"\/comments\/loading\/87091"}, "attach_limit": 2, "max_comment_text_length": 5000, "subsite_id": 199114, "last_count_and_date": null }
7 комментариев
Популярные
По порядку
Написать комментарий...
13

Как же меня раздражают дизайнеры, которые подгоняют контент-заглушку под свой макет, чтобы было красивенько. Lion, Tiger, Bear, Bull, Serval? Енотовидная собака, Морская свинка, Гималайский медведь, Африканский слон, Американская короткохвостая бурозубка. На 10 языках.

Ответить
10

Статье 5 лет скоро будет, её перевели все кому не лень.

Ответить
3

а люди все делают все те же ошибки... 

Ответить
5

На мой взгляд, сначала надо подумать, а что если сегодня опций будет 6, а завтра заказчик захочет добавить еще несколько. Стопудово поламаеться вёрстка, хорошо если не затронит другие елементы.

Где-то читал, что если вариантов выбора больше 2-х, тогда лучше использовать селект, иначе - радиобатОны. 

Ответить
1

"Забудьте про «*» и обозначьте необязательные поля
Пользователи не всегда понимают, что подразумевается под обязательным маркером поля «*». Вместо этого лучше обозначить необязательные поля."

Те же Nielsen Norman Group говорят о том, что хорошо бы маркировать и обязательные и не обязательные поля

Ответить
0

Я бы добавил в заголовок - по субъектинвому мнению дизайнера.

В своих формах - Имя и фамилию ставлю в 2 колонки в ряд.
Если в форме много полей, то прокручивать ее удовольствия не доставляет.

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

В ячейке сразу обозначил, что надо указать.
Имя - как к вам обращаться.

И далее в таком духе...

Странная статья, чесслово

Ответить
0

Сейчас никто простыню из формы не делает (по рамеру)
ваще к форме должен быть комплексный подход. некоторые поля бывают не нужны. (например если заявку на кредит отправлять, добавить кнопку прохода через госуслуги, тогда форма не нужна или поле индекс можно даже из номера получить). Пароли, вроде проще выслать пароль на почту или вовсе как озон вход по смс (мне удобно) чем проще сделаете тем лучше. Но и переусердствовать тоже не стоит, у меня батя может сам себе винду переустановить, разобрать комп и намазать пасту тонким слоем. При этом он у меня спросил "Где описание у ролика на YouTube :D"

Ответить
{ "page_type": "article" }

Прямой эфир

[ { "id": 1, "label": "100%×150_Branding_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox_method": "createAdaptive", "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfl" } } }, { "id": 2, "label": "1200х400", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfn" } } }, { "id": 3, "label": "240х200 _ТГБ_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fizc" } } }, { "id": 4, "label": "Article Branding", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "p1": "cfovx", "p2": "glug" } } }, { "id": 5, "label": "300x500_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfk" } } }, { "id": 6, "label": "1180х250_Interpool_баннер над комментариями_Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "bugf", "p2": "ffyh" } } }, { "id": 7, "label": "Article Footer 100%_desktop_mobile", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjxb" } } }, { "id": 8, "label": "Fullscreen Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjoh" } } }, { "id": 9, "label": "Fullscreen Mobile", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjog" } } }, { "id": 10, "disable": true, "label": "Native Partner Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyb" } } }, { "id": 11, "disable": true, "label": "Native Partner Mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyc" } } }, { "id": 12, "label": "Кнопка в шапке", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "p1": "bscsh", "p2": "fdhx" } } }, { "id": 13, "label": "DM InPage Video PartnerCode", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox_method": "createAdaptive", "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "bugf", "p2": "flvn" } } }, { "id": 14, "label": "Yandex context video banner", "provider": "yandex", "yandex": { "block_id": "VI-223676-0", "render_to": "inpage_VI-223676-0-1104503429", "adfox_url": "//ads.adfox.ru/228129/getCode?pp=h&ps=bugf&p2=fpjw&puid1=&puid2=&puid3=&puid4=&puid8=&puid9=&puid10=&puid21=&puid22=&puid31=&puid32=&puid33=&fmt=1&dl={REFERER}&pr=" } }, { "id": 15, "label": "Баннер в ленте на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byudx", "p2": "ftjf" } } }, { "id": 16, "label": "Кнопка в шапке мобайл", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byzqf", "p2": "ftwx" } } }, { "id": 17, "label": "Stratum Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fzvb" } } }, { "id": 18, "label": "Stratum Mobile", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fzvc" } } }, { "id": 19, "disable": true, "label": "Тизер на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "p1": "cbltd", "p2": "gazs" } } }, { "id": 20, "label": "Кнопка в сайдбаре", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "p1": "cgxmr", "p2": "gnwc" } } } ] { "page_type": "default" }