gpt4 book ai didi

ios - VoiceOver 在 UITableView 中滚动,其中单元格和 subview 都是可访问性元素

转载 作者:行者123 更新时间:2023-12-05 08:05:58 25 4
gpt4 key购买 nike

除了它的一些 subview 之外,我用来将整个 UIView 视为可访问元素的一般策略是使用 UIView 的 contentView 作为可访问元素来代替 UIView 本身。例如,

isAccessibilityElement = false
contentView.isAccessibilityElement = true
contentView.accessibilityLabel = "super view"
subview1.accessibilityLabel = "subview1"
subview2.accessibilityLabel = "subview2"
accessibilityElements = [contentView, subview1! subview2]

这在大多数情况下运行良好,但当 View 为 UITableViewCell 时会产生问题。基本上,如果 isAccessibilityElement = true 那么当 VoiceOver 用户在单元格中轻拂,并且屏幕上最低的可见单元格处于焦点时,tableView 将自动滚动到下一个单元格。但是如果单元格本身是一个无障碍元素,它就不能有同样是无障碍元素的 subview 。

另一方面,如果 isAccessibilityElement = false 自动滚动变得不稳定,通常焦点会从最低的可见单元格跳到 tableView 下方的滚动条或辅助功能元素。它似乎取决于屏幕尺寸,因为它会随着焦点在某些设备上的变化而自动滚动。

我尝试过以编程方式滚动 tableView 以响应单元格中的焦点变化,但这似乎也会导致不稳定的焦点跳跃。

有没有办法确保 VoiceOver 在 UITableView 中滚动干净,同时允许单元格和这些单元格的 subview 被视为可访问性元素?

最佳答案

在我确定我设置的 accessibilityElements 之一没有被隐藏之前,我遇到了这些问题并且更糟。该元素是最左边的项目(尽管作为信息按钮,我对元素进行了排序,以便它位于主单元格标题标签之后)。

不保证它会为其他任何人修复它,但绝对值得在没有隐藏任何可访问性项目的情况下进行测试。

关于ios - VoiceOver 在 UITableView 中滚动,其中单元格和 subview 都是可访问性元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62600499/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com