HTML / Element / Implementation observations

The <section> Element

Status: Partial observations for selected cases Scope: HTML Living Standard / HTML-AAM / WAI-ARIA Specification checked: 2026-10-27

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

ItemSpecification summary
MeaningA general thematic group in a document or application, typically with a heading
CategoriesFlow content, sectioning content, and palpable content
ContextWhere sectioning content is expected
Content modelFlow content
Tag omissionNeither the start tag nor the end tag can be omitted
Content attributesGlobal attributes
DOM interfaceHTMLElement
HTML-AAM role mappingregion 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.

MarkupHTML-AAM roleCondition
<section>genericNo accessible name; it is not exposed as a region landmark
<section aria-labelledby="heading-id">regionThe reference resolves to a non-empty accessible name
<section aria-label="...">regionaria-label computes a non-empty accessible name
<section title="...">regiontitle 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.

Key facts and evidence locations
TypeFact / ClaimConditions / ScopeStatusEvidence
SPECsection 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 checkedHTML Standard: The section element
AAMHTML-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 checkedHTML-AAM: section · WAI-ARIA: region
SPECsection 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 checkedHTML Standard: Headings and outlines · HTML-AAM: h1 to h6

Evidence

  1. HTML Living Standard, §4.3.3 The section element — meaning, categories, context, content model, DOM interface, and authoring guidance.
  2. HTML Living Standard, Headings and outlines — heading elements and sectioning structure.
  3. HTML Accessibility API Mappings 1.0 Working Draft, 2026-10-21: section — conditional region/generic role mapping.
  4. WAI-ARIA 1.2, region role — region role definition and landmark semantics.
  5. WPT at revision 68d964a5f292bc4b2c2eba2f21e2b916190b6ad2: html-aam/roles-contextual.html — section's conditional computed role.
  6. 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.

section implementation evidence registry
TypeReproduced scopeRecorded conditionsStatus
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: 68d964a5f292bc4b2c2eba2f21e2b916190b6ad2. Test-file links open files from this version.

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/generic role and accessible-name sources
  • Partial WPT resultSection name checks in names.html passed 8/8. In roles-contextual.html, 33/38 checks passed; Chrome reports region for section title="" where WPT expects generic. 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

Related surfaces