Search code examples
iosobjective-caccessibilitysubviewvoiceover

Enable VoiceOver on the view and it subviews


Background: Like the voicemail view inside Apple's Phone app. I want to be able to get voiceover announcement from the cell context as well as the individual controls.

Problem: It seems that if the parent view has the accessibility turned on, the subviews become non-accessible.

I looked into shouldGroupAccessibilityChildren and accessibilityViewIsModal but they don't seem to solve it. I think UIAccessibilityNavigationStyle might be the answer but not sure how to use it.


Clarification: This has nothing to do with visual voicemail. Below shows the picture of the Apple's native app with voice over on. The black box is where the target of the voice is. The green box just blocks out some private info.

When select the overall box enter image description here

When select the play button enter image description here


Solution

  • You should look into subclassing the UIAccessibilityContainer protocol. I believe this is what you want. Create a custom accessibility container that is the parent for all of the things that you want. You then have more fine grained control over how your super view, and it's children, get reported to the accessibility APIs.