The <section> Element
Technical Summary
section represents a thematic group in a document or application. It is sectioning content and usually has a heading. It is not a generic wrapper for styling or scripts.
The HTML-AAM 1.0 Working Draft (2026-10-21) maps a section with an accessible name to the region role, and one without a name to the generic role. A region is a landmark role. These are specification mappings; browser Accessibility Tree exposure and assistive-technology speech require separate observations.
Definition / Categories
| Item | Specification summary |
|---|---|
| Meaning | A general thematic group in a document or application, typically with a heading |
| Categories | Flow content, sectioning content, and palpable content |
| Context | Where sectioning content is expected |
| Content model | Flow content |
| Tag omission | Neither the start tag nor the end tag can be omitted |
| Content attributes | Global attributes |
| DOM interface | HTMLElement |
| HTML-AAM role mapping | region when it has an accessible name; otherwise generic |
Meaning and scope
HTML Living Standard §4.3.3 defines section as a generic section of a document or application. In this context, a section is a thematic grouping that typically has a heading. Examples include chapters, pages in a tabbed interface, numbered sections of a paper, and groups such as an introduction, news, or contact details on a home page.
The Standard gives a general rule: use section when its contents would be listed explicitly in the document's outline. It also encourages div for a wrapper needed only for styling or scripting. This guidance does not mean that a browser creates a heading from the section element.
article is appropriate for a complete, self-contained composition that could in principle be reused or distributed on its own. section groups a topic within a larger document. The element name alone does not set colors, borders, or other presentation.
<article>
<h1>Service overview</h1>
<section aria-labelledby="plans-heading">
<h2 id="plans-heading">Plans</h2>
<p>Choose a plan that fits how you use the service.</p>
</section>
</article>
Headings
section is not a heading element. It does not create a heading, heading text, heading level, or heading node in the DOM. Authors use h1 through h6 to provide explicit headings. The number in the heading element name provides its level; an ancestor section does not change that number automatically.
Choose heading levels to reflect the document's information structure. For example, use h1 for the page topic, h2 for its main topics, and h3 for a smaller topic within one of them. Check the heading elements that browsers and assistive technologies actually expose instead of relying on assumptions about an automatic outline algorithm.
The HTML definition that a section typically has a heading and the HTML-AAM computation of a section's accessible name are separate issues. A descendant heading does not necessarily become the section's accessible name by itself. Use aria-labelledby when that relationship needs to be explicit.
Accessibility / Region Role
The HTML-AAM 1.0 Working Draft (2026-10-21) maps a section with an accessible name to WAI-ARIA's region role, and an unnamed section to generic. A region is a landmark that helps assistive-technology users move to an important area of a page.
| Markup | HTML-AAM role | Condition |
|---|---|---|
<section> | generic | No accessible name; it is not exposed as a region landmark |
<section aria-labelledby="heading-id"> | region | The reference resolves to a non-empty accessible name |
<section aria-label="..."> | region | aria-label computes a non-empty accessible name |
<section title="..."> | region | title computes a non-empty accessible name |
When a visible heading should name the region, reference its id with aria-labelledby. An empty value, whitespace-only value, or reference to a missing ID may leave the element without a name. The selected WPT cases for these boundaries passed. Chrome and WPT disagreed on the role for title=""; the implementation result is recorded below.
Landmarks are navigation targets for important page areas. Naming every small heading group as a region can make those targets harder to scan. Decide separately whether content needs the document structure of a section and whether it should be exposed as a named landmark. The native mapping usually removes the need to add role="region".
Fact / Evidence
HTML conformance and meaning, HTML-AAM mappings, WPT results, and Chromium Accessibility Tree observations are recorded as separate evidence types. In Chrome 155, a section with title="" appeared as a region with an empty name, while the selected WPT expects an unnamed generic. This difference remains unresolved.
| Type | Fact / Claim | Conditions / Scope | Status | Evidence |
|---|---|---|---|---|
| SPEC | section represents a thematic group, typically with a heading; div is appropriate for a styling-only generic wrapper. | HTML Living Standard §4.3.3. Meaning, categories, context, content model, DOM interface, and authoring guidance. | Specification checked | HTML Standard: The section element |
| AAM | HTML-AAM maps a named section to region and an unnamed one to generic. | HTML-AAM 1.0 Working Draft 2026-10-21. Normative mapping and implementation Accessibility Tree observations are recorded separately. | Mapping checked | HTML-AAM: section · WAI-ARIA: region |
| SPEC | section is not a heading element and does not automatically change the explicit level of an h1–h6 heading. | HTML Living Standard definitions of section and headings, plus HTML-AAM mappings for h1–h6. Browser heading roles and levels are measured separately. | Specification checked | HTML Standard: Headings and outlines · HTML-AAM: h1 to h6 |
Evidence
- HTML Living Standard, §4.3.3 The section element — meaning, categories, context, content model, DOM interface, and authoring guidance.
- HTML Living Standard, Headings and outlines — heading elements and sectioning structure.
- HTML Accessibility API Mappings 1.0 Working Draft, 2026-10-21: section — conditional region/generic role mapping.
- WAI-ARIA 1.2, region role — region role definition and landmark semantics.
- WPT at revision
68d964a5f292bc4b2c2eba2f21e2b916190b6ad2:html-aam/roles-contextual.html— section's conditional computed role. - WPT at the same revision:
html-aam/names.html— section name sources and precedence.
Implementation Evidence
Browser observations cover the four localized topic pages and a dedicated fixture in local Chromium. WPT runs use the pinned WPT checkout shown in the evidence rows. Chromium Accessibility Tree role/name results are implementation observations. They do not measure Windows UI Automation, another platform accessibility API, or screen-reader speech.
Dedicated fixture: section-v1 checks section identity, explicit heading levels, named and unnamed section role/name exposure, responsive layout, and theme controls. Full conditions, results, and unrun scope are recorded in docs/atlas/section-evidence-2026-10-27.md.
| Type | Reproduced scope | Recorded conditions | Status |
|---|---|---|---|
| IMPL | The four Japanese and English Yugien / Atlas pages, global navigation, search and locale links, responsive layout, theme controls, and section-v1 DOM checks | 2026-10-27 JST / local Chromium 155.0.8059.85 / Windows NT 10.0 UA / navigator.language=ja / DPR 1. All four pages returned HTTP 200. Checked global navigation, search and locale links, canonical/hreflang metadata, and shared styles. Observed at 1280×720 and 390×844, then rechecked widths 320, 390, 768, 1280, and 1920. No document/body horizontal overflow at any width. In the final pages at 320px, Atlas fact table wrappers were 286px wide with 608px of content; implementation evidence wrappers were 286px wide with 627px (Japanese) / 658px (English) of content. At 768px and wider, the English implementation evidence table wrapper was 670px wide with 690px of content. Tables and code samples scroll inside their wrappers. Explicit light #f5f1e8, dark #1b201e, and system mode (follows dark OS preference) were clicked on all four pages. The fixture at build-config/yugien/research-results/section-v1/ passed 11/11 checks. The external ad script was blocked by the local browser route during observation. |
Partial observation (Chromium 155 / four pages / 320–1920px / three theme modes) |
| WPT | Selected HTML-AAM WPTs for section contextual roles and accessible names | 2026-10-27 JST / Chrome Stable 155.0.8059.85 / Windows build 26300 / WPT revision 68d964a5f292bc4b2c2eba2f21e2b916190b6ad2. roles-contextual.html had 33 passes and 5 failures. names.html passed 128/128. Section-specific role cases passed 7/8: for el-section-title-empty, Chrome returned region while WPT expected generic. Section name cases passed 8/8. Related el-aside-in-section-title-empty and three out-of-scope image cases also failed. Total: 161 passed / 5 failed (166 checks). The WPT command used --headless; the Chrome runner maps it to --headless=new. The report's run_info.headless=false is a default inserted when run-info omits that field; it does not represent the launch setting. Only these two files were run.WPT version used: |
Partial result (161/166 passed; empty-title role mismatch observed) |
| AAM | Chromium Accessibility Tree exposure of role, accessible name, and heading level in section-v1 | 2026-10-27 JST / local Chromium 155.0.8059.85 / DPR 1. Checked with CDP Accessibility.getFullAXTree and browser role/name queries. An unnamed section (with a child h2) was generic with no name; a section using aria-labelledby was a region named Plan details; a whitespace-only aria-label was generic with no name; an empty title was a region with an empty name; and an aria-label section was a region named Extra information. The referenced heading kept heading level 2. This is a browser AX Tree observation; Windows UI Automation and other platform APIs, and screen-reader speech, were not measured. |
Partial observation (Chromium AX Tree / one browser) |
Coverage / Open Issues
- Specification checkedMeaning, categories, context, content model, DOM interface, and authoring guidance
- AAM mapping checkedConditional
region/genericrole and accessible-name sources - Partial WPT resultSection name checks in
names.htmlpassed 8/8. Inroles-contextual.html, 33/38 checks passed; Chrome reportsregionforsection title=""where WPT expectsgeneric. Two related empty-title cases fail, along with three unrelated image cases. - OpenThe empty-title mapping difference, other browsers, Windows platform accessibility APIs, screen-reader speech, and the remaining HTML-AAM/WPT coverage