在我的 iOS 应用程序中,我有一个 UITableView。它包含一些 UITableViewCells,它们是
isAccessibilityElement = true
,还有一些是 isAccessibilityElement = false
。 (后者是仅包含分隔线的单元格;我不希望 VoiceOver 读取这些内容。)
如果表格可见区域底部有一个不可访问的单元格 (
= false
),那么我无法“滑过”它来访问该单元格之外的可访问表格单元格。相反,向右滑动会将辅助功能焦点从可见的表格单元格移动到其他一些可见的 UI 元素。同样,如果表格可见区域顶部有一个不可访问的单元格,那么我无法向左“滑过”它来访问其上方的可访问单元格。
我希望能够向左和向右滑动浏览表格中所有可访问的单元格,并让它们在获得焦点时滚动到视图中。我尝试覆盖
accessibilityElementDidBecomeFocused
,希望然后使用 scrollToItem
,但看起来它永远不会获得焦点,所以这永远不会被调用。
有什么方法可以让 iOS 依次将焦点发送到每个可访问的表格元素,无论它当前是否在视图中?或者是否有一些准则规定辅助功能应该只处理当前可见的 UI 元素?
问题: UI 重用单元格,因此可访问性树无法从 UI 获取数据,并且没有数据源中每个单元格的信息,并且无法搜索下一个标头。
解决方案:通过覆盖
accessibilityElements
处的数据为每个单元格提供明确的描述。 存储库链接