Sometimes, you change your app's UI to offer more options as a result of a user's action. And in such cases, it might be a good idea to move VoiceOver's focus to these new options. We can do that by sending a layout changed notification.

Two examples from Apple where they seem to post a layout changed notification to UIAccessibility to move VoiceOver's focus to new options. First one is the reminders app. When double tapping the Date & Time button, there is a new bar that appears on top of it with some predefined date options, and the focus moves to the first option in the bar that appeared. The second is the camera app. At the top of the screen there is a camera controls button that is collapsed by default. If you expand it, some new options appear further down the screen, right after the zoom options, and VoiceOver focus will move to the first one of the new camera controls presented.

You may also find interesting...

One thing I find very useful when testing (or doing demos!) is to have VoiceOver's caption panel enabled. It shows constantly at the bottom of the screen and you can see exactly what VoiceOver is saying.

Support both orientations, if possible. I know not even iOS itself does it, but it hasn't always been like that. You'll create a more robust UI that will be easier to port to iPadOS. And especially, don't force your users to rotate their devices.

Too much data can overwhelm users. Very little is an incomplete experience. It is hard to find a balance on verbosity and the users may have different preferences. To help with this issue, the AXCustomContent APIs let you mark data as optional.

Created in Swift with Ignite.

Supporting Swift for Swifts