我创建并测试了一个完全支持屏幕阅读器的网页。它适用于 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/

10-13 04:42