我创建并测试了一个完全支持屏幕阅读器的网页。它适用于 Mac 版 VoiceOver,但当我尝试 iOS 版 VoiceOver 时,我发现了一个问题。当我双击以触发链接时,不会调用 click
事件监听器。相反,VO 只是重复我给它的 aria-label
,之后它不会宣布“按钮”。当我禁用 VoiceOver 时,只需点击它即可。该链接旨在表现得像一个按钮,而不是导航到另一个网页。这是一个 VoiceOver 错误还是我的标记或代码有问题?
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 时未调用 JavaScript 函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27630786/