HTML / Element / Initial coverage

The <summary> Element

Status: Initial coverage Scope: HTML Living Standard / HTML-AAM Specification checked: 2026-10-23

Technical Summary

A summary is the summary for its parent details when it is the first summary element child. Activating it causes the user agent to set or remove the parent details element's open attribute.

Meaning, activation, and accessible name depend on parentage and order. A summary has no independent disclosure state or summary-specific DOM interface.

Definition / Categories

ItemSpecification summary
MeaningA summary, caption, or legend for the rest of the parent details element's contents, if any
CategoriesNone
ContextAs the first child of a details element
Content modelPhrasing content, optionally intermixed with heading content
Tag omissionNeither tag is omissible
Content attributesGlobal attributes; no summary-specific content attributes
DOM interfaceUses HTMLElement; no summary-specific interface

Selection within a parent details

The HTML Standard's selection algorithm identifies a summary when its parent is a details element and it is that parent's first summary element child. The condition checks the first summary element child; it does not simply test whether any earlier node or any other element exists.

<details>
  <summary>First summary — can control disclosure</summary>
  <p>Additional contents</p>
  <summary>Second summary — does not control disclosure</summary>
</details>

A summary outside details, nested inside another element, or after another summary is not the summary for that parent details. Its activation behavior does not toggle the parent's open attribute.

Content model and conformance

The summary content model is phrasing content, optionally intermixed with heading content. Conforming details markup puts summary first, followed by flow content.

Record the activation algorithm separately from markup conformance. For example, a selected WPT case checks that a summary still activates when another flow element precedes it, because it remains the first summary element child. That DOM order does not make the markup conforming or recommended.

Summary text should identify the additional contents while the disclosure is closed. When heading content is included, heading-outline effects and accessible-name computation are part of the review.

Activation and state

Activation of a qualifying summary removes the parent details element's open attribute when present, and sets it to the empty string when absent. The parent details element owns the boolean open state; summary does not.

const summary = document.querySelector('details > summary');
const details = summary.parentElement;

summary.click();
console.log(details.open); // true or false

Mouse, keyboard, and HTMLElement.click() are distinct activation paths. The user agent supplies the disclosure indicator. If styling it, check the behavior of ::marker and state-dependent CSS, and do not generalize browser-specific rendering as a universal requirement.

DOM Interface

A summary uses HTMLElement; the HTML Standard defines no summary-specific DOM interface. The element has no open property. Determine its relationship from parentage and order, and read disclosure state from its parent details element.

const summary = document.querySelector('details > summary');
const parent = summary.parentElement;
const isFirstSummary =
  parent.localName === 'details' &&
  [...parent.children].find((child) => child.localName === 'summary') === summary;

console.log(summary instanceof HTMLElement); // true
console.log('open' in summary);               // false
console.log(parent.open);                     // parent details state

Accessibility / HTML-AAM

The 2026-10-12 HTML-AAM 1.0 Working Draft gives a qualifying summary the computed role html-summary, with no corresponding WAI-ARIA role. It maps the control to platform roles such as push button, toggle button, or disclosure triangle, and exposes the parent details state as expanded or collapsed.

The draft maps a summary that does not qualify within its parent details to a generic role. Its accessible name is computed from aria-label or aria-labelledby when present, and otherwise from the summary subtree text. An empty summary may not have a useful accessible name.

In Chrome 155, the browser accessibility tree exposed a qualifying summary as DisclosureTriangle, used its visible text as the accessible name, and changed expanded with the parent details state. An aria-label name override was also observed. The second summary was also exposed as DisclosureTriangle, with expanded=true while its parent details was open, although clicking it did not change the parent open state. Nested and standalone summaries appeared as generic.

Fact / Evidence

Normative conditions, accessibility mappings, and observations are recorded separately. A result from selected tests and one environment is not generalized to unmeasured browsers or platform APIs.

Major facts and source locations
TypeFact / claimCondition / scopeStatusSource
SPECA summary is the summary for a parent details when it is that parent's first summary element child.Parent relationship and summary element order within that parent.Specification checkedHTML Standard: The summary element
SPECActivation sets or removes the parent details element's open attribute.Only when the target summary is the summary for its parent details.Specification checkedHTML Standard: activation behavior
AAMA qualifying summary and other summary elements map to different roles. Its accessible name uses ARIA name attributes or its subtree.HTML-AAM 1.0 WD 2026-10-12. Platform mappings and user-agent observations have separate scope.Document checkedHTML-AAM 1.0 Working Draft

Evidence

  1. HTML Standard: The summary element — categories, context, content model, interface, selection algorithm, and activation behavior
  2. HTML Standard: The details element — disclosure meaning and parent open state
  3. HTML-AAM 1.0 Working Draft, 2026-10-12 — role mappings and summary accessible-name computation
  4. Web Platform Tests: the-summary-element — selected activation and summary interaction tests

Implementation Evidence

On 2026-10-23, browser interaction, selected WPTs, and the browser accessibility tree were measured in Chrome 155. All 9 selected WPT tests passed. The AAM observation found that Chrome exposed a second summary as DisclosureTriangle even though the Working Draft maps a non-qualifying summary to generic. See the measurement record for conditions and results. This does not include measurements from other browsers, operating-system APIs, or screen readers.

Implementation evidence registry for the summary element
TypeReproduction scopeConditions to recordStatus
IMPL Selection conditions, trusted pointer and keyboard activation, parent details open / toggle behavior, and Chrome AX tree in summary-v1 2026-10-23 JST / Chrome 155.0.8059.85 (HeadlessChrome 155 / Windows NT 10.0) / viewport 1280×800 / DPR 1 / navigator.language=ja / timezone Asia/Tokyo. Recorded 9 structural cases in summary-v1. A pointer click opened and closed details; Space opened it and Enter closed it. All five pointer / keyboard click events had isTrusted=true, and each toggle event exposed oldState / newState. The first summary still activated when a span preceded it. Partial observation (Chrome 155 / pointer, keyboard, and AX tree)
WPT Selected WPTs for summary activation, summary element-child selection, and toggle-event coalescing 2026-10-23 JST / Chrome 155.0.8059.85 (HeadlessChrome 155 / Windows NT 10.0) / activation-behavior.html. Harness status OK, 9 tests / 9 passed. Coverage includes closed / open state, unrendered details / summary, a preceding flow element, a preceding summary, nested summary, and toggle coalescing. The upstream revision served by wpt.live could not be pinned.

The test version used was not recorded. The linked test may change, so this result cannot be repeated with certainty against the same version.

9/9 selected WPT tests passed (wpt.live revision unpinned)
AAM Role, accessible name, focusable / expanded state for a qualifying summary, and role exposure for non-qualifying summaries 2026-10-23 JST / Chrome 155.0.8059.85 (HeadlessChrome 155 / Windows NT 10.0) / viewport 1280×800 / DPR 1 / navigator.language=ja. CDP Accessibility.getPartialAXTree exposed a qualifying summary as DisclosureTriangle with its text accessible name, focusable state, and expanded=false / true reflecting parent details. aria-label name replacement was also observed. A second summary was also exposed as DisclosureTriangle / expanded=true, but activating it did not change the parent open state. HTML-AAM 1.0 WD 2026-10-12 maps a non-qualifying summary to generic. Nested / standalone summaries appeared as generic in the Chrome tree. Chrome browser AX tree only; Windows UI Automation, IAccessible2, other platform APIs, and assistive technologies were not measured. Partial observation (Chrome AX tree / non-qualifying summary role difference)

A role query in one browser is an observation of that browser's accessibility-tree exposure. It does not measure Windows UI Automation, IAccessible2, ATK, Apple AX, or assistive-technology speech and interaction.

Coverage / Open Issues

  • Specification checkedMeaning, categories, context, content model, tag omission, global attributes, and DOM interface
  • Specification checkedSelection within a parent details and activation that changes the parent's open attribute
  • Partial observationChrome 155 opened and closed details through pointer, Space, and Enter; selected WPTs passed 9/9 (wpt.live revision unpinned)
  • Needs follow-upThe second summary did not toggle its parent, but Chrome AX tree exposed it as DisclosureTriangle. Compare this difference from the HTML-AAM generic mapping in other browsers and platform APIs.
  • OpenPointer and keyboard behavior, marker rendering, and dynamic child changes across browsers and operating systems
  • OpenWindows UI Automation, IAccessible2, ATK, Apple AX, and screen-reader-specific observations
  • OpenOther WPT files, Expert-gap Review, full compatibility data, and historical changes

This is initial coverage. Selected observations do not establish the same implementation result across all user agents or assistive technologies.

Related surface

For a beginner-friendly example and advice on clear disclosure labels, see summary in Yugien. The parent open state, toggle event, and exclusive name group are covered in the details Topic. Verify the accessible name and role with the target browser's accessibility tree and assistive technology.