В дизайне пользовательского интерфейса режим — это отдельная настройка в компьютерной программе или любом физическом машинном интерфейсе , в котором тот же пользовательский ввод будет производить воспринимаемые результаты, отличные от тех, которые были бы в других настройках. Модальные компоненты интерфейса включают клавиши Caps Lock и Insert на стандартной компьютерной клавиатуре , обе из которых обычно переводят набор текста пользователем в другой режим после нажатия, а затем возвращают его в обычный режим после повторного нажатия.
Интерфейс, не использующий режимы, называется немодальным интерфейсом. [1] Немодальные интерфейсы избегают ошибок режима , при которых пользователь выполняет действие, соответствующее одному режиму, находясь в другом режиме, делая невозможным для пользователя их совершение. [2]
В своей книге «Гуманный интерфейс » Джеф Раскин определяет модальность следующим образом:
«Человеко-машинный интерфейс является модальным по отношению к данному жесту, когда (1) текущее состояние интерфейса не находится в центре внимания пользователя и (2) интерфейс выполнит один из нескольких различных ответов на жест в зависимости от текущего состояния системы» (стр. 42).
В понимании Раскина и согласно его определению, интерфейс не является модальным, пока пользователь полностью осознает его текущее состояние. Раскин называет это «локусом внимания» (от латинского слова locus , означающего «место» или «расположение»). Обычно пользователь осознает состояние системы, если изменение состояния было намеренно инициировано пользователем или если система подает некоторые сильные сигналы, чтобы уведомить пользователя об изменении состояния в месте, где происходит взаимодействие. Если локус внимания пользователя изменяется на другую область, состояние интерфейса может тогда представлять собой режим, поскольку пользователь больше не осознает его.
Ларри Теслер определил режимы как «состояние пользовательского интерфейса, которое длится в течение определенного периода времени, не связано с каким-либо конкретным объектом и не имеет никакой другой роли, кроме интерпретации ввода оператора». [3]
Несколько примеров программного обеспечения были описаны как модальные или использующие режимы интерфейса:
Ларри Теслер из PARC разработал идеи для немодального текстового процессора на основе отзывов, полученных в ходе пользовательского тестирования с недавно нанятой Сильвией Адамс, где ее попросили импровизировать несколько жестов для исправления корректурных пометок в цифровом тексте. [5] Этот тест убедил менеджера Теслера Билла Инглиша в наличии проблем с их предыдущим модальным интерфейсом.
Режимы часто не одобряются в дизайне интерфейсов, поскольку они могут приводить к ошибкам режима , когда пользователь забывает, в каком состоянии находится интерфейс, выполняет действие, соответствующее другому режиму, и получает неожиданный и нежелательный ответ. [6] [7] Ошибка режима может быть довольно пугающей и дезориентирующей, поскольку пользователь справляется с внезапным нарушением своих ожиданий.
Проблемы возникают, если изменение состояния системы происходит незаметно (инициировано системой или другим лицом, например, пользователем, который ранее использовал машину), или если через некоторое время пользователь забывает об изменении состояния. Другая типичная проблема — внезапное изменение состояния, прерывающее деятельность пользователя, например, кража фокуса . В такой ситуации легко может случиться, что пользователь выполняет некоторые операции, имея в виду старое состояние, в то время как мозг еще не полностью обработал сигналы, указывающие на изменение состояния.
Режимы предназначены для того, чтобы полностью захватить внимание пользователя и заставить его признать контент, представленный в них, в частности, когда требуется критическое подтверждение от пользователя. [16] Последнее использование критикуется как неэффективное для его предполагаемого использования (защита от ошибок в деструктивных действиях) из-за привыкания . Вместо этого рекомендуется фактически сделать действие обратимым (предоставив опцию «отменить»). [17] Хотя режимы могут быть успешными в определенных использованиях для ограничения опасных или нежелательных операций, особенно когда режим активно поддерживается пользователем как квазирежим .
Режимы иногда используются для представления информации, относящейся к задаче, которая не вписывается в основной визуальный поток. [16] Режимы также могут работать как хорошо понятные соглашения, такие как инструменты рисования. [7]
Сторонники модальных режимов [ кто? ] могут утверждать, что многие обычные действия являются модальными, и пользователи адаптируются к ним. Примером модального взаимодействия является вождение транспортных средств. Водитель может быть удивлен, когда нажатие педали акселератора не ускоряет транспортное средство в прямом направлении, скорее всего, потому, что транспортное средство было переведено в рабочий режим, такой как парковка, нейтраль или задний ход. Модальные интерфейсы требуют обучения и опыта, чтобы избежать ошибок режима, подобных этим.
Эксперт по интерфейсам Джеф Раскин решительно выступил против режимов, написав: «Режимы являются существенным источником ошибок, путаницы, ненужных ограничений и сложности интерфейсов». Позже он замечает: «Не случайно ругательства обозначаются как #&%!#$&», — пишет мой коллега, доктор Джеймс Винтер; это «то, что делала пишущая машинка, когда вы печатали цифры при включенном Caps Lock». Раскин посвятил свою книгу «Гуманный интерфейс » описанию принципов немодального интерфейса для компьютеров. Эти принципы были реализованы в системах Canon Cat и Archy .
Некоторые дизайнеры интерфейсов недавно предприняли шаги, чтобы сделать модальные окна более очевидными и удобными для пользователя, затемняя фон за окном или позволяя любому щелчку мыши за пределами модального окна принудительно закрыть окно — дизайн, называемый Lightbox [ 18] — таким образом снижая риск модальных ошибок. Якоб Нильсен утверждает, что преимуществом модальных диалогов является то, что они повышают осведомленность пользователя. «Когда что-то действительно нужно исправить, лучше убедиться, что пользователь знает об этом». Для этой цели дизайн Lightbox обеспечивает сильный визуальный контраст диалога по сравнению с остальными визуальными элементами. Однако, хотя такой метод может снизить риск непреднамеренных неправильных взаимодействий, он не решает проблему, заключающуюся в том, что модальное окно блокирует использование обычных функций приложения и, таким образом, не позволяет пользователю предпринять какие-либо действия для устранения проблемы или даже прокрутить экран, чтобы получить доступ к информации, необходимой для правильного выбора из вариантов, представленных модальным окном, и он никак не облегчает разочарование пользователя из-за того, что он зашел в тупик, из которого он не может выбраться без более или менее разрушительных последствий.
Ларри Теслер из Xerox PARC и Apple Computer не любил режимы настолько, что получил персонализированный номерной знак для своего автомобиля с надписью: «NO MODES». Он использовал этот номерной знак на разных автомобилях с начала 1980-х годов до своей смерти в 2020 году. Наряду с другими он также использовал фразу «Don't Mode Me In» в течение многих лет как призыв к устранению или сокращению режимов. [19] [20]
Брюс Уайман, дизайнер мультисенсорного стола для художественной выставки в Денверском художественном музее [21], утверждает, что интерфейсы для нескольких пользователей одновременно должны быть немодальными, чтобы избежать сосредоточения внимания на каком-либо одном пользователе. [22]
По возможности рекомендуется использовать альтернативы режимам, такие как команда отмены и корзина . [23] Исследователь HCI Дональд Норман утверждает, что лучший способ избежать ошибок режима, в дополнение к четким указаниям состояния, — это помочь пользователям построить точную ментальную модель системы, которая позволит им точно предсказать режим. [24]
Это демонстрируют, например, некоторые знаки остановки на перекрестках. Водитель может быть обусловлен четырехсторонним знаком остановки возле своего дома, предполагая, что подобные перекрестки также будут четырехсторонними. Если перекресток только двухсторонний, водитель может проехать, если не увидит других машин. Особенно если видимость загорожена, машина может проехать и врезаться в первую машину в борт. Улучшенный дизайн решает эту проблему, включая небольшую схему, показывающую, в каких направлениях есть знак остановки, а в каких нет, тем самым улучшая ситуационную осведомленность водителей.
Модальные элементы управления лучше всего размещать там, где фокус находится в потоке задач. [23] Например, модальное окно можно разместить рядом с графическим элементом управления , который вызывает его активацию. Модальные элементы управления могут быть разрушительными, поэтому следует приложить усилия для снижения их способности блокировать работу пользователя. После завершения задачи, для которой был активирован режим, или после действия отмены, такого как клавиша Escape , возврат к предыдущему состоянию при закрытии режима уменьшит негативное воздействие.
В книге «Человеческий интерфейс » Джеф Раскин отстаивал то, что он называл квазимодами , то есть режимами, которые поддерживаются только посредством некоторого постоянного действия со стороны пользователя; такие режимы также называются подпружиненными режимами . [25] Термин квазимод представляет собой сочетание латинского префикса квази- (что означает почти , в некоторой степени ) и английского слова «mode».
Клавиши-модификаторы на клавиатуре, такие как клавиша Shift , клавиша Alt и клавиша Control , являются примерами квазимодального интерфейса.
Приложение переходит в этот режим, пока пользователь выполняет осознанное действие, например, нажимает клавишу и удерживает ее нажатой, вызывая команду. Если поддерживающее действие останавливается без выполнения команды, приложение возвращается в нейтральное состояние.
Предполагаемое преимущество этого метода заключается в том, что пользователю не нужно помнить текущее состояние приложения при вызове команды: одно и то же действие всегда будет давать один и тот же воспринимаемый результат. [26] Интерфейс, который использует только квазирежимы и не имеет полных режимов, по-прежнему является немодальным согласно определению Раскина.
Функция StickyKeys превращает квазирежим в режим, сериализуя нажатия клавиш-модификаторов с обычными клавишами, так что их не нужно нажимать одновременно. В этом случае повышенная вероятность ошибки режима в значительной степени компенсируется улучшенной доступностью для пользователей с ограниченными физическими возможностями.