辅助功能 – Mac Safari Voiceover光标不遵循键盘焦点

我有一个Web应用程序,我使用卡布局.我没有加载网页,而是为每个页面修改DOM.配音外观的问题在于,在更改视图时,VO光标停留在单击此页面链接的相同位置.因此,在按下CMD选项A时,VO不是从顶部读取屏幕,而是从相同位置读取.在 Windows上使用JAWS也很明显.

我尝试通过创建一个空的Div到顶部并将焦点( Javascript element.focus())设置为页面更改的div来修复它.这解决了JAWS的问题,但不适用于Mac Safari VO.画外音光标不遵循键盘焦点.

See Image

请注意,所有默认设置均已在VO Utility中设置. VO光标设置为焦点键盘焦点复选框.

蓝线是隐藏的div,由于键盘焦点而显示为蓝色.黑色矩形是VO光标.

最佳答案 我使用500到1000毫秒的延迟解决了这个问题.

** Window.setTimeout(moveFocus logic,1000)**

延迟确保在将键盘焦点移动到元素之前已完全附加dom.如果您的网站很重,甚至可能需要更多延迟.

我在Windows 7上通过Ipad,Iphone ios8,mac os x 10和jaws 17.0进行了验证.

另请注意,将焦点移动到隐藏的div会导致不同屏幕阅读器出现意外结果.因此,将焦点移动到页面的顶部可聚焦元素.如标题.
如果你一直在使用’aria-live:assertive’,在这个聚焦元素,删除这个标签,因为这将使屏幕阅读器读取你的元素内容两次.

点赞