我正在尝试为类似于以下屏幕的屏幕添加辅助功能支持(屏幕阅读器)
按钮1和按钮2是单个片段的一部分,而TextView是另一个子片段的一部分。 使用屏幕阅读器进行导航时,焦点将从 按钮1> TextView
从TextView向左滑动时,焦点不会到达按钮2。而是,按钮1再次接收了焦点。
如何确保按钮2正确接收了可访问性焦点。
父片段的布局
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<Button
android:id="@+id/button1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:focusableInTouchMode="true"
android:text="Button 1" />
<android.support.design.widget.CoordinatorLayout
android:id="@+id/rootLayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_above="@+id/button_container"
android:overScrollMode="never">
</android.support.design.widget.CoordinatorLayout>
<FrameLayout
android:id="@+id/button_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:clickable="true"
android:focusable="true"
android:gravity="center">
<Button
android:id="@+id/button2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:importantForAccessibility="yes"
android:text="Button 2" />
</FrameLayout>
</RelativeLayout>
子片段的布局
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="TextView"
android:importantForAccessibility="yes"/>
</android.support.constraint.ConstraintLayout>
注意:如果此布局在大多数设备上都经过测试,则焦点将集中在按钮2上,而无需进行额外的工作。但是在某些三星设备(s8,s9)中并非如此
我尝试了以下方法
AccessibilityEvent.TYPE_VIEW_FOCUSED
在辅助功能模式下,我无法准确识别向右滑动的手势。