Show / hide panels

Summary

Principle

Expand/collapse panels are dynamic components designed to optimize the display of content in limited spaces by means of an “expand/collapse” system.

They can be controlled by the user, usually by activating a button at the top of the panel.

This sheet is based on the “Disclosure” design pattern detailed in W3C’s WAI-ARIA 1.1 Authoring Practices.

Core HTML base

<button aria-expanded="true">[Label for the button]<button>
<div class="visible">
  <p>[Contents of collapsed panel]</p>
</div>

ARIA roles, states and properties

The aria-expanded attribute must be added to the button which controls the panel. Its value is must be dynamically set based upon the status of the associated expanded panel:

Keyboard interactions

Enter and Spacebar

When the keyboard focus is on the button, either of these keys will toggle the associated panel open or closed.

Expected behavior

Note

If the action button is not located immediately before the HTML code of the associated expanded panel, it is important to programmatically associate the panel with the button that controls it..

This association should be made explicit using the aria-controls attribute:

<button aria-expanded="true" aria-controls="expanded-panel">[Button name]<button>
[…]
<div id="expanded-panel" class="visible">
  <p>[Content of the expanded panel]</p>
</div>

Components

The  “Expandable panel” components  are shown here because their level of accessibility is considered good or very good.

However, before using it in your project, it is important to check for compliancy with the specifications presented above. Depending on the version used, the components may need some adjustments before they can be used in your project.

Comments

Add a comment

Required fields are marked *.

Back to top