• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

android - 如何告诉 TalkBack 自定义 View 正在用作按钮

[复制链接]
菜鸟教程小白 发表于 2022-12-9 06:01:09 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我在 Android 上使用自定义 View 作为按钮,它不继承自 android.widget.Button。告诉无障碍服务它是一个按钮的最佳方式是什么?

只在 View 上调用 setClickable(true) 就足够了吗?

对于标准 Button,TalkBack 会附加单词“button”作为提示,但对于自定义 View ,它不会这样做。我应该在某处添加“按钮”一词作为提示吗?

在 iOS 上,我会在 View 中添加一个按钮“特征”,VoiceOver 将其声明为一个按钮。 Android上有类似的东西吗?



Best Answer-推荐答案


如果您深入研究 TalkBack 项目,在 Role.java 中,您会看到提示文本“按钮”应用于以下情况:

  • 元素有一个android.widget.Button类

  1. 元素有一个类android.widget.ImageView
  2. 元素isClickable()

但是,isClickable() 的任何内容都会应用提示文本“双击以 ....”。所以,答案是否定的,你不应该。 “按钮”对于 TalkBack 用户来说意味着非常具体的东西,最好让 Android 操作系统和 TalkBack 一起工作来弄清楚它是什么。

如果 TalkBack 只是将所有可点击的内容作为按钮宣布,而不是将这些信息放在延迟提示文本中会更好:“双击...”(... = 展开、激活等,具体取决于控制)是的,它可能会。

如果 Android 允许您说:“是的,我子类化的这个东西是一个按钮”,就像 iOS 特征一样,会更好。是的,它可能会。

事实上,我认为,鉴于:“双击...”公告,在这种情况下“按钮”的公告是附加信息。 “按钮”意味着可以双击操作的东西。如果“按钮”公告仅适用于“按钮”,则情况并非如此,因为“android.widget.Button”对象以某种方式(通常)设置样式。但是,由于这也适用于 IMAGE_VIEWS,而不适用于其他简单的“可点击” View ,因此其目的是困惑的,最终无用且令人困惑。不,你不应该试图纠正这一点。把这件事做好绝对是 TalkBack 的工作,它确实做到了……只是在其他方面。让我解释一下:

按钮的公告基本上已被弃用,取而代之的是延迟公告“双击...”。 “按钮”公告保留为习惯于该公告的用户的旧版支持。

总而言之:确保在您控制后宣布“双击...”。不过,只要确保您的节点有一个点击监听器和“isClickable”就足够了。这个延迟的提示公告很重要。 “按钮”的宣布并不重要,遗留垃圾是在 TalkBack 项目开发早期做出的不幸决定留下的。那个,或者它将被修复以在将来的版本中应用于所有可点击的东西(如自定义控件)。无论哪种方式,都不建议在内容描述中添加“按钮”一词。

关于android - 如何告诉 TalkBack 自定义 View 正在用作按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47716961/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap