我有一个不那么复杂的布局,就是使用一个组件,在滚动视图中有一个嵌套的LinearLayout,问题是Talkback没有宣布标签。
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin">
<LinearLayout
android:id="@+id/content_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginLeft="@dimen/margin2x"
android:layout_marginRight="@dimen/margin2x"
android:animateLayoutChanges="true"
android:contentDescription="Some Form Description"
android:orientation="vertical">
<TextView
android:id="@+id/some_field"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="@dimen/margin"
android:focusable="true"
android:text="some field text" />
<android.support.design.widget.TextInputLayout
android:id="@+id/some_field_in_form_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<android.support.design.widget.TextInputEditText
android:id="@+id/editText1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentStart="true"
android:hint="Label for field" />
</android.support.design.widget.TextInputLayout>
</LinearLayout>
</ScrollView>
对讲导航会跳过标签,如果该字段有值,则用户不会知道该字段的用途是什么。
答案 0 :(得分:1)
经过一番调查后我发现问题是因为LinearLayout有一个内容描述,将捕获所有事件。在我的情况下,我需要宣布它,为了解决我的问题,我必须明确地设置孩子是可聚焦的。
<android.support.design.widget.TextInputLayout
android:id="@+id/some_field_in_form_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:focusable="true">
如果LinearLayout是唯一的父母,那么这不会发生。