Skip to content

Commit fd660fd

Browse files
ZHUANGPPfacebook-github-bot
authored andcommitted
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
1 parent e5a8f42 commit fd660fd

File tree

5 files changed

+53
-1
lines changed

5 files changed

+53
-1
lines changed

ReactCommon/fabric/components/view/ViewShadowNode.cpp

+2-1
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,8 @@ void ViewShadowNode::initialize() noexcept {
4848
viewProps.yogaStyle.positionType() == YGPositionTypeAbsolute) ||
4949
viewProps.yogaStyle.display() == YGDisplayNone ||
5050
viewProps.getClipsContentToBounds() ||
51-
isColorMeaningful(viewProps.shadowColor);
51+
isColorMeaningful(viewProps.shadowColor) ||
52+
viewProps.importantForAccessibility != ImportantForAccessibility::Auto;
5253

5354
bool formsView = isColorMeaningful(viewProps.backgroundColor) ||
5455
isColorMeaningful(viewProps.foregroundColor) ||

ReactCommon/fabric/components/view/accessibility/AccessibilityPrimitives.h

+7
Original file line numberDiff line numberDiff line change
@@ -61,5 +61,12 @@ constexpr bool operator!=(
6161
return !(rhs == lhs);
6262
}
6363

64+
enum class ImportantForAccessibility {
65+
Auto,
66+
Yes,
67+
No,
68+
NoHideDescendants,
69+
};
70+
6471
} // namespace react
6572
} // namespace facebook

ReactCommon/fabric/components/view/accessibility/AccessibilityProps.cpp

+5
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,11 @@ AccessibilityProps::AccessibilityProps(
8383
"onAccessibilityAction",
8484
sourceProps.onAccessibilityAction,
8585
{})),
86+
importantForAccessibility(convertRawProp(
87+
rawProps,
88+
"importantForAccessibility",
89+
sourceProps.importantForAccessibility,
90+
ImportantForAccessibility::Auto)),
8691
testId(convertRawProp(rawProps, "testId", sourceProps.testId, "")) {}
8792

8893
#pragma mark - DebugStringConvertible

ReactCommon/fabric/components/view/accessibility/AccessibilityProps.h

+2
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,8 @@ class AccessibilityProps {
3737
bool onAccessibilityMagicTap{};
3838
bool onAccessibilityEscape{};
3939
bool onAccessibilityAction{};
40+
ImportantForAccessibility importantForAccessibility{
41+
ImportantForAccessibility::Auto};
4042
std::string testId{""};
4143

4244
#pragma mark - DebugStringConvertible

ReactCommon/fabric/components/view/accessibility/accessibilityPropsConversions.h

+37
Original file line numberDiff line numberDiff line change
@@ -122,5 +122,42 @@ inline void fromRawValue(const RawValue &value, AccessibilityState &result) {
122122
}
123123
}
124124

125+
inline std::string toString(
126+
const ImportantForAccessibility &importantForAccessibility) {
127+
switch (importantForAccessibility) {
128+
case ImportantForAccessibility::Auto:
129+
return "auto";
130+
case ImportantForAccessibility::Yes:
131+
return "yes";
132+
case ImportantForAccessibility::No:
133+
return "no";
134+
case ImportantForAccessibility::NoHideDescendants:
135+
return "no-hide-descendants";
136+
}
137+
}
138+
139+
inline void fromRawValue(
140+
const RawValue &value,
141+
ImportantForAccessibility &result) {
142+
auto string = (std::string)value;
143+
if (string == "auto") {
144+
result = ImportantForAccessibility::Auto;
145+
return;
146+
}
147+
if (string == "yes") {
148+
result = ImportantForAccessibility::Yes;
149+
return;
150+
}
151+
if (string == "no") {
152+
result = ImportantForAccessibility::No;
153+
return;
154+
}
155+
if (string == "no-hide-descendants") {
156+
result = ImportantForAccessibility::NoHideDescendants;
157+
return;
158+
}
159+
abort();
160+
}
161+
125162
} // namespace react
126163
} // namespace facebook

0 commit comments

Comments
 (0)