tableのthのscope属性を省略したときのことを知りたい
もし scope 属性が指定されていないか、その値が row, col, rowgroup, colgroup でない場合は、ブラウザーは自動的に見出しセルが適用されるセルの集合を選択します。
「自動的に」のロジックを確認しておきたい。
MDNの例を元に、NVDAの挙動を確認した。
<table>
<caption>
Alien football stars
</caption>
<tr>
<th>Player</th>
<th>Gloobles</th>
<th>Za'taak</th>
</tr>
<tr>
<th>TR-7</th>
<td>7</td>
<td>4,569</td>
</tr>
<tr>
<th>Khiresh Odo</th>
<td>7</td>
<td>7,223</td>
</tr>
<tr>
<th>Mia Oolong</th>
<td>9</td>
<td>6,219</td>
</tr>
</table>
と
<table>
<caption>
Alien football stars
</caption>
<tr>
<th scope="col">Player</th>
<th scope="col">Gloobles</th>
<th scope="col">Za'taak</th>
</tr>
<tr>
<th scope="row">TR-7</th>
<td>7</td>
<td>4,569</td>
</tr>
<tr>
<th scope="row">Khiresh Odo</th>
<td>7</td>
<td>7,223</td>
</tr>
<tr>
<th scope="row">Mia Oolong</th>
<td>9</td>
<td>6,219</td>
</tr>
</table>
は挙動が同じようだった。
Player
は列方向の見出しとして読み上げられた。
仕様にロジックが書いてある。
A header cell anchored at the slot with coordinate (x, y) with width width and height height is said to be a column header if any of the following are true:
the cell's scope attribute is in the column state; or
the cell's scope attribute is in the auto state, and there are no data cells in any of the cells covering slots with y-coordinates y .. y+height-1.A header cell anchored at the slot with coordinate (x, y) with width width and height height is said to be a row header if any of the following are true:
the cell's scope attribute is in the row state; or
the cell's scope attribute is in the auto state, the cell is not a column header, and there are no data cells in any of the cells covering slots with x-coordinates x .. x+width-1.
らしいのだが、ちょっと疑問。
「y方向にデータセルがなければ列ヘッダー」
「x方向にデータセルがなければ行ヘッダー」、とあるが、逆じゃないか?
thの項目で適用される方向が図示されており、これを見ると
「x方向にデータセルがなければ列ヘッダー」
「y方向にデータセルがなければ行ヘッダー」な気がする
シンプルに自分が読み方を間違えているのか…?