HTML / Element / Initial coverage

The <aside> Element — Supporting Content, Sectioning, and Complementary Mapping

Status: Selected scope partially observed Scope: HTML Living Standard / HTML-AAM / WAI-ARIA / WPT Specification review: 2026-11-04

Technical Summary

aside represents a section whose content is related to its surroundings but can be separated from them. It may be presented like a printed sidebar, but the element is chosen from the content's relationship to the surrounding text, not from its position or CSS layout. A parenthetical alone is not an appropriate use.

In HTML, aside is Flow, Sectioning, and Palpable content. Its content model is Flow content and its DOM interface is HTMLElement. The HTML-AAM 1.0 Working Draft has context-dependent role mappings: complementary in body or main scope; within Sectioning content, complementary when the aside has an accessible name and generic when it does not.

Normative definition and categories

The HTML Living Standard defines aside as a section of a page whose content is tangentially related to the surrounding content and could be considered separate from it. Its examples include complementary information, pull quotes, advertising, sidebars, and groups of nav elements. The examples do not mean every item in those visual or business categories should use aside; check whether the content works as separate supporting material in context.

PropertyNormative definitionReview point
CategoriesFlow content / Sectioning content / Palpable contentIt is one of the elements that creates a section in a document
ContextWhere Sectioning content is expectedAlso check the content model of the parent element
Content modelFlow contentMay contain flow content; descendants must also meet their own HTML conformance rules
Tag omissionNeither start nor end tag may be omittedOmitting either tag is non-conforming
DOM interfaceHTMLElementNo aside-specific interface is defined

Boundaries with section, article, and figure

Distinguish aside from other Sectioning content by the role of the group, not by its size or appearance. The elements are not mutually exclusive. For example, an aside can appear inside an article as supporting information for that article.

ElementNormative meaningDistinction from aside
asideContent related to its surroundings that can stand apartA group that supports the main content
articleComplete content that can be distributed or reused independentlyTreat the content itself as an independent article
sectionA thematic section within a document or applicationA topic that is part of the main document structure
navA section of links for navigating a page or other pagesUse for a major group of navigation links
figureSelf-contained content such as a figure or code exampleRepresents an illustration or example that is central or referred to
divA generic group that adds no special meaningUse when only grouping is needed, with no supporting-content meaning

The Standard's sidebar example does not mean every box placed beside content is an aside. Changing CSS placement does not change HTML meaning. Keep a restatement or parenthetical phrase that belongs in the text's flow within that text.

Example and semantic scope

<main>
  <h1>Check the Mountain Forecast</h1>
  <article aria-labelledby="forecast-title">
    <h2 id="forecast-title">Afternoon Forecast</h2>
    <p>The forecast calls for stronger winds in the afternoon.</p>
    <aside aria-labelledby="wind-note-title">
      <h3 id="wind-note-title">About the Wind</h3>
      <p>Wind can feel stronger near the summit than at lower elevations.</p>
    </aside>
  </article>
</main>

Here, article represents one forecast, and aside represents information that supports the forecast. Their HTML meaning is present even if no CSS positioning is added. aria-labelledby connects the visible heading to the aside as its accessible name.

aside does not implement show/hide, collapse, side-by-side layout, or search indexing. Those behaviors require separate HTML, CSS, or JavaScript mechanisms.

Context-dependent role mapping

HTML meaning and the role exposed to assistive technology are separate layers. The HTML-AAM 1.0 Working Draft (2026-10-12) separates aside mapping by sectioning scope as follows. This is Working Draft text; it does not report observations from every browser or operating system.

Ancestor contextAccessible nameRole in HTML-AAM 1.0 WD
body or main scopeWith or without a namecomplementary
Within article, aside, nav, or sectionName is presentcomplementary
Within article, aside, nav, or sectionNo namegeneric

Possible accessible names include referenced visible text through aria-labelledby, a non-empty aria-label, or a non-empty title. The actual name computation follows HTML-AAM and Accessible Name rules. Mapping an unnamed aside in sectioning scope to generic concerns its role in the Accessibility Tree; it does not change the DOM element.

WPT roles-contextual.html covers unnamed and named asides, empty labels, an unresolved aria-labelledby reference, and title. A separate WPT tests an aside inside an article whose HTML element has a namespace prefix. The tested files and results are pinned in Implementation Evidence.

Accessible names and landmark use

complementary is a landmark role for a supporting area of the main content. The WAI-ARIA APG says the area should relate to the main content at a similar level and remain meaningful when separated. It advises that complementary landmarks should generally be top-level rather than inside other landmarks, and that multiple complementary landmarks on a page should have different labels.

Satisfying an HTML-AAM mapping condition and choosing to add a landmark are not the same design decision. Before adding aria-label, decide whether users need to navigate to the aside as a separate landmark. An unnamed aside is not automatically incomplete.

<aside aria-labelledby="weather-note-title">
  <h2 id="weather-note-title">Reading the Forecast</h2>
  <p>The chance of rain describes the likelihood of rain during the stated period.</p>
</aside>

The heading can serve as the accessible name here because aria-labelledby references it. A heading alone does not always become the landmark name. Whether a label is needed also depends on how many such landmarks the page has.

Fact / Evidence

TypeClaimEvidence scopeStatusReference
SPECaside represents a section related to its surroundings that can stand apart. Its categories are Flow, Sectioning, and Palpable content.Definition, categories, examples, and parenthetical note in the HTML Living Standard.Specification reviewedHTML Standard: aside
SPECThe HTML Standard defines aside context, content model, tag omission, and DOM interface.Technical definition for the aside element.Specification reviewedHTML Standard: aside element details
AAMThe HTML-AAM WD distinguishes body / main scope from sectioning-content scope; in the latter, role mapping depends on whether the aside has an accessible name.HTML-AAM 1.0 Working Draft, 2026-10-12. This is a mapping in the draft.Mapping reviewedHTML-AAM: aside
AAMThe WAI-ARIA APG explains the purpose, hierarchy, and labeling guidance for complementary landmarks.Authoring Practices guidance; distinguished from the normative HTML-AAM mapping.Guidance reviewedWAI-ARIA APG: Landmark Regions

Evidence sources

  1. HTML Living Standard: The aside element — categories, context, content model, definition, examples, and authoring note.
  2. HTML Accessibility API Mappings 1.0 Working Draft, 12 October 2026: aside — context-sensitive role mapping.
  3. WAI-ARIA Authoring Practices Guide: Landmark Regions — complementary landmark purpose, hierarchy, and labels.
  4. WAI-ARIA 1.2: complementary role — role definition.
  5. WPT html-aam/roles-contextual.html at the tested revision — contextual and named role cases.
  6. WPT html-aam/aside-in-prefixed-article.html at the tested revision — an aside inside an article element with a namespace prefix.

Implementation Evidence

On 2026-11-04, Chromium 156 was used to observe the four Japanese and English pages and the aside DOM fixture. Two files from a pinned WPT revision had 34/39 assertions pass; 19/20 aside assertions passed. The remaining aside assertion concerns an aside with title="" inside Sectioning content. WPT expects generic, but Chromium's Accessibility Tree returned complementary with an empty name. Three image-related assertions and one section assertion also failed; they are recorded separately from the aside result. A Playwright / Chrome DevTools Protocol adapter supplied role queries. This was not an official wptrunner / WebDriver run.

Implementation Evidence registry for the aside element
TypeReproduced scopeConditions to recordStatus
IMPL Four Japanese and English Yugien / Atlas pages, search, locale switching, same-origin routes, responsive widths, system / light / dark themes, and page structure 2026-11-04 JST / Windows 11 / Google Chrome 156.0.8078.74 / Playwright 1.62.1 / DPR 1 / local loopback. All four pages returned HTTP 200. Checked canonical URLs, ja/en hreflang, surface navigation, search links, and same-origin internal routes. No route failures, missing fragments, console errors, or local resource failures. No horizontal overflow at 320 / 390 / 768 / 1280 / 1920 CSS px. Emulated light and dark system preferences, checked their CSS background colors (light rgb(245, 241, 232) / dark rgb(27, 32, 30)), and checked explicit light / dark selections. The search index contains two locale-paired aside records; /search/?q=aside rendered links to Atlas, Yugien, and alternate-locale pages. The fixture's structural check passed 16 items. Details: build-config/yugien/research-results/aside-v1/browser-report.json. Partial observation (Chrome 156 / four pages / five widths / four theme states)
WPT Selected HTML-AAM WPT assertions for contextual aside roles, accessible names in Sectioning content, and an aside inside a namespace-prefixed article 2026-11-04 JST / Google Chrome 156.0.8078.74 / WPT revision 5b11a9b4169aba2d11f33d787c88222bf9f017c3. html-aam/roles-contextual.html: 33/38 passed, 5 failed. Aside assertions: 18/19 passed. For the empty-title aside assertion, WPT expects generic, but Chrome CDP returned complementary with an empty name. The other failures were three img assertions and one section assertion. html-aam/aside-in-prefixed-article.html: 1/1 passed. Across both files: 34/39 passed; aside-related: 19/20 passed. Pinned testharness files ran locally with Playwright / CDP adapters for test_driver.get_computed_role and get_computed_label. This was not an official wptrunner / WebDriver run. Details: build-config/yugien/research-results/aside-v1/wpt-report.json.

WPT version used: 5b11a9b4169aba2d11f33d787c88222bf9f017c3. Test-file links open files from this version.

34/39 passed; 19/20 aside assertions passed (two selected files / Chrome 156)
AAM Chrome Accessibility Tree roles and names for asides across ancestor contexts, accessible-name cases, and an aside inside a namespace-prefixed article 2026-11-04 JST / Google Chrome 156.0.8078.74 / Playwright 1.62.1 / Chrome DevTools Protocol Accessibility.getPartialAXTree. Asides in body / main scope returned complementary with and without a name. Within article / section / aside scope, unnamed examples returned generic; examples with aria-label / aria-labelledby / a non-empty title returned complementary. Empty or whitespace aria-labels, unresolved aria-labelledby, an unnamed nested aside, and an aside in a prefixed article returned generic. In contrast, an aside with title="" inside Sectioning content returned complementary with an empty name, differing from the WPT expectation of generic that reflects the HTML-AAM 1.0 WD dated 2026-10-12. A separate nested-aside fixture showed the same empty-name / complementary result. This is a Chromium Accessibility Tree observation only; OS accessibility APIs, Firefox / Safari, speech, and braille were not measured. Details: build-config/yugien/research-results/aside-v1/browser-report.json and docs/atlas/aside-evidence-2026-11-04.md. Partial observation with a WPT role difference (Chrome Accessibility Tree)

Coverage / Open Issues

  • Specification reviewedDefinition, categories, context, content model, boundaries with sectioning elements, HTML-AAM WD mapping, and complementary landmark guidance
  • ObservedFour pages in Chromium 156, DOM fixture, 320–1920px widths, system / light / dark themes, and two pinned WPT files (19/20 aside assertions passed)
  • Open differenceWithin Sectioning content, WPT expects generic for an aside with title=""; Chrome 156's AX Tree returned complementary with an empty name
  • Not coveredFirefox and Safari; Windows UI Automation / IAccessible2; macOS AX / ATK; speech and braille output; full WPT and all HTML-AAM cases

This record is limited to one browser and selected WPT assertions. The Accessibility Tree is not itself a platform API, and speech or user comprehension was not measured. Partial observations are not generalized to other browsers or operating systems.

Related topics