我想支持VoiceOver。我在UIButton里面有一个UITableViewCell。根据最佳实践,我禁用了可访问性按钮(.isAccessibilityElement = false),并为该单元实现了自定义可访问性操作(accessibilityCustomActions, NSAccessibilityCustomAction)。

这样,VoiceOver不会找到并读取按钮作为自己的元素。为了使按钮后面的功能可访问,我向该单元格添加了一个自定义可访问性操作。使用自定义 Action ,用户可以上下滑动来选择 Action 。然后连按两次即可执行。

现在,我想使用UITest测试此操作。无法访问UITest内部的按钮,因为该按钮出于可访问性而被禁用。

如何在UITest中执行自定义可访问性操作?

最佳答案



实际上,不能用{Xcode 11,iOS 13}来,即使您可以在UITest中获得一系列 Action ,它也为零,并且您不能从XCUITEST中触发选择器(UI测试不会获得代码-像单元测试一样对应用程序进行级别访问)。

手动测试当前是使用VoiceOver测试可访问性自定义操作的唯一方法。

看看Apple工程师在WWDC 2019期间给出的this answer

10-06 12:25