It is possible to change the traversing order of accessibility elements by configuring the accessibilityElements array. You should try to avoid it, but one good reason for doing it is if the default order is illogical because of the visual layout.

Twitter app showing a profile screen. VoiceOver will focus by default its elements in this order: Header photo, back button, search button, more actions button, profile photo, notifications button, direct message button, follow button, account's name, etc. Maybe we could change the order so the first element is the back button and the second is the account's name, acting as a header for the screen. We can achieve that by overriding the accessibilityElements property of the view implementing the account header and return the elements in the order we want.

You may also find interesting...

The .accessibilityElement(children: ) modifier with the .ignore argument does a similar thing to set the container view to be an accessibility element in UIKit. It is the default argument, so you can just say .accessibilityElement(). Because of this, you'll need to use other modifiers to make it accessible and manually configure an accessibility label and value, traits... when necessary. https://developer.apple.com/documentation/swiftui/view/accessibilityelement(children:) https://developer.apple.com/documentation/swiftui/accessibilitychildbehavior/ignore

When making charts accessible, sometimes you may have just too many data points for the user to have to go one by one through all of them. In those cases, you can create accessibility elements that represent meaningful chunks of the graph.

Configuring the header accessibility trait, when appropriate, is one of my favourite accessibility quick wins. In this example, you need a single swipe down, instead of 12 swipes to the right to get to from Podcasts to Artists, in the app.

Created in Swift with Ignite.

Supporting Swift for Swifts