问题描述
我将一个水平平面列表添加到另一个垂直平面列表中。画外音可以遍历垂直平面列表,无法滚动到水平平面列表中的下一项,这是现在的问题。
这也会发生在 iOS 本机代码中。但是我看到了它在 iOS 本机代码中针对同一场景工作的一种可能方式,其中我们有一个委托函数 accessibilityElementDidBecomeFocused(),当可访问性焦点移动到其他隐藏项时将调用该函数。 在这种情况下,我们将使用函数在 iOS 原生代码中以编程方式滚动水平 tableview,如 this link。我正在寻找 React Native 可访问性方面的类似解决方案。
return (
<View accessible={false}>
<View style={...} accessible={false}>
<FlatList
style={{ flex: 1 }}
data={data}
ref={flatListRef}
initialNumToRender={3}
windowSize={3}
renderItem={renderItem}
pagingEnabled={true}
getItemLayout={(data,index) => ({
length: itemStyle.width,offset: itemStyle.width * index,index,})}
horizontal={true}
accessible={false}
accessibilityElementsHidden={false}
removeClippedSubviews={false}
/>
</View>
</View>
)
renderItem
已启用无障碍功能(即。accessible={true}
)并设置相应的无障碍功能值。
通过上面的代码设置,可访问性焦点实际上是移动到水平平面列表中的下一项。即,当从左到右滑动时,我可以听到阅读各个渲染项的辅助功能标签时的声音
-
item 1 of 10
,可访问性焦点可见并设置为第一项 -
item 2 of 10
,可访问性焦点不可见,第二项不可见 -
item 3 of 10
,可访问性焦点不可见,第三项不可见
因为我在 React Native 中找不到任何与 accessibilityElementDidBecomeFocused()
等效的 API,所以我很震惊,无法在 RN 中以编程方式滚动平面列表内容。
请有人为这个问题提供任何可能的解决方案。
附注
- 在
Android
中,垂直平面列表中水平平面列表的回话遍历工作正常。问题仅在iOS
中。 - 我已经尝试了 accessibility actions 并且在两个平台上都按预期工作,但企业希望通过画外音遍历水平平面列表,只能通过从左到右滑动来实现。
- 在上面的代码片段中尝试使用水平滚动视图的包装视图,这在画外音期间无助于滚动水平平面列表。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)