我有一个有两种状态的按钮,开始和停止。在使用 TalkBack 的辅助功能模式下,当用户双击按钮时,我将按钮的文本更改为停止,因此我必须以某种方式对 TalkBack 说发生了这种情况。我设法通过以下方式实现了对按钮的删除和读取焦点:
button.performAccessibilityAction(AccessibilityNodeInfo.ACTION_CLEAR_ACCESSIBILITY_FOCUS, null);
// This works for the focus but doesn't make TalkBack speak. button.performAccessibilityAction(AccessibilityNodeInfo.ACTION_ACCESSIBILITY_FOCUS, null);
// Needed for TalkBack to speak.
button.performAccessibilityAction(AccessibilityNodeInfo.ACTION_SELECT, null);
这样做的问题是,TalkBack 只会读取内容描述,而不是说“双击激活”,当您手动选择按钮时会读取它。
以下不起作用:
button.requestFocus();
button.sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_FOCUSED);
button.clearFocus();
button.sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_ACCESSIBILITY_FOCUS_CLEARED);
也许有人暗示我错过了什么?