Is this the right control?
Design concepts
Usage patterns
Guidelines
General
Interaction
Presentation
Chevrons
Arrows
Recommended sizing and spacing
Labels
Documentation
With a progressive disclosure control, users can show or hide additional information including data, options, or commands. Progressive disclosure promotes simplicity by focusing on the essential, yet revealing additional detail as needed.
Examples of progressive disclosure controls.
Note: Guidelines related to layout, menus, and toolbars are presented in separate articles.
To decide, consider these questions:

In this example, Security Center displays the important security status all the time, but uses progressive disclosure to display details on demand.
Incorrect:
In this example, users won't be motivated to hide the information.

In this example, information about the software's name and publisher is meaningful primarily to advanced users, so links to separate windows are used.
The goals of progressive disclosure are to:
Both goals can be achieved by using progressive disclosure controls, where users click to see more detail. However, you can achieve the second goal of simplifying the appearance without using explicit progressive disclosure controls by:

In this example, the Rating field is interactive, but doesn't appear so until mouse hover.

In this example, the user name and password page initially shows only the user name and optional password boxes. The confirmation and hint boxes are displayed after the user enters a password.
While progressive disclosure is a great way to simplify UIs, it has these risks:
Progressive disclosure controls are usually displayed without direct labels that describe their behavior, so users must be able to do the following based on the control's visual appearance alone:
While users can determine the above by trial and error, you should try to make such experimentation unnecessary.
Progressive disclosure controls have a fairly weak affordance, which means their visual properties suggest how they are used, albeit weakly. The following table compares the appearance of the common progressive disclosure controls:
| Control | Purpose | Appearance | Glyph indicates |
Chevrons
| Show all: Show or hide the remaining items in completely or partially hidden content. Items are either shown in place (using a single chevron) or in a pop-up menu (using a double chevron). | Chevrons point in the direction where the action will occur. | Future state |
Arrows
| Show options: Show a pop-up command menu. | Arrows point in the direction where the action will occur. | Future state |
Plus and minus controls
| Expand containers: Expand or collapse container content in place when navigating through a hierarchy. | Plus and minus symbols don't point, but the action always occurs to their right. | Future state |
Rotating triangles
| Show details: Show or hide additional information in place for an individual item. They are also used to expand containers. | Rotating triangles somewhat resemble rotating levers, so they point in the direction where the action has occurred. | Present state |
If you do only one thing...
Users should be able to predict a progressive disclosure control's behavior correctly by inspection alone. To achieve this, select the appropriate usage patterns and apply their appearance, location, and behavior consistently.
Progressive disclosure controls have several usage patterns. Some of them are built into common controls.
Chevrons show or hide the remaining items in completely or partially hidden content. Usually the items are shown in place, but they can also be shown in a pop-up menu. When in place, the item stays expanded until the user collapses it.
Chevrons are used in the following ways:
| In-place UI The associated object receives input focus and the single chevron is activated with the space bar. |
In these examples, the in-place single chevrons are positioned to the right of their associated control. |
| Command buttons with external labels The command button receives input focus and the single chevron is activated with the space bar. |
In this example, the single chevron button is labeled and positioned to the left of the label. With this pattern, the button would be difficult to understand without its label. |
| Command buttons with internal labels The command button receives input focus and is activated with the space bar. |
In these examples, regular command buttons have the double chevron positioned to suggest their meaning. |
Arrows show a pop-up command menu. The item stays expanded until the user makes a selection or clicks anywhere.
If the arrow button is an independent control, it receives input focus and is activated with the space bar. If the arrow button has a parent control, the parent receives input focus and the arrow is activated with Alt+down arrow and Alt+up arrow keys, as with the drop-down list control.
Arrows are used in the following ways:
| Separate buttons The arrow is in a separate button control. |
In these examples, separate arrow buttons positioned to the right indicate a command menu. |
| Command buttons The arrow is part of a command button. |
In these examples, menu buttons and split buttons have the arrows positioned to the right of the text. |
Plus and minus controls expand or collapse to show container content in place when navigating through a hierarchy. The item stays expanded until the user collapses it. Although these look like buttons, their behavior is in-place.
The associated object receives input focus. The plus is activated with the right arrow key, and the minus with the left arrow key.
Plus and minus controls are used in the following ways:
| Collapsible trees A multi-level hierarchy to show container content. |
In this example, the plus and minus controls are positioned to the left of the associated container. |
| Collapsible lists A two-level hierarchy to show container content. |
In this example, the plus and minus controls are positioned to the left of the associated list header. |
Rotating triangles show or hide additional information in place for an individual item. They are also used to expand containers. The item stays expanded until the user collapses it.
The associated object receives input focus. The collapsed (right-pointing) triangle is activated with the right arrow key, and the expanded (downward-pointing) triangle with the left arrow key.
Rotating triangles are used in the following ways:
| Collapsible trees A multi-level hierarchy to show container content. |
In this example, the rotating triangles are positioned to the left of the associated container. |
| Collapsible lists A two-level hierarchy to show additional information in place. |
In this example, the rotating triangles are positioned to the left of their associated list items. |
Like chevrons, additional information is shown or hidden in place. The item stays expanded until the user collapses it. Unlike chevrons, the glyphs have a graphical representation of the action, typically with an arrow indicating what will happen.
In these examples from Windows Media® Player, the glyphs have arrows that suggest the action that will happen.
Preview arrows are best reserved for situations where a standard chevron doesn't adequately communicate the control's behavior, such as when the disclosure is complex or there is more than one type of disclosure.
Correct:
Incorrect:
In the incorrect example, a link is used to show more options in place. This usage would be correct if the link navigated to another page or dialog box, or displayed a Help topic.

In this example, the tooltip indicates the effect of an unlabeled chevron control.
Incorrect:

In this example, clicking the Replace button with the chevron reveals the Replace with text box. Once this is done, the Replace expander becomes the Replace command, so there is no way to restore the original state.
Incorrect:
Although this example isn't a progressive disclosure pattern, using an arrow here suggests that commands will be shown in a popup window.
Correct:
In this example, a bullet is correctly used instead.
Incorrect:
In this example, a progressive disclosure control that doesn't apply is incorrectly disabled.
Correct:
Incorrect:
In the incorrect example, a double chevron is used for in-place progressive disclosure.
Correct:
In this example, a double chevron is used for in-place progressive disclosure because it is a command button with an internal label.
Correct:
In this example, there is a clear relationship between the in-place chevron and its associated UI.
Incorrect:
In this example, there is no clear visual relationship between the in-place chevron and its associated UI, so it seems to be floating in space.
Correct:
These arrows are clearly progressive disclosure controls.
Incorrect (for progressive disclosure):
These arrows don't look like progressive disclosure controls.
Incorrect (for Back, Forward):
These arrows look like progressive disclosure controls, but they are not.
Recommended sizing and spacing for progressive disclosure controls.
When referring to progressive disclosure controls:
Example: To display the files within a folder, move the pointer to the start of the folder name, and then click the triangle next to the folder.
Examples: