The default VoiceOver behavior is to start at the toolbar and work its way down. In some cases, this feels unintuitive to me. One example - my app persists which Tab you were last on across sessions. But on iOS, the tab bar is at the bottom. Sighted users have immediate context. I explored trying to insert a VO bit on load to announce which Tab is active, but that didn't work well and would sometimes clash with other VoiceOver elements. Any guidance here? I'm not a VoiceOver user, so please let me know if I'm trying to change a default AX behavior that shouldn't be messed with. But I want to make sure a VO user has the right context of where they're being dropped into.
In general we recommend letting the system‘s default ordering persist here. VO users have an expectation when they open a new screen or app that their focus will be at the top, so they can navigate liberally through your content from start to finish. I would probably not recommend moving focus to the tab bar in your case for example.
However, if you find cases where the default ordering is incorrect or confusing, you can use .accessibilitySortPriority() in SwiftUI to change the linear order. In UIKit, you can set the accessibilityElements property to a list of ordered accessibility elements to navigate through in the parent view to control the ordering.