0

I am noticing some strange behavior with the interaction of the application, accessibility, and Apple Pay. If a user does anything to dismiss the Apple Pay sheet while voice-over is active, the name of the application is re-read when voice-over regains focus of the app, causing unexpected results.

Example situation for further clarification:

  1. User attempts to perform transaction using Apple Pay while voice-over is enabled.
  2. Transaction fails.
  3. Apple Pay sheet is dismissed and an UIAlterView is shown with error message.
  4. Voice-over focuses on presented UIAlertView.
  5. Voice-over reads the first two words of the alertView message, then says the application name and stops, disregarding the remaining alertView message text.

Does anyone know how to get the voice-over to continue reading the text?

Justin
  • 464
  • 5
  • 14

1 Answers1

0

You can restore focus to the alert by issuing a well-timed UIAccessibilityPostNotification(), passing UIAccessibilityScreenChangedNotification and the element to be focused.

However, that's a hack to work around the details of how VoiceOver focuses on your app after returning from an out-of-process view controller. Please consider filing a bug report so that Apple can investigate a general solution.

Justin
  • 20,509
  • 6
  • 47
  • 58
  • 1
    This issue was due to a developer error I found while trying to implement your suggested workaround. A block was presenting the uialertview at the same time the Apple Pay sheet was dismissed (or just ever so slightly before the dismissal) causing unintended consequences in voice over. – Justin Jan 05 '15 at 19:47