Tuesday, February 5, 2019

Configuring the iOS screen reader VoiceOver to work with more than one language

A quick tip for users who need for the iOS screenreader VoiceOver to work with more than one language.

By default when you turn on VoiceOver, the screenreader language is the same as the device's default language. But what if you have apps in another language, or want to visit websites in another language?

You can switch language on the go by navigating to the VoiceOver Speech settings, that is, open General, Accessibility, VoiceOver, Speech. At the end of this view, there is a section called ROTOR LANGUAGES. You can additional languages as needed.

Switch language on the fly by opening the rotor, turning until you hear the languages setting and flicking up and down to find the desired language (more information on using the rotor in Apple's guide to the VoiceOver rotor).

It is reasonably common for web sites to identify the language of the content, and where this has been done, and it seems that the VoiceOver/Safari combo automatically picks the right language if it has been configured, i.e. there is no need to actively change the language in the rotor.

For apps the situation is different. I have as yet not been able to figure out what would trigger an automatic language change in a native iOS app (whereas VoiceOver does switch language in apps that rely on displaying web content if that has language markup).  Specifying the base language for the app, and ensuring that the locale configuration does not contain any leftover language files does not seem to be sufficient. I'll add an update if I find a solution.

Update: the solution is posted in How hard can it be to configure an iOS app to make sure that VoiceOver switches to the app's language? (Answer: really, really hard)

No comments:

Post a Comment

New behaviour of navigation controllers in IOS 13

I resumed working on an app that had been resting for a few weeks (while I had updated to iOS 13) and thought, Whaaat? Navigation controll...