如何说出对话是一种自定义视图用作按钮



我将自定义视图用作Android上的按钮,该按钮不会从android.widget.Button继承。告诉可访问性服务的最好方法是什么?

仅在视图上调用setClickable(true)吗?

使用标准的Button,Talkback将单词"按钮"作为提示,但是使用自定义视图,则无法做到这一点。我应该在某个地方添加"按钮"一词?

在iOS上,我会在视图中添加一个按钮"特征",并将其作为一个按钮将其注释。Android上有类似的东西吗?

如果您挖掘对讲项目,在角色java中,您会在以下情况下看到提示文本"按钮":

  • 该元素具有android.widget.button的类别

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

但是, isClickable()的任何内容都将带有提示文本"双击到...."。因此,答案是否定的,您不应该。"按钮"是指对话用户非常特定的东西,最好允许Android操作系统和对讲机一起工作以弄清楚这是什么。

如果对讲刚刚宣布了所有可单击的内容作为按钮,那就更好了,而不是将这些信息放在延迟提示文本中:"双击到..."(... =扩展,激活等,取决于控制)是的,可能会。

如果Android允许您说:"是的,我分类为一个按钮,会更好。"是的,可能会。

实际上,我认为给定:"双击到...."公告,在这种情况下,"按钮"的公告是其他信息。"按钮"意味着可以将事物重敲打以进行动作。如果"按钮"公告仅应用于"按钮",则不会是这样的,因为" android.widget.button"对象是某些方法(通常是)。但是,由于这也应用于Image_Views,而不会应用于其他简单的"可单击"视图,因此其目的是泥泞的,最终无用且令人困惑。不,您不应该尝试纠正这一点。正确的做法绝对是对话的工作,这是在其他方面所做的。让我解释一下:

按钮的公告基本上是弃用的,并由延迟的公告"双击到..."取代。"按钮"公告作为对习惯该公告的用户的传统支持。

总结:确保在您的控制后宣布"双击"。但是,仅确保您的节点具有单击的侦听器,并且"可见"就足够了。这个延迟的提示公告很重要。"纽扣"的宣布是不重要的,遗产垃圾剩下的遗留下来是不幸的决定,而在谈话项目的开发中做出了。这是将来版本中的所有可单击的内容(例如自定义控件)的修复。无论哪种方式,都会不建议将"按钮"一词添加到您的内容描述中。

如果您无法从按钮子类子类,下一个选项是将以下内容添加到您的自定义类

override fun getAccessibilityClassName(): CharSequence = Button::class.java.name

这让对话知道应该将其视为按钮。

请注意,getAccessibilityClassName()不会启用复杂的行为,例如RadioButton或Tablayout所需的行为。但这足以容纳具有简单单击行为的按钮。

最新更新