diff --git a/packages/react-native/React/Views/RCTViewManager.m b/packages/react-native/React/Views/RCTViewManager.m index 4fb865194de140..4063fbbc2908e9 100644 --- a/packages/react-native/React/Views/RCTViewManager.m +++ b/packages/react-native/React/Views/RCTViewManager.m @@ -284,9 +284,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) { @@ -294,8 +294,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;