如何在 Android 上使视图屏幕阅读器的子级成为可选

问题描述 投票:0回答:1

我在 Android 上有一个页面,其中包含轮播列表。每个轮播都有一个标题。启用 Talkback 后,当前用户必须从轮播的标题开始,导航每个轮播项目及其所有详细信息,然后读者才能继续阅读页面中的下一个项目(在本例中,是另一个轮播,但它可以是一个段落,任何东西)

我想要实现一个页面,其中屏幕阅读器读取轮播的标题,然后提供一个选项,根据用户的要求深入轮播的子项,或者跳到页面中的下一个顶级项目。我怎样才能实现这个目标?

这是我的屏幕的照片:

enter image description here

android android-jetpack-compose accessibility android-view talkback
1个回答
0
投票

实施

您需要使用辅助标题 - 这是简单的语法糖,允许屏幕阅读器用户使用“阅读模式”或“粒度”浏览标题

// kotlin views
ViewCompat.setAccessibilityHeading(header, true)
// XML
<TextView
    ...
    android:accessibilityHeading="true"
/>
// Compose
modifier = Modifier.semantics { heading() }

测试

我已经链接到我的博客,了解标题如何作为屏幕阅读器用户的“导航锚点”(下面的数字 4) - 要点是:

  1. 打开“话语提示”
  2. 使用更改阅读模式手势(从左向右对角向上然后向下滑动,即绘制箭头),直到屏幕显示“标题”
  3. 上下滑动(而不是左右)可在标题之间“制表符”

一些进一步阅读:

  1. 辅助功能标题
  2. Jetpack Compose 中的辅助功能
  3. https://developer.android.com/guide/topics/ui/accessibility/principles
  4. Android 辅助功能标题
  5. 屏幕阅读器备忘单

评论

虽然你绝对可以使用像actions这样的东西来准确地实现你所要求的(为用户提供跳到标题的选项),但你还需要控制用户焦点 - 这会很多额外的工作,并且必须考虑任何竞争条件。最重要的是,这并不是 TalkBack 用户真正期望的 - 他们更习惯于标题而不是在移动设备上跳过操作。

另一个好处是标题可以单独存在,您不需要管理组件之间的关系。

© www.soinside.com 2019 - 2024. All rights reserved.