HTML / Element / Initial coverage

<table>要素

状態: 初期Coverage 対象: HTML Living Standard 確認日: 2026-09-12

Technical Summary

table要素は、複数の次元を持つデータをtableとして表し、子孫の行・列・セルによるtable modelに参加します。行と列はgridを形成し、セルはそのgridを重複なく覆う必要があります。

tableはデータの関係を表す要素であり、ページレイアウトのための汎用コンテナではありません。レイアウトにはCSSのGridやFlexboxなどを使用します。

Definition / Content model

HTML Standardにおける主な構成順
位置要素意味条件
1caption表の説明任意。最初に置く
2colgroup列のグループ0個以上
3thead見出し行のグループ任意
4tbody または tr表本体tbodyは0個以上、またはtrを1個以上
5tfootフッター行のグループ任意

tableのcontent modelはこの順序を持ち、scriptなどのscript-supporting elementは規定された位置に混在できます。tableの開始タグと終了タグは省略できません。

Table model

table modelは、HTMLソースの見た目をそのまま写したものではありません。行と列がgridを形成し、セルはそのgrid上のslotを占有します。

source markup
  ↓ rows / columns / cells
table grid
  ↓ cell slots and spanning relationships
table model
  • Grid行と列が二次元のgridを形成する
  • Cellsセルはgridを覆い、セル同士が重複しないように構成する
  • Spanrowspancolspanを含む全分岐は別途詳細確認が必要

Header / Data cell relationships

単純な表での見出し関係
MarkupRoleRelationshipUse
th scope="col"Column header後続セルの列を説明する料金・日付・項目名など
th scope="row"Row header同じ行のデータを説明する曜日・商品名・地域など
tdData cell見出しが示すデータを持つ値・状態・説明など
id + headersExplicit association複雑な表で見出しを明示的に関連付ける多段見出し・複数軸の表

見出し関係は、文字の太さや罫線ではなく構造として表現します。単純な表ではscopeが読み取りやすい入口になります。複雑な表では、構造の単純化を優先しつつ、必要に応じてidheadersで関係を明示します。

Parser recovery boundary

HTML parserは、ソースの入れ子を単純にDOMへコピーするだけではありません。例えば、tbodyの直下にtdを置くソースはparse errorになります。このtable-body contextでは、tree builderが暗黙のtrを挿入してからtd tokenを再処理するrecovery branchがあります。

<table>
  <tbody>
    <td>source cell</td>
  </tbody>
</table>

possible DOM shape after recovery:
table → tbody → tr → td

したがって、source markupの文字列上の親子関係と、parser後のDOM treeを同一視してはいけません。適合性の判断と、ブラウザーがrecoveryした結果の観測は別の確認対象です。

DOM interface

table要素はHTMLTableElement interfaceとして扱われます。captiontHeadtFoottBodiesrowsなどのgetterや、createTBody()insertRow()などの操作が定義されています。

const table = document.querySelector('table');
table.caption;
table.tBodies;
table.rows;
table.insertRow(-1);

DOM APIの結果は、HTMLソースをどう記述したかだけでなく、parserが構築したDOM treeと、実行時に行った操作の状態に依存します。

Fact / Evidence(主張 / 根拠)

主要Factを、適用条件・確認状態・仕様上の根拠位置と対応付けています。未完了の範囲は下のCoverage / Open Issuesに残しています。

主要Factと根拠位置
種別Fact / 主張条件・範囲状態根拠
SPECtable要素はデータの関係を表し、ページレイアウトの汎用コンテナではありません。行・列のデータにはtable、ページレイアウトにはCSSの仕組みを使う場合。確認済みHTML Standard: the table element
SPECtableのcontent modelは、captioncolgroupthead、表本体、tfootの順です。表本体は0個以上のtbody、または1個以上のtrで構成します。確認済みHTML Standard: the table element
SPEC行・列・セルがtable gridを形成し、セルはslotを重複なく覆います。rowspancolspanはgridに影響するため、分岐ごとの確認が必要です。確認済みHTML Standard: forming a table
SPECthと見出し関係が、単純な表または複雑な表のデータセルを説明します。単純な行・列見出しにはscope、明示的な関連付けにはidheadersを使う場合。確認済みHTML Standard: header and data-cell semantics
SPECtable-body contextでtdが直接現れると、parserが暗黙のtrを挿入することがあります。parse errorからのrecovery経路であり、ソースの親子関係と構築後のDOMを分けて確認する場合。確認済みHTML Standard: in table body

Evidence

  1. HTML Standard: The table element — 意味、content model、table model、layout tableとの境界、DOM interface
  2. HTML Standard: Forming a table — table grid、rows、columns、cells、slotの形成
  3. HTML Standard: Header and data cell semantics — 見出しセルとデータセルの関係
  4. HTML Standard: The "in table body" insertion mode — table contextのtoken処理とrecovery境界
  5. HTML Accessibility API Mappings: table — platform accessibility mappingの確認入口

Implementation Evidence

仕様上の主張とは別に、ブラウザー実装・WPT・アクセシビリティ観測を記録します。未実施の項目は確認済みとは扱いません。

共通fixture / 実行環境: tbodyを省略したtableにscope付きの見出し、rowspan="2"headersを配置。Chrome 152.0.0.0 / Windows NT 10.0 / 確認日 2026-09-13。

table要素の実装Evidence登録表
種別再現確認の範囲記録する条件状態
IMPLparser recovery、table grid、rowspan/colspan、header関係の構築後DOMChrome 152.0.0.0 / Windows NT 10.0 / 2026-09-13。省略したtbodyが暗黙に1つ挿入され、行3・rowspan=2colspan=1を確認。thscope(col/row)とtd[headers]="h1 r1"も保持確認済み
WPTtable parsing、grid形成、header associationに関係するテストとの対応foster-parenting-moved-table.window.jsrowspan-0.htmlcol-span-limits.htmlcells.htmlを対応付け。2026-09-15 / Chrome 152.0.0.0 / Windows NT 10.0 / wpt.liveでrowspan・cellsは3/3 pass、col-spanは3/5 pass(2件は期待幅とChromium実測幅が不一致)、foster-parenting-moved-table.window.jsは実行器により開けず未実施部分実行(6/8 pass)
AAMtable、row、column、header関係のアクセシビリティツリー観測Chrome 152.0.0.0 / Windows NT 10.0 / 2026-09-13。AX treeでtable、row、cellの階層とセル名を観測。今回のChromium treeではthが独立したcolumnheader / rowheader roleではなくcellとして表示されたため、完全なheader mappingは未主張観測済み

WPTの対応付けにはWPTリポジトリ、アクセシビリティの基準にはHTML-AAMを参照します。

Coverage / Open Issues

  • Reviewed要素の意味、content model、table gridの基本、単純なheader/data関係、HTMLTableElementの主要surface
  • Reviewedtable-body contextにおける暗黙の行挿入というparser recoveryの境界
  • Openrowspan・colspan、table modelの全アルゴリズム分岐、複雑なheader associationの完全な追跡
  • Open今回のAX観測はChrome 1環境のみ。HTML-AAMの全mapping、支援技術ごとの観測、ブラウザー差、WPT、歴史的変更は未登録
  • OpenCSS table layoutとHTML table modelの実装境界、互換性、Expert-gap Review

このページは初期Coverageです。ここで確認した範囲が、table要素に関する全事実の検証完了や、すべての実装で同一結果になることを意味しません。

Related surface

表を初めて作るときの最小例、見出し、レスポンシブ対応はYugienのtable要素ページで説明しています。