VoiceOver will traverse elements from left-right, and from top-bottom. If for any reason you need to change that order, in SwiftUI you can change the accessibility sort priority. A higher priority number in the container means it will go first.

There are five buttons labeled with A, B, C, D, E. The A button is first, B is underneath it, and C, D, and E are under B. The natural order with VoiceOver would be A, B, C, D, E. There is some code that gives C a sort priority of 2, D a sort priority of 3, and E a sort priority of 1. That means that the order will be A, B, D, C, E instead.

You may also find interesting...

Grouping elements in SwiftUI is extremely easy! You can use the .accessibility(children: .combine) modifier. And that's it! It merges properties. For example, generating an accessibility label by joining the children's ones, separated by commas.

If you use Color Sets in the Assets Catalog to define your color palette, make sure you enable variants for the Any, Light and Dark appearances and also High Contrast. You'll be able to define variations of the color that have better contrast.

There is an accessibility trait for defining something that represents a custom keyboard's key: .keyboardKey. It allows VoiceOver users to change the typing mode to Direct touch typing. The calculator app or an access pin pad, are some examples.

Created in Swift with Ignite.

Supporting Swift for Swifts