テストページに関する注意
このページには、テストおよびデモのために意図的にアクセシビリティ上の問題を含む実装例が含まれています。
これらの例を本番サイトで使用しないでください。アクセシビリティのガイドラインやベストプラクティスに反します。
このページは Accessibility Visualizer 拡張機能と併用することで、開発者がアクセシビリティの問題を発見・理解するのを支援する目的で作られています。
テーブル
テーブルは行と列でデータを整理します。支援技術がデータの関係を理解できるよう、適切な構造が必要です。
テーブルの構造
適切なヘッダーを持つテーブル
✅ th 要素と scope 属性を用いた適切な構造。スクリーンリーダーが列・行の関係を認識できます。
| Name | Age | City |
|---|---|---|
| John | 25 | New York |
| Jane | 30 | London |
ヘッダーのないテーブル
❌ th を用いず td だけで構成されたテーブル。支援技術がデータの関係を把握できません。
| Name | Age | City |
| John | 25 | New York |
| Jane | 30 | London |
行見出しのあるテーブル
✅ 列見出しに加えて行見出しも備え、複雑なデータ関係を scope 属性で表現しています。
| Quarter | Sales | Profit |
|---|---|---|
| Q1 | $100K | $20K |
| Q2 | $150K | $30K |
caption のあるテーブル
✅ caption 要素によりテーブルの目的や内容の文脈を提供します。利用者が理解しやすくなります。
| Name | Department |
|---|---|
| Alice | Engineering |
| Bob | Marketing |
複雑なヘッダー
行グループの見出し(scope="rowgroup")
✅ scope="rowgroup" の見出し(Cats、English speakers)は、その行グループ内で自分より左の列を除くすべてのセルに適用されます。行見出し(Legs、Tails)が左端ではなく2列目に置かれている点にも注目してください。
| ID | Measurement | Average | Maximum |
|---|---|---|---|
| Cats | |||
| 93 | Legs | 3.5 | 4 |
| 10 | Tails | 1 | 1 |
| English speakers | |||
| 32 | Legs | 2.67 | 4 |
| 35 | Tails | 0.33 | 1 |
この表は WHATWG による HTML Standard から引用したもので、CC BY 4.0 のもとで利用しています。
列グループの見出し(scope="colgroup")
✅ scope="colgroup" の見出し(Sales)は、その列グループ内のすべてのセルに適用され、複数の列を共通の見出しでまとめます。
| Sales | ||
|---|---|---|
| Month | Online | Store |
| January | 120 | 340 |
| February | 150 | 310 |
左端の列にない行見出し
✅ 行見出し(Country)が2列目にあり、その左にデータ列(Rank)があります。scope="row" の見出しは右側のセルにのみ適用されるため、Rank 列とは関連付けられません。
| Rank | Country | Capital |
|---|---|---|
| 1 | Japan | Tokyo |
| 2 | France | Paris |