我正面临这样一个问题:当使用特定于JAWS的键盘快捷键时,JAWS会触发单击事件,而网格单元格处于聚焦状态,而JAWS处于表单模式。
下面的示例将最终产生我描述的行为:我发现在Firefox和JAWS 17中重现这种行为是最容易的:
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head><title>clicking issue</title></head>
<body>
      <table role="grid" summary="sample">
        <tbody>
            <tr>
                   <td>
                         <a href="#" onclick="alert(event.type);">Gridcell Role Cell</a>
                   </td>
            </tr>
            <tr>
                   <td>
                         <input type="checkbox" name="testcheckbox">Gridcell Checkbox
                   </td>
            </tr>
        </tbody>
      </table>
      <input type="checkbox" name="testcheckbox2">Non-Gridcell Checkbox 2
</body>
</html>如果您使用tab键导航到"Click ME“单元格并使用JAWS键盘快捷键,例如insert+ctrl+b (在页面上显示按钮快捷键),则会在所关注的元素上触发一个单击事件,并出现JS警告,报告一个”单击“事件。
这是JAWS的预期行为吗?如何避免在使用键盘剪切时触发元素?
发布于 2016-09-14 16:50:18
我试过你的示例代码。在IE11和JAWS17中删除role="grid"效果很好。
要获取复选框列表,请按insert+ctrl+x。如果使用role="grid",则在按insert+ctrl+x键的同时切换复选框。
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
    <title>clicking issue</title>
</head>
<body>
    <table summary="sample">
        <tbody>
            <tr>
                <td>
                    <a href="#" onclick="alert(event.type);">Gridcell Role Cell</a>
                </td>
            </tr>
            <tr>
                <td>
                    <input type="checkbox" name="testcheckbox" id="gcCheckbox"><label for="gcCheckbox">Gridcell Checkbox</label>
                </td>
            </tr>
        </tbody>
    </table>
    <input type="checkbox" name="testcheckbox2" id="nonGcCheckbox"><label for="nonGcCheckbox">Non-Gridcell Checkbox 2</label>
</body>
</html>https://stackoverflow.com/questions/39296532
复制相似问题