ios - 了解画外音导航中的 _accessibilitySearchSubtreesAfterChildElement 错误

标签 ios uitableview voiceover uiaccessibility accessibility-inspector

我有一个带有 UITableView 的 View Controller 。 tableView 中的顶部单元格是屏幕上最顶部的可访问性元素。在 iPad 上,当从顶部单元格向左轻弹时,行为符合预期:它记录了没有更多元素可以获得焦点的声音。将辅助功能检查器与 iPhone 模拟器一起使用,再次如预期的那样,当向左导航经过顶部单元格时导航停止,并且层次结构中辅助功能元素的读出符合预期。

但是在任何真实的 iPhone 上,从顶部单元格向左滑动会导致:a) 整个 View 层次结构从屏幕上消失,并且焦点移动到导航栏所在的区域或 b) 在某些情况下焦点跳跃到表格 View 的底部单元格。

在这两种情况下,都会传递以下神秘错误消息:

[Accessibility] |NSObjectAccessibility.m:7737 -[NSObject(AXPrivCategory)
_accessibilitySearchSubtreesAfterChildElement:direction:searchType:allowOutOfBoundsChild:range:]
|We should always have been able to find the index of the child element if we had one to begin with.

注意:navigationController?.setNavigationBarHidden 设置为 true。如果不是,焦点将移动到后退按钮而不是导航栏周围的区域, View 消失(或跳转到 tableView 的底部),并显示相同的错误消息。

是否有人能够解释错误消息或建议调试问题的切入点?

最佳答案

当我试图使 UITableViewCell 符合 UIAccessibilityContainer 时,我遇到了同样的问题。

如果您正在使用 func index(ofAccessibilityElement element: Any) -> Int... 而不是在找不到元素时返回 NSNotFound文档告诉你,尝试返回对 super 的调用,所以 return super.index(ofAccessibilityElement: element)

它看起来像是 Apple 方面的一个错误,但它确实为我解决了这个问题。

关于ios - 了解画外音导航中的 _accessibilitySearchSubtreesAfterChildElement 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56191972/

相关文章:

ios - VoiceOver 滑动时如何水平滚动 UIStackView?

ios - 当我使用 NSUnderlineStyleAttributeName 在 NSTextStorage 上设置属性时,UITextView 文本正在丢失字体大小

ios - 从 App Store 下载的应用程序有 BadDeviceToken,从源代码构建没有

ios - 如何检查用户之前是否在 iOS 中看到过推送通知权限警报 View ?

ios - 辅助功能画外音失去了对分段 subview 的关注

ios - 在 UIButton/UITableViewCell/UICollectionViewCell 选择上禁用 VoiceOver

ios - 有错误的 RACSignal 映射

ios - UITableView 不更新动态类型更改的标签

ios - tableview cell.imageview 没有动画

objective-c - 如何从 NSIndexPath 获取特定值