A dialog is a separate controllable area of the application that contains information and/or controls for editing information. Dialogs are the primary vehicle for obtaining input from and presenting information to the user. Use the following guidelines when deciding which dialog to use.
Dialog Type |
Definition |
Use When |
Modal |
|
|
Modeless |
|
|
Control |
Use When |
Example |
The choice being made (and its opposite) can be clearly expressed to the user with a single label |
The opposite of enable is disable |
|
There are between 2 - 5 mutually exclusive but related choices and the user can only make one selection per choice |
||
This choice requires manually entering a numerical text value |
||
Select from a list of mutually exclusive choices It is appropriate to hide the rest of the choices and only show the default selection Also, use this instead of radio buttons when there are more than four choices or if real estate is limited |
||
Similar to a drop-down list box, but allows the user to enter information not pre-populated in the drop-down |
||
Use when the expected input or existing data will be in a specific range. Sliders can also be combined with text boxes to give additional level of user control and give feedback as the slider is moved |
||
Use this option if the data can be entered sequentially and has a logical limit. This can be used in conjunction with an editable text box |
Every dialog contains the following elements:
Element |
Requirements |
Illustration |
|
1 |
Title bar |
Title bars text describes the contents of the window. |
|
2 |
Help button |
A button in the title bar next to the close button.
|
|
3 |
Controls |
The bulk of a dialog consists of controls used to change settings and/or interact with data within an application. The layout of the controls should follow the Layout Flow, Spacing and Margins, Grouping, and Dialog Controls sections outlined below. When an action control interacts with another control, such as a text box with a Browse button, denote the relationship by placing the RELATED controls in one of three places:
|
|
4 |
Commit Buttons |
See the Committing Changes section. The most frequently-used Commit buttons include:
|
When viewing a dialog within a user interface, the user has multiple tasks to accomplish. How the information is designed and laid out must support the user in accomplishing their task(s). Keeping this in mind, it is important to remember users:
Lay out the window in such a way that suggests and prompts a "path" with a beginning, middle, and end. This path should be designed to be easily scanned. The information and controls in the "middle" of the path must be designed to be well balanced and clearly delineate the relationship between controls. Of course, not all users follow a strictly linear path when completing a task. The path is intended for a typical task flow.
Variation A: Top-Down Place UI items that:
In this example (Materials dialog), the user does the following:
Variation B: Left-Right Place UI items that:
|
Figure 198 - Materials dialog |
Figure 199 - Revit File Open dialog
As seen in Variation B, many windows that are laid out left to right are actually a hybrid of left-right and top-down.
Figure 200 - Revit Filters dialog
In this example (Revit Filters), the three primary tasks are grouped into columns, delineated by the group boxes: Filters, Categories and Filter Rules. Each of these columns contains a top-down flow that involves selecting from a collection of items or modifying a control.
The following table, taken from the Layout Section of the Microsoft Windows User Experience Guidelines lists the recommended spacing between common UI elements (for 9 pt. Segoe UI at 96 dpi). For a definition of the difference between dialog units (DLU) and relative pixels, see the Layout Metrics section from the Microsoft guidelines.
Tip Visual Studio makes it easy to follow these guidelines using a combination of Margin and Padding properties and the Snap lines feature. For more information, see Walkthrough: Laying Out Windows Forms Controls with Padding, Margins, and the Auto Size Property.
Element |
Placement |
Dialog units |
Relative pixels |
Dialog box margins |
7 on all sides |
11 on all sides |
|
Between text labels and their associated controls (for example, text boxes and list boxes) |
3 |
5 |
|
Between related controls |
4 |
7 |
|
Between unrelated controls |
7 |
11 |
|
First control in a group box |
11 down from the top of the group box; align vertically to the group box title |
16 down from the top of the group box; align vertically to the group box title |
|
Between controls in a group box |
4 |
7 |
|
Between horizontally or vertically arranged buttons |
4 |
7 |
|
Last control in a group box |
7 above the bottom of the group box |
11 above the bottom of the group box |
|
From the left edge of a group box |
6 |
9 |
|
Text label beside a control |
3 down from the top of the control |
5 down from the top of the control |
|
Between paragraphs of text |
7 |
11 |
|
Smallest space between interactive controls |
3 or no space |
5 or no space |
|
Smallest space between a non-interactive control and any other control |
2 |
3 |
|
When a control is dependent on another control, it should be indented 12 DLUS or 18 relative pixels, which by design is the distance between check boxes and radio buttons from their labels. |
12 |
18 |
Group boxes are the most common solution used to explicitly group related controls together in a dialog and give them a common grouping.
Figure 201 - Group box within a standard Print dialog
A group box should include:
The following are examples of what should not be done:
Group boxes without a label or a group box with only one control.
One group box in a dialog.
The (Materials) single group box title is redundant with the dialog title and can be removed.
Figure 202 - Group box with no label and group box with one control and Group box with title that is redundant with dialog title
Avoid "nesting" two of more group boxes within one another and placing Commit buttons inside a group box.
An alternative to the traditional group box is a horizontal separator. Use this only when the groups are stacked vertically in a single column.
The following example is from Microsoft Outlook 2007:
Figure 203 - Horizontal separators in Microsoft Outlook 2007
Spacing between the last control in the previous group and the next grouping line should be 12 DLUs (18 relative pixels).
Content that is presented on different types or sizes of display devices usually requires the ability to adapt to the form that it is displayed in. Using a dynamic layout can help when environment changes such as localizing to other languages, changing the font size of content, and for allowing user to manually expand the window to see more information.
To create a dynamic layout:
Home Quadrant |
Alignment |
1 |
Left and Top |
2 |
Right and Top |
3 |
Left and Bottom |
4 |
Right and Bottom |
Multiple |
If control is located in multiple quadrants, it should anchor to quadrant 1 and/or 3 (to the left) and expand/contract to the right to maintain alignments |
Figure 204 - Four square grid applied to Revit View Templates dialog to demonstrate how it should be resized
In this example, the list box is located in all four quadrants. So, it is anchored to the top-left and expands to the right and to the bottom.
Here are the some steps to consider when implementing a dynamic layout:
For guidelines on how different controls should handle resizing, see the table below:
Control |
Content |
Re-sizable |
Moveable |
Button |
Static |
No |
Yes |
Link |
Static |
No |
Yes |
Radio Button |
Static |
No |
Yes |
Spin Control |
Static |
No |
Yes, based on the element to which it is attached |
Slider |
Static |
X Direction |
Yes |
Scroll Bar |
Static |
X Direction |
Yes |
Tab |
Dynamic |
X and Y Direction |
Yes, but not smaller then the biggest control contained |
Progressive Disclosure |
Dynamic |
X and Y Direction |
Yes, but not smaller then the biggest control contained |
Check Box |
Static |
No |
Yes |
Drop-Down List |
Dynamic |
X Direction |
Yes but not smaller then the biggest text contained. |
Combo Box |
Dynamic |
X and Y Direction |
Yes, but not smaller then the biggest text contained |
List View |
Dynamic |
X and Y Direction |
Yes, but not smaller then the biggest text contained |
Text Box |
Dynamic |
X and Y if multi-line |
Yes |
Date Time Box |
Dynamic |
X Direction |
Yes, but not smaller then the biggest text contained |
Tree View |
Dynamic |
X and Y Direction |
Yes, but not smaller then the biggest text contained |
Canvas |
Dynamic |
X and Y Direction |
Yes |
Group Box |
Dynamic |
X and Y Direction |
Yes, but not smaller then the biggest control contained |
Progress Bar |
Static |
X |
Yes |
Status Bar |
Dynamic |
X |
Yes |
Table or data grid |
Dynamic |
X and Y |
Yes, table columns should grow proportionally in the X direction |
There are a handful of dialog types that persist throughout the Revit products. Utilizing these standard types helps to drive consistency and leverage users' existing learning and knowledge patterns.
This is the most basic dialog type. This should be used when the user needs to make a number of choices and then perform a discrete operation based on those choices. Controls should follow rules for Grouping, Spacing and Margins, and Layout Flow.
The Revit Export 2D DWF Options dialog is a good example of a Standard Input dialog.
Figure 205 - The Export 2D DWF Options dialog
Use when an item's properties need to be modified by the user. To create a property editor, provide a Table View that presents a name/property pair. The property field can be modified by a Text Box, Check Box, Command Button, Drop-Down List, or even a slider.
Figure 206 - Property Grid
ID |
Behavior |
Description |
Required |
1 |
Filter |
Filters the list of properties based on specified criteria |
No |
2 |
Grouping |
Grouping the properties makes them easier to scan |
No |
3 |
Controls (Edit properties of an item) |
Each value cell can contain a control that can be edited (or disabled) depending on the context |
Yes |
4 |
Commit (Buttons) |
Optional, only use if within a modal dialog |
No |
If multiple action controls interoperate with the same content control (such as a list box), vertically stack them to the right of and top-aligned with the content control, or horizontally place them left-aligned under the content control. This layout decision is at the developer's discretion.
Figure 207 - Action controls to the right of content and action controls below content
In applications such as Revit, the user must view and manage collections of items to complete their tasks. The Collection View provides the user a variety of ways of viewing the items (browsing, searching and filtering) in the collection. Provide a way for a user to easily browse through a collection of items for the purpose of selecting an item to view or edit. Optionally provide the ability to search and/or filter the collection.
Figure 208 - Materials dialog from Revit
The example above shows Collection Viewer represented as a List. Table View and Tree View are also options for displaying the collection items.
Action |
Description |
Required |
|
1 |
Filter |
This provides options for filtering the list view. This can be represented as a:
|
No |
2 |
Search Box |
A search box allows users to perform a keyword search on a collection. The search box must follow Microsoft Windows User Experience Guidelines |
No |
3 |
Change viewing mode |
If the collection is viewed as list, the items can be optionally displayed with small or large icons instead of text |
No |
4 |
Collection Manager |
|
No |
5 |
View the collection |
The collection itself can be viewed in the following ways: List View, Table View, Tree View, or as a Tree Table |
Yes |
6 |
Show More |
This button hides/shows the additional data associated with the currently selected item. |
No |
When the user needs to view and browse and optionally select, sort, group, filter, or search a flat collection of items. If the list is hierarchical, use Tree View or Tree Table and if the data is grouped into two or more columns, use Table View instead.
Figure 209 - List View, showing different ways of presenting the data
There are four basic variations of this pattern that includes the following:
Use a drop down list box when you only need to present a flat list of names, only a single selection is required and space is limited. The Microsoft Windows User Experience Guidelines should be followed when using a drop-down list.
Figure 210 - Drop-down list
Use a combo box when you want the functionality of the drop-down list box but also need to the ability to edit the drop-down list box. The Microsoft Windows User Experience Guidelines should be followed when using this option, including for how to decide between drop-down and combo box.
Figure 211 - The font selector in Microsoft Office 2007 is an example of a combo box
Use when you only need to present a - list of names, it benefits the user to see all items and when there is sufficient room on the UI to display list box. Use also if selecting more than one option is required. The Microsoft Windows User Experience Guidelines should be followed when using a list box.
Figure 212 - List box
Use when the data includes the option of list, details and/or graphical thumbnail previews, such as a Windows Open Dialog.
Figure 213 - List view
Users often need to view the contents of a collection so that they can easily comprehend and compare the attributes of many items at once. To accommodate this, present the user with a table that is formatted in such a way that is conducive to scanning.
Good Example - The following is an example of a well-formatted table.
Figure 214 - Good table example
Poor Example - The following is an example of a poorly formatted table.
Figure 215 - Bad table example
Align the data so that decimals align
Figure 216 - Properly aligned numeric data
Use a column sorter when users are viewing a collection (such as a large table), possibly spanning multiple pages, that they must scan for interesting values.
There are several meaningful possibilities for sorting the table and users may be more effective if they can dynamically change the column that is used for sorting the values on.
Figure 217 - Column sorter
Often a user may need to understand complex relationships within a hierarchy of items and this can often best displayed within a "tree view." The user may also need to select one or more of the items. If the collection is a flat list, use the List View and if the data is grouped into two or more columns, use Table View or Tree Table instead.
A tree UI follows the principle of user initiated Progressive Disclosure. Using a tree allows complex hierarchical data to be presented in a simple, yet progressively complex manner. If the data becomes too broad or deep, a search box should be considered.
Figure 218 - The Revit Project Browser is a good example of a tree view
As with a Tree View, the user may need to view and browse a hierarchically organized collection of items with the intent of selecting one or more of the items. However, the user also needs to see more properties of the item than just the name. To accommodate this, present the user with a tree embedded within a table. Each row presents additional attributes of the item. Expanding a node exposes another row.
Figure 219 - The Revit Visibility/Graphics dialog is a good example of a Tree Table Collection Search / Filter
When the user is viewing a collection with many items, they may need to filter the number of items. To accomplish this, provide a way for the user choose between either a system-provided list of filter criteria and/or user-creatable criteria. Selecting the criteria automatically filters the collection. The two most common ways are demonstrated in the Revit Materials dialog.
In addition to viewing a collection of items, a user will also typically want to edit the collection. This can be accomplished by associating a toolbar for editing, creating, duplicating, renaming, and deleting items.
The buttons should be ordered left to right in the following order and with the following as tooltip labels: Edit, New, Duplicate, Delete, Rename. If a feature does not utilize one or more buttons, the rest move to the left.
Figure 220 - The Edit Bar
Action |
Context |
|
1 |
Edit |
Use If an item can be edited. Editing an item may launch a separate dialog if there are less than three properties to edit. See the Collection Viewer section for more details on displaying collection items |
2 |
New |
Use New if the application is creating a new item |
3 |
Duplicate |
Use Duplicate if the feature can only duplicate existing items |
4 |
Rename |
Use Rename if the feature allows items to be renamed |
5 |
Delete |
Use Delete to remove the feature |
To ensure that the primary UI element is placed first in the layout path, the following rules should be followed when placing the manage controls:
A slight variation on the Edit Bar is the use of Add and Remove buttons, denoted by plus and minus icons, as shown below. Add and Remove is used when data is being added to an existing item in the model.
The following is a good example of a Collection Editor dialog that uses both forms of the Edit Bar. The Add (+) and Remove (-) buttons are used to add values to an already existing demand factor type.
Figure 221 - Demand Factors dialog in Revit MEP 2011
Use when there is a number of items that the user has to add/remove from one list to another. This is typically used when there is a list (located on the right) that needs to have items added to it from an existing list (located on the left.) Provide a List Box View of the two lists with button controls between, one for adding and the other for removing items.
Figure 222 - The Curtain System SDK sample
Action |
Description |
Required |
|
1 |
Add (to list) |
Takes an item from list A and adds it to list B |
Yes |
2 |
Remove (from list) |
Removes item from List B |
Yes |
3 |
Collection Editor |
If List A can be managed in this context, use Collection Manager |
No |
Depending on the feature, the List Builder can act in one of two ways:
If the user needs to arbitrarily move an item up or down in a collection, provide up/down buttons next to the list.
Figure 223 - Up/down buttons
Task dialogs are a type of modal dialog. They have a common set of controls that are arranged in a standard order to assure consistent look and feel.
A task dialog is used when the system needs to:
The image below shows a mockup of a task dialog with all possible controls enabled. Most of the controls shown are optional and one would never create a task dialog that had everything on. The mockup below simple illustrates all the parts of a task dialog that could be utilized in one image.
Figure 224 - A task dialog with all components visible
The sections to follow explain when, where and how each task dialog component should be used to be consistent with others in Autodesk products.
These are a few guiding principles that can be applied globally to task dialogs.
When reviewing the contents of a task dialog ask:
Write "At least one referenced drawing contains one or more objects that were created in…" instead of "The referenced drawing(s) contains object(s) that were created in …"
All task dialogs require a title. Titles of task dialogs should be descriptive and as unique as possible. Task dialog titles should take the format of the following:
<featureName> - <shortTitle>
Where possible, use verbs on the second <shortTitle> part of the title such as Create, Delete, Rename, Select, etc.
In cases where there is no obviously applicable feature name (or several) applying a short title alone is sufficient.
A task dialog title should never be the product name, such as AutoCAD Architecture.
The icon appearing in the far left to the title bar should be that of the host application - this includes third party plug-ins. Task dialogs may contain plug-in names in the title to specify the source of the message, but the visual branding of all task dialogs should match the host application; such as Revit Structure, Inventor, AutoCAD Electrical, etc.
This is the large primary text that appears at the top of a task dialog.
Figure 225 - A very simple task dialog with only main instructions for text
This is the smaller text that appears just below the main instructions.
Figure 226 - A task dialog that uses both main instructions and main content
This text is hidden by default and will display at the bottom of the task dialog when the "Show" button is pressed.
Figure 227 - The Show Details button displays additional Main Content text
Task dialogs support the inclusion of an image to the left of the main instructions. Prior to task dialogs it has been common for most dialogs to have some sort of icon to show that the information it contained was informative, a warning, and error, etc.
Because images were used all the time the value of any image in a dialog was low.
For Autodesk products the warning icon (exclamation point in a yellow triangle) should only be used in situations where a possible action will be destructive in some way and likely cause loss of data or significant loss of time in rework.
A few examples include:
This is only a partial list. With the exception of such situations usage of a main image should be avoided. See Figure 228 for an example of a Task Dialog with a warning icon.
Task dialogs support a "Do not show me again" checkbox that can be enabled on dialogs that users can opt to not see in the future. The standard wording for the label on this checkbox for English language versions is:
"Do not show me this message again"
Do not is not contracted to "Don't" and there is no punctuation at the end of the line.
For the single action the working should be "Always <action>" - for example
Figure 228 - Example of a task dialog using the DNSMA checkbox as an "Always…" checkbox for one choice
Where multiple are choices possible:
Footer text is used to link to help. It replaces the Help or "?" button found on previous dialogs, and will link to the same location as an existing help link. On English language versions the text in the footer should read:
"Click here to learn more"
The text should be written as a statement in sentence format, but with no final punctuation. See Figure 226 for an example of a Task Dialog with footer text.
In instances where a task dialog is showing progress, or handling of an available option may take several seconds or more a progress bar can be used.
In task dialogs there are two ways a user can select an action - command links and commit buttons.
Command links are used in the following situations:
Command links handle scenarios such as:
Command link text has two parts:
The first command link (one at the top) is the default action for the task dialog. It should be the most common action or the least potentially damaging action if no choice is substantially more likely than the other for the common use case.
Figure 229 - A task dialog with two command links
Figure 230 - Task Dialog with command links and a command button
Commit buttons are simple buttons in the footer of the task dialog. Standard (English) terms include:
It is possible to use custom text on commit buttons, but that is not recommended.
Notes on proper usage of each of the primary button types:
Previously the OK button was often used on such dialogs. It should not be used in task dialogs for this purpose.
The following are some examples of how commit buttons should be used:
All tasks dialogs should have a default button or link explicitly assigned. If the task dialog contains an OK button, it should be the default.
Use when there are loosely related, yet distinct "chunks" of information need to exist within the same UI, but there is not enough room to display it all in a clear manner.
Separate the UI into distinct modal zones, each one represented by a "tab" with a descriptive label. The entire dialog should be treated as a single window with a single set of Commit buttons.
Figure 231 - Horizontal Tabs
Avoid more than one row of horizontal tabs. If a second row is needed, consider a vertical tab.
Figure 232 - Vertical Tabs
Vertical tabs are useful:
Pressing the tab key cycles the focus between each editable control in the dialog. The general rule is left-to-right, top-to-bottom.
Following the principle of Progressive Disclosure, users may need a way of showing more data than is presented as a default in the user interface. The Show More button is typically implemented in one of two ways:
Expander Button: Provide a button with a label such as " < Preview " or "Show more > " The double brackets > should point towards where the new information pane will be presented. When opened, the double brackets should switch to indicate how the additional pane will be "closed."
See Figure 207 - Materials dialog from Revit for an example.
Dialog Launcher: A button with ellipses (…) that launches a separate dialog. This is typically used to provide a separate UI for editing a selected item.
Figure 233 -Dialog launcher button, as implemented in the Revit View Filters dialog
Modal dialogs are used to make changes to data within the project file. Use when there is an editor a series of edits have been queued up in a modal dialog or form and need to be committed at once. If the dialog is purely informational in nature, use a Task Dialog, which has its own committing rules.
Each modal dialog or web-form must have a set of commit buttons for committing the changes and/or canceling the task and/or closing the dialog.
Figure 234 - Commit Button sizes (taken from Microsoft Windows User Experience Guidelines)
A summary of commit button styles for different window types
Pattern |
Commit Button style |
Modal Dialog |
OK/Cancel or [Action]/Cancel |
Modeless dialog |
Close button on dialog box and title bar |
Progress Indicator |
Use Cancel if returns the environment to its previous state (leaving no side effect); otherwise, use Stop |
Commit buttons should follow this layout pattern.
Figure 235 - Standard Commit Button layouts
Button Type |
|
1 |
Default (OK and other Action) buttons |
2 |
Cancel or Close Button |
3 |
Apply Button |
4 |
Dialog buttons (optional) |
Position the Default, Cancel, and Apply button(s) in this order and right aligned. The Dialog button(s) (if present) are aligned to the left, but to the right of the help button (if present).
The dialog must have a default action button. This button should be closely mapped to the primary task of the dialog. This can either be labeled OK or a more descriptive verb that describes the action.
OK buttons can be used when saving a setting or series of settings. OK button rules:
Action buttons have descriptive verbs that will be defined by the designer. Action button rules:
Apply button will commit any changes made within the dialog on all tabs, pages, or levels within a hierarchy without closing the dialog. Optimally, the user will receive visual feedback of the applied changes. Here are some basic Apply Button rules:
A dialog button performs an action on the dialog itself. Examples include: Reset and Tools for managing Favorites in an Open Dialog. They should be aligned to the far left of the dialog (to the right of the help button if present) and should never be the default.