宣布带有对讲的TextView

时间:2017-11-08 11:28:37

标签: android google-maps accessibility google-maps-api-2 talkback

我正在使用谷歌地图api开发一个应用程序,并且假设被无法看到的人使用,因此可访问性非常重要。

如何在活动开始后立即宣布已经作为文本和contentDescription发布的TextView,并且用户不必触摸它?

我的问题的另一点是我有一条公共汽车路线,我希望在某些点上通知说明,我的问题是对讲正常,但如果我触摸googlemap或其他任何地方活动,对话停止说出描述。 (此描述显示在Toast中)

2 个答案:

答案 0 :(得分:0)

一旦您的活动明星成为不受欢迎的行为,您在第一点中概述了关于阅读文本的内容。让TalkBack用户浏览您的应用以查找此信息。如果您必须发布公告,您正在寻找的是辅助功能公告事件,它允许您向辅助技术层发送任意文本公告。

[false,true,false,true]
.sort(
  (a,b)=>
    (a===b)?0
    :(a===true)?1:-1)

您在第二点中概述的是期望的行为。想象一下,如果一个TalkBack用户无法中断各种通知,如果他们意外地将几段文本连续聚焦,他们需要等待多长时间才能听到像按钮这样的简单名称?这将是一个非常令人沮丧的用户体验。

答案 1 :(得分:0)

与上面相同的答案,并且具有最新的代码更新:

private void sendAccessibiltyEvent(@NonNull String message) {
    AccessibilityManager accessibilityManager = (AccessibilityManager)requireActivity().getApplicationContext().getSystemService(Context.ACCESSIBILITY_SERVICE);
    if (accessibilityManager.isEnabled()) {
        AccessibilityEvent event = AccessibilityEvent.obtain(AccessibilityEvent.TYPE_ANNOUNCEMENT);
        event.getText().add(message);
        accessibilityManager.sendAccessibilityEvent(event);
    }
}