【问题标题】:Talk Back accessibility, requesting focus on a TextViewTalk Back 可访问性,请求关注 TextView
【发布时间】:2015-07-22 16:57:58
【问题描述】:

我们对可访问性有一个要求,当给定的活动打开并且用户启用了 TalkBack 可访问性时,客户希望 Talk Back 不仅可以读取活动名称,还可以读取我们的 welcomeText TextView 的文本。该文本视图是动态的,因为它会说“欢迎,”

我尝试在活动 onCreate() 中这样做:

welcomeText =(TextView)getView().findViewById(R.id.authenticatedNoWishlistWelcomeText);

welcomeText.setFocusableInTouchMode(true);
welcomeText.requestFocus();

但这不起作用..谁能告诉我如何让 Talk Back 在启动时读取给定的 TextView 而无需用户交互?

【问题讨论】:

    标签: android accessibility talkback


    【解决方案1】:

    这里要意识到的重要一点是FocusAccessibility Focus 不是同一个东西。

    您正在寻找以下内容:

    welcomeText.sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_FOCUSED);
    

    这样做时要小心。在 onCreate 中这样做可能是个坏主意,因为它只会在加载应用程序活动时发生。您可能想要的是每次恢复时都会发生这种情况。此外,AT (TalkBack) 在此生命周期的某个时间点创建与 Activity 的连接,因此您要确保没有竞争条件。在您发布无障碍活动之前,TalkBack 必须连接到您的活动。

    但请注意,这可能是一个不好的要求。 WCag 3.2.1 和 3.2.3 明确指出导航应该是一致的和可预测的,其中一部分是避免意外的焦点转移。这可能被视为违反了这些准则,实际上比不这样做更难获得。

    【讨论】:

    • 能否在布局 XML 中请求此辅助功能焦点?最好有一个 android:firstViewToReadOutLoud 属性。
    • 如果您使用绑定 - 可以通过 bindingAdapter 完成
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-11-26
    • 2010-10-08
    • 1970-01-01
    • 2014-11-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多