为什么UIScrollview在Interface Builder中没有可访问区域?

我注意到,UIScrollView没有提到的可访问性区域,我可以设置辅助function标签或辅助function。 这似乎也适用于活动指标。

为什么UIVIews,UIButtons和更多有这个领域,而不是UIScrollView和UIActivityIndi​​catorView?

好问题 – 滚动视图的原因是苹果不认为它是一个可访问的元素。

如果你看一下UIAccessibility文档,你会发现苹果有以下几点来说明什么是“可访问元素”:

这个[可访问的视图]唯一的例外是一个视图,仅仅作为其他应该访问的项目的容器。 这样的视图应该实现UIAccessibilityContainer协议,并将该属性设置为NO。

UIScrollView只是一个子视图的容器,所以它的isAccessibilityElement属性被设置为no(因此为什么在界面生成器中看不到可访问性选项)。

所以基本上,当你使用滚动视图时, 它里面的项目应该是可访问的,而不是滚动视图本身。

要在UIScrollView的UIAutomation辅助function标签上添加更多详细信息,您将不得不使用ScrollView的索引访问滚动视图上的子视图。 例如:

 target.frontMostApp().mainWindow().scrollViews()[0].buttons()["logoutButton"].tap(); 

注意:假定“logoutButton”是注销button的辅助function标签,它是滚动视图上的子视图。