繁体   English   中英

辅助功能 TalkBack 在进度条上不起作用

[英]Accessibility TalkBack not working on progressBar

我在我的 Android 应用程序中添加辅助功能,它似乎无法正常工作progressBar 任何时候,我都会显示进度条,我想回话,所以我在 xml 中做到了这一点:

android:importantForAccessibility="yes"
android:contentDescription="Loading"
android:visibility="gone"

并且,以编程方式,我正在这样做:

collectState(viewModel.loading) { loading ->
            binding.progressBar.isVisible = loading
            binding.progressBar.isFocusable = loading
            binding.progressBar.isClickable = loading
        }

因此,当收集到loading state 时,如果加载为true ,我将让 viewModel 可聚焦且可见。

但它根本不起作用,它仍然什么也没说。

知道为什么吗? 谢谢

只要您使用android:visibility="gone"它将被 TalkBack 忽略,它将被视为将在视觉上和屏幕阅读器中隐藏的元素。 因此,假设您想要一个隐藏元素来宣布“加载”过程或“加载”过程的进度。 在这种情况下,您可以通过使用 android 中可用的活动区域来简化操作,并在过程完成后更新其内容(即加载 1%、50% 等)。 参考: https://mobilea11y.com/blog/android-live-regions/

考虑:

  • 如果使用进度条,您可以在进程启动后使其保持可见并确保其焦点,因此您可以使用进度百分比更新其 android:contentDescription 属性。
  • 使用可视指示器作为微调器或 TextView 与进度描述(即加载 1%、50% 等),显示android:liveRegion='polite'

希望这对您的 a11y 之旅有所帮助

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM