html - IE 11 和 JAWS for role="presentation" 在尝试读取表格时的兼容性问题?
问题描述
我有多个表,我试图一起读取行。这是一个示例表:
<table class="data-table" role="presentation">
<tr role="rowgroup">
<td role="gridcell">
<strong>Name</strong>
</td>
<td role="gridcell">
John Doe
</td>
</tr>
<tr role="rowgroup">
<td role="gridcell">
<strong>Size</strong>
</td>
<td role="gridcell">
XL
</td>
</tr>
<tr role="rowgroup">
<td role="gridcell">
<strong>Color</strong>
</td>
<td role="gridcell">
blue
</td>
</tr>
</table>
在这个呈现的示例中,这应该读取第一个完整行“Name - John Doe”。它在 Chrome 上按预期工作,但无法使用 IE11 读取整行。发生这种情况有什么原因吗?
编辑,我进一步研究了它,如果表格用标签包裹,它似乎会发生。不知道为什么会这样,但至少我可以更一致地重现这个问题。
解决方案
这个标记非常复杂,我不确定你的目标是什么。这对我来说似乎是一个数据表。您能否删除该role="presentation"
表以将表作为数据表公开给 AT,然后将第一列标记为<th>
列标题,将第二列标记为<td>
单元格?这样,您就无需尝试控制屏幕阅读器的内容和时间,而且您使用的是语义标记。大多数屏幕阅读器用户都知道如何与数据表交互以提取他们需要的信息,并且试图掩盖这种交互并控制用户体验不太可能奏效。相信你的用户:-)
推荐阅读
- c - 如何在 C 中接受文件并生成存档文件?
- python - 迁移学习:模型给出不变的损失结果。不是训练吗?
- android - 我正在尝试替换 Android 应用程序中的片段,但我的片段没有改变(Kotlin)
- azure-devops - 仓促重建指定项目顺序
- excel - 复制连接列并粘贴两次
- java - 规范对象即使在创建之后也不包含任何标准
- c# - 在 C# 中用二维数组属性封装一维数组字段
- c# - 创建上下文菜单,如桌面上下文菜单 C# Winform
- c# - 从 Windows 服务卸载软件 - 为什么我不能从 Windows 服务调用 MSIEXE.EXE
- amazon-web-services - CloudFormation 抱怨 changeSet [InvalidChangeBatch]