HTML / Element / Implementation observations

<section>要素

状態: 選定範囲を部分観測 対象: HTML Living Standard / HTML-AAM / WAI-ARIA 仕様確認日: 2026-10-27

Technical Summary

sectionは、文書またはアプリケーション内のテーマ上のまとまりを表すsectioning contentです。通常は、その話題を説明する見出しを伴います。装飾やスクリプトのためだけの汎用コンテナーではありません。

HTML-AAM 1.0 Working Draft(2026-10-21)は、accessible nameを持つsectionをregion role、名前を持たないものをgeneric roleに対応付けます。regionはlandmark roleです。これは仕様上のmappingであり、ブラウザーが公開するAccessibility Treeと支援技術の発話は別に観測します。

Definition / Categories

項目仕様上の整理
意味文書またはアプリケーション内の汎用的なテーマのまとまり。通常は見出しを伴う
CategoriesFlow content、Sectioning content、Palpable content
ContextSectioning contentを置ける場所
Content modelFlow content
Tag omission開始tag・終了tagとも省略不可
Content attributesGlobal attributes
DOM interfaceHTMLElement
HTML-AAM role mappingaccessible nameがある場合はregion、ない場合はgeneric

意味と適用範囲

HTML Living Standard §4.3.3では、sectionはdocumentまたはapplicationの汎用sectionであり、文脈上はテーマ別のグループで、通常は見出しを伴うと定義されています。章、タブ付きUIの各ページ、論文の番号付き節、ホームページの紹介・ニュース・連絡先などが例です。

仕様は、要素の内容がdocument outlineに明示的に載ると適切な場合にsectionを使う一般則を説明しています。また、スタイルやスクリプトのためだけのコンテナーにはdivを使うよう勧めています。この説明を「ブラウザーがsection要素から見出しを生成する」という意味に読み替えてはいけません。

articleは、単独で内容が成り立ち、原則として再配布・再利用できるまとまりに適しています。sectionは、より大きな文書の一部として話題を分ける場合に適します。要素名だけで配色や枠線などの表示は決まりません。

<article>
  <h1>サービスの紹介</h1>
  <section aria-labelledby="plans-heading">
    <h2 id="plans-heading">料金プラン</h2>
    <p>利用方法に合わせて選べます。</p>
  </section>
</article>

見出しとの関係

section自体は見出し要素ではなく、見出しの表示文字列、見出しレベル、DOM上の見出し要素を自動生成しません。見出しはh1〜h6で明示します。見出しレベルは要素名の数字で表され、祖先にsectionがあるだけで自動的に変更されません。

見出し構造は文書の情報階層に合わせます。たとえば、ページの主題にh1、その下位の主題にh2、さらにその一部にh3を使います。過去のHTML outline algorithmへの期待に依存せず、実際に使用する見出し要素のレベルを確認します。

HTML Standardの定義にある「通常は見出しを伴う」という性質と、HTML-AAMにおけるsectionのaccessible nameは別の論点です。見出しが子孫にあるだけで必ずsectionのaccessible nameになるとは限りません。必要な場合はaria-labelledbyで参照関係を明示します。

Accessibility / Region Role

HTML-AAM 1.0 Working Draft(2026-10-21)は、accessible nameがあるsectionにWAI-ARIAのregion role、名前がないものにgeneric roleを指定しています。WAI-ARIAのregionはlandmarkで、支援技術の利用者がページ内の重要な領域へ移動するための役割を持ちます。

マークアップHTML-AAM上のrole確認点
<section>genericaccessible nameがなく、region landmarkとしては公開されない
<section aria-labelledby="heading-id">region参照先が有効で、計算されるaccessible nameが空でない
<section aria-label="...">regionaria-labelに空でないaccessible nameがある
<section title="...">regiontitleが空でないaccessible nameとして計算される

見える見出しをregionの名前にする場合は、その見出しのidをaria-labelledbyで参照します。空文字、空白だけの値、存在しないID参照では名前が得られない場合があります。選定WPTではこれらのcaseは成功しました。一方、title=""のrole判定はChromeとWPTの期待が一致しませんでした。実装結果は下のEvidenceに記録しています。

region landmarkはページ内の主要な領域を識別するためのものです。小さな見出しごとにすべてnamed regionを付けると、移動先が増え、利用者が探しにくくなる可能性があります。文書構造を表すsectionを使う判断と、landmarkとして名前を付ける判断を分けます。ネイティブのmappingがあるため、通常はrole="region"を重ねて指定する必要はありません。

Fact / Evidence

HTMLの適合性・意味に関する主張、HTML-AAMの規範的mapping、WPTの実行結果、ChromiumのAccessibility Tree観測を別々に記録します。Chrome 155ではtitle=""のsectionが空の名前を持つregionとして観測されましたが、選定WPTは名前のないgenericを期待します。この差は未解決です。

Key facts and evidence locations
TypeFact / ClaimConditions / ScopeStatusEvidence
SPECsectionは通常見出しを伴うテーマ上のまとまりであり、スタイル専用の汎用コンテナーにはdivが適する。HTML Living Standard §4.3.3。意味、categories、context、content model、DOM interfaceおよび使用上の助言。仕様確認済みHTML Standard: The section element
AAMHTML-AAMは、accessible nameがあるsectionをregion、ないsectionをgenericに対応付ける。HTML-AAM 1.0 Working Draft 2026-10-21。規範的mappingと実装上のAccessibility Tree観測は別に記録。Mapping確認済みHTML-AAM: section · WAI-ARIA: region
SPECsectionは見出し要素ではなく、h1〜h6の明示的な見出しレベルを自動変更しない。HTML Living Standardのsectionとheadingの定義、およびHTML-AAMのh1〜h6 mapping。実ブラウザーのheading role/levelは別途観測。仕様確認済みHTML 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 use local Chromium on the four localized topic pages and a dedicated fixture. 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 Yugien / Atlasのja・en 4ページ、共通ナビ・検索・言語切替、レスポンシブ表示、テーマ切替、section-v1のDOM計測 2026-10-27 JST / local Chromium 155.0.8059.85 / Windows NT 10.0 UA / navigator.language=ja / DPR 1。4ページすべてHTTP 200、global navigation・検索・言語切替リンク、canonical・hreflang、shared stylesを確認。1280×720と390×844で観測し、幅320・390・768・1280・1920を再確認。全幅でdocument/bodyの横はみ出しなし。最終ページの幅320pxではAtlas fact tableのwrapperは286px / 内容608px、Implementation Evidence tableは日627px・英658pxの内容でwrapper内スクロール。768px以上の英語Implementation Evidence tableはwrapper 670px / 内容690px。コード例もpre内で横スクロール。4ページすべてでlight #f5f1e8、dark #1b201e、system(OS darkに追従)を操作確認。fixture build-config/yugien/research-results/section-v1/は11/11 checks pass。外部広告scriptはローカル観測時にブラウザーrouteで遮断。 部分観測(Chromium 155 / 4ページ / 幅320–1920 / 3テーマ)
WPT HTML-AAMのsection contextual roleとaccessible-nameの選定WPT 2026-10-27 JST / Chrome Stable 155.0.8059.85 / Windows build 26300 / WPT revision 68d964a5f292bc4b2c2eba2f21e2b916190b6ad2。roles-contextual.htmlは33 pass / 5 fail、names.htmlは128/128 pass。section固有のrole caseは7/8 passで、el-section-title-emptyはChromeがregion、WPT期待がgeneric。sectionのname caseは8/8 pass。関連するel-aside-in-section-title-emptyと、Topic対象外のimage 3 caseもfail。合計161 pass / 5 fail(166 checks)。WPTコマンドには--headlessを指定し、Chrome runnerの実装が--headless=newへ変換することを確認。reportのrun_info.headless=falseは、run-infoに値がない場合にWPTが補う既定値で、起動設定を表しません。この2ファイルのみを実行。

実行したテストの版: 68d964a5f292bc4b2c2eba2f21e2b916190b6ad2。テストファイルへのリンクは、この版のファイルを開きます。

部分結果(161/166 pass、空titleのrole差を確認)
AAM section-v1のChromium Accessibility Treeにおけるrole・accessible name・見出しlevelの公開 2026-10-27 JST / local Chromium 155.0.8059.85 / DPR 1。CDP Accessibility.getFullAXTreeとbrowser role/name queryで確認。名前のないsection(子にh2あり)はgeneric・nameなし、aria-labelledby付きはregion・Plan details、空白だけのaria-labelはgeneric・nameなし、空のtitleはregion・空name、aria-label付きはregion・Extra information。参照された見出しはheading level 2。Browser AX Treeの観測であり、Windows UI Automationなどのplatform APIとスクリーンリーダー発話は未測定。 部分観測(Chromium AX Tree / 1 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 surface