I want make my CardView more accessibility. I have clickable CardView and i want talkback voiced this CardView with role "button". I dont know how to do it.
private fun setAccessibilityDescription(view: View) {
ViewCompat.setAccessibilityDelegate(view, object : AccessibilityDelegateCompat() {
override fun onInitializeAccessibilityNodeInfo(host: View, info: AccessibilityNodeInfoCompat) {
super.onInitializeAccessibilityNodeInfo(host, info)
info.className = Button::class.java.name
}
})
}
I tryed use ViewCompat and override onInitializeAccessibilityNodeInfo, it is helped me but not fully. Role "button" always voiced first, although talkback usually say "button" last with real button. It's better than nothing, but how can I make the TalkBack sound my CardView like a button
This is possible! Instead of className, you need a role description. By calling setRoleDescription, you can set this as Button.
For example:
info.roleDescription = getString(R.string.button)