diff --git a/packages/react-native/React/Views/RCTViewManager.m b/packages/react-native/React/Views/RCTViewManager.m index 2812e33bc55564..cf207505e9b380 100644 --- a/packages/react-native/React/Views/RCTViewManager.m +++ b/packages/react-native/React/Views/RCTViewManager.m @@ -292,9 +292,9 @@ - (RCTShadowView *)shadowView RCT_REMAP_VIEW_PROPERTY(transform, reactTransform, CATransform3D) RCT_REMAP_VIEW_PROPERTY(transformOrigin, reactTransformOrigin, RCTTransformOrigin) -#if !TARGET_OS_OSX // [macOS] RCT_CUSTOM_VIEW_PROPERTY(accessibilityRole, UIAccessibilityTraits, RCTView) { + #if !TARGET_OS_OSX // [macOS] UIAccessibilityTraits accessibilityRoleTraits = json ? [RCTConvert UIAccessibilityTraits:json] : UIAccessibilityTraitNone; if (view.reactAccessibilityElement.accessibilityRoleTraits != accessibilityRoleTraits) { @@ -302,8 +302,16 @@ - (RCTShadowView *)shadowView view.reactAccessibilityElement.accessibilityRole = json ? [RCTConvert NSString:json] : nil; [self updateAccessibilityTraitsForRole:view withDefaultView:defaultView]; } + #else // [macOS + if (json) { + view.reactAccessibilityElement.accessibilityRole = [RCTConvert accessibilityRoleFromTraits:json]; + } else { + view.reactAccessibilityElement.accessibilityRole = defaultView.accessibilityRole; + } + #endif // macOS] } +#if !TARGET_OS_OSX // [macOS] RCT_CUSTOM_VIEW_PROPERTY(role, UIAccessibilityTraits, RCTView) { UIAccessibilityTraits roleTraits = json ? [RCTConvert UIAccessibilityTraits:json] : UIAccessibilityTraitNone;