I\'m in the process of making my iOS app accessible and I\'m nearly finished. My app contains several custom screen transitions, and when VoiceOver is on it seems to pick ei
Interesting explanations to force the VoiceOver focus and reorder the elements as wished are provided thanks to this accessibility recommendations site.
NOTIFY A CONTENT CHANGE
When there is a content change in the current page, it is possible to notify the accessibility API using several types of notifications. To do that, we must send the change notification to the accessibility API using the method UIAccessibilityPostNotification.
There are several types of change notifications but the two most commonly used are:
READING ORDER
Redefining the VoiceOver reading order is done using the UIAccessibilityContainer protocol. The idea is to have a table of elements that defines the reading order of the elements. It is often very useful to use the shouldGroupAccessibilityElement attribute so we have a precise order but for a part of the view only (the rest of the view will be read using the native order provided by VoiceOver).
The best way to illustrate this feature is the keyboard whose keys order isn't necessary the appropriate one. Here's the desired order : 1, 2, 3, 4, 7, 6, 8, 9, 5. Two views are created (blue and grey) and we graphically put the numbers in them as defined hereunder :
Illustrations and code snippets (Swift & ObjC) are also available to defining these 2 explanations.