Модальное окно

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск

В графическом интерфейсе пользователя модальным называется окно, которое блокирует работу пользователя с родительским приложением до тех пор, пока пользователь это окно не закроет. Модальными преимущественно реализованы диалоговые окна. Также модальные окна часто используются для привлечения внимания пользователя к важному событию или критической ситуации[1].

Назначение[править | править вики-текст]

Как правило, модальные окна применяются, когда требуется:

  • Потребовать от пользователя ввод какой-либо информации — начиная от простого «да/нет» до большого количества настроек или данных, необходимых для продолжения работы с родительским окном или приложением;
  • Привлечь внимание пользователя к чему-либо важному. Этот вариант часто критикуется специалистами по эргономике, потому что редко это важно настолько, чтоб блокировать работу приложения целиком, но, тем не менее, продолжает использоваться по той причине, что он существенно более лёгок в реализации[2][3][4];
  • Указать пользователю на невозможность отмены выполняемого им действия и потребовать подтверждения этого действия. Этот вариант тоже критикуется, вместо него рекомендуется обеспечить-таки возможность отмены[5].

Критика[править | править вики-текст]

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

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

Специалисты по эргономике, напротив, считают, что в подавляющем большинстве ситуаций ограничение свободы действий пользователя и строгая последовательность этих действий приводит к существенному уменьшению удобства и расстраивает пользователей[6]. Использование модальных окон заставляет пользователя концентрировать своё внимание на каком-то одном аспекте задачи, тогда как на практике он может одновременно работать с большими объёмами информации, размещёнными в различных окнах приложения и постоянно переключаться между ними. В таких случаях использование модальных окон ведет к уменьшению эффективности работы.

Создание окна, модального относительно рабочего стола, могло нарушить доступность всей системы в целом. Например, такая функция была предусмотрена в Microsoft Windows 3.x, 95 и 98, однако была убрана из NT и последующих версий, и модальность окна относительно системы больше не блокировала доступ к ней[7].

Во всех ОС Microsoft Windows открытое модальное окно полностью блокирует взаимодействие с родительским окном, в том числе не позволяя изменить его размеры, переместить в другое место на экране или свернуть. В некоторых случаях из-за недоработок программного обеспечения, модальные окна при переключении задач могут оказаться позади родительского окна, из-за чего какое-либо взаимодействие с программой становится невозможным.

При большом количестве открытых приложений становится сложно определить родительское окно, особенно если в заголовке модального окна недостаточно информации для этого (например, открыто несколько одинаковых приложений). Для этого приходится делать попытки взаимодействия со всеми окнами, пока не найдётся заблокированное.

Модальные окна в OS X[править | править вики-текст]

В OS X для преодоления некоторых недостатков была разработана особая концепция модальных окон[8]. В отличие от обычных модальных окон, модальные окна OS X являются частью родительского окна. В OS X модальные окна появляются из-под заголовка родительского окна и привязаны к нему, что позволяет избежать путаницы с определением родительского окна. При этом модальное окно не мешает перемещать родительское окно, а также изменять его размеры.

См. также[править | править вики-текст]

Примечания[править | править вики-текст]