我只是想知道默认情况下,HTML<table>
元素是否隐式地将属性 scope="col" 应用于<th>
元素中包含的第一组<thead>
元素?
当我在浏览器中呈现下面的第一组 HTML 时,它似乎自动检测到<th>
一月、二月、三月、四月等的单元格是列的标题。那么 scope="col" 是否不需要添加到标记中,因为它会以这种方式自动呈现?
<table>
<caption>2009 Employee Sales by Department</caption>
<thead>
<tr>
<th></th>
<th>Jan</th>
<th>Feb</th>
<th>March</th>
<th>April</th>
<th>May</th>
<th>June</th>
</tr>
</thead>
<tbody>
<tr>
<th scope="row">Firefox</th>
<td>37.1</td>
<td>36.6</td>
<td>36.3</td>
<td>35.8</td>
<td>35.2</td>
<td>34.4</td>
</tr>
</tr>
</tbody>
</table>
这第二组标记包括为 Jan、Feb、March April 等添加到标签中的 scope="col"。有必要吗?正如上面的示例似乎将这些渲染<th>
为列而没有范围“col”。
我知道 scope 属性在普通的网络浏览器中没有视觉效果,但可以被屏幕阅读器使用。那么是否应该为了更好的语义标记和可访问性而添加它?
<table>
<caption>2009 Employee Sales by Department</caption>
<thead>
<tr>
<th scope="col"></th>
<th scope="col">Jan</th>
<th scope="col">Feb</th>
<th scope="col">March</th>
<th scope="col">April</th>
<th scope="col">May</th>
<th scope="col">June</th>
</tr>
</thead>
<tbody>
<tr>
<th scope="row">Firefox</th>
<td>37.1</td>
<td>36.6</td>
<td>36.3</td>
<td>35.8</td>
<td>35.2</td>
<td>34.4</td>
</tr>
</tr>
</tbody>
</table>