[英]How to remove default talk back response on particular views
所以基本上我正在为我的 android 应用程序实现对讲功能。 有一个编辑文本视图供用户在那里写电话号码,然后有一个注册按钮。 如果用户没有提供任何电话号码,则注册按钮将被禁用。 当按钮被禁用时,回话应该说“注册按钮已禁用,请输入有效的手机号码。” 但是由于有默认字符串,回话最后说的是:Button Disabled。 如何删除为特定视图所说的默认字符串。
verifyButton.disable()
verifyButton.contentDescription = requireContext().getString(R.string.sign_up_button_disabled_phone_number_accessibility_label)
您可以通过将AccessibilityDelegate附加到视图来实现此目的:
ViewCompat.setAccessibilityDelegate(submitButton, object: AccessibilityDelegateCompat() {
override fun onInitializeAccessibilityNodeInfo(
host: View,
info: AccessibilityNodeInfoCompat
) {
super.onInitializeAccessibilityNodeInfo(host, info)
if (!submitButton.isEnabled)
info.stateDescription = getString(R.string.accessibility_button_not_enabled_reason) //"Please enter a phone number"
}
})
这将在每次视图状态更改时更新,因此您无需在验证时手动执行此操作。
这将宣布:
“请输入电话号码,[按钮文本],按钮,已禁用”
因此,用户仍然会知道该按钮及其用途,以及它被禁用的原因!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.