スコープ属性はテーブルで正しく使用する必要があります
修正方法
HTML5 を使用している場合、scope
属性が th
要素にのみ使用されていることを確認します。HTML 4 を使用している場合、scope
属性が th
および td
にのみ使用されていることを確認します。
row
または col
のいずれかだけであり、それ以外ではないことを確認します。
すべての scope
属性を持っていない th
要素に追加します。
複雑でないデータテーブル内のヘッダーセルとデータセルの関係性を表すために必要なマークアップは scope
属性を使用することで実現可能です。scope
属性は、列の下にあるものはすべて上部のヘッダーに関連し、行ヘッダーの右側にあるものはすべてそのヘッダーに関連していることをブラウザーやスクリーン・リーダーに伝えます。
scope 属性をテーブルに追加するとこのようなマークアップになります:
良い例
<table>
<caption><strong>Greensprings Running Club Personal Bests</strong></caption>
<tr>
<th scope="col">Name</th>
<th scope="col">1 mile</th>
<th scope="col">5 km</th>
<th scope="col">10 km</th>
</tr>
<tr>
<th scope="row">Mary</th>
<td>8:32</td>
<td>28:04</td>
<td>1:01:16</td>
</tr>
<tr>
<th scope="row">Betsy</th>
<td>7:43</td>
<td>26:47</td>
<td>55:38</td>
</tr>
<tr>
<th scope="row">Matt</th>
<td>7:55</td>
<td>27:29</td>
<td>57:04</td>
</tr>
<tr>
<th scope="row">Todd</th>
<td>7:01</td>
<td>24:21</td>
<td>50:35</td>
</tr>
</table>
Name、1 mile、5 km そして 10 km に対する一番上のヘッダーおよび Mary、Betsy、Matt そして Todd に対する行ヘッダーはすべて th
要素でマークアップされていることに注意してください。また、これらの各ヘッダーセルには、列あるいは行ヘッダーセルに応じて col
または row
という値の scope
属性が指定されています。
なぜ重要なのか
scope
属性が正しく使用されていると、スクリーン・リーダーのユーザーはより簡単にテーブルを移動できます。誤って使用されている場合、scope
はテーブルの移動を難しく、非効率的にします。
スクリーン・リーダーはテーブルにヘッダーがあり、そのヘッダーがスコープを指定するという前提で動作します。スクリーン・リーダーの機能により、正確なヘッダーを使用することで、このデバイスを使用する人がよりアクセシブルかつ効率的にテーブルを確認できるようになります。
ルールの説明
テーブルの scope
属性は HTML4 あるいは HTML5 の仕様に沿って使用し、スクリーン・リーダーのユーザーが効率的にテーブル内を移動できるようにしなければなりません。
仕組みについて (簡単に言うと)
scope 属性がテーブル上で正しく使用されていることを確認します。