Dialog box



The dialog box (also called message box or simply dialog) is a graphical control element in the form of a small window that communicates information to the user and prompts them for a response.

Dialog boxes are classified as "modal" or "modeless", depending on whether they block interaction with the software that initiated the dialog. The type of dialog box displayed is dependent upon the desired user interaction.

The simplest type of dialog box is the alert, which displays a message and may require an acknowledgment that the message has been read, usually by clicking "OK", or a decision as to whether or not an action should proceed, by clicking "OK" or "Cancel". Alerts are also used to display a "termination notice"&mdash;sometimes requesting confirmation that the notice has been read&mdash;in the event of either an intentional closing or unintentional closing ("crash") of an application or the operating system. (E.g., "Gedit has encountered an error and must close.") Although this is a frequent interaction pattern for modal dialogs, it is also criticized by usability experts as being ineffective for its intended use, which is to protect against errors caused by destructive actions, and for which better alternatives exist.

An example of a dialog box is the about box found in many software programs, which usually displays the name of the program, its version number, and may also include copyright information.

Modeless
Non-modal or modeless dialog boxes are used when the requested information is not essential to continue, and so the window can be left open while work continues elsewhere. A type of modeless dialog box is a toolbar which is either separate from the main application, or may be detached from the main application, and items in the toolbar can be used to select certain features or functions of the application.

In general, good software design calls for dialogs to be of this type where possible, since they do not force the user into a particular mode of operation. An example might be a dialog of settings for the current document, e.g. the background and text colors. The user can continue adding text to the main window whatever color it is, but can change it at any time using the dialog. (This isn't meant to be an example of the best possible interface for this; often the same functionality may be accomplished by toolbar buttons on the application's main window.)

System modal
System modal dialog boxes prevent interaction with any other window onscreen and prevent users from switching to another application or performing any other action until the issue presented in the dialog box is addressed. System modal dialogs were more commonly used in the past on single tasking systems where only one application could be running at any time. One current example is the shutdown screen of current Windows versions.

Application modal
Modal dialog boxes temporarily halt the program: the user cannot continue without closing the dialog; the program may require some additional information before it can continue, or may simply wish to confirm that the user wants to proceed with a potentially dangerous course of action (confirmation dialog box). Usability practitioners generally regard modal dialogs as bad design-solutions, since they are prone to produce mode errors. Dangerous actions should be undoable wherever possible; a modal alert dialog that appears unexpectedly or which is dismissed automatically (because the user has developed a habit) will not protect from the dangerous action.

A modal dialog interrupts the main workflow. This effect has either been sought by the developer because it focuses on the completion of the task at hand or rejected because it prevents the user from changing to a different task when needed.

Document modal
The concept of a document modal dialog has recently been used, most notably in macOS and Opera Browser. In the first case, they are shown as sheets attached to a parent window. These dialogs block only that window until the user dismisses the dialog, permitting work in other windows to continue, even within the same application.

In macOS, dialogs appear to emanate from a slot in their parent window, and are shown with a reinforcing animation. This helps to let the user understand that the dialog is attached to the parent window, not just shown in front of it. No work can be done in the underlying document itself while the dialog is displayed, but the parent window can still be moved, re-sized, and minimized, and other windows can be brought in front so the user can work with them:

The same type of dialog box can be compared with the "standard" modal dialog boxes used in Windows and other operating systems.

Similarities include: The differences are that
 * the parent window is frozen when the dialog box opens, and one cannot continue to work with the underlying document in that window
 * no work can be done with the underlying document in that window.
 * the dialog box may open anywhere in the parent window
 * depending on where the parent window is located, the dialog box may open virtually anywhere on screen
 * the dialog box may be moved (in almost all cases), in some cases may be resizable, but usually cannot be minimized, and
 * no changes to the parent window are possible (cannot be resized, moved or minimized) while the dialog box is open.

Both mechanisms have shortcomings:
 * The Windows dialog box locks the parent window which can hide other windows the user may need to refer to while interacting with the dialog, though this may be mitigated since other windows are available through the task bar.
 * The macOS dialog box blocks the parent window, preventing the user from referring to it while interacting with the dialog. This may require the user to close the dialog to access the necessary information, then re-open the dialog box to continue.