如何将可访问性重点转移到 RecyclerView 的某些操作的第一个元素上?
How to shift accessibility focus on RecyclerView's first element on some action?
我是 android 辅助功能的新手 - TalkBack
。
我知道 contentDescription
、importantForAaccessibility
以及它们如何制作节点树等基本内容。
在我的问题中,我想将可访问性重点转移到 RecyclerView
的某些操作的第一个元素上。
通常 someView.requestFocus()
或 someView.sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_FOCUSED)
有效。
但在 RecyclerView
.
中似乎没有按预期工作
我尝试通过以下方式解决:
android:accessibilityLiveRegion="polite"
但它只宣布列表在那里。但它不会出现在具有可访问性焦点的元素上。
通过聚焦适配器的第一个元素 - 但这样做不是个好主意!
除此之外,android:accessibilityTraversalAfter
和 android:accessibilityTraversalBefore
也不适用于 android 中的列表视图。
someView.requestFocus()
someView.sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_FOCUSED)
请求特定焦点 ViewId
并获取该节点的第一个元素。
RecyclerView 的 getChildAt()
方法对我有用。
recyclerView.getChildAt(0).requestFocus()
recyclerView.getChildAt(0).sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_FOCUSED)
我是 android 辅助功能的新手 - TalkBack
。
我知道 contentDescription
、importantForAaccessibility
以及它们如何制作节点树等基本内容。
在我的问题中,我想将可访问性重点转移到 RecyclerView
的某些操作的第一个元素上。
通常 someView.requestFocus()
或 someView.sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_FOCUSED)
有效。
但在 RecyclerView
.
我尝试通过以下方式解决:
android:accessibilityLiveRegion="polite"
但它只宣布列表在那里。但它不会出现在具有可访问性焦点的元素上。通过聚焦适配器的第一个元素 - 但这样做不是个好主意!
除此之外,android:accessibilityTraversalAfter
和 android:accessibilityTraversalBefore
也不适用于 android 中的列表视图。
someView.requestFocus()
someView.sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_FOCUSED)
请求特定焦点 ViewId
并获取该节点的第一个元素。
RecyclerView 的 getChildAt()
方法对我有用。
recyclerView.getChildAt(0).requestFocus()
recyclerView.getChildAt(0).sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_FOCUSED)