5

我只是想知道默认情况下,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>
4

2 回答 2

3

根据HTML5 规范,该scope属性默认为auto

范围属性的缺失值默认是自动状态。

这个值的特点是

自动状态使标题单元格应用于基于上下文选择的一组单元格。

所以我假设屏幕阅读器将能够正确检测上下文,这反过来意味着您不必显式定义属性,除非您有一些特殊的实例或用例rowgroupcolgroup值。

于 2012-10-16T09:03:28.647 回答
0

您可以使用范围属性更多地指定表格的含义。在普通表格中,我什至不会使用它,但是如果您的表格在您的页面上有意义,并且人们想要接管它,那么使用它会很方便,尤其是在阅读器上。但是,如果您只是添加表来在其中做一些次要的事情,请将其排除在外。就个人而言,只有当表格真正扩大时,您才应该考虑这一点。

定义如下:

定义和使用

范围属性指定标题单元格是否是列、行或列或行组的标题。

这来自 W3 网站,顺便说一句。

于 2012-10-16T09:07:25.390 回答