Repository navigation
Feature request: Allow declaring main language of app to VoiceOver and TalkBack #99600
Description
Use case
Allow declaring the main language of an app to assistive technology such as TalkBack and VoiceOver.
When an app correctly declare its language, the voice engine can select an appropriate voice for the content. This is important because it is common that screen readers have separate voice engines for each language. Using eg. the English language engine to read Swedish text makes it harder for the user to hear and understand what is being said. In the linked issues below there are video recordings where VoiceOver uses the wrong voice as well as sample app code to reproduce the issue.
Supporting sources
This is a top-level recommendation in WCAG accessibility guidelines.
Proposal
Make MaterialApp.locale propagate to assitive technology similar to how <html lang="sv-SE"> sets the language in HTML.
Alternatively, provide a widget similar to Localizations.override that does communicate locale to TalkBack and VoiceOver. A such widget could be used by Flutter app to wrap all their content and ma also be used to satisfy the WCAG level AA recommendation to indicate change in language on a page.
Related issues
- Multiple problems with VoiceOver on iOS not using the correct locale. #99018 (code sample + video)
- Flutter Web & Desktop do not set language for screen readers #98948 (code sample + video)
- Set locale of subtree #98835 (provides 2 use cases)
Activity
goderbauer commentedon Mar 16, 2022
/cc @chunhtai
mtropper commentedon Jun 14, 2022
Any updates on the status of this feature?
jelen-HC commentedon Sep 16, 2022
Has there been any progress on this issue? This is quite an important feature for those requiring assistive technologies and as of current there are quite a bit of short comings with how flutter handles the switching of language/locale with both Voiceover and Talkback.
Leffe108 commentedon Sep 17, 2022
It might help to add an emoji reaction to OP post in this issue and related #98948 issue. It has in the past been told that it is used by the flutter team to sort importance of issues.
LHaanappel commentedon Oct 9, 2023
This is a pretty important feature which is holding our app back from obtaining an A status according to the accessibility audits we have done. Unless this feature is implemented Flutter apps will not be able to comply to the The European Accessibility Act which we need to comply to by 2025.
chunhtai commentedon Oct 9, 2023
Is this for web only? If so, yes I think this is something we should do.
For mobile, I don't think there is an API to override VoiceOver/talkback language entirely. We would need to manually wrap every string with LocaleString attribute. but I am not sure if that is something we should do
21 remaining items
chunhtai commentedon Jun 18, 2025
For Android this correctly override the application locales
Wires up Android API to set section locale (#173364)
Adds a11y section locale support for iOS (#175005)
Adds a11y section locale support for iOS (flutter#175005)
Wires up Android API to set section locale (flutter#173364)
Adds a11y section locale support for iOS (flutter#175005)
Wires up Android API to set section locale (flutter#173364)
Adds a11y section locale support for iOS (flutter#175005)
Adds dart ui API for setting application level locale (#175100)
Adds dart ui API for setting application level locale (flutter#175100)
chunhtai commentedon Oct 16, 2025
done for mobiles, just web part left
github-actions commentedon Oct 30, 2025
This thread has been automatically locked since there has not been any recent activity after it was closed. If you are still experiencing a similar issue, please open a new bug, including the output of
flutter doctor -vand a minimal reproduction of the issue.