Skip to content

Accessibility - Exposing ReduceMotion #65874

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
dw2kim opened this issue Sep 15, 2020 · 12 comments
Open

Accessibility - Exposing ReduceMotion #65874

dw2kim opened this issue Sep 15, 2020 · 12 comments
Labels
a: accessibility Accessibility, e.g. VoiceOver or TalkBack. (aka a11y) c: proposal A detailed proposal for a change to Flutter framework flutter/packages/flutter repository. See also f: labels. P3 Issues that are less important to the Flutter project team-framework Owned by Framework team triaged-framework Triaged by Framework team

Comments

@dw2kim
Copy link

dw2kim commented Sep 15, 2020

Use case

For iOS, the MediaQuery.of(context).disableAnimations does not detect whether it is Reduce Motion on or off currently.

Thus, it would be very beneficial to expose the AccessibilityFeatures.reduceMotion to MediaQueryData so that the users can check the flag, Or, alternatively, we should make the disableAnimations flag to reflect the reduceMotion flag for iOS.

IMG_26CA03E77E73-1

Proposal

Solution 1:

  • Expose the AccessibilityFeatures.reduceMotion to MediaQueryData

Solution 2:

  • Modify the MediaQueryData.disableAnimations flag to reflect on iOS's ReduceMotion flag.
@dw2kim dw2kim changed the title Accessibility - Reduce Motion Accessibility - Exposing ReduceMotion Sep 15, 2020
@jonahwilliams
Copy link
Member

Reduce motion and disable animations are not equivalent.

@dw2kim
Copy link
Author

dw2kim commented Sep 15, 2020

@jonahwilliams Thanks for clarifying! Is there any way to detect the Reduce Motion from the app? Or, is there a reason why reduceMotion is not exposed to MediaQueryData?

@jonahwilliams
Copy link
Member

reduce motion is exposed through the window's AccessibilityFeatures. We decided to stop putting everything on media query after a point.

@dw2kim
Copy link
Author

dw2kim commented Sep 15, 2020

@jonahwilliams I see. I think the reduceMotion is only flag that is missing in the media query for the Accessibility.

Would it be okay to open PR just to expose this reduceMotion flag?
Or, is there a better way to access this flag from the App?

@jonahwilliams
Copy link
Member

I think @HansMuller had some idea on this. I believe we should make a new inherited widget that only exposes the accessibility features, and prefer those over the existing ones on media query.

@jonahwilliams jonahwilliams added a: accessibility Accessibility, e.g. VoiceOver or TalkBack. (aka a11y) framework flutter/packages/flutter repository. See also f: labels. labels Sep 15, 2020
@HansMuller HansMuller added the c: proposal A detailed proposal for a change to Flutter label Sep 16, 2020
@HansMuller
Copy link
Contributor

This a good suggestion for improving Flutter's a11y support. Factoring reduceMotion into the widget implementations would take a considerable effort.

CC @chunhtai

@kennethj
Copy link

Any updates on this?

@chunhtai
Copy link
Contributor

There is no progress done on this issue. Since there is already a way to get the reduce motion setting, this is a low priority issue. We welcome any contribution though.

@goderbauer goderbauer added the P3 Issues that are less important to the Flutter project label Aug 2, 2022
@flutter-triage-bot flutter-triage-bot bot added team-framework Owned by Framework team triaged-framework Triaged by Framework team labels Jul 8, 2023
@Albert221
Copy link
Contributor

@chunhtai would you see reduceMotion as an additional MediaQueryData field, or as @jonahwilliams suggested, we should create a separate inherited widget that is responsible just for these accessibility settings? I'm potentially willing to work on this :)

@chunhtai
Copy link
Contributor

chunhtai commented Nov 9, 2023

We can add to AccessibilityFeatures

@kerberjg
Copy link
Contributor

AccessibilityFeatures.reduceMotion is now accessible as bool via

View.of(context).platformDispatcher.accessibilityFeatures.reduceMotion

Can this be considered solved?

@tech-andgar
Copy link

tech-andgar commented Jan 11, 2025

AccessibilityFeatures.reduceMotion is now accessible as bool via

View.of(context).platformDispatcher.accessibilityFeatures.reduceMotion

Can this be considered solved?

Checked and only working in iOS. But no working other platforms (Web, Desktop macOS)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
a: accessibility Accessibility, e.g. VoiceOver or TalkBack. (aka a11y) c: proposal A detailed proposal for a change to Flutter framework flutter/packages/flutter repository. See also f: labels. P3 Issues that are less important to the Flutter project team-framework Owned by Framework team triaged-framework Triaged by Framework team
Projects
None yet
Development

No branches or pull requests