diff --git a/lib/ui/window.dart b/lib/ui/window.dart index 236346bc52843..f645e1e6b771b 100644 --- a/lib/ui/window.dart +++ b/lib/ui/window.dart @@ -763,6 +763,7 @@ class AccessibilityFeatures { static const int _kInvertColorsIndex = 1 << 1; static const int _kDisableAnimationsIndex = 1 << 2; static const int _kBoldTextIndex = 1 << 3; + static const int _kReduceMotionIndex = 1 << 4; // A bitfield which represents each enabled feature. final int _index; @@ -784,6 +785,12 @@ class AccessibilityFeatures { /// Only supported on iOS. bool get boldText => _kBoldTextIndex & _index != 0; + /// The platform is requesting that certain animations be simplified and + /// parallax effects removed. + /// + /// Only supported on iOS. + bool get reduceMotion => _kReduceMotionIndex & _index != 0; + @override String toString() { final List features = []; @@ -795,6 +802,8 @@ class AccessibilityFeatures { features.add('disableAnimations'); if (boldText) features.add('boldText'); + if (reduceMotion) + features.add('reduceMotion'); return 'AccessibilityFeatures$features'; } diff --git a/lib/ui/window/window.h b/lib/ui/window/window.h index 2e950056b98c9..44f348d07fc3e 100644 --- a/lib/ui/window/window.h +++ b/lib/ui/window/window.h @@ -31,6 +31,7 @@ enum class AccessibilityFeatureFlag : int32_t { kInvertColors = 1 << 1, kDisableAnimations = 1 << 2, kBoldText = 1 << 3, + kReduceMotion = 1 << 4, }; class WindowClient { diff --git a/shell/platform/darwin/ios/framework/Source/FlutterViewController.mm b/shell/platform/darwin/ios/framework/Source/FlutterViewController.mm index 2fb9f90c6f281..26c8ffc328466 100644 --- a/shell/platform/darwin/ios/framework/Source/FlutterViewController.mm +++ b/shell/platform/darwin/ios/framework/Source/FlutterViewController.mm @@ -836,7 +836,7 @@ - (void)onAccessibilityStatusChanged:(NSNotification*)notification { if (UIAccessibilityIsInvertColorsEnabled()) flags ^= static_cast(blink::AccessibilityFeatureFlag::kInvertColors); if (UIAccessibilityIsReduceMotionEnabled()) - flags ^= static_cast(blink::AccessibilityFeatureFlag::kDisableAnimations); + flags ^= static_cast(blink::AccessibilityFeatureFlag::kReduceMotion); if (UIAccessibilityIsBoldTextEnabled()) flags ^= static_cast(blink::AccessibilityFeatureFlag::kBoldText); #if TARGET_OS_SIMULATOR