Android辅助功能支持?

时间:2012-03-21 14:19:47

标签: android accessibility android-a11y

我已经经历过许多问题,关于Android中的辅助功能的API演示,但它无能为力。

我想支持Android应用程序中的辅助功能。内置辅助功能可以处理所有可聚焦项目,并在单击时正确读出Hints

我想在用户点击TextView时触发辅助功能事件。第一次打开屏幕时,我希望它能够读出我提供的自定义信息。我已经成功地使用dispatchPopulateAccessibilityEvent,但每次恢复屏幕时它都会读取。此外,我无法识别发送事件的视图。

3 个答案:

答案 0 :(得分:2)

您可以在TextView中使用调用“sendAccessibilityEvent”,如下所示:

if (AccessibilityManager.getInstance(mContext).isEnabled()) {
    setContentDescription("The content description for this view");
    sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_FOCUSED);
}

读取的文本(取决于正在使用的辅助功能服务)将基于内容描述,而不一定是TextView中的文本。

答案 1 :(得分:1)

如果您希望视图集中显示并为该视图添加相关的内容描述,则可以使用

view.requestFocus()
view.sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_FOCUSED)

如果您只想宣布一次更改并且不想更改与该视图关联的contentDescription,则可以使用

view.announceForAccessibility = "Alert to a user about some event."
  

注意:announceForAccessibility不会将可访问性集中在您的视图上。

答案 2 :(得分:0)

您可以使用

view.sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_FOCUSED);

TextView上,您还可以添加" announceForAccessibility"但是你应该验证版本是否大于或等于Jelly Bean,但是你需要对视图进行更改。

最后,如果你想宣布"标题"例如,您可以为活动添加setTitle并放置文本的活动,请记住使用带有标题的工具栏,因为默认情况下此setTitle将覆盖操作栏标题。

如果您有任何其他问题,请告诉我。