table(テーブル)タグとは?行の構造化と読みやすさの基本
trタグの概要と重要ポイント(行=レコードの単位)
trタグは表の1行を示し、内部にthやtdを並べてレコードを構成します。まずは、行を意味のまとまり(レコード)として設計し、装飾や整列はCSSへ分離する方針を徹底します。行単位の強調や交互色もクラスで行い、HTMLは意味表現に専念します。
trタグの定義(意味としくみ)
tr(table row)は表の行を表す要素です。親要素は通常thead・tbody・tfootで、子要素はthまたはtdです。見出しの関連付けや範囲指定は行自身ではなく、thのscope属性やheaders/idで行います。行グループの意味付けはセクション要素(thead/tbody/tfoot)で担保します。
実務での論点(設計・整形・誤用防止)
行は可読性とアクセシビリティの基礎になります。複雑な結合や装飾目的の乱用は避け、検索・並び替え・エクスポートなど運用要件に耐える構造を意識します。
- 主語の明確化:1行=1件のエンティティに揃え、欠損は空セルではなく「—」等で明示します。
- 見出し関連付け:左端の行見出しは
th scope="row"、列見出しはscope="col"で宣言します。 - セル結合の節度:
rowspan/colspanは最小限にし、複雑表はheaders/idで支援します。 - スタイル分離:交互色やホバーは
tbody tr:nth-child(even)等でCSS実装します。 - レスポンシブ:表ラッパーで
overflow-x:auto。重要列は先頭へ寄せ、行内改行はCSSで制御します。
比較・使い分け表(tr・th・td・thead/tbody/tfoot)
| 要素 | 意味 | 用途 |
|---|---|---|
| tr | 表の1行(レコード) | th/tdを横並びにして項目値を束ねる |
| th | 見出しセル | 列/行の説明。scopeやheadersで関連付け |
| td | データセル | 実データの格納。単位や記号は一貫 |
| thead/tbody/tfoot | 行グループのセクション | 構造化・固定ヘッダ・集計行の整理 |
SEO・運用上の注意
tr自体は順位を左右しませんが、正しい関連付けは理解を助けます。特に、過度なセル結合の多用は読み上げや並び替えに不利です。行の意味を崩さない設計と、CSV/ソート/フィルタへの拡張を見据えたクラス設計を行いましょう。
よくある質問(FAQ)
行見出しはtdでも良いですか?
推奨しません。行のラベルは
th scope="row"にすることで、読み上げ時や関連付けが正しく機能します。trにroleやaria属性は必要ですか?
通常は不要です。ネイティブに
rowの意味を持つため、カスタムUIでない限り追加しないほうが安全です。stripe(交互色)はどう実装しますか?
tbody tr:nth-child(even)などCSSで付与します。HTMLで色属性を埋め込まず、テーマ側で統一管理します。行をまとめたいときはどうすべきですか?
tbodyなどのセクションでグループ化し、ヘッダ行はthead、集計はtfootに配置します。意味が崩れるrowspanの乱用は避けます。
trタグのまとめ
trタグは表の「行」を表す基本要素です。1行=1レコードの原則を守り、見出し関連付けはthで明示、装飾はCSSに任せます。セル結合は最小限にし、読みやすさと拡張性を両立する行設計で、アクセシビリティと保守性を高い水準で確保しましょう。











