顶嘴。使 CardView 可访问
TalkBack. Make CardView accessibility
我想让我的 CardView 更易于访问。我有可点击的 CardView,我希望对讲用角色“按钮”表达这个 CardView。我不知道怎么做。
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
}
})
}
我尝试使用 ViewCompat 并覆盖 onInitializeAccessibilityNodeInfo,它对我有帮助但不完全。角色“按钮”总是先说出来,虽然对讲通常在真正的按钮最后说“按钮”。总比没有好,但是我怎样才能让我的 CardView 的 TalkBack 听起来像一个按钮
我尝试了不同的方式,我认为对讲 api 不支持设置自定义对象,如按钮。对于我选择使用 contentDescription 的解决方案,我只是在 contentDescription 我的对象
的末尾添加单词“按钮”
private fun setAccessibilityViewTypeInfo(view: View, contentDescription: String) {
ViewCompat.setAccessibilityDelegate(view, object : AccessibilityDelegateCompat() {
override fun onInitializeAccessibilityNodeInfo(host: View, info: AccessibilityNodeInfoCompat) {
super.onInitializeAccessibilityNodeInfo(host, info)
info.contentDescription = host.context.resources.getString(
designR.string.talkback_button_pattern,
contentDescription
)
}
})
}
在我的代码 contentDescription 中,它是我的 CardView 中的所有文本并且 talkback_button_pattern
<string name="talkback_button_pattern">%1$s, button</string>
我了解人们可以在设置中更改对讲行为。
根据设置,“按钮”一词可以在配音的结尾或开头,我的解决方案不支持这种情况。不过聊胜于无
这是可能的!您需要角色描述而不是类名。通过调用 setRoleDescription,您可以将其设置为 Button。
例如:
info.roleDescription = getString(R.string.button)
我想让我的 CardView 更易于访问。我有可点击的 CardView,我希望对讲用角色“按钮”表达这个 CardView。我不知道怎么做。
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
}
})
}
我尝试使用 ViewCompat 并覆盖 onInitializeAccessibilityNodeInfo,它对我有帮助但不完全。角色“按钮”总是先说出来,虽然对讲通常在真正的按钮最后说“按钮”。总比没有好,但是我怎样才能让我的 CardView 的 TalkBack 听起来像一个按钮
我尝试了不同的方式,我认为对讲 api 不支持设置自定义对象,如按钮。对于我选择使用 contentDescription 的解决方案,我只是在 contentDescription 我的对象
的末尾添加单词“按钮”private fun setAccessibilityViewTypeInfo(view: View, contentDescription: String) {
ViewCompat.setAccessibilityDelegate(view, object : AccessibilityDelegateCompat() {
override fun onInitializeAccessibilityNodeInfo(host: View, info: AccessibilityNodeInfoCompat) {
super.onInitializeAccessibilityNodeInfo(host, info)
info.contentDescription = host.context.resources.getString(
designR.string.talkback_button_pattern,
contentDescription
)
}
})
}
在我的代码 contentDescription 中,它是我的 CardView 中的所有文本并且 talkback_button_pattern
<string name="talkback_button_pattern">%1$s, button</string>
我了解人们可以在设置中更改对讲行为。 根据设置,“按钮”一词可以在配音的结尾或开头,我的解决方案不支持这种情况。不过聊胜于无
这是可能的!您需要角色描述而不是类名。通过调用 setRoleDescription,您可以将其设置为 Button。
例如:
info.roleDescription = getString(R.string.button)