diff --git a/Libraries/Components/View/ViewAccessibility.js b/Libraries/Components/View/ViewAccessibility.js index 47c99e27a9a..4debbe4da3e 100644 --- a/Libraries/Components/View/ViewAccessibility.js +++ b/Libraries/Components/View/ViewAccessibility.js @@ -39,6 +39,7 @@ export type AccessibilityRole = | 'spinbutton' | 'switch' | 'tab' + | 'tabbar' | 'tablist' | 'timer' | 'list' diff --git a/React/Fabric/RCTConversions.h b/React/Fabric/RCTConversions.h index d8169ec2cff..495198b9709 100644 --- a/React/Fabric/RCTConversions.h +++ b/React/Fabric/RCTConversions.h @@ -141,6 +141,9 @@ inline UIAccessibilityTraits RCTUIAccessibilityTraitsFromAccessibilityTraits( if ((accessibilityTraits & AccessibilityTraits::Switch) != AccessibilityTraits::None) { result |= AccessibilityTraitSwitch; } + if ((accessibilityTraits & AccessibilityTraits::TabBar) != AccessibilityTraits::None) { + result |= UIAccessibilityTraitTabBar; + } return result; }; diff --git a/React/Views/RCTViewManager.m b/React/Views/RCTViewManager.m index 799e60a0793..e1218914e8d 100644 --- a/React/Views/RCTViewManager.m +++ b/React/Views/RCTViewManager.m @@ -58,6 +58,7 @@ RCT_MULTI_ENUM_CONVERTER( @"spinbutton" : @(UIAccessibilityTraitNone), @"switch" : @(SwitchAccessibilityTrait), @"tab" : @(UIAccessibilityTraitNone), + @"tabbar" : @(UIAccessibilityTraitTabBar), @"tablist" : @(UIAccessibilityTraitNone), @"timer" : @(UIAccessibilityTraitNone), @"toolbar" : @(UIAccessibilityTraitNone), diff --git a/ReactCommon/react/renderer/attributedstring/conversions.h b/ReactCommon/react/renderer/attributedstring/conversions.h index 57fa61af975..da688767fcd 100644 --- a/ReactCommon/react/renderer/attributedstring/conversions.h +++ b/ReactCommon/react/renderer/attributedstring/conversions.h @@ -618,6 +618,8 @@ inline std::string toString(const AccessibilityRole &accessibilityRole) { return "switch"; case AccessibilityRole::Tab: return "tab"; + case AccessibilityRole::TabBar: + return "tabbar"; case AccessibilityRole::Tablist: return "tablist"; case AccessibilityRole::Timer: @@ -687,6 +689,8 @@ inline void fromRawValue( result = AccessibilityRole::Switch; } else if (string == "tab") { result = AccessibilityRole::Tab; + } else if (string == "tabbar") { + result = AccessibilityRole::TabBar; } else if (string == "tablist") { result = AccessibilityRole::Tablist; } else if (string == "timer") { diff --git a/ReactCommon/react/renderer/attributedstring/primitives.h b/ReactCommon/react/renderer/attributedstring/primitives.h index deeb40b11a7..cb080f35b83 100644 --- a/ReactCommon/react/renderer/attributedstring/primitives.h +++ b/ReactCommon/react/renderer/attributedstring/primitives.h @@ -112,6 +112,7 @@ enum class AccessibilityRole { Spinbutton, Switch, Tab, + TabBar, Tablist, Timer, Toolbar, diff --git a/ReactCommon/react/renderer/components/view/AccessibilityPrimitives.h b/ReactCommon/react/renderer/components/view/AccessibilityPrimitives.h index b9306c2967d..21e2868a2d7 100644 --- a/ReactCommon/react/renderer/components/view/AccessibilityPrimitives.h +++ b/ReactCommon/react/renderer/components/view/AccessibilityPrimitives.h @@ -33,6 +33,7 @@ enum class AccessibilityTraits : uint32_t { CausesPageTurn = (1 << 14), Header = (1 << 15), Switch = (1 << 16), + TabBar = (1 << 17), }; constexpr enum AccessibilityTraits operator|( diff --git a/ReactCommon/react/renderer/components/view/accessibilityPropsConversions.h b/ReactCommon/react/renderer/components/view/accessibilityPropsConversions.h index 37b8961a0ca..40ff9e5e19c 100644 --- a/ReactCommon/react/renderer/components/view/accessibilityPropsConversions.h +++ b/ReactCommon/react/renderer/components/view/accessibilityPropsConversions.h @@ -94,6 +94,10 @@ inline void fromString(const std::string &string, AccessibilityTraits &result) { result = AccessibilityTraits::Switch; return; } + if (string == "tabbar") { + result = AccessibilityTraits::TabBar; + return; + } result = AccessibilityTraits::None; } diff --git a/ReactCommon/react/renderer/textlayoutmanager/platform/ios/RCTAttributedTextUtils.mm b/ReactCommon/react/renderer/textlayoutmanager/platform/ios/RCTAttributedTextUtils.mm index 496ae69979b..5df0cd9cad7 100644 --- a/ReactCommon/react/renderer/textlayoutmanager/platform/ios/RCTAttributedTextUtils.mm +++ b/ReactCommon/react/renderer/textlayoutmanager/platform/ios/RCTAttributedTextUtils.mm @@ -288,6 +288,9 @@ NSDictionary *RCTNSTextAttributesFromTextAttributes(T case AccessibilityRole::Tab: attributes[RCTTextAttributesAccessibilityRoleAttributeName] = @("tab"); break; + case AccessibilityRole::TabBar: + attributes[RCTTextAttributesAccessibilityRoleAttributeName] = @("tabbar"); + break; case AccessibilityRole::Tablist: attributes[RCTTextAttributesAccessibilityRoleAttributeName] = @("tablist"); break;