【问题标题】:Android Accessibility Support?Android 辅助功能支持?
【发布时间】:2012-03-21 14:19:46
【问题描述】:

我已经经历了很多问题,关于 Android 无障碍功能的 API 演示,但它无济于事。

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

我想在用户点击TextView 时触发辅助功能事件。第一次打开屏幕时,我希望它读出我提供的自定义信息。我已经设法用dispatchPopulateAccessibilityEvent 做到了,但每次屏幕恢复时它都会读取。我也无法确定哪个视图正在发送事件。

【问题讨论】:

  • 那么问题是什么?您正在尝试做哪些目前没有做的事情?
  • @AlexanderLucas 如何触发自定义文本以随时读出;

标签: android accessibility android-a11y


【解决方案1】:

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

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

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

【讨论】:

    【解决方案2】:

    如果您希望您的视图获得焦点并宣布该视图的相关内容描述,那么您可以使用,

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

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

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

    注意:announceForAccessibility 不会在您的视图上获得可访问性焦点。

    【讨论】:

      【解决方案3】:

      你可以使用

      view.sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_FOCUSED);
      

      在您的TextView 上,您也可以添加“announceForAccessibility”,但您应该验证版本是否大于或等于 Jelly Bean,但您需要更改视图。

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-11-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多