android - 关于 Android 辅助功能反馈。有没有对讲焦点听众?

标签 android listview listener talkback

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

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

我想做的是在按钮聚焦时播放音频文件,而不是按钮的文本标签。 但是,我找不到任何检测按钮聚焦状态的监听器。 有什么办法吗?

最佳答案

免责声明:根据 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
    }
}

将它附加到接收焦点的 View ,或者根据您使用的回调,您可以将它附加到包含一系列控件的布局。

现在,我说“类似这样的东西”是因为有很多不同的可访问性委托(delegate)回调、事件前触发、事件后触发、允许您在事件填充到 View 层次结构时对其进行调整等。您选择哪个回调取决于您希望发生这种情况的确切时间以及您可能需要对触发的 AccessibilityEvent 进行调整的事物的性质。

关于android - 关于 Android 辅助功能反馈。有没有对讲焦点听众?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43465212/

相关文章:

java - 在 Canvas android 中绘制带边框的文本

android ListView 不填充

objective-c - OSX/ cocoa : Listening for system wide mouse drag events

java - 可以检测双击 JComboBox 项目吗?

Java 多个菜单项带有事件监听器?

java - 允许用户在谷歌地图上创建和编辑标记的 Activity

android - 如果 USAGE_SHARED,Renderscript 在启用 GPU 的驱动程序上失败

Android模拟器奇怪的图形卡在屏幕上

java - 当我的 ListFragment 从返回堆栈返回到布局时,如何刷新我的 ListFragment?

Android Listview 从 url 加载 imageview