我有一个如下所示的数据表:
<table><thead>
<tr>
<th><input type="checkbox" /></th>
<th scope="col">Foo</th>
<th scope="col">Bar</th><tr>
</thead>
<tbody>
<tr><td><input type="checkbox" /></td><td scope="row">a</td><td>b</td></tr>
<tr><td><input type="checkbox" /></td><td scope="row">c</td><td>d</td></tr>
</tbody></table>
我希望标题中的复选框选中正文中的所有复选框。我写了Javascript来做选择,它工作正常。但是,在IE7和IE8中(可能是其他浏览器,但我们不需要支持其他任何浏览器),标题中的复选框永远不会得到标签焦点,所以我们失败了508。
有没有办法处理这个问题而不在所有内容上设置tabindex?
答案 0 :(得分:2)
正如Jukka在评论中所说,所有这些都需要labels
。如果没有<label>
,表单元素将自动失败任何508检查。这可能是它抛出的真正错误,但我们需要知道正在使用的工具。
回答你的新问题:
无论如何,这里的真正问题不是它没有得到焦点,而是焦点不可见。我尝试添加一个标签,这没有帮助,我尝试只是向TD添加文本,这也无济于事
大多数浏览器在获得焦点时在所有元素周围放置一个1像素的虚线边框。浏览样式表,查找outline: none;
之类的内容。您应该删除该行或添加一个可以重新添加焦点的新规则。
答案 1 :(得分:0)
在我们的开发团队和508合规检查器中,看起来问题实际上是沟通不畅。我唯一的理由是,当我在没有笔记本电脑的情况下去感恩节时,它是通过电话发生的。
无论如何,这里的真正问题不是它没有得到焦点,而是焦点不可见。我尝试添加一个标签,这没有帮助,我尝试只是添加文本到TD,这也没有帮助。我会连续拿到我的鸭子然后在我确定我要问的时候问一个新问题。
全部,谢谢你的帮助。
答案 2 :(得分:0)
您希望通过功能和可见的复选框进行制表,是吗?
您无法使用JS创建“焦点上”事件来更改复选框样式,因为复选框实际上没有任何“样式”,除了Ryan B提到的内容......但您可以创建“焦点上”事件将样式更改为包含所述复选框的<div>
:
注意通过方框标签会将背景颜色更改为红色。