android - 如何阻止辅助功能将 android 按钮宣布为 "button"?

标签 android accessibility talkback

我在 Android 中有一个按钮,上面写有文本 “Next”。 当我将辅助功能光标聚焦在按钮上时,它会显示“下一步按钮”。这是我不想要的。我希望无论何时,光标都将焦点放在“下一步”按钮上,它必须读出为“下一步按钮。双击以选择”。我可以很容易地做到这一点,通过设置 btn.contentDescription("下一步按钮。双击选择"), 但随后它读出为 “Next button. Double tap to select button”,这意味着它还读出了最后一个按钮,这看起来很奇怪,“按钮”文本被读取了两次。

有什么办法可以阻止最后一个按钮被宣布?

最佳答案

您正在尝试做 AT 负责的事情。由于类类型,AT 知道该对象是一个按钮。 AT 知道它是可点击的,因为 Clickable 是一个有效的可访问性操作。

TalkBack 将共享此信息,这是分割: “下一步按钮,(暂停)双击以选择”

“下一步”-> 内容描述/文本。这是您控制的部分。

“按钮”-> 根据对象的有效操作和类型(类)在 TalkBack 中计算。

“双击选择”-> 此公告基于 Clickable 是一个有效的辅助功能操作。

所以,当您将 contentdescription 设置为“Next .....”时,您最终会看到“next ...... button (pause) double tap to select”的公告,不,没有覆盖它的方法。

如果您绝对有意降低您的应用程序的可访问性,您可以创建一个自定义控件,编写您自己的手势识别器(如不使用“onClick”事件,因为这会使您的元素可访问性可点击)来识别点击手势.然后自己编写内容描述,包括姓名、角色和说明。

在我看来,这将是非常愚蠢的!只需让内容描述为“下一个”,让 TalkBack 告诉用户您的元素是一个按钮以及如何与之交互。虽然可能不是“完美”的措辞你/这个要求来自于谁的愿景。这将是 TalkBack 用户习惯于宣布此类控件的方式。一致性有时比让事情“就这样”更重要。

关于android - 如何阻止辅助功能将 android 按钮宣布为 "button"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40597930/

相关文章:

android - Gradle 同步问题 : None of the consumable configurations have attributes

Android Tabhost 内容在平板电脑上卡住但在模拟器中不卡住

android - 如何在 Android 上使用 wit.ai 获取希伯来语语音输入和输出

android - 使用 TalkBack 时,当 TextView 的内容发生变化时提醒用户的首选方式是什么?

android - Android登录Facebook成功后如何结转数据

android - 如何在android中的每个标记(多个标记)上打开一个信息窗口?

android - 对讲正在宣布隐藏的观点

javascript - 用于转到上一页的“alt+left”不适用于 testcafe,但手动工作正常

html - aria-hidden 是否需要一个值?

android - Android中如何监听Talkback的焦点变化?