JAWS 2018:使选择/下拉菜单成为“可点击的”

时间:2018-10-30 15:45:33

标签: html accessibility jaws-screen-reader

我正在研究一个网站项目并修复可访问性缺陷。

我的设置约束:

  • 操作系统是Windows 7/10
  • 浏览器是Internet Explorer 11
  • 可访问性软件为JAWS 2018.1804.26

我无法控制这些限制,因此请不要为其他设置提出任何解决方案。


我有一个缺陷,那就是JAWS应该在“ clickable”元素中列出HTML <select>(下拉列表)。 (这是按下 Ins + Ctrl + / 键盘和弦时显示的模式对话框。) HTML元素类型,并且我通过以下内容的组合进行了修复:

  • 添加一个onclick处理程序(在我的情况下为空函数)
  • aria-label属性添加一个值(在我的情况下是动态添加)

当尝试在当前缺陷中执行这些步骤时,我可以使<select>出现在“可单击”模式对话框中,但是未列出任何文本(我猜这是“报告”一个空字符串) )。尽管具有aria-label的值。


其他注意事项:

  • 有问题的<select><span>内部的<td>内部 1

它看起来像这样:

<table>
  <tbody>
    <tr>
      <td>
        <span>
          <select> ... options ... </select>
        <span>
      </td>
    </tr>
  </tbody>
</table>

我试图像这样修改上面的代码:

<table>
  <tbody>
    <tr>
      <td>
        <span>
          <select onclick="emptyHandler" aria-label="Some text"> 
            ... options ... </select>
        <span>
      </td>
    </tr>
  </tbody>
</table>

function emptyHandler() {
    /* This function is empty by design     */
    /* Its function is to expose an element */
    /* as a clickable element to JAWS, when */
    /* otherwise JAWS would ignore it.      */
}

进行上述修改 DID 将元素添加到可点击元素列表中,但不显示任何文本。您可以看到多余的行,也可以突出显示它,但这只是空白/文本(或者可能什么也没有)。

1 我没有为此页面编写UI,并且我也不想(也没有获得授权)重新编写整个页面。我怀疑在与JAWS交互时,将控件包装在元素内部确实会产生一些不可思议的事情,但是我无法解决此问题的部分。


我对此有一些疑问,因为我找不到很好的文档来证明它应该如何工作:

  1. 是否有任何详细文档说明该方法的工作原理?我在Freedom Scientific的网站以及Mozilla的网站和整个网络上的搜索都产生了一些信息,但是我希望在一个中心位置可以找到这些答案。特别是,对于“可点击”元素的含义似乎没有一个统一的规范定义。有些元素似乎默认为“可点击”,而添加自定义onclick处理程序似乎允许将 ANY 元素添加到该列表中。这导致我...
  2. “可点击”模式对话框如何在JAWS中正常工作?我想我已经弄清楚了如何将元素添加到此列表中,但是它显示的内容似乎有点不一致。这导致我...
  3. 要在该模式对话框中显示的 应该 是什么?在先前的测试中,似乎显示的文本是aria-label属性中的值,那么为什么在这里不起作用?
  4. 在这里出现<select>元素是否不合适?出于这个原因,我总是可以解决这个问题,但是除非我确定这是正确的做法,否则我不希望这样做。

2 个答案:

答案 0 :(得分:2)

通过添加的详细信息,我现在可以理解问题了。 JAWS中的“可点击”对话框( ins + ctrl + / )显示带有onClick()处理程序的元素,但用于该对话框中的<select>个元素是所选内容的,它是当前选中的<option>中的任何一个。使用aria-labelaria-labelledby<label for="select-id">不会影响可单击对话框,尽管在<button>上使用这些属性,例如确实在该对话框中。

我建议为JAWS提交一个错误。

好消息是,导航到下一个<select>元素的JAWS快捷键是 C ,用于显示所有<select>元素的对话框是 ins + ctrl + C ,并且该对话框确实尊重aria-labelaria-labelledby'或{{1 }}。

答案 1 :(得分:1)

这不是错误。对于JAWS用户,<select>绝对不是可单击的元素。此击键带来了可单击但不能识别为其他元素的列表:链接,按钮,组合框。
因此,将您的缺陷标记为“不是bug”,并告诉您的用户使用插入 + Ctrl + C
诸如JAWS之类的屏幕阅读器总是试图尽其所能地识别HTML元素,因此“可点击的内容”实际上对盲人没有太大帮助。与组合框不同。