android - 即使 editText 具有焦点,Talk Back 也会宣布微调器内容描述

标签 android accessibility talkback

我有一个布局, 有一个表单..表单中大约有五个项目是一个旋转器,每次我的 Activity 加载时,Talkback 似乎都会读取此旋转器内容描述,即使焦点和闪烁的光标位于第一个编辑 TextView 上。

我似乎无法阻止它......有什么想法吗?

最佳答案

在 Android 中,辅助功能焦点和输入焦点是单独跟踪的。我需要有关您的具体情况的更多详细信息才能提供 100% 的答案。然而,我的猜测是,当 View 加载时,您的 EditText 字段正在请求输入焦点,因此光标被移动到那里,并且可能会弹出键盘(取决于 Android 版本)。但是,由于选项卡排序或某些其他机制,微调器是页面上第一个获得辅助功能焦点的项目。

对此有两种解决方案,具体取决于您想要的行为。

解决方案 1(推荐):您的 EditText 框没有请求输入焦点。允许用户在交互时将输入焦点强制放入框中。对于有能力的用户,只需简单地点击 EditText 框即可。

解决方案 2(可访问性较差,但可能更有用):将可访问性焦点转移到 onResume 方法(或 onCreate,或任何您认为最合适的地方)中的 EditText。像这样的方法是最好的:

public void resetFocus() {        
    editTextControl.sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_FOCUSED);
    editTextControl.requestFocus();
}

我建议在 onResume 中调用上述方法,以便每次此特定 View 加载输入时,可访问性焦点都将位于可预测的位置。否则,您会造成其他辅助功能问题。

关于android - 即使 editText 具有焦点,Talk Back 也会宣布微调器内容描述,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32233572/

相关文章:

android - 自定义对话框高度以匹配内容

android - java.lang.NullPointerException 获取数据到 Android 中的 ListView

Android 可访问性 : Talkback says 'out of list' in addition to announcing an ImageView's content description

android - 如何让Android accessibility talkback发音TextInputLayout报错

Android ExpandableListView 在 ChildView 有单选 CheckBox

java - 通过 usb 访问开发机器 localhost

html - 当节嵌套深度为 7 时,HTML 标题的最佳实践

ios - 如何更改 TableView 的部分索引标题的 accessibilityLabel?

uitableview - 将iOS Accessibility与UITableView部分一起使用时会崩溃,并且在几次[tableview reloadData]之后会崩溃

Android 辅助功能 : Talkback traverses elements in wrong order