UITest UIAccessibility 层次结构

Posted

技术标签:

【中文标题】UITest UIAccessibility 层次结构【英文标题】:UITest UIAccessibility hierarchy 【发布时间】:2020-03-10 23:00:07 【问题描述】:

我在父视图上将isAccessibilityElement 标志设置为true(在我的情况下是UICollectionViewCell),现在VoiceOver 无法访问它的所有子视图,这正是我想要的。我确实在子视图上设置了accessibilityIdentifiers,因为我想在我的 UITest 中访问它们。问题是在将此标志设置为true 后,子视图在可访问性层次结构中不可见。如果我将标志设置为false,它们确实可以在我的 UITests 中访问,但 VoiceOver 也会读出它们,这不是我想要的。

当父视图上的isAccessibilityElement 属性设置为true 时,有没有办法让子视图出现在 UITests 中?

【问题讨论】:

【参考方案1】:

在构建设置中,在您的 UITests 目标上使用预处理器宏,例如 NOVOICE=1。寻找那个宏,类似于人们制作DEBUG=1COCOAPODS=1 的方式。然后使用

 #if NOVOICE 
 // Make your changes to accessibility here.  Blind users won't hear all the levels, but your tests will
 #endif

【讨论】:

以上是关于UITest UIAccessibility 层次结构的主要内容,如果未能解决你的问题,请参考以下文章

Swift 5.2 UIAccessibility.isAssistiveTouchRunning 永远不会返回 true,也不会触发 UIAccessibility.assistiveTouchSt

你如何实现 UIAccessibility 协议?

Apple Notes 颜色选择器中的 # 是啥? (UIAccessibility - 旁白)

有没有办法使用 UIAccessibility 获取所有设备的辅助功能设置?

UITableView 上的 UIAccessibility 实现

UIWINDOW 子视图上的 UIAccessibility