Android textview上的可访问性
我是android开发的新手。我开始做android易访问性工作,让盲人可以访问android应用程序。我制作了一个简单的登录表单,并设置了可访问性属性,如内容描述和焦点等。我打开了对话并检查了它Android textview上的可访问性,android,accessibility,Android,Accessibility,我是android开发的新手。我开始做android易访问性工作,让盲人可以访问android应用程序。我制作了一个简单的登录表单,并设置了可访问性属性,如内容描述和焦点等。我打开了对话并检查了它 here is code activity_main.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/
here is code activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
tools:context=".MainActivity"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="@string/usernm_text"
android:id="@+id/username"
android:contentDescription="@string/usernm_text"
android:focusable="true"
android:nextFocusDown="@+id/usr_nm"
/>
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="textPersonName"
android:ems="10"
android:id="@+id/usr_nm"
android:contentDescription="@string/usernm_text"
android:focusable="true"
android:text="admin"
android:nextFocusDown="@+id/password"
android:nextFocusUp="@id/usr_nm"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="@string/pass_text"
android:id="@+id/password"
android:focusable="true"
android:nextFocusDown="@+id/pass_edit"
android:contentDescription="@string/pass_text"
android:nextFocusUp="@id/usr_nm"/>
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="textPassword"
android:ems="10"
android:id="@+id/pass_edit"
android:contentDescription="@string/pass_text"
android:text="admin"
android:focusable="true"
android:nextFocusDown="@+id/login"
android:nextFocusUp="@id/password"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/login_btn"
android:onClick="log"
android:id="@+id/login"
android:contentDescription="@string/login_btn"
android:focusable="true"
android:nextFocusUp="@id/pass_edit"
android:accessibilityLiveRegion="polite" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"
android:id="@+id/log_succ"
android:focusable="true"
android:accessibilityLiveRegion="polite" />
</LinearLayout>
触摸时通过对讲成功登录文本视图提示。
我想,当我点击登录按钮,然后文本视图“登录成功”应立即通过对讲提示。
我将AccessibilityLiverRegion设置为“礼貌”。
我还应该做什么 据我所知,您希望系统在用户登录后大声说出“登录成功” 您可以使用
TextToSpeech
类来实现这一点
首先声明TextToSpeech
的对象(全局/类变量):
然后将其设置为在登录过程成功时实例化并大声说话:
tts = new TextToSpeech(getApplicationContext(), new TextToSpeech.OnInitListener() {
@Override
public void onInit(int status) {
if(status == TextToSpeech.SUCCESS){
tts.setLanguage(Locale.US);
tts.speak("Login Successful", TextToSpeech.QUEUE_FLUSH, null);
}
}
});
此外,完成后不要忘记释放资源:
@Override
protected void onPause() {
if(tts!=null){
tts.stop();
tts.shutdown();
}
super.onPause();
}
希望这有帮助。如果我们为textview设置android:accessibilityLiveRegion=“polite”,这是可能的。。感谢您的回复。它需要添加辅助功能服务,以便在登录成功后提供反馈。
tts = new TextToSpeech(getApplicationContext(), new TextToSpeech.OnInitListener() {
@Override
public void onInit(int status) {
if(status == TextToSpeech.SUCCESS){
tts.setLanguage(Locale.US);
tts.speak("Login Successful", TextToSpeech.QUEUE_FLUSH, null);
}
}
});
@Override
protected void onPause() {
if(tts!=null){
tts.stop();
tts.shutdown();
}
super.onPause();
}