В пользовательском интерфейсе дизайн для компьютерных приложений модальное окно - это графический элемент управления, подчиненный главному окну приложения. Он создает режим, который отключает главное окно, но сохраняет его видимым, с модальным окном как дочерним окном перед ним. Пользователи должны взаимодействовать с модальным окном, прежде чем они смогут вернуться к родительскому приложению. Это позволяет избежать прерывания рабочего процесса в главном окне. Модальные окна иногда называют тяжелыми окнами или модальными диалогами, потому что они часто отображают диалоговое окно.
Пользовательские интерфейсы обычно используют модальные окна для управления осведомленностью пользователя и отображения аварийных состояний, хотя разработчики взаимодействия утверждают, что они неэффективны для такого использования. Модальные окна склонны к ошибкам режима.
В Интернете они часто показывают подробные изображения, например те, которые реализованы библиотекой Lightbox, или используются для объявлений с наведением.
Противоположностью модальному является безрежимный. Немодальные окна не блокируют главное окно, поэтому пользователь может переключать свой фокус между ними, рассматривая их как окна палитры.
Частые применения модальных окон включают:
Многие функции, которые обычно представлены модальными окнами, реализованы как модальные переходные панели, называемые «Таблицы» в Mac OS X. Переходные окна ведут себя аналогично модальным окнам - они всегда находятся поверх родительского окна и не отображаются в списке окон, но они не отключают использование других окон в применение. Листы выскальзывают из строки заголовка окна и обычно должны быть закрыты, прежде чем пользователь сможет продолжить работу в окне, но остальная часть приложения остается работоспособной. Таким образом, они создают режим внутри окна, которое их содержит, но немодально по отношению к остальной части приложения.
Модальные окна широко используются в инструментах графического интерфейса пользователя для управления рабочим процессом пользователя. Алан Купер утверждает, что важность того, чтобы требовать от пользователя внимания к важным вопросам, оправдывает ограничение свободы пользователя, и что альтернатива может усилить разочарование пользователя.
Неожиданные диалоговые окна предупреждений являются виновниками ошибок режима с потенциально серьезными последствиями. Специалисты по юзабилити предписывают, что опасные действия должны быть отменены везде, где это возможно; окно предупреждения, которое появляется неожиданно или закрывается привычкой, не защищает от опасного действия. Немодальная информационная панель все чаще рассматривается как предпочтительная по сравнению с диалоговым окном, потому что она не прерывает действия пользователя, а, скорее, позволяет пользователю читать дополнительную информацию в свое время.
Один из предлагаемых подходов состоит в том, чтобы проектировать каждый элемент ввода как автономное, ориентированное на задачи взаимодействие, руководствуясь собственными конкретными требованиями, а не глобальным состоянием всего приложения. Например, перед обязательными элементами может стоять звездочка , элементы с недопустимыми данными могут иметь красную границу и т. Д. При таком подходе пользователи фактически получают выгоду от одновременного просмотра множества элементов ввода - они могут вводить данные таким образом, который имеет для них смысл, вместо того, чтобы блокировать все другие несвязанные элементы до тех пор, пока не будет завершена предопределенная последовательность ввода данных.
Модальное окно блокирует все другие рабочие процессы в программе верхнего уровня, пока модальное окно не будет закрыто, в отличие от немодальных диалогов которые позволяют пользователям работать с другими окнами. Модальные окна предназначены для того, чтобы полностью привлечь внимание пользователя. Пользователи могут не осознавать, что модальное окно требует их внимания, что приводит к путанице по поводу того, что главное окно не отвечает, или к потере данных, вводимых пользователем, предназначенных для главного окна (см. Ошибка режима ). В тяжелых случаях модальное окно появляется за другим окном, управляемым той же программой, потенциально делая всю программу невосприимчивой, пока модальное окно не будет найдено вручную.
Однако многие дизайнеры интерфейсов в последнее время предприняли шаги, чтобы сделать модальные окна более очевидными и удобными для пользователя, затемняя фон за окном или позволяя любому щелчку мыши за пределами модального окна закрыть окно - дизайн называется лайтбокс - таким образом устраняя эти проблемы. Якоб Нильсен утверждает, что преимущество модальных диалогов заключается в том, что они повышают осведомленность пользователей: «Когда что-то действительно требует исправления, лучше убедиться, что пользователь знает об этом». Для этой цели дизайн лайтбокса обеспечивает сильный визуальный контраст диалога по сравнению с остальными визуальными элементами. Техника лайтбокса теперь стала обычным инструментом в дизайне веб-сайтов.
Модальные окна обычно реализуются таким образом, чтобы блокировать возможность перемещения, сворачивания, уменьшения или отталкивания этого окна назад, и они захватывают фокус ввода, что часто предотвращает использование системных вырезать, копировать, и вставьте объекты. Это может мешать использованию их родительских приложений, блокируя доступ к другим окнам и данным в том же приложении, особенно в тех случаях, когда модальное окно требует от пользователя ввода информации, доступной только в одном из окон, которые оно закрывает.
Для пользователей, использующих виртуальные рабочие области, большие, чем их фактические экраны, модальные окна могут вызвать дальнейшее нежелательное поведение, включая создание модального окна на части виртуального экрана, не отображаемой в данный момент, или резкое переключение дисплея с того, что пользователь работал над совершенно другим разделом.
Модальные окна, как правило, создают внезапное отвлечение ввода текста, особенно ввода текста, предназначенного для других программ, внутрь себя. Кроме того, модальные окна обычно интерпретируют нажатие клавиши ввода (или в редких случаях наличие новой строки во вставленном вводе) как сигнал для принятия ввода и его обработки - или, в в редких случаях может перехватить щелчок мыши, предназначенный для другого приложения, которое внезапно было закрыто. Такой перехват, называемый кражей фокуса (или кражей фокуса), может поставить под угрозу методы конфиденциальности и безопасности, а также перехватить несоответствующий ввод вне контекста, который может привести к неопределенным, произвольным результатам в программе, создавшей модальное окно. окно.
В зависимости от специфики реализации модальные окна могут нарушать принцип наименьшего удивления.
Модальные диалоги являются частью потока задач, и рекомендации даются для размещения там, где фокус находится в этом потоке. Например, окно можно разместить рядом с графическим элементом управления , который запускает его активацию.
Использование полупрозрачного темного фона может скрыть информацию в главном окне, поэтому его лучше всего использовать только тогда, когда эта информация будет отвлекать. Полупрозрачный фон можно сделать менее навязчивым, если вся область фона будет работать как кнопка закрытия: это стандартно для большинства мобильных операционных систем, позволяет избежать ощущения захвата пользователем и делает модальные окна менее похожими на вредоносные всплывающие окна.
Дизайн должен соответствовать общепринятой практике платформы, на которой работает программа. Microsoft Windows использует стандартные элементы управления для модальных диалоговых окон с кнопками подтверждения действий в правом нижнем углу панели. Mac OS X использует модальные листы, где кнопки подтверждения являются самой правой командой.