对话可访问性,请求关注TextView

时间:2015-07-22 16:57:59

标签: android accessibility talkback

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

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

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

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

但是这不起作用..任何人都可以告诉我如何在没有用户交互的情况下启动Talk Back以阅读给定的TextView吗?

1 个答案:

答案 0 :(得分:3)

这里要认识到的重要一点是FocusAccessibility Focus不是同一回事。

您正在寻找以下内容:

welcomeText.sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_FOCUSED);

当你这样做时要小心。在onCreate中执行此操作可能是一个坏主意,因为它只会在加载应用程序活动时发生。你可能想要的是它每次恢复时都会发生。此外,AT(TalkBack)在此生命周期的某个时刻创建了与Activity的连接,因此您希望确保您没有竞争条件。在您发布辅助功能事件之前,TalkBack必须连接到您的活动。

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