当前位置: 首页 > 知识库问答 >
问题:

Android-如何在菜单项上设置辅助功能委托?

黄沈浪
2023-03-14

因为TalkBack和我的应用程序使用相同的TTS引擎,所以一次只能说一句话。因此,我的应用程序正在逐句读取它的WebView语句,但随后用户将注意力集中在一个菜单项上,TalkBack将读取它的描述。因为我的演讲语句被打断了,所以将调用onDone()(onDone()无法区分该语句是完全被说出来的还是被简单打断的),所以将调用speaknextsence(),即使我的前一个句子可能在仅仅两个字之后就被打断了。我想在激发菜单项的辅助功能事件之前,以某种方式将isPaused布尔值设置为true。

private class ttsUtteranceListener extends UtteranceProgressListener {

    @Override
    public void onStart(String utteranceId) {
    }

    @Override
    public void onDone(final String utteranceId) {
        if (!isPaused) {   
            ...
            speakNextSentence();
            ...
        }
    }

    @Override
    public void onError(String utteranceId) {
    }

共有1个答案

高海阳
2023-03-14

根据WCAG2.0,准则2.2.2,您的应用程序所做的可能被视为不可访问,除非小心处理。

解决方案1:在此指导原则下,处理此场景的正确方法是向用户提供手动启动/停止/暂停内容的能力。这应该相当容易实现。仅此一项就足够了,而且对于所有3个解决方案都是必需的。

解决方案2:另一种方法是,当您检测到可访问性引擎处于活动状态时,不要进行自己的语音合成。使用accessibility_live_region_polite将webview标记为liveRegion。然后让talkback抓住您更新的contentDescriptions,它应该包含当前突出显示的句子的文本。这使得TalkBack的工作是确定何时宣布什么。这有一个额外的好处,即即使您的区域处于活动状态并提供大量反馈,它也会以可预测的方式向对讲用户进行反馈。因此,它不太可能违反WCag 2.2.2,尽管您仍然应该小心!而且可能还需要提供暂停内容的能力。

 类似资料:
  • 我在文本视图下方有一个水平回收器视图(最近的项目在最右边的位置,最古老的项目在最左边的位置)。一旦辅助功能控件到达文本视图,在向右滑动时,它会聚焦在回收器视图的最左边的项目(即第一个项目)。有没有办法我们可以将默认焦点设置为最右边的项目。

  • 我有一个弹出窗口,其中包含不同种类的内容,分为几个部分,点击一个按钮就会触发。我试图在此实现中公开适当的可访问性/aria语义。(它不是一个模式对话框,而是一个简单的就地弹出窗口)。根据我目前的研究,我认为这是有意义的: 触发按钮上的咏叹调展开 在触发按钮上 其他可选键盘可访问性 此菜单按钮实现示例:https://www.w3.org/TR/wai-aria-practices/examples

  • 为程序制作辅助功能是很重要的。在这里,我们很高兴地向你们介绍Devtron和Spectron。这两个新功能有机会使开发者们让他们的应用程序更加可用。 Electron 应用中有关辅助功能的开发和网站是相似的,因为两者最终使用的都是HTML. 然而, 对于Electron应用, 你不能使用在线的辅助功能审查者, 因为你的应用没有一个URL可以提供给审查者. 然而这些新功能将这些审查工具带到您的Ele

  • 为程序制作辅助功能是很重要的。在这里,我们很高兴地向你们介绍Devtron和Spectron。这两个新功能有机会使开发者们让他们的应用程序更加可用。 Electron 应用中有关辅助功能的开发和网站是相似的,因为两者最终使用的都是HTML. 然而, 对于Electron应用, 你不能使用在线的辅助功能审查者, 因为你的应用没有一个URL可以提供给审查者. 这些功能将会提供一些审查工具给你的Elec

  • 本文向大家介绍Android辅助功能AccessibilityService与抢红包辅助,包括了Android辅助功能AccessibilityService与抢红包辅助的使用技巧和注意事项,需要的朋友参考一下 推荐阅读:Android中微信抢红包插件原理解析及开发思路 抢红包的原理都差不多,一般是用Android的辅助功能(AccessibilityService类)先监听通知栏事件或窗口变化事

  • 我目前正在做一个游戏,你必须避免小行星。我开始使用任意单位。 此外,我正在使用一个: 在游戏屏幕中,小行星看起来变形了: