【问题标题】:Android NestedScrollView TalkBack - Only navigates to items visible on screen, skips over elements below scroll and goes to bottom tabsAndroid NestedScrollView TalkBack - 仅导航到屏幕上可见的项目,跳过滚动下方的元素并转到底部选项卡
【发布时间】:2025-12-30 20:55:10
【问题描述】:

我有一个屏幕,其中嵌套滚动占据了 90% 的屏幕和一个固定的底部选项卡选项卡。我正在研究屏幕上的可访问性并遇到一个问题,只要它们在屏幕上可见,TalkBack 就会正确导航到每个项目。一旦您到达可见项目的底部并尝试滑动以转到下一个项目,滚动视图就会滚动,但 TalkBack 焦点会跳转到固定在屏幕上的底部选项卡,绕过所有新的可见项目.

是否有设置或我缺少的东西?滚动视图中的项目对于可访问性都很重要,如果我将屏幕设置为在屏幕上显示它们,TalkBack 的导航会点击它们并正确读取它们。

谢谢

【问题讨论】:

    标签: android android-scrollview talkback android-accessibility


    【解决方案1】:

    哇,由于我使用的是自定义滚动视图,这被打破了。我放入了一个自定义滚动侦听器并删除了超级调用。

    override fun onScrollChanged(l: Int, t: Int, oldl: Int, oldt: Int) {
            super.onScrollChanged(l, t, oldl, oldt)
            listener?.scrollChanged(t, l)
        }
    

    一旦我把超级调用重新输入,它就按预期工作了。在这里留下这个答案,以防其他人遇到类似的事情。

    【讨论】:

    • 我从未覆盖过 onScrollChanged,我覆盖的任何 on*** 方法都称为 super.我仍然有这个问题。您正在构建哪个 SDK 版本?
    • 嘿,我知道在那家公司工作的时间更长,因此无法访问它。我相信当时我们是针对 28 构建的,最小为 21。而且我通常在 28 上运行模拟器。
    • @ClarkBattle 你有同样的解决方案吗?