我正面临这样一个问题:当使用特定于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
复制相似问题