Progressive disclosure
Keep the common task visible while making additional controls easy to find
Show the controls most people need first. Put less common options behind a named disclosure when that makes the task easier to understand. Keep information needed to make the current decision visible.
The common task stays visible. A specific label makes the optional settings discoverable.
Illustrative example · Reduced motion: choose a state to compare.Choose what to hide
Good candidates include optional advanced settings, detailed explanations, and secondary metadata. Keep required fields, errors, costs, and the consequences of an action visible when they affect the person's decision.
Use a concrete label such as “Advanced import settings” instead of “More” when the hidden content has a clear purpose. If a hidden option has been changed, show a short summary so the person can see that the default no longer applies.
Expand within the page
Use a Button that identifies the controlled region. Expose its expanded state and keep the region immediately after the button in reading order. A chevron can reinforce the state, while the label explains what will be revealed.
When expanding, keep focus on the control unless the task requires an immediate move. Let the next keyboard step reach the newly visible content. When collapsing a region containing focus, return focus to the disclosure control. Hidden controls should leave the keyboard order.
Preserve state and validation
Keep entered values when the region closes. If a hidden field fails validation on submission, expand its region before directing the person to the error. Avoid requiring them to search through collapsed sections for a problem.
Remember an expanded state only when it helps the same task across visits. Reset it when changing to a different object would make the previous state confusing. For a long secondary task, consider a separate page or Drawer with a clear return path.
Motion and testing
Use a short transition that preserves the relationship between the button and the content. Respect reduced motion, and keep surrounding controls from jumping under the pointer.
Check opening and closing by keyboard, submitting with an error inside the hidden region, preserving an edited value, and using the page at narrow widths. Each path should make the additional controls discoverable without blocking the common task.
Last updated on 2026-10-31
Was this page helpful?