Java 使用蓝牙键盘和语音助手的文本视图按钮

Java 使用蓝牙键盘和语音助手的文本视图按钮,java,android,android-layout,talkback,android-accessibility,Java,Android,Android Layout,Talkback,Android Accessibility,我有两个xml格式的TextView按钮(是)和(否)。我正在使用蓝牙键盘和盲人语音助手测试一个移动应用程序。我想发生的是,当用户选择Yes按钮时,语音助手会说“Yes is selected”,如果用户选择No,则会说“No is selected” 我正在使用Android Studio。这是一个旧的移动应用程序,需要为盲人更新 <TextView android:id="@+id/vhr_question_yes" android:text="Yes" and

我有两个xml格式的
TextView
按钮(是)和(否)。我正在使用蓝牙键盘和盲人语音助手测试一个移动应用程序。我想发生的是,当用户选择Yes按钮时,语音助手会说“Yes is selected”,如果用户选择No,则会说“No is selected”

我正在使用Android Studio。这是一个旧的移动应用程序,需要为盲人更新

<TextView
    android:id="@+id/vhr_question_yes"
    android:text="Yes"
    android:clickable="true" />
<TextView
    android:id="@+id/vhr_question_no"
    android:text="No"
    android:clickable="true" />

您可以将视图状态设置为选中的
。这样,屏幕阅读器将通知用户其状态的更改

textView.setOnClickListener { view ->
    view.isSelected = true
}
在上述情况下,屏幕读取器将仅宣布已选择视图。当用户导航回此视图时,读取器将再次宣布此视图已选中

如果你真的需要完整的文字,你可以使用屏幕阅读器公告

textView.setOnClickListener {view ->
    view.isSelected = true

    (view as? TextView)?.let {
        it.announceForAccessibility("${it.text} is selected")
    }
}
用户可以通过平台依赖一致性。选择视图时,读卡器可能会读取为已选择,是。因此,应谨慎使用公告。
此外,如果用户稍后返回此视图,则仅使用公告,所选状态将不会持久化。

您只需将
android:contentDescription=“您要阅读的文本。”
添加到XML文件中或
vhr\u question\u yes.contentDescription=“您要阅读的文本。”

 <TextView
     android:id="@+id/vhr_question_yes"
     android:text="Yes"
     android:contentDescription="your text to be read."
     android:clickable="true" />
view.setOnClickListener{

    //.... some action .....

    // below code will set accessibility focus again on that view.
    view.requestFocus()
    view.sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_FOCUSED)
}