Detect User's VoiceOver Settings

I work on apps specifically for blind users, and tend to need to implement all sorts of custom features, as VoiceOver does not handle many of the use cases we implement. AVSpeechSynthesizer is frequently used in these cases, however, it can be a disjointed user experience because there does not seem to be a way to capture the user's speech rate, and voice settings for VoiceOver.

Is there a way to read this information from the user's settings? The most important being the VoiceOver speech rate. This would allow parts of the app the use AVSpeechSynthesizer to match the user's VoiceOver settings, giving them a better overall experience.
Answered by Engineer in 640632022
While you can't access the settings directly, you can request that AVSpeechSynthesizer apply the currently selected settings including voice, rate, and pitch to your utterance:

https://developer.apple.com/documentation/avfoundation/avspeechutterance/3546568-prefersassistivetechnologysettin?language=objc

In general though, it can be a less desirable experience to write your own screen reader functionality into your app using AVSpeechSynthesizer, so I suggest you use this API sparingly. There certainly are legitimate use cases though, hence why we've added the API.

If you're finding that the AX APIs are not providing you enough flexibility to make your app accessible without AVSpeechSynthesizer, I encourage you to file some feedback through feedback assistant so we can consider your use cases.
Accepted Answer
While you can't access the settings directly, you can request that AVSpeechSynthesizer apply the currently selected settings including voice, rate, and pitch to your utterance:

https://developer.apple.com/documentation/avfoundation/avspeechutterance/3546568-prefersassistivetechnologysettin?language=objc

In general though, it can be a less desirable experience to write your own screen reader functionality into your app using AVSpeechSynthesizer, so I suggest you use this API sparingly. There certainly are legitimate use cases though, hence why we've added the API.

If you're finding that the AX APIs are not providing you enough flexibility to make your app accessible without AVSpeechSynthesizer, I encourage you to file some feedback through feedback assistant so we can consider your use cases.
Detect User's VoiceOver Settings
 
 
Q