UX для аналитиков

Режимы интерфейса

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

По материалам: Дж. Раскин, «Интерфейс: новые направления в проектировании компьютерных систем», гл. 3, разд. 3.1–3.2.1.

На этой странице

Главные идеи#

Жесты и формирование модулей#

Жестом (gesture) Раскин называет последовательность действий, которая после начала выполняется автоматически. Для человека, который хорошо печатает, набор короткого слова — один жест; для новичка — несколько. Объединение шагов в одну ментальную единицу называется формированием модуля (chunking).

Что такое режим#

В первом приближении интерфейс остаётся в одном режиме, пока данный жест сохраняет одно и то же значение. Если тот же жест теперь означает что-то другое, вы в другом режиме. Затем Раскин уточняет определение через внимание. Жест модален, когда:

  1. состояние, от которого зависит его результат, находится не там, где внимание пользователя, и
  2. это состояние может заставить один и тот же жест вызывать разные действия.

Обратной связи недостаточно#

Дональд Норман объяснял модальные ошибки недостатком обратной связи о состоянии системы. Раскин не согласен: даже чёткий индикатор не помогает, если он находится вне локуса внимания пользователя. Его пример — CAD-программа, в которой форма курсора показывала режим рисования, причём ровно там, куда смотрел пользователь. И всё же пользователь, для которого выделение объектов стало автоматическим, годами не замечал этой смены.

Опыт не защищает#

Новички совершают модальные ошибки, потому что не знают режима; эксперты — потому что действие стало автоматическим. Пример Раскина: в большинстве программ одно сочетание клавиш создаёт новый документ, а в одной почтовой программе новое письмо создаётся другим сочетанием. Новички (из-за ложного обобщения) и эксперты (по привычке) совершают одну и ту же ошибку.

Измерение модальности#

Раскин предлагает степень модальности от 0 (полностью модальный интерфейс) до 1 (полностью немодальный). Каждый жест относят к модальным или немодальным и взвешивают по частоте использования. Так ощущение «здесь что-то модальное» превращается в число, по которому можно сравнивать варианты. Тонкость: клавиша Backspace формально модальна, потому что удаляет то, что было набрано последним. Но проблем она не вызывает: то, что она удаляет, находится во внимании пользователя.

Три способа предотвратить модальные ошибки#

Раскин оценивает три средства, предложенные Норманом:

  1. Не иметь режимов. Это единственный способ полностью устранить модальные ошибки.
  2. Сделать режимы чётко различимыми. Часто не срабатывает, что и показывает случай с CAD-программой.
  3. Не использовать одну и ту же команду в разных режимах. Ошибок от этого меньше не становится, но меньше становится ущерб от них.

Lock и Unlock: состояние, а не действие#

Кнопка с надписью «Lock» («Заблокировать»), которая после нажатия меняет надпись на «Unlock» («Разблокировать»), путает многих пользователей. Они читают надпись как текущее состояние, а не как действие. Раскин предлагает сменить сам элемент управления: флажок или набор вариантов, подписанных не глаголами, а словами, которые описывают состояние объекта («Заблокировано» / «Разблокировано»). Одиночный переключатель допустим, только когда состояние, которым он управляет, видно и находится во внимании пользователя или в его кратковременной памяти. В остальных случаях показывайте все варианты явно.

Как применять#

  1. Проведите инвентаризацию режимов. Для каждого экрана перечислите состояния, в которых один и тот же щелчок, клавиша или сканирование приводит к разному: просмотр и редактирование, администратор и обычный пользователь, пакетная и поштучная обработка.
  2. Оспорьте каждый режим. Спросите, можно ли его убрать, — например, разрешить редактировать поле на месте вместо переключения в режим редактирования.
  3. Смоделируйте необходимые режимы. Постройте модель состояний интерфейса и опишите, что делает каждый жест в каждом состоянии.
  4. Подписывайте переключатели по состоянию. Запишите это в критерии приёмки: переключатель называет текущее состояние (прилагательным или причастием), а не действие (глаголом).
  5. Сохраняйте сочетания клавиш согласованными с другими инструментами, которые пользователи уже знают.

Чек-лист для ревью#

  • Ни один жест не означает разного в разных скрытых состояниях.
  • Оставшиеся режимы перечислены, обоснованы и видны там, куда смотрит пользователь.
  • Переключатели описывают состояние («Заблокировано»), а не действие («Заблокировать»).
  • Разрушительные команды не повторяются в разных режимах.
  • Сочетания клавиш соответствуют соглашениям, знакомым пользователям по другим программам.

Пример#

В «Мастерской», вымышленной сети веломастерских, на планшете механиков у каждого ремонтного заказа есть переключатель «Редактировать». В режиме редактирования сканирование штрихкода запчасти добавляет её в заказ; в режиме просмотра то же сканирование открывает карточку запчасти в каталоге. Механики в спешке сканируют не в том режиме, и запчасти пропадают из счетов.

Аналитик переписывает требование. Сканирование всегда добавляет запчасть в открытый заказ с возможностью отмены, а для просмотра запчасти появляется отдельная кнопка. Кнопка «Заблокировать заказ», которая переключалась на «Разблокировать заказ», превращается во флажок с подписью «Заказ заблокирован для изменений».

Источники и что почитать#

  • J. Raskin. The Humane Interface: New Directions for Designing Interactive Systems. Addison-Wesley, 2000. Рус. изд.: Дж. Раскин. Интерфейс: новые направления в проектировании компьютерных систем. СПб.: Символ-Плюс. Гл. 3 (разд. 3.1–3.2.1).