TalkBack:防止选择模糊视图

时间:2017-06-22 21:21:54

标签: android talkback android-accessibility

Bad TalkBack Image

在上图中,您可以看到TalkBack选择了一个完全遮挡的标签。如果我再次点击,则会选择顶部的整个面板(它被设置为可聚焦),这是所需的行为。

如何阻止TalkBack为公告选择完整(或部分)模糊的视图?

至少,我如何强制对讲以选择顶部/模糊视图?

3 个答案:

答案 0 :(得分:0)

所以,没有足够的信息来完全回答这个问题。目前尚不清楚你的“学习”更多的东西是模态对话,所以需要处理,或者它是否可以保留在屏幕上,并且与布局中较低的东西的交互应该仍然可以访问。

场景1:我们假设“了解更多”对话框是一个应该在其他所有内容之前处理的模式,您想要的是使用自定义AlertDialog。然后Android系统将设置所有重要属性,而不需要不同的权限。最终,Android操作系统在这种情况下所做的是使用TYPE_SYSTEM_ALERT添加一个新视图,这可以确保对话框是屏幕上唯一可操作的东西(也是唯一可访问的!)。

https://developer.android.com/guide/topics/ui/dialogs.html#CustomLayout

场景2:“了解更多”横幅不是模态。你想要做的是隐藏横幅后面的视图。您可以通过设置view.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_NO);

来完成此操作

答案 1 :(得分:0)

使用布局检查器找到此标签并删除其可见性。

每个Android documentation     要打开布局检查器,请执行以下操作:

  1. 在连接的设备或仿真器上运行您的应用。

  2. 单击工具>布局检查器。

  3. 在出现的“选择进程”对话框中,选择要检查的应用程序进程,然后单击“确定”。

  4. 布局检查器捕获快照,将其另存为.li文件,然后将其打开。

通过编程方式或在布局文件中将可见性设置为“消失”:

android:visibility="gone"

nameOfLabel.setVisibility(View.GONE)

答案 2 :(得分:0)

您可以添加以下代码,TalkBack 将忽略该视图/图像:

android:importantForAccessibility="no"

更新答案:

当 View 被遮挡时,将其设置为被遮挡的 this 的根:

mainContentView.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_NO_HIDE_DESCENDANTS);

然后,当您恢复该视图时,请执行以下操作:

mainContentView.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_NO);