VPN settings: better a11y voice for legacy dialog
Previously, the user input fields in the legacy VPN config dialog would simply be read out as "edit box", "drop-down list", etc., without reference to their corresponding labels. This is not optimal for low-vision users. In this CL, we add a "labelFor" attribute to the prompt TextView of each field. The resulting input fields would instead be read out as "edit box for username", "drop-down list for type", etc., which are much less ambiguous than before. Bug: 37202471 Test: make SettingsGoogle and navigate the dialog with TalkBack on Change-Id: Id23d0563984e3de4a4a3d03a587ca130b50508fc
This commit is contained in:
@@ -28,16 +28,22 @@
|
|||||||
android:orientation="vertical"
|
android:orientation="vertical"
|
||||||
android:visibility="gone">
|
android:visibility="gone">
|
||||||
|
|
||||||
<TextView style="@style/vpn_label" android:text="@string/vpn_name"/>
|
<TextView style="@style/vpn_label"
|
||||||
|
android:text="@string/vpn_name"
|
||||||
|
android:labelFor="@+id/name"/>
|
||||||
<EditText style="@style/vpn_value" android:id="@+id/name"
|
<EditText style="@style/vpn_value" android:id="@+id/name"
|
||||||
android:inputType="textCapWords"/>
|
android:inputType="textCapWords"/>
|
||||||
|
|
||||||
<TextView style="@style/vpn_label" android:text="@string/vpn_type"/>
|
<TextView style="@style/vpn_label"
|
||||||
|
android:text="@string/vpn_type"
|
||||||
|
android:labelFor="@+id/type"/>
|
||||||
<Spinner style="@style/vpn_value" android:id="@+id/type"
|
<Spinner style="@style/vpn_value" android:id="@+id/type"
|
||||||
android:prompt="@string/vpn_type"
|
android:prompt="@string/vpn_type"
|
||||||
android:entries="@array/vpn_types"/>
|
android:entries="@array/vpn_types"/>
|
||||||
|
|
||||||
<TextView style="@style/vpn_label" android:text="@string/vpn_server"/>
|
<TextView style="@style/vpn_label"
|
||||||
|
android:text="@string/vpn_server"
|
||||||
|
android:labelFor="@+id/server"/>
|
||||||
<EditText style="@style/vpn_value" android:id="@+id/server"/>
|
<EditText style="@style/vpn_value" android:id="@+id/server"/>
|
||||||
|
|
||||||
<CheckBox style="@style/vpn_value" android:id="@+id/mppe"
|
<CheckBox style="@style/vpn_value" android:id="@+id/mppe"
|
||||||
@@ -50,7 +56,9 @@
|
|||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:orientation="vertical"
|
android:orientation="vertical"
|
||||||
android:visibility="gone">
|
android:visibility="gone">
|
||||||
<TextView style="@style/vpn_label" android:text="@string/vpn_l2tp_secret"/>
|
<TextView style="@style/vpn_label"
|
||||||
|
android:text="@string/vpn_l2tp_secret"
|
||||||
|
android:labelFor="@+id/l2tp_secret"/>
|
||||||
<EditText style="@style/vpn_value" android:id="@+id/l2tp_secret"
|
<EditText style="@style/vpn_value" android:id="@+id/l2tp_secret"
|
||||||
android:password="true"
|
android:password="true"
|
||||||
android:hint="@string/vpn_not_used"/>
|
android:hint="@string/vpn_not_used"/>
|
||||||
@@ -61,11 +69,15 @@
|
|||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:orientation="vertical"
|
android:orientation="vertical"
|
||||||
android:visibility="gone">
|
android:visibility="gone">
|
||||||
<TextView style="@style/vpn_label" android:text="@string/vpn_ipsec_identifier"/>
|
<TextView style="@style/vpn_label"
|
||||||
|
android:text="@string/vpn_ipsec_identifier"
|
||||||
|
android:labelFor="@+id/ipsec_identifier"/>
|
||||||
<EditText style="@style/vpn_value" android:id="@+id/ipsec_identifier"
|
<EditText style="@style/vpn_value" android:id="@+id/ipsec_identifier"
|
||||||
android:hint="@string/vpn_not_used"/>
|
android:hint="@string/vpn_not_used"/>
|
||||||
|
|
||||||
<TextView style="@style/vpn_label" android:text="@string/vpn_ipsec_secret"/>
|
<TextView style="@style/vpn_label"
|
||||||
|
android:text="@string/vpn_ipsec_secret"
|
||||||
|
android:labelFor="@+id/ipsec_secret"/>
|
||||||
<EditText style="@style/vpn_value" android:id="@+id/ipsec_secret"
|
<EditText style="@style/vpn_value" android:id="@+id/ipsec_secret"
|
||||||
android:password="true"/>
|
android:password="true"/>
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
@@ -75,7 +87,9 @@
|
|||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:orientation="vertical"
|
android:orientation="vertical"
|
||||||
android:visibility="gone">
|
android:visibility="gone">
|
||||||
<TextView style="@style/vpn_label" android:text="@string/vpn_ipsec_user_cert"/>
|
<TextView style="@style/vpn_label"
|
||||||
|
android:text="@string/vpn_ipsec_user_cert"
|
||||||
|
android:labelFor="@+id/ipsec_user_cert"/>
|
||||||
<Spinner style="@style/vpn_value" android:id="@+id/ipsec_user_cert"
|
<Spinner style="@style/vpn_value" android:id="@+id/ipsec_user_cert"
|
||||||
android:prompt="@string/vpn_ipsec_user_cert" />
|
android:prompt="@string/vpn_ipsec_user_cert" />
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
@@ -85,10 +99,15 @@
|
|||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:orientation="vertical"
|
android:orientation="vertical"
|
||||||
android:visibility="gone">
|
android:visibility="gone">
|
||||||
<TextView style="@style/vpn_label" android:text="@string/vpn_ipsec_ca_cert"/>
|
<TextView style="@style/vpn_label"
|
||||||
|
android:text="@string/vpn_ipsec_ca_cert"
|
||||||
|
android:labelFor="@+id/ipsec_ca_cert"/>
|
||||||
<Spinner style="@style/vpn_value" android:id="@+id/ipsec_ca_cert"
|
<Spinner style="@style/vpn_value" android:id="@+id/ipsec_ca_cert"
|
||||||
android:prompt="@string/vpn_ipsec_ca_cert" />
|
android:prompt="@string/vpn_ipsec_ca_cert" />
|
||||||
<TextView style="@style/vpn_label" android:text="@string/vpn_ipsec_server_cert"/>
|
|
||||||
|
<TextView style="@style/vpn_label"
|
||||||
|
android:text="@string/vpn_ipsec_server_cert"
|
||||||
|
android:labelFor="@+id/ipsec_server_cert"/>
|
||||||
<Spinner style="@style/vpn_value" android:id="@+id/ipsec_server_cert"
|
<Spinner style="@style/vpn_value" android:id="@+id/ipsec_server_cert"
|
||||||
android:prompt="@string/vpn_ipsec_server_cert" />
|
android:prompt="@string/vpn_ipsec_server_cert" />
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
@@ -103,15 +122,21 @@
|
|||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:orientation="vertical"
|
android:orientation="vertical"
|
||||||
android:visibility="gone">
|
android:visibility="gone">
|
||||||
<TextView style="@style/vpn_label" android:text="@string/vpn_search_domains"/>
|
<TextView style="@style/vpn_label"
|
||||||
|
android:text="@string/vpn_search_domains"
|
||||||
|
android:labelFor="@+id/search_domains"/>
|
||||||
<EditText style="@style/vpn_value" android:id="@+id/search_domains"
|
<EditText style="@style/vpn_value" android:id="@+id/search_domains"
|
||||||
android:hint="@string/vpn_not_used"/>
|
android:hint="@string/vpn_not_used"/>
|
||||||
|
|
||||||
<TextView style="@style/vpn_label" android:text="@string/vpn_dns_servers"/>
|
<TextView style="@style/vpn_label"
|
||||||
|
android:text="@string/vpn_dns_servers"
|
||||||
|
android:labelFor="@+id/dns_servers"/>
|
||||||
<EditText style="@style/vpn_value" android:id="@+id/dns_servers"
|
<EditText style="@style/vpn_value" android:id="@+id/dns_servers"
|
||||||
android:hint="@string/vpn_not_used"/>
|
android:hint="@string/vpn_not_used"/>
|
||||||
|
|
||||||
<TextView style="@style/vpn_label" android:text="@string/vpn_routes"/>
|
<TextView style="@style/vpn_label"
|
||||||
|
android:text="@string/vpn_routes"
|
||||||
|
android:labelFor="@+id/routes"/>
|
||||||
<EditText style="@style/vpn_value" android:id="@+id/routes"
|
<EditText style="@style/vpn_value" android:id="@+id/routes"
|
||||||
android:hint="@string/vpn_not_used"/>
|
android:hint="@string/vpn_not_used"/>
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
@@ -122,10 +147,14 @@
|
|||||||
android:orientation="vertical"
|
android:orientation="vertical"
|
||||||
android:animateLayoutChanges="true">
|
android:animateLayoutChanges="true">
|
||||||
|
|
||||||
<TextView style="@style/vpn_label" android:text="@string/vpn_username"/>
|
<TextView style="@style/vpn_label"
|
||||||
|
android:text="@string/vpn_username"
|
||||||
|
android:labelFor="@+id/username"/>
|
||||||
<EditText style="@style/vpn_value" android:id="@+id/username"/>
|
<EditText style="@style/vpn_value" android:id="@+id/username"/>
|
||||||
|
|
||||||
<TextView style="@style/vpn_label" android:text="@string/vpn_password"/>
|
<TextView style="@style/vpn_label"
|
||||||
|
android:text="@string/vpn_password"
|
||||||
|
android:labelFor="@+id/password"/>
|
||||||
<EditText style="@style/vpn_value" android:id="@+id/password"
|
<EditText style="@style/vpn_value" android:id="@+id/password"
|
||||||
android:password="true"/>
|
android:password="true"/>
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user