Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

iOS UITest: How to test custom accessibility actions?

I want to support VoiceOver. I have an UIButton inside of an UITableViewCell. According to a best practice I have disabled the button for accessibility (.isAccessibilityElement = false) and implemented a custom accessibility action for the cell (accessibilityCustomActions, NSAccessibilityCustomAction).

This way VoiceOver would not find and read the button as an own element. To make the feature behind the button accessible, I have added a custom accessibility action to the cell. With the custom action the user can select the action with swipe up and down. And then perform it with double-tap.

Now I want to test this action with an UITest. It's not possible to access the button inside of an UITest, because its disabled for accessibility.

How can I perform a custom accessibility action inside of an UITest?

like image 813
Artur Friesen Avatar asked Nov 19 '18 11:11

Artur Friesen


Video Answer


1 Answers

How can I perform a custom accessibility action inside of an UITest?

Actually, you can't with {Xcode 11, iOS 13} and even if you can get an array of actions in UITest, it's nil and you can't fire the selectors from XCUITEST (UI tests don't get code-level access to the app as unit tests do).

Testing manually is currently the only way to test accessibility custom actions with VoiceOver.

Take a look at this answer given by an Apple engineer during the WWDC 2019.

like image 54
XLE_22 Avatar answered Oct 19 '22 02:10

XLE_22