关于Android辅助功能对讲。是否有任何对讲焦点听众?

时间:2017-04-18 06:36:00

标签: android listview listener talkback

我正在为视障人士开发Android照片应用程序。

当然,我的应用程序在Talkback上下文中运行。 在Talkback上下文中,当按钮聚焦时,系统会读取按钮的文本。 the green box represents the focused content

我想要做的是在按钮聚焦时播放音频文件而不是按钮的文本标签。 但是,我找不到任何侦测按钮聚焦状态的侦听器。 有没有办法做到这一点?

1 个答案:

答案 0 :(得分:3)

免责声明:焦点上发生的事情可能是每WCAG 2.0 - 3.2.1次的主要可访问性违规行为。我鼓励您重新考虑您的设计/进行广泛的用户研究,以确保您最终做的不仅仅是创造令人沮丧的用户体验。不仅如此,但请记住,TalkBack并不是唯一的辅助技术,它让我觉得这种机制对于使用Switch Access的用户来说可能非常令人沮丧,并且可能完全破坏了BrailleBack用户。

话虽如此,这就是你将如何实现这一行为:

您想查看View.AccessibilityDelegate

中可用的回调

我相信你应该寻找看起来像这样的代码:

void onPopulateAccessibilityEvent(View host, AccessibilityEvent event) {
    if (event.getEventType() == AccessibilityEvent.TYPE_VIEW_ACCESSIBILITY_FOCUSED) {
        //do stuff here
    }
}

将此附加到正在接收焦点的视图,或者根据您使用的回调,您可以将其附加到包含一系列控件的布局。

现在,我说“类似这样的事情”,因为有很多不同的可访问性委托回调,事件前触发,事件后触发,允许您在事件填充视图层次结构时调整事件等等。您选择哪种回调取决于您希望这种情况发生的具体时间以及您可能需要调整的有关正在触发的AccessibilityEvent的事项的性质。