我有一个布局, 有一个表单..表单中大约有五个项目是一个旋转器,每次我的 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/