From 51aa801125f3a6b1cf275ac26de399899a0f3f1a Mon Sep 17 00:00:00 2001 From: Andrew Coates <30809111+acoates-ms@users.noreply.github.com> Date: Tue, 6 May 2025 10:55:16 -0700 Subject: [PATCH 1/2] Properly hook up root uia provider to island --- .../Fabric/Composition/ReactNativeIsland.cpp | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/vnext/Microsoft.ReactNative/Fabric/Composition/ReactNativeIsland.cpp b/vnext/Microsoft.ReactNative/Fabric/Composition/ReactNativeIsland.cpp index 54dcb52dc20..3dce49c0146 100644 --- a/vnext/Microsoft.ReactNative/Fabric/Composition/ReactNativeIsland.cpp +++ b/vnext/Microsoft.ReactNative/Fabric/Composition/ReactNativeIsland.cpp @@ -376,11 +376,12 @@ winrt::IInspectable ReactNativeIsland::GetUiaProvider() noexcept { if (m_uiaProvider == nullptr) { m_uiaProvider = winrt::make(*this); - if (m_hwnd && !m_island) { + if (m_hwnd || m_island) { auto pRootProvider = static_cast( m_uiaProvider.as().get()); if (pRootProvider != nullptr) { + pRootProvider->SetIsland(m_island); pRootProvider->SetHwnd(m_hwnd); } } @@ -875,14 +876,7 @@ winrt::Microsoft::UI::Content::ContentIsland ReactNativeIsland::Island() { winrt::Microsoft::UI::Content::ContentIsland const &, winrt::Microsoft::UI::Content::ContentIslandAutomationProviderRequestedEventArgs const &args) { if (auto pThis = weakThis.get()) { - auto provider = pThis->GetUiaProvider(); - auto pRootProvider = - static_cast( - provider.as().get()); - if (pRootProvider != nullptr) { - pRootProvider->SetIsland(pThis->m_island); - } - args.AutomationProvider(std::move(provider)); + args.AutomationProvider(pThis->GetUiaProvider()); args.Handled(true); } }); From 541c9f663651bba517a64576f080e040af458aa4 Mon Sep 17 00:00:00 2001 From: Andrew Coates <30809111+acoates-ms@users.noreply.github.com> Date: Tue, 6 May 2025 10:55:24 -0700 Subject: [PATCH 2/2] Change files --- ...ative-windows-26d524ee-3303-4cbf-a1d5-2c876d58c088.json | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 change/react-native-windows-26d524ee-3303-4cbf-a1d5-2c876d58c088.json diff --git a/change/react-native-windows-26d524ee-3303-4cbf-a1d5-2c876d58c088.json b/change/react-native-windows-26d524ee-3303-4cbf-a1d5-2c876d58c088.json new file mode 100644 index 00000000000..45906b1bd99 --- /dev/null +++ b/change/react-native-windows-26d524ee-3303-4cbf-a1d5-2c876d58c088.json @@ -0,0 +1,7 @@ +{ + "type": "prerelease", + "comment": "Properly hook up root uia provider to island", + "packageName": "react-native-windows", + "email": "30809111+acoates-ms@users.noreply.github.com", + "dependentChangeType": "patch" +}