繁体   English   中英

VoiceOver无法响应锚点并无法正确更改对iOS的关注

[英]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">&nbsp;</a>

不起作用。 是否有人偶然发现了一个好的,可靠的解决方法,还是我不得不忍受我的锚点/ JavaScript焦点更改对iOS上的VoiceOver用户没有任何作用的事实?

这是iOS上已知问题 有一个博客提供了一些解决方法,但是解决该问题的真正责任在于苹果。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM