mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
Add importantForAccessibility to AccessibilityProps and wire with FormsStakingContext
Summary: Changelog: [iOS][Added] - Add `importantForAccessibility` to `AccessibilityProps` Reviewed By: shergin Differential Revision: D22490327 fbshipit-source-id: aec7ff64ea6ddfe29bad085b87d09906fa8ee029
This commit is contained in:
committed by
Facebook GitHub Bot
parent
e5a8f4270e
commit
fd660fd0c5
@@ -48,7 +48,8 @@ void ViewShadowNode::initialize() noexcept {
|
||||
viewProps.yogaStyle.positionType() == YGPositionTypeAbsolute) ||
|
||||
viewProps.yogaStyle.display() == YGDisplayNone ||
|
||||
viewProps.getClipsContentToBounds() ||
|
||||
isColorMeaningful(viewProps.shadowColor);
|
||||
isColorMeaningful(viewProps.shadowColor) ||
|
||||
viewProps.importantForAccessibility != ImportantForAccessibility::Auto;
|
||||
|
||||
bool formsView = isColorMeaningful(viewProps.backgroundColor) ||
|
||||
isColorMeaningful(viewProps.foregroundColor) ||
|
||||
|
||||
@@ -61,5 +61,12 @@ constexpr bool operator!=(
|
||||
return !(rhs == lhs);
|
||||
}
|
||||
|
||||
enum class ImportantForAccessibility {
|
||||
Auto,
|
||||
Yes,
|
||||
No,
|
||||
NoHideDescendants,
|
||||
};
|
||||
|
||||
} // namespace react
|
||||
} // namespace facebook
|
||||
|
||||
@@ -83,6 +83,11 @@ AccessibilityProps::AccessibilityProps(
|
||||
"onAccessibilityAction",
|
||||
sourceProps.onAccessibilityAction,
|
||||
{})),
|
||||
importantForAccessibility(convertRawProp(
|
||||
rawProps,
|
||||
"importantForAccessibility",
|
||||
sourceProps.importantForAccessibility,
|
||||
ImportantForAccessibility::Auto)),
|
||||
testId(convertRawProp(rawProps, "testId", sourceProps.testId, "")) {}
|
||||
|
||||
#pragma mark - DebugStringConvertible
|
||||
|
||||
@@ -37,6 +37,8 @@ class AccessibilityProps {
|
||||
bool onAccessibilityMagicTap{};
|
||||
bool onAccessibilityEscape{};
|
||||
bool onAccessibilityAction{};
|
||||
ImportantForAccessibility importantForAccessibility{
|
||||
ImportantForAccessibility::Auto};
|
||||
std::string testId{""};
|
||||
|
||||
#pragma mark - DebugStringConvertible
|
||||
|
||||
@@ -122,5 +122,42 @@ inline void fromRawValue(const RawValue &value, AccessibilityState &result) {
|
||||
}
|
||||
}
|
||||
|
||||
inline std::string toString(
|
||||
const ImportantForAccessibility &importantForAccessibility) {
|
||||
switch (importantForAccessibility) {
|
||||
case ImportantForAccessibility::Auto:
|
||||
return "auto";
|
||||
case ImportantForAccessibility::Yes:
|
||||
return "yes";
|
||||
case ImportantForAccessibility::No:
|
||||
return "no";
|
||||
case ImportantForAccessibility::NoHideDescendants:
|
||||
return "no-hide-descendants";
|
||||
}
|
||||
}
|
||||
|
||||
inline void fromRawValue(
|
||||
const RawValue &value,
|
||||
ImportantForAccessibility &result) {
|
||||
auto string = (std::string)value;
|
||||
if (string == "auto") {
|
||||
result = ImportantForAccessibility::Auto;
|
||||
return;
|
||||
}
|
||||
if (string == "yes") {
|
||||
result = ImportantForAccessibility::Yes;
|
||||
return;
|
||||
}
|
||||
if (string == "no") {
|
||||
result = ImportantForAccessibility::No;
|
||||
return;
|
||||
}
|
||||
if (string == "no-hide-descendants") {
|
||||
result = ImportantForAccessibility::NoHideDescendants;
|
||||
return;
|
||||
}
|
||||
abort();
|
||||
}
|
||||
|
||||
} // namespace react
|
||||
} // namespace facebook
|
||||
|
||||
Reference in New Issue
Block a user