【发布时间】:2022-11-24 01:10:41
【问题描述】:
所以我有一个关于可访问性的要求,其中一个按钮在焦点出现时需要读出,然后在用户点击它后读出另一个文本。
例如, 聚焦时的“确定”按钮应该显示为“确定”,但是当用户点击它时,它应该读出一些其他文本,例如。 “导航到其他页面”。
Android中有没有办法实现这个?
我没能在它周围找到任何东西。
【问题讨论】:
标签: android kotlin button accessibility focus
所以我有一个关于可访问性的要求,其中一个按钮在焦点出现时需要读出,然后在用户点击它后读出另一个文本。
例如, 聚焦时的“确定”按钮应该显示为“确定”,但是当用户点击它时,它应该读出一些其他文本,例如。 “导航到其他页面”。
Android中有没有办法实现这个?
我没能在它周围找到任何东西。
【问题讨论】:
标签: android kotlin button accessibility focus
您可以使用View#announceForAccessibility(CharSequence) 发布一般公告 - 因此在您的OnClickListener 中获取对某些View 的引用(例如您的Button,它是什么并不重要)并在其上调用它。
就像它在文档中所说的那样,这是一个方便的功能,它创建一个非常通用的“无特定原因宣布某事”事件 - 您可能想要提供更多上下文,例如创建 TYPE_VIEW_CLICKED 事件。这可能对用户更有帮助(取决于无障碍服务如何处理它)并且可以提供更好的体验,因为读出的内容根据其内容进行优先排序。我没有时间在这里深入探讨,但如果你愿意,你可以调查一下
另外我不确定这是否是你的意思,但以防万一 - 如果用户关注你的按钮,它应该说“[OK] 按钮,双击 [some description]”.您可以自定义括号中的位,其余部分是 UI 中 Button 的标准描述。您不应该将其更改为只说“确定”。
这个可预测且一致的系统存在是有原因的,它可以帮助视力不佳的人和盲人准确了解他们正在使用的应用程序的情况。有时听起来可能很笨重,但它意味着实用,而不是华而不实。所以我们不应该试图通过删除某些人真正需要的重要信息和上下文来绕过它并使其“听起来更好”。我不知道那是不是你的意思,但总是值得一提!
【讨论】: