未验证 提交 d0c2418d 编写于 作者: M Miguel Beltran 提交者: GitHub

Add support for Increase Contrast on iOS (#15343)

上级 c3f4c1a0
......@@ -1212,6 +1212,7 @@ class AccessibilityFeatures {
static const int _kDisableAnimationsIndex = 1 << 2;
static const int _kBoldTextIndex = 1 << 3;
static const int _kReduceMotionIndex = 1 << 4;
static const int _kHighContrastIndex = 1 << 5;
// A bitfield which represents each enabled feature.
final int _index;
......@@ -1239,6 +1240,11 @@ class AccessibilityFeatures {
/// Only supported on iOS.
bool get reduceMotion => _kReduceMotionIndex & _index != 0;
/// The platform is requesting that UI be rendered with darker colors.
///
/// Only supported on iOS.
bool get highContrast => _kHighContrastIndex & _index != 0;
@override
String toString() {
final List<String> features = <String>[];
......@@ -1252,6 +1258,8 @@ class AccessibilityFeatures {
features.add('boldText');
if (reduceMotion)
features.add('reduceMotion');
if (highContrast)
features.add('highContrast');
return 'AccessibilityFeatures$features';
}
......
......@@ -44,6 +44,7 @@ enum class AccessibilityFeatureFlag : int32_t {
kDisableAnimations = 1 << 2,
kBoldText = 1 << 3,
kReduceMotion = 1 << 4,
kHighContrast = 1 << 5,
};
class WindowClient {
......
......@@ -996,6 +996,7 @@ class AccessibilityFeatures {
static const int _kDisableAnimationsIndex = 1 << 2;
static const int _kBoldTextIndex = 1 << 3;
static const int _kReduceMotionIndex = 1 << 4;
static const int _kHighContrastIndex = 1 << 5;
// A bitfield which represents each enabled feature.
final int _index;
......@@ -1023,6 +1024,11 @@ class AccessibilityFeatures {
/// Only supported on iOS.
bool get reduceMotion => _kReduceMotionIndex & _index != 0;
/// The platform is requesting that UI be rendered with darker colors.
///
/// Only supported on iOS.
bool get highContrast => _kHighContrastIndex & _index != 0;
@override
String toString() {
final List<String> features = <String>[];
......@@ -1041,6 +1047,9 @@ class AccessibilityFeatures {
if (reduceMotion) {
features.add('reduceMotion');
}
if (highContrast) {
features.add('highContrast');
}
return 'AccessibilityFeatures$features';
}
......
......@@ -298,6 +298,11 @@ typedef enum UIAccessibilityContrast : NSInteger {
name:UIAccessibilityBoldTextStatusDidChangeNotification
object:nil];
[center addObserver:self
selector:@selector(onAccessibilityStatusChanged:)
name:UIAccessibilityDarkerSystemColorsStatusDidChangeNotification
object:nil];
[center addObserver:self
selector:@selector(onUserSettingsChanged:)
name:UIContentSizeCategoryDidChangeNotification
......@@ -962,6 +967,8 @@ static flutter::PointerData::DeviceKind DeviceKindFromTouchType(UITouch* touch)
flags |= static_cast<int32_t>(flutter::AccessibilityFeatureFlag::kReduceMotion);
if (UIAccessibilityIsBoldTextEnabled())
flags |= static_cast<int32_t>(flutter::AccessibilityFeatureFlag::kBoldText);
if (UIAccessibilityDarkerSystemColorsEnabled())
flags |= static_cast<int32_t>(flutter::AccessibilityFeatureFlag::kHighContrast);
#if TARGET_OS_SIMULATOR
// There doesn't appear to be any way to determine whether the accessibility
// inspector is enabled on the simulator. We conservatively always turn on the
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册