In cross-screen navigation, VoiceOver's focus is starting on content on iOS13, not the nav bar

When I’m browsing an application using VoiceOver, the screen reader’s focus starts at random points on the screen, not the navbar’s “Back” button.

This happens since iOS 13. Has there been a change in VoiceOver's behavior? Does it recognize user behavior and pattern?
Answered by jkovach in 632490022
I have the same issue. Accessibility is very important for our app and we have had to add some hacky fixes in order to meet some guidelines.
Accepted Answer
I have the same issue. Accessibility is very important for our app and we have had to add some hacky fixes in order to meet some guidelines.
There seem to be a lot of VoiceOver changes since iOS 13, and even more in iOS 14. I am not certain why Apple is making some of the decisions they are making, as they seem to make VoiceOver support harder and harder to manage properly.

In your case, I would recommend posting a UIAccessibility notification like the one below, where backButton is replaced with a reference to the back button (or whatever element you want VoiceOver to focus on):

Code Block
UIAccessibility.post(notification: .layoutChanged, argument: backButton)

Did somebody happen to find a solution to this? I have an app with an embedded video player, and want the VoiceOver focus to start on the video player's play/pause button when navigating to a video page.

However UIAccessibility.post(notification: .layoutChanged, argument: videoPlayer.playPauseButton) does not reliably change the first focus after navigating to the video page. Sometimes the navigation bar's back button is focused first, sometimes the video description under the video is focused first, sometimes an element of the video player is focused first, but it's only ever its top left element (in my case, the full screen button), never the playPauseButton.

I can't quite understand by which logic the VoiceOver focus is set as it seems to behave semi-randomly here.

In cross-screen navigation, VoiceOver's focus is starting on content on iOS13, not the nav bar
 
 
Q