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

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

Мода́льное окно́ в графическом интерфейсе пользователя — окно, которое блокирует работу пользователя с родительским приложением до тех пор, пока пользователь это окно не закроет. Модальными преимущественно реализованы диалоговые окна. Также модальные окна часто используются для привлечения внимания пользователя к важному событию или критической ситуации[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 модальные окна появляются из-под заголовка родительского окна и привязаны к нему, что позволяет избежать путаницы с определением родительского окна. При этом модальное окно не мешает перемещать родительское окно, а также изменять его размеры.

Примечания

[править | править код]
  1. Quince UX patterns explorer. Modal Panel (англ.). Архивировано из оригинала 27 февраля 2010 года.
  2. Joel Spolsky, User Interface Design for Programmers: Designing for People Who Have Better Things To Do With Their Lives Архивная копия от 23 июля 2016 на Wayback Machine (перевод на русский Архивная копия от 5 декабря 2010 на Wayback Machine)
  3. Raymond Chen, The Old New Thing: The default answer to every dialog box is «Cancel» Архивная копия от 19 июня 2004 на Wayback Machine (перевод на русский Архивная копия от 2 сентября 2011 на Wayback Machine)
  4. Jeff Atwood, Coding Horror: Teaching Users to Read Архивная копия от 25 января 2010 на Wayback Machine
  5. Aza Raskin, A List Apart: Never Use a Warning When you Mean Undo Архивная копия от 2 марта 2009 на Wayback Machine (перевод на русский Архивная копия от 10 сентября 2011 на Wayback Machine)
  6. Cooper, Alan. About Face 2.0: The Essentials of Interaction Design (англ.). — Wiley, 2003. — ISBN 0764526413.
  7. How To Create a System-Modal Program/Window in Visual Basic Архивная копия от 29 ноября 2014 на Wayback Machine // Microsoft Support
  8. Dialogs Архивная копия от 20 марта 2016 на Wayback Machine — OS X Human Interface Guidelines