根据我目前的理解,VoiceOver从左到右、从上到下公布信息,因为它假设视觉用户是这样看待内容的。
(我还不明白画外音是如何准确地计算出订单的,它当然不依赖于呈现的布局树。如有任何指示,将不胜感激)
如果您有一个跨多个行的原子内容,您希望通过画外音( voiceover )一起宣布这些内容,则可以通过在容器视图中添加accessible={true}对其进行分组。问题是,这使得任何内部交互元素对于可访问性焦点都不可用,并且只允许在此容器视图上使用a11y焦点。
考虑以下设计:
两张卡片并排显示,每张卡片都有一个标题,字幕和cta。在屏幕阅读器焦点上,我们希望首先读取第一张卡的内容,并宣布其CTA,然后移动到第二张卡并进行同样的操作。默认情况下,title1、title2、subtitle1、subtitle2、cta1、cta2在默认情况下都会出现,这对用户来说毫无意义。
要解决这个问题,一种方法是使容器视图accesible={true},这有一个副作用,即CTA现在对可访问性焦点不可用,因此屏幕阅读器用户无法到达或单击CTA。
有什么首选的模式来解决这个问题吗?

编辑:为每张卡添加示例代码:
<View style={...} key={...}>
<Text>{title}</Text>
<Text>{subtitle}</Text>
<Button flat secondary onPress={() => onPress(item)}>
{cta}
</Button>
</View>发布于 2022-07-19 07:11:30
查看UIAccessibilityContainer,特别是accessibilityElements属性。
这两者都是objects对象,没有反应,但希望react允许您访问它们。
https://stackoverflow.com/questions/73027686
复制相似问题