使用 VoiceOver 时未调用 JavaScript 函数
JavaScript function not called when using VoiceOver
我创建并测试了一个网页,其中包含对屏幕阅读器的完全支持。它适用于 Mac 版旁白,但当我尝试 iOS 版旁白时,我发现了一个问题。当我双击以触发链接时,不会调用click
事件侦听器。相反,VO 只是重复我给出aria-label
,之后它不会宣布"按钮"。当我禁用旁白时,只需点击它即可工作。该链接的行为类似于按钮,而不是导航到另一个网页。这是旁白错误还是我的标记或代码有问题?
document.addEventListener('DOMContentLoaded', function() {
document.getElementById('link').addEventListener('click', triggerFunction);
});
function triggerFunction() {
alert('testing');
}
<a id="link" href="javascript:void(0);" role="button" aria-label="My Trigger">Trigger Function</a>
对于 iOS,显然没有鼠标,因此您无法click
,但您可以做的是监听touch
事件。
document.addEventListener('DOMContentLoaded', function() {
document.getElementById('link').addEventListener('click', triggerFunction);
document.getElementById('link').addEventListener('touchstart', triggerFunction);
});
您的链接元素是否嵌套在另一个元素中?有时,VoiceOver 的单击事件会改为作用于这些元素,而不会冒泡到嵌套元素。
例如,如果您的 html 如下所示:
<li id="parent">
<div id="link" onclick="myFunction()">
</div>
</li>
然后尝试将单击处理程序向上移动一个级别到父元素。
相关文章:
- 创建一个类似链接的按钮,并通过Javascript函数打开一个新的弹出窗口
- 正在全局范围中查找JavaScript函数
- 如何将输入(type=text)从html表单传递到javascript函数
- 如何调用这个匿名 JavaScript 函数
- 通过Ajax将JavaScript函数传递给PHP文件
- 在javascript函数中设置全局变量
- 如何在执行此特定onclick事件时执行JavaScript函数
- 使用javascript函数在页面初始化后加载jquery
- javascript函数同步
- 如何将一个JavaScript函数回调为多个函数
- 在javascript函数中使用php变量
- 代码背后调用一个JavaScript函数的按钮点击-C#
- 将JavaScript函数与HTML分离
- 组合两个javascript函数
- 在 Java 中的 JavaScript 函数中插入 Wicket 值
- javascript函数内部的代码用逗号而不是分号分隔
- href属性内的javascript函数
- 使用html表单中的参数调用JavaScript函数
- 分析Javascript函数中的多个对象
- javascript函数的:和=之间的区别