In general, a dialog is a secondary window that allows users to perform a command, asks users a question, or provides users with information or progress feedback. Dialogs can be modal and require users to complete and close before continuing with the owner window, or modeless, i.e. users can switch between dialogs and parent window. This guideline does not cover OS specific dialog such as open/save files. And it’s not about confirmation dialogs that just ask a simple question with a few answer options, e.g. Yes/No/Cancel.
- Present a comprehensive set of properties regarding the referenced context.
- Make property dialogs modal. For uninterrupted workflows, the toolbar and sidebar should be used.
- Do not include a menu bar or status bar in dialogs.
- Always keep dialogs on top of their parent.
- Set input focus on confirmation button by default.
- Provide the disruptive buttons Help, Reset, Ok/Apply, Cancel by default. But keep the system default as best as possible and place Ok/Cancel according the OS.
- Do not nest multiple dialogs.
- Design property dialogs to not require the use of a scroll bar, if possible.
- Provide tooltips for unlabeled controls or when the label doesn't make the function perfectly clear.
- Dialogs should work with a size of 800x600 pixels and should always be resizable. Take care about high resolution displays (i.e. QXGA and more).
- Resizing must not lead to cropped content. Define a minimum size for this purpose.
- Save and restore user adjustments of dialog size.
- Make sure there is at least one third white space, do not overload the dialog.
- Consider the common reading direction from left to right and top to bottom.
- Dialogs are grouped in meaningful sections, for instance by group boxes. The actions are grouped along their context of use, not along technical relations.
- Provide a title to each section.
- Follow the guidelines for alignment [^todo].
- Try to limit the number of decks (currently ‘tabs’) to six. Split tabs into multiple rows instead of scrolling, if needed.
- KDE: https://techbase.kde.org/Projects/Usability/HIG/Dialogs
- Gnome HIG: https://developer.gnome.org/hig/stable/dialogs.html.en
- macOS: https://developer.apple.com/macos/human-interface-guidelines/windows-and-views/dialogs/
- Discussion about proposal on the etherpad: http://pad.documentfoundation.org/p/HiG-Dialog