NestedScrollView 内的 Nested Recyclerview 中的可访问性遍历顺序错误

问题描述

为了可访问性,我尝试使用 Talkback 遍历(嵌套的)RecyclerView。 但是,不是一直滚动到屏幕底部(垂直),而是触发了水平 RecyclerView 的滑动。结果,不可能一直遍历到底部

视图如下所示:

<SwipeRefreshLayout>
  <...>
  <nestedScrollView>
    <RecyclerView orientation=horizontal>
       
       <!-- This is for every view of the horizontal RecyclerView --> 
       <CardView> 
         <RecyclerView orientation=vertical>
         </RecyclerView>
       </CardView>
       <!-- Till here -->
    
    </RecyclerView>
  </nestedScrollView>
</SwipeRefreshLayout>

更详细的问题说明:

  • 首先打开 Talkback 并选择第一个视图。
  • 水平 RecyclerView 包含在后台加载的多个项目。
  • 垂直 RecyclerView 包含首次加载时超出屏幕的项目。假设您看到 10 个项目,但垂直列表中有 20 个。
  • 您开始使用 Talkback 浏览项目,几乎在垂直 RecyclerView 的第 10 个项目。
  • 因此,您再次滑动,您会看到第 10 个项目,这是当前可见的最后一个视图。
  • 下一次滑动将转到水平 RecyclerView 的下一个视图。但是,它应该继续滚动到 vertical RecyclerView....
  • 中的下一个视图

我的理解是,可以通过使用手指作为应用程序的真正滑动来进入水平 RecyclerView 的下一个视图。两指滑动解释here

我尝试了什么:

  • 按照here的建议,使用 android:focusableInTouchModeandroid:descendantFocusability 改进遍历顺序。
  • 在当时不可见的水平 android:importantForAccessbility 项目上将 false 设置为 RecyclerView。请注意,由于视图相当复杂,因此很难确定这是否足够。
  • 使用 accessibilityTraversalAfter en accessibilityTraversalBefore 改进遍历顺序。

问题是,我怎样才能确保 Talkback 遍历到屏幕的末尾?换句话说;使用 Talkback 遍历不会触发转到 horizo​​ntal 回收器中的下一个项目?

解决方法

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

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

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

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...