SIA-R116<summary> element has non-empty accessible name
Accessibility requirements
This rule tests conformance of the following accessibility requirements:
Description
This rule checks that each <summary> element has a non-empty accessible name.
Applicability
This rule applies to every <summary> element in the HTML namespace for which all the following are true:
- the element is included in the accessibility tree; and
- the element is the summary button for its parent
<details>element; and - the element has no explicit role, or the explicit role is ignored due to a presentational role conflict.
Expectations
- The element has an accessible name that is not empty, nor just the name of the
::markerpseudo-element.
Assumptions
The rule assumes that all <summary> elements are user interface components as defined by WCAG 2.
Accessibility Support
There is a difference in how user agents expose ::marker pseudo-element (the triangle indicating the control's expand state). As a result, some user agents include it in the accessible name of the <summary> element but other don't.
Some user agents expose the <summary> element with a button role, which deviates from its implicit ARIA semantics described in ARIA in HTML. Because some browsers do not give <summary> elements a button role, the presence of an accessible name must be treated separately for button role and <summary> elements.
Background
This rule is only applicable to <summary> elements that the browser will use as controls for a <details> element.
This rule is not applicable to <summary> elements with an explicit semantic role. Most of the time these likely do require an accessible name; this is covered by other rules.
Examples
Passed
This <summary> element has an accessible name because of its text content.
<details>
<summary>Opening times</summary>
<p>This is a website. We are available 24/7.</p>
</details>
This <summary> element has an accessible name because of its aria-label attribute.
<details>
<summary aria-label="Opening times"></summary>
<p>This is a website. We are available 24/7.</p>
</details>
Failed
This <summary> element has no accessible name, or an accessible name with just the ::marker pseudo-element, because it has no content nor attribute that can provide it.
<details>
<summary></summary>
<p>This is a website. We are available 24/7.</p>
</details>
This <summary> element has an explicit role of none. However, it is focusable (by default) which causes Presentational Roles Conflict Resolution. It fails because it has an empty accessible name.
<details>
<summary role="none"></summary>
<p>This is a website. We are available 24/7.</p>
</details>
Inapplicable
This <summary> element is not a child of a <details> element and so is not the summary button for its parent <details> element
<summary></summary>
This <summary> element is not a direct child of a <details> element and so is not the summary button for its parent <details> element
<details>
<div>
<summary></summary>
</div>
<p>This is a website. We are available 24/7.</p>
</details>
This <summary> element has an explicit semantic role of button. These are tested by another rule. Note that while this example does not fail WCAG, under ARIA in HTML it is not allowed to override the role of a summary for its parent details.
<details>
<summary role="button">Opening hours</summary>
<p>This is a website. We are available 24/7.</p>
</details>
Acknowledgments
This document includes material copied from or derived from https://www.w3.org/WAI/standards-guidelines/act/rules/2t702h/. Copyright © 2025 W3C® (MIT, ERCIM, Keio, Beihang).