如何让 JAWS 在 TINYMCE 编辑器中识别和读取 table

How to make JAWS recognize and read a table inside TINYMCE editor

我正在尝试让 JAWS 在 html 页面(Confluence 页面处于编辑模式)中读取 tables。 tables 位于 iframe 内,我认为这就是 JAWS 无法识别 tables 的原因。

我在呈现 table 后向 table 添加了一些属性

<caption>
<table role="grid" aria-live="polite" tabindex="0">
<tr role="row"></tr>
<th role="columnheader"></th>
<td role="gridcell"></td>
</table>

此 table 处于编辑模式。因此用户可以编辑此 table 并添加更多行。 我还需要做什么才能让 JAWS 识别 table 并读取所有单元格。 请找到下图,它显示了整个 html 结构。

更新:该页面使用所见即所得(tinymce)编辑器。正文是 contenteditable = true,其中 table 所在,这就是导致问题的原因。为了验证它,我从正文中删除了 contenteditable 属性,JAWS 能够识别 table 但我根本无法使用编辑器。 所以现在的问题是如何让 JAWS 读取 table inside content editable 元素。

提前致谢。

我一直在 iframe 中有 tables,并且 JAWS 没有问题。我的第一个建议是去掉所有多余的 aria 属性。您过度使用它们并且实际上违反了规范。您不应该为原生元素指定角色。 (w3.org 站点目前已关闭。我可以在站点恢复后提供 url。)

  1. <table>
  2. 中删除角色='grid'
  3. <th>
  4. 中删除角色='columnheader'
  5. <td>
  6. 中删除角色='gridcell'
  7. 从第三个 <th> 中删除 colspan=1。一栏是默认值。
  8. 从所有 <td> 中删除 colspan=1

为了测试,我也会

  1. <table><tbody>
  2. 中删除 aria-live
  3. 从所有单元格和 table
  4. 中删除 tabindex

然后添加

  1. scope=col 到 <th>

然后使用虚拟 PC 光标测试 JAWS。使用 'T' 导航至 table。然后你可以使用 ctrl+alt+arrow 在 table 内移动。 (或者你可以使用table图层命令,ins+space,T,然后使用简单的方向键左右移动)。

如果您导航到 table 然后左右移动,您应该会听到列 header 在数据值之前被读取(如果您将 scope=col 添加到 <th>,尽管 JAWS 可能会宣布列 header,即使您没有 scope=col)。