我无法弄清楚如何将 VoiceOver 推进到 Mobile Safari 中的特定元素。
到目前为止,我已经尝试过:
<a href="#target">Skip</a>
...
<a name="target"></a>
如果页面是可滚动的,这将(有时)前进到目标,但在长页面和短页面上都不能始终如一地工作,有时会导致以下元素无法读取!
我也试过:
<a href="javascript:someElement.focus()">Skip</a>
不幸的是,这似乎不适用于非输入字段。
更高级的是,我尝试将链接放在要跳过的元素之前,并尝试将该元素设置为,aria-hidden="true"
但由于某种原因,这不适用于<header>
元素。
有效的一件事实际上是在跳过链接之前物理移动我想要跳过的元素,例如:
<a id="skip" href="javascript:$('header').insertBefore($('#skip'));">Skip</a>
不幸的是,这仍然不会自动前进到下一个元素,并且当您离开时不会触发模糊事件,因此一旦用户前进光标,我没有一个很好的机制来将链接恢复到其原始位置。
看起来这应该很容易做到,但我的想法已经不多了。有没有对你们所有人都有效的解决方案?