如何覆盖辅助功能 class 名称
How to override Accessibility class name
我想阻止 Talkback
为 Button
视图宣布 class 名称。为此,我编写了以下逻辑,但它不起作用
fun setAccessibilityDelegate(view: Button?) {
view?.setAccessibilityDelegate(object : View.AccessibilityDelegate() {
override fun onInitializeAccessibilityNodeInfo(host: View?, info: AccessibilityNodeInfo?) {
super.onInitializeAccessibilityNodeInfo(host, info)
info?.contentDescription = getContentDesStartWatching()
info?.className = ""
}
})
}
实际描述:"start watching button, Button double tap to activate"
预期描述:“开始观看按钮,双击激活”
注意: 无法将内容描述更改为 "start watching",因为它正在从后端检索
这对我有用,使用 AccessibilityDelegateCompat
而不是 AccessibilityDelegate
科特林代码:
fun setAccessibilityDelegate(view: View) {
ViewCompat.setAccessibilityDelegate(view, object: AccessibilityDelegateCompat() {
override fun onInitializeAccessibilityNodeInfo(host:View,
info: AccessibilityNodeInfoCompat) {
super.onInitializeAccessibilityNodeInfo(host, info)
info.className = null
info.contentDescription = getContentDesStartWatching()
}
})
}
我想阻止 Talkback
为 Button
视图宣布 class 名称。为此,我编写了以下逻辑,但它不起作用
fun setAccessibilityDelegate(view: Button?) {
view?.setAccessibilityDelegate(object : View.AccessibilityDelegate() {
override fun onInitializeAccessibilityNodeInfo(host: View?, info: AccessibilityNodeInfo?) {
super.onInitializeAccessibilityNodeInfo(host, info)
info?.contentDescription = getContentDesStartWatching()
info?.className = ""
}
})
}
实际描述:"start watching button, Button double tap to activate"
预期描述:“开始观看按钮,双击激活”
注意: 无法将内容描述更改为 "start watching",因为它正在从后端检索
这对我有用,使用 AccessibilityDelegateCompat
而不是 AccessibilityDelegate
科特林代码:
fun setAccessibilityDelegate(view: View) {
ViewCompat.setAccessibilityDelegate(view, object: AccessibilityDelegateCompat() {
override fun onInitializeAccessibilityNodeInfo(host:View,
info: AccessibilityNodeInfoCompat) {
super.onInitializeAccessibilityNodeInfo(host, info)
info.className = null
info.contentDescription = getContentDesStartWatching()
}
})
}