提交 d12f2a60 编写于 作者: B brandondiamond 提交者: Chris Bracken

Add support for on/off switch labels when built on iOS 13. (#12467)

上级 5c9e134b
......@@ -1213,6 +1213,7 @@ class AccessibilityFeatures {
static const int _kDisableAnimationsIndex = 1 << 2;
static const int _kBoldTextIndex = 1 << 3;
static const int _kReduceMotionIndex = 1 << 4;
static const int _kOnOffSwitchLabelsIndex = 1 << 5;
// A bitfield which represents each enabled feature.
final int _index;
......@@ -1240,6 +1241,11 @@ class AccessibilityFeatures {
/// Only supported on iOS.
bool get reduceMotion => _kReduceMotionIndex & _index != 0;
/// The platform is requesting that on/off labels be added to switches.
///
/// Only supported on iOS.
bool get onOffSwitchLabels => _kOnOffSwitchLabelsIndex & _index != 0;
@override
String toString() {
final List<String> features = <String>[];
......@@ -1253,6 +1259,8 @@ class AccessibilityFeatures {
features.add('boldText');
if (reduceMotion)
features.add('reduceMotion');
if (onOffSwitchLabels)
features.add('onOffSwitchLabels');
return 'AccessibilityFeatures$features';
}
......
......@@ -44,6 +44,7 @@ enum class AccessibilityFeatureFlag : int32_t {
kDisableAnimations = 1 << 2,
kBoldText = 1 << 3,
kReduceMotion = 1 << 4,
kOnOffSwitchLabels = 1 << 5,
};
class WindowClient {
......
......@@ -995,6 +995,7 @@ class AccessibilityFeatures {
static const int _kDisableAnimationsIndex = 1 << 2;
static const int _kBoldTextIndex = 1 << 3;
static const int _kReduceMotionIndex = 1 << 4;
static const int _kOnOffSwitchLabelsIndex = 1 << 5;
// A bitfield which represents each enabled feature.
final int _index;
......@@ -1022,6 +1023,11 @@ class AccessibilityFeatures {
/// Only supported on iOS.
bool get reduceMotion => _kReduceMotionIndex & _index != 0;
/// The platform is requesting that on/off labels be added to switches.
///
/// Only supported on iOS.
bool get onOffSwitchLabels => _kOnOffSwitchLabelsIndex & _index != 0;
@override
String toString() {
final List<String> features = <String>[];
......@@ -1040,6 +1046,9 @@ class AccessibilityFeatures {
if (reduceMotion) {
features.add('reduceMotion');
}
if (onOffSwitchLabels) {
features.add('onOffSwitchLabels');
}
return 'AccessibilityFeatures$features';
}
......
......@@ -238,6 +238,13 @@ typedef enum UIAccessibilityContrast : NSInteger {
selector:@selector(onUserSettingsChanged:)
name:UIContentSizeCategoryDidChangeNotification
object:nil];
if (@available(iOS 13, *)) {
[center addObserver:self
selector:@selector(onAccessibilityStatusChanged:)
name:UIAccessibilityOnOffSwitchLabelsDidChangeNotification
object:nil];
}
}
- (void)setInitialRoute:(NSString*)route {
......@@ -889,6 +896,10 @@ 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 (@available(iOS 13, *)) {
if (UIAccessibilityIsOnOffSwitchLabelsEnabled())
flags |= static_cast<int32_t>(flutter::AccessibilityFeatureFlag::kOnOffSwitchLabels);
}
#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.
先完成此消息的编辑!
想要评论请 注册