与桌面屏幕阅读器不同,Ipad版本的VoiceOver似乎通过抓住它看到的第一个textnode子项并仅读取它来处理对元素的焦点更改。在桌面阅读器中,他们循环遍历子元素,按层次顺序读取它们。
当父<div>
获得焦点时,请考虑以下事项:
<div tabindex="0">
<p>All screenreaders will read me out</p>
<p>All screenreaders EXCEPT VoiceOver on Ipad will then read me out</p>
</div>
对于任何获得焦点的元素(例如<a>
)都是如此,无论焦点是否通过点按操作以某种方式结束,或者是否通过Javascript手动移动到那里。
为了澄清,我尝试了各种方法来“强制”阅读无效,包括:为<p>
元素提供ID并使用这些ID指定aria-labelledby
,应用各种角色属性(分组,警报等)以及tabindex数字的任何有效变化。
有没有办法模仿其他屏幕阅读器中的行为并让它读取这些子元素?