Add support for accessibilityRole = "switch"
Summary: Changelog: [Internal] - Add support for accessibilityRole = "switch" Reviewed By: sammy-SC Differential Revision: D22906500 fbshipit-source-id: 81dfbfd56a24c89ffedc0fde5a63f7bdeed0c5db
This commit is contained in:
Родитель
776a415d98
Коммит
3f405dcbd2
|
@ -520,6 +520,15 @@ static NSString *RCTRecursiveAccessibilityLabel(UIView *view)
|
|||
{
|
||||
auto const &props = *std::static_pointer_cast<ViewProps const>(_props);
|
||||
|
||||
// Handle Switch.
|
||||
if ((self.accessibilityTraits & AccessibilityTraitSwitch) == AccessibilityTraitSwitch) {
|
||||
if (props.accessibilityState.checked == AccessibilityState::Checked) {
|
||||
return @"1";
|
||||
} else if (props.accessibilityState.checked == AccessibilityState::Unchecked) {
|
||||
return @"0";
|
||||
}
|
||||
}
|
||||
|
||||
// Handle states which haven't already been handled.
|
||||
if (props.accessibilityState.checked == AccessibilityState::Checked) {
|
||||
return @"checked";
|
||||
|
|
|
@ -71,6 +71,8 @@ inline UIEdgeInsets RCTUIEdgeInsetsFromEdgeInsets(const facebook::react::EdgeIns
|
|||
return {edgeInsets.top, edgeInsets.left, edgeInsets.bottom, edgeInsets.right};
|
||||
}
|
||||
|
||||
UIAccessibilityTraits const AccessibilityTraitSwitch = 0x20000000000001;
|
||||
|
||||
inline UIAccessibilityTraits RCTUIAccessibilityTraitsFromAccessibilityTraits(
|
||||
facebook::react::AccessibilityTraits accessibilityTraits)
|
||||
{
|
||||
|
@ -124,6 +126,9 @@ inline UIAccessibilityTraits RCTUIAccessibilityTraitsFromAccessibilityTraits(
|
|||
if ((accessibilityTraits & AccessibilityTraits::Header) != AccessibilityTraits::None) {
|
||||
result |= UIAccessibilityTraitHeader;
|
||||
}
|
||||
if ((accessibilityTraits & AccessibilityTraits::Switch) != AccessibilityTraits::None) {
|
||||
result |= AccessibilityTraitSwitch;
|
||||
}
|
||||
return result;
|
||||
};
|
||||
|
||||
|
|
|
@ -30,6 +30,7 @@ enum class AccessibilityTraits : uint32_t {
|
|||
AllowsDirectInteraction = (1 << 13),
|
||||
CausesPageTurn = (1 << 14),
|
||||
Header = (1 << 15),
|
||||
Switch = (1 << 16),
|
||||
};
|
||||
|
||||
constexpr enum AccessibilityTraits operator|(
|
||||
|
|
|
@ -87,7 +87,10 @@ inline void fromString(const std::string &string, AccessibilityTraits &result) {
|
|||
result = AccessibilityTraits::SummaryElement;
|
||||
return;
|
||||
}
|
||||
|
||||
if (string == "switch") {
|
||||
result = AccessibilityTraits::Switch;
|
||||
return;
|
||||
}
|
||||
result = AccessibilityTraits::None;
|
||||
}
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче