I want to prevent Talkback
from announcing class name for Button
view. To do so I wrote following logic but it doesn't work
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 = ""
}
})
}
Actual description: "start watching button, Button double tap to activate"
Expected description: "start watching button, double tap to activate"
Note: cannot change the content description to "start watching" as it is getting retrieved from backend
This worked for me, used AccessibilityDelegateCompat
instead of AccessibilityDelegate
Kotlin code:
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()
}
})
}