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?
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With