В вычислительной технике диалоговое окно [ a] (также просто диалог ) — это графический элемент управления в виде небольшого окна, которое сообщает информацию пользователю и предлагает ему ответить.
Диалоговые окна классифицируются как « модальные » или «немодальные» в зависимости от того, блокируют ли они взаимодействие с программным обеспечением , инициировавшим диалог. Тип отображаемого диалогового окна зависит от желаемого взаимодействия с пользователем .
Самый простой тип диалогового окна — это оповещение , которое отображает сообщение и может потребовать подтверждения прочтения сообщения, обычно нажатием «ОК», или решения о том, следует ли продолжать действие, нажатием «ОК» или «Отмена». Оповещения также используются для отображения «уведомления о завершении» — иногда запрашивающего подтверждение прочтения уведомления — в случае преднамеренного или непреднамеренного закрытия (« сбоя ») приложения или операционной системы . (Например, « Gedit обнаружил ошибку и должен закрыться».) Хотя это частый шаблон взаимодействия для модальных диалогов, он также критикуется экспертами по удобству использования как неэффективный для своего предполагаемого использования, которое заключается в защите от ошибок, вызванных деструктивными действиями, [2] и для которого существуют лучшие альтернативы. [3]
Примером диалогового окна является окно «О программе» , которое имеется во многих программах и обычно отображает название программы, номер ее версии, а также может содержать информацию об авторских правах .
Немодальные или немодальные диалоговые окна используются, когда запрашиваемая информация не является существенной для продолжения, и поэтому окно можно оставить открытым, пока работа продолжается в другом месте. Тип немодального диалогового окна — это панель инструментов , которая либо отделена от основного приложения, либо может быть отсоединена от основного приложения, а элементы на панели инструментов могут использоваться для выбора определенных функций или возможностей приложения.
В целом, хороший дизайн программного обеспечения требует, чтобы диалоги были такого типа, где это возможно, поскольку они не принуждают пользователя к определенному режиму работы. Примером может служить диалог настроек для текущего документа, например, цвета фона и текста. Пользователь может продолжать добавлять текст в главное окно, независимо от его цвета, но может изменить его в любое время с помощью диалога. (Это не пример наилучшего возможного интерфейса для этого; часто та же функциональность может быть достигнута кнопками панели инструментов в главном окне приложения.)
Системные модальные диалоговые окна предотвращают взаимодействие с любым другим окном на экране и не позволяют пользователям переключаться на другое приложение или выполнять любые другие действия, пока проблема, представленная в диалоговом окне, не будет устранена. Системные модальные диалоговые окна чаще использовались в прошлом в однозадачных системах, где в любой момент времени могло быть запущено только одно приложение. Одним из современных примеров является экран завершения работы текущих версий Windows.
Модальные диалоговые окна временно останавливают программу: пользователь не может продолжить, не закрыв диалоговое окно; программа может потребовать некоторую дополнительную информацию, прежде чем она сможет продолжить, или может просто захотеть подтвердить, что пользователь хочет продолжить потенциально опасный курс действий ( подтверждающее диалоговое окно ). Практикующие юзабилити обычно считают модальные диалоговые окна плохими дизайнерскими решениями, поскольку они склонны вызывать ошибки режима . Опасные действия должны быть отменяемыми везде, где это возможно; модальное диалоговое окно оповещения, которое появляется неожиданно или которое автоматически закрывается (потому что пользователь выработал привычку ) , не защитит от опасного действия. [4]
Модальный диалог прерывает основной рабочий процесс . Этот эффект либо был задуман разработчиком, поскольку он фокусируется на завершении текущей задачи, либо был отклонен, поскольку он не позволяет пользователю переключиться на другую задачу при необходимости.
Концепция модального диалога документа недавно была использована, особенно в macOS и браузере Opera . Эти диалоги блокируют только это окно, пока пользователь не закроет диалог, позволяя продолжить работу в других окнах, даже в пределах того же приложения.
В macOS до macOS Big Sur диалоги появляются из слота в родительском окне и отображаются с усиливающей анимацией. Это помогает пользователю понять, что диалог прикреплен к родительскому окну, а не просто отображается перед ним. В Big Sur и более поздних версиях родительское окно отображается серым цветом, а диалог отображается поверх середины родительского окна. Пока отображается диалог, в самом базовом документе нельзя выполнять никаких действий, но родительское окно по-прежнему можно перемещать, изменять его размер и сворачивать, а другие окна можно выводить на передний план, чтобы пользователь мог работать с ними:
Этот же тип диалогового окна можно сравнить со «стандартными» модальными диалоговыми окнами, используемыми в Windows и других операционных системах.
Сходства включают в себя:
Различия в том, что
Оба механизма имеют недостатки: