Перейти к содержимому

Проектирование взаимодействия

Проектирование взаимодействия (interaction design, IxD) — проектирование поведения продукта: что происходит после действия пользователя, как меняется состояние, как система сообщает о результате и что можно сделать дальше. Если информационная архитектура отвечает на вопрос «где что находится», то IxD — «что произойдёт, если я это нажму».

Классическое определение Шарпа, Роджерса и Приса: проектирование интерактивных продуктов для поддержки того, как люди общаются и взаимодействуют в повседневной и рабочей жизни. В вебе это чаще всего выражается в трёх артефактах: потоке (последовательность шагов), наборе состояний экрана и спецификации обратной связи.

От UI-дизайна IxD отличается предметом: UI отвечает за то, как элемент выглядит, IxD — за то, как он ведёт себя и как выглядит в каждом состоянии. От юзабилити — уровнем: юзабилити оценивает результат, IxD его проектирует.

Дональд Норман описал базовый словарь поведения: возможности (affordance) — что объект позволяет сделать, сигнификаторы — подсказки, где это действие доступно, обратная связь — что произошло после действия, ограничения — что сделать нельзя, и концептуальная модель — как пользователь представляет себе систему. Большинство проблем взаимодействия сводится к разрыву между этими элементами.

ЭлементЧто определяетПример решения
ПотокПоследовательность шагов, точек решения и ветвленийРазделение длинной формы на этапы с возможностью вернуться
СостоянияКак экран выглядит до, во время и после действияСкелетон при загрузке вместо пустого экрана
Обратная связьЧто система сообщает о результатеНемедленное изменение кнопки, затем подтверждение
ТаймингиКак быстро должен появиться откликЛокальный индикатор на действие дольше 100 мс
Переходы и анимацияКак объясняется изменение контекстаПлавное раскрытие панели вместо мгновенной подмены
ОграниченияКакие действия недоступны и почемуНеактивная кнопка с пояснением условия
Ввод и валидацияКак принимаются и проверяются данныеПроверка поля при уходе из него, а не на каждом символе

Время отклика удобно держать в голове тремя порогами: до 0,1 с воспринимается как мгновенная реакция; до 1 с сохраняется ощущение непрерывного взаимодействия, хотя задержка заметна; 10 с — предел удержания внимания, после которого нужен явный прогресс и возможность прервать операцию.

  1. Зафиксировать сценарий. Кто, зачем и в каких условиях выполняет задачу; что считается успехом.
  2. Нарисовать поток. Шаги, точки принятия решений, альтернативные ветки и выходы.
  3. Описать состояния. Для каждого экрана — что видно до действия, во время и после, включая ошибки.
  4. Задать обратную связь и тайминги. Что происходит мгновенно, что показывает прогресс, что можно отменить.
  5. Собрать прототип. Достаточно кликабельный, чтобы пройти сценарий целиком, а не отдельный экран.
  6. Проверить и упростить. Пройти сценарий с пользователем, убрать шаги, которые не влияют на результат.

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

СостояниеЧто показатьТипичная ошибка
Пустое — данных ещё нетОбъяснение, как данные появятся, и первый шагПустая таблица без подсказки
Пустое после фильтраЧто не найдено и как снять фильтры«Ничего не найдено» без выхода
ЗагрузкаЛокальный индикатор, скелетон, прогрессПолноэкранный спиннер на каждое действие
Частичная загрузкаПостепенное появление данныхПрыжки вёрстки и потеря позиции
УспехПодтверждение и следующий логичный шагМолчаливое исчезновение формы
Ошибка валидацииПричина, поле, как исправить«Неверные данные» без указания места
Системная ошибкаЧто случилось, что делать, куда обратитьсяТехнический код без объяснения
Нет правПочему недоступно и как получить доступСкрытие функции без пояснения
Потеря связиПризнак офлайна и сохранение вводаПотеря заполненной формы
Долгая операцияПрогресс, оценка времени, отменаЗаблокированный экран без обратной связи
Занято или конфликтКто изменил объект и что делатьМолчаливая перезапись чужих данных
Отмена действияВозможность вернуть состояниеПодтверждение, которое нельзя отменить
  • Каждое поле — с видимой подписью; placeholder не заменяет label.
  • Проверка — после ухода из поля или перед отправкой, а не на каждом символе.
  • Введённые данные сохраняются при ошибке; пользователь не заполняет форму заново.
  • Сообщение об ошибке стоит рядом с полем и говорит, что именно исправить.
  • Повторный ввод тех же данных не требуется — это ещё и требование доступности (критерий 3.3.7 Redundant Entry).
  • Вставка пароля и автозаполнение не блокируются (критерий 3.3.8 Accessible Authentication).
  • Для длинных форм виден прогресс и есть возможность вернуться на шаг назад.
  • Кнопка отправки блокируется один раз, чтобы двойной клик не создал два заказа.

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

  • Для небольших изменений обычно достаточно 100–300 мс; длиннее — только для крупных переходов между экранами.
  • Движение не должно блокировать ввод и не должно быть единственным сигналом о результате.
  • Настройка prefers-reduced-motion учитывается: резкие и длительные эффекты отключаются.
  • Анимированное изменение размера или позиции не должно приводить к потере фокуса и прыжкам прокрутки.
  • Модальное окно поверх модального окна — пользователь теряет контекст и кнопку выхода.
  • Автоматический переход к следующему шагу без подтверждения, особенно в формах оплаты.
  • Автосохранение без индикатора: человек не знает, сохранено ли.
  • Необратимое действие без подтверждения и отмены.
  • Скрытая отмена подписки или отказ от услуги — тёмный паттерн, который бьёт по доверию и репутации.
  • Заблокированная кнопка без объяснения, какого условия не хватает.
  • Всплывающие подсказки, доступные только по наведению мышью.
  • Прототип и юзабилити-тест — основной способ: смотреть, где участник останавливается и что ожидает увидеть.
  • Когнитивный проход — проверить, поймёт ли новый пользователь каждый шаг без подсказок.
  • Эвристики — видимость состояния системы, свобода действий, предотвращение ошибок, помощь в восстановлении.
  • Аналитика потока — доля прохождений по шагам, повторы, отказы, время между шагами.
  • Записи сессий — обнаружить неожиданные способы использования и «мёртвые» клики.
  • A/B-тест — подтвердить, что изменение поведения улучшает измеримый результат.