是否可以在密码输入字段上禁用 VoiceOver (iOS) / Talkback (Android),而无需为每个平台推出自定义键盘?
我不希望用户输入敏感信息(如密码或 PIN)时大声说出。
通过使用 View.onInitializeAccessibilityNodeInfo 和 View.onPopulateAccessibilityEvent 覆盖 View.AccessibilityDelegate
,可以对某些 TextEdit 视图禁用输入文本的 Talkback 画外音 passwordView.setAccessibilityDelegate(new View.AccessibilityDelegate() {
public void onInitializeAccessibilityNodeInfo(View host, AccessibilityNodeInfo info) {
super.onInitializeAccessibilityNodeInfo(host, info);
// 'setPassword(true)' is necessary for disabling voiceover
// for whole content of password field with visible content mode
info.setPassword(true);
}
public void onPopulateAccessibilityEvent(View host, AccessibilityEvent event) {
//do nothing -> no need to perform annotation of editText content changes
}
});