In graphical user interfaces, a dialog box is a special window, used in user interfaces to display information to the user, or to get a response if needed. They are so-called because they form a dialog between the computer and the user—either informing the user of something, or requesting input from the user, or both.
Different types of dialog boxes are used for different sorts of user interaction. The simplest type of dialog box is the alert, which displays a message and requires only an acknowledgment (by clicking 'OK' usually) that the message has been read. Alerts are used to provide simple confirmation of an action, or include program termination notices or confirmation due to crashing or intentional closing by user. Though this is a frequent interaction pattern] for modal dialogs, it is also criticised by usability experts as being ineffective for its intended use (protection against errors in destructive actions) and for which better alternatives exist.
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 colours. The user can continue adding text to the main window whatever colour 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).
Modal dialog boxes are those which temporarily halt the program in the sense that the user cannot continue until the dialog has been closed: 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. Modal dialogs are generally regarded as bad design solutions by usability practitioners, since they are prone to produce mode errors. Dangerous actions should be undoable wherever possible; a modal dialog that appears unexpectedly or which is dismissed by habituation will not protect from the dangerous action.
Traditionally, modal dialogs have been either system or application modal—they either take over the whole system until they are dismissed, or just the application that displayed it. Recently, the concept of a document modal dialog has been used, most notably in Mac OS X where 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.
To the left is an example of a window-modal (sheet) dialog used in Mac OS X. Here, the underlying document is being saved. In OS X, sheets appear to emanate from a slot in their parent window (just visible here), 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. While the dialog is displayed, no work can be done in the underlying document itself, but the parent window can still be moved, resized and minimised, 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.
- 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 differences are that
- 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 (cannot be resized, moved or minimized) are possible 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 OS X dialog box blocks the parent window, preventing the user from referring to it while interacting with the dialog. For example, in the above image the original web page's URL is obscured by the dialog, as well as some of the text. This may require the user to close the dialog to access the necessary information, then re-open the dialog box to continue.