概要
- カテゴリー
- 内容モデル
-
- 1個以下の
caption
要素。 - 上記に続いて、0個以上の
colgroup
要素。 - 上記に続いて、1個以下の
thead
要素。 - 上記に続いて、下記のいずれか。
- 上記に続いて、1個以下の
tfoot
要素。
- 上記に、0個以上のScript-supporting contentの混在も可。
- 補足:
tbody
要素とtr
要素は、table
要素の子としては混在してはならないということになるが、HTML構文ではtbody
要素のタグは省略可能なので見かけ上は混在状態でも妥当(混在していても、tr
要素を囲むtbody
要素のタグが省略されていると解釈すれば、tbody
要素が複数あるだけと解釈できるため)。もちろん、XML構文では駄目。
- 他の要素の規定による制限
figure
要素の子として、table
要素とfigcaption
要素しかないならば、当該table
要素においてはcaption
要素は省略されるべきである。
- 1個以下の
- 属性
-
- グローバル属性
- HTML構文におけるタグの省略
-
- 省略不可。
- 視覚系ブラウザのデフォルトとして期待されるCSS
-
table { display: table; unicode-bidi: isolate; box-sizing: border-box; border-spacing: 2px; border-collapse: separate; text-indent: initial; }
- 視覚系ブラウザにおいて期待されるレンダリング
-
- Table modelに従った表として表示。
- ユーザーエージェントに対する特記事項
- 意味・用法
-
表形式でデータを表す。
テーブルは、レイアウト補助として使用してはならない。
アクセシビリティ関連
- アクセシビリティ支援技術向け:子の
caption
要素によるキャプションの設定(Techniques for WCAG 2.1 : H39)。子孫のth
要素による見出しセルの設定(Techniques for WCAG 2.1 : F91)。
私見・補足
table
要素の本質は、「二次元配列のテキスト」なのか、それとも、「表というオブジェクト」なのか。さらにいえば、「二次元配列のテキストを表す論理要素」なのか、それとも、「テキストを表形式に整形する物理要素」なのか。さて、どっちだろうか。
表示確認
- ソース
-
<table> <caption>点数表</caption> <colgroup> <col span="1" style="background-color:yellow" /> </colgroup> <colgroup style="background-color:green"> <col span="1" /> <col span="1" /> </colgroup> <thead> <tr> <th scope="col">回数</th> <th scope="col">Aさん</th> <th scope="col">Bさん</th> </tr> </thead> <tbody> <tr> <th scope="row">第1回</th> <td>1点</td> <td>3点</td> </tr> <tr> <th scope="row">第2回</th> <td>2点</td> <td>4点</td> </tr> </tbody> <tfoot> <tr> <th scope="row">合計</th> <td>3点</td> <td>7点</td> </tr> </tfoot> </table>
- 表示結果
-
点数表 回数 Aさん Bさん 第1回 1点 3点 第2回 2点 4点 合計 3点 7点