[英]VoiceOver does not react to anchors and changing focus on iOS properly
我之前曾问过这样的问题,但是直到找到解决方法后 ,我才能放心:
iOS上的VoiceOver是我遇到的唯一屏幕阅读器,它似乎无法正确处理锚点,并且JavaScript element.focus()
功能正常。
查看我的博客 。 在那里,您将看到经典的skip to content
link和scroll to top
button。 该链接是一个常规锚,其目标是ID为main
的div。 该按钮触发了一个动画,但是由于它没有给盲人带来理想的效果,因此我也使它将焦点移到了“ skip to content
链接上。 打开VoiceOver时,双击上述任一控件。 焦点将不会移动。 我在Safari,Firefox,Google Chrome和iSource的iOS应用中对此进行了测试。
现在转到其他任何设备,无论是Android手机还是Windows计算机。 打开屏幕阅读器。 据我所知,它始终有效(已通过Microsoft Edge,Google Chrome和Internet Explorer测试)。
锚点的HTML:
<a href="#main" id="top-link">Skip to content</a>
<!-- ... -->
<div id="main" role="main">
<!-- ... -->
</div>
按钮的JS:document.getElementById('scroll-to-top')。addEventListener('click',function(){document.getElementById('top-link')。focus();});
没什么好看的,对吧? 不,主div上的tabindex="-1"
不能解决我的锚点问题。 可行的是,如果锚指向链接,但其中必须包含一些可见的文本,例如
<a id="anchorTarget"> </a>
不起作用。 是否有人偶然发现了一个好的,可靠的解决方法,还是我不得不忍受我的锚点/ JavaScript焦点更改对iOS上的VoiceOver用户没有任何作用的事实?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.