垂直平面列表上水平平面列表项目的焦点旁白

问题描述

我将一个水平平面列表添加到另一个垂直平面列表中。画外音可以遍历垂直平面列表,无法滚动到水平平面列表中的下一项,这是现在的问题。

这也会发生在 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})并设置相应的无障碍功能值。

通过上面的代码设置,可访问性焦点实际上是移动到水平平面列表中的下一项。即,当从左到右滑动时,我可以听到阅读各个渲染项的辅助功能标签时的声音

  1. item 1 of 10,可访问性焦点可见并设置为第一项
  2. item 2 of 10,可访问性焦点不可见,第二项不可见
  3. item 3 of 10,可访问性焦点不可见,第三项不可见

因为我在 React Native 中找不到任何与 accessibilityElementDidBecomeFocused() 等效的 API,所以我很震惊,无法在 RN 中以编程方式滚动平面列表内容

请有人为这个问题提供任何可能的解决方案。

附注

  1. Android 中,垂直平面列表中水平平面列表的回话遍历工作正常。问题仅在 iOS 中。
  2. 我已经尝试了 accessibility actions 并且在两个平台上都按预期工作,但企业希望通过画外音遍历水平平面列表,只能通过从左到右滑动来实现。
  3. 在上面的代码片段中尝试使用水平滚动视图的包装视图,这在画外音期间无助于滚动水平平面列表。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)