Skip to content

Feature request: Allow declaring main language of app to VoiceOver and TalkBack #99600

Closed

Description

@Leffe108

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

Activity

  1. added
    in triagePresently being triaged by the triage team
    a: accessibilityAccessibility, e.g. VoiceOver or TalkBack. (aka a11y)
    a: internationalizationSupporting other languages or locales. (aka i18n)
    frameworkflutter/packages/flutter repository. See also f: labels.
    c: new featureNothing broken; request for a new capability
    and removed
    in triagePresently being triaged by the triage team
    on Mar 7, 2022
  2. goderbauer commented on Mar 16, 2022

    @goderbauer
    Member
  3. added
    P3Issues that are less important to the Flutter project
    on Mar 16, 2022
  4. mtropper commented on Jun 14, 2022

    @mtropper

    Any updates on the status of this feature?

  5. jelen-HC commented on Sep 16, 2022

    @jelen-HC

    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.

  6. Leffe108 commented on Sep 17, 2022

    @Leffe108
    Author

    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.

  7. LHaanappel commented on Oct 9, 2023

    @LHaanappel

    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.

  8. chunhtai commented on Oct 9, 2023

    @chunhtai
    Contributor

    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

  9. 21 remaining items

  10. chunhtai commented on Jun 18, 2025

    @chunhtai
    Contributor

    For Android this correctly override the application locales

    import androidx.appcompat.app.AppCompatDelegate;
    import androidx.core.os.LocaleListCompat;
    
            LocaleListCompat appLocale =
                    LocaleListCompat.forLanguageTags("xx-XX");
            AppCompatDelegate.setApplicationLocales(appLocale);
  11. added
    customer: crowdAffects or could affect many people, though not necessarily a specific customer.
    on Aug 6, 2025
  12. chunhtai commented on Oct 16, 2025

    @chunhtai
    Contributor

    done for mobiles, just web part left

  13. github-actions commented on Oct 30, 2025

    @github-actions

    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 -v and a minimal reproduction of the issue.

  14. locked as resolved and limited conversation to collaborators on Oct 30, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

P1High-priority issues at the top of the work lista: accessibilityAccessibility, e.g. VoiceOver or TalkBack. (aka a11y)a: internationalizationSupporting other languages or locales. (aka i18n)c: new featureNothing broken; request for a new capabilitycustomer: crowdAffects or could affect many people, though not necessarily a specific customer.frameworkflutter/packages/flutter repository. See also f: labels.team-accessibilityOwned by Framework Accessibility team (i.e. responsible for accessibility code in flutter/flutter)triaged-accessibilityTriaged by Framework Accessibility team

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions