skip to Main Content

What’s my problem with the VO?

It gets stuck. It focuses only on the status bar (so it doesn’t see the app at all) or it focuses temporarily on a header bar in the app (so I can change the focus between about 3 element in that field). Neither switching the VO off and on nor standard gestures can help a user in such a situation.

When exactly does it happen?

The app is quite big so the exact reason is hard to determine. That’s why I want to know how you would debug it. But generally the app has login screens and inside screens. When the app starts and immediately goes to one of inside screens, the VO works perfectly. When the app starts and goes through login screens, the VO gets stuck after logging in.

Any code?

To change between the login screens and the inside screens I use UIApplicationDelegate

let storyboard = UIStoryboard(name: "StoryboardName", bundle: nil)
let vc: WantedViewController = storyboard.instantiateViewController(withIdentifier: "WantedViewControllerId") as! WantedViewController

self.window?.rootViewController = vc
self.window?.makeKeyAndVisible()

Maybe it’s too big change for the VO. The app uses also JGProgressHUD but I think I checked quite well that it couldn’t be a reason.

Any suggestions and questions are welcome!

2

Answers


  1. Chosen as BEST ANSWER

    The presented code caused the issue indeed. I advise people with a similar problem to perform sergue instead:

    performSegue(withIdentifier: "SegueToWantedViewControllerId", sender: nil)
    

    Define it in storyboard for example with Kind as Present Modally and Presentation as Full Screen to get the same result but with VoiceOver working.


  2. If you are using native UIKit widgets, then accessibility should be built in and Voiceover should find the widget. If you have a custom widget, you’ll need to set isAccessibilityElement.

    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search