开发者

Why doesn't UIScrollview have an accessibility area in the Interface Builder?

I've noticed that a UIScrollView doesn't have mentioned accessibility area where I can set accessibility label or accessibility. This seems to apply for activity indica开发者_如何学运维tors too.

Why does UIVIews, UIButtons and more have this area and not UIScrollView and UIActivityIndicatorView?


Good question - the reason for a scroll view is that Apple don't consider it to be an accessible element.

If you look at the UIAccessibility documentation, you'll find Apple have the following to say on what counts as an 'accessible element':

The only exception to this [a view being accessible] is a view that merely serves as a container for other items that should be accessible. Such a view should implement the UIAccessibilityContainer protocol and set this property to NO.

A UIScrollView is simply a container for subviews, so its isAccessibilityElement property is set to no (hence why you don't see the accessibility options in interface builder).

So basically, when you're using a scroll view the items inside it should be accessible, but not the scroll view itself.


To add more details on UIAutomation accessibility labels for UIScrollView you will have to use the index to the ScrollView to access subviews on the scroll view. Eg :

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

NOTE : Assumption is that the "logoutButton" is the accessibility label for the logout button and it is a subview on the scroll view.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜