diff --git a/packages/react-native/React/Fabric/Mounting/ComponentViews/Text/RCTParagraphComponentView.mm b/packages/react-native/React/Fabric/Mounting/ComponentViews/Text/RCTParagraphComponentView.mm index f1e1d564e404..da6658cc1319 100644 --- a/packages/react-native/React/Fabric/Mounting/ComponentViews/Text/RCTParagraphComponentView.mm +++ b/packages/react-native/React/Fabric/Mounting/ComponentViews/Text/RCTParagraphComponentView.mm @@ -145,6 +145,14 @@ - (void)updateState:(const State::Shared &)state oldState:(const State::Shared & const auto &newData = std::static_pointer_cast(state)->getData(); const auto &oldData = std::static_pointer_cast(oldState)->getData(); if (!newData.attributedString.isContentEqual(oldData.attributedString)) { + // Changes inside a hidden subtree must not interrupt VoiceOver on visible content. + UIView *view = self; + while (view != nil) { + if (view.accessibilityElementsHidden) { + return; + } + view = view.superview; + } UIAccessibilityPostNotification(UIAccessibilityLayoutChangedNotification, nil); } }