diff --git a/change/react-native-windows-3bd11779-ed8b-4f12-98bf-4f579a40d0d5.json b/change/react-native-windows-3bd11779-ed8b-4f12-98bf-4f579a40d0d5.json new file mode 100644 index 00000000000..7ee0f3ba654 --- /dev/null +++ b/change/react-native-windows-3bd11779-ed8b-4f12-98bf-4f579a40d0d5.json @@ -0,0 +1,7 @@ +{ + "type": "prerelease", + "comment": "accessibilityDescriptionProp impl", + "packageName": "react-native-windows", + "email": "satkh@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/packages/playground/Samples/accessible.tsx b/packages/playground/Samples/accessible.tsx index 73468208fcd..979cab95469 100644 --- a/packages/playground/Samples/accessible.tsx +++ b/packages/playground/Samples/accessible.tsx @@ -117,6 +117,22 @@ export default class Bootstrap extends React.Component< TEST setAccessibilityFocus + + + + TEST Accessibility Description + + ); } diff --git a/vnext/Microsoft.ReactNative/Fabric/AbiViewProps.cpp b/vnext/Microsoft.ReactNative/Fabric/AbiViewProps.cpp index 3751d99862b..5c1332ea6c4 100644 --- a/vnext/Microsoft.ReactNative/Fabric/AbiViewProps.cpp +++ b/vnext/Microsoft.ReactNative/Fabric/AbiViewProps.cpp @@ -226,6 +226,10 @@ winrt::hstring ViewProps::AccessibilityLabel() noexcept { return m_viewProps ? winrt::to_hstring(m_viewProps->accessibilityLabel) : winrt::hstring{}; } +winrt::hstring ViewProps::AccessibilityHint() noexcept { + return m_viewProps ? winrt::to_hstring(m_viewProps->accessibilityHint) : winrt::hstring{}; +} + ImageProps::ImageProps(facebook::react::SharedViewProps props) noexcept : Super(props) {} winrt::Windows::Foundation::Collections::IVectorView diff --git a/vnext/Microsoft.ReactNative/Fabric/AbiViewProps.h b/vnext/Microsoft.ReactNative/Fabric/AbiViewProps.h index c5391b6d92c..43a2d6af996 100644 --- a/vnext/Microsoft.ReactNative/Fabric/AbiViewProps.h +++ b/vnext/Microsoft.ReactNative/Fabric/AbiViewProps.h @@ -101,6 +101,7 @@ struct ViewProps : ViewPropsT { winrt::Microsoft::ReactNative::Color BackgroundColor() noexcept; winrt::hstring TestId() noexcept; winrt::hstring AccessibilityLabel() noexcept; + winrt::hstring AccessibilityHint() noexcept; protected: facebook::react::SharedViewProps m_props; diff --git a/vnext/Microsoft.ReactNative/Fabric/Composition/CompositionDynamicAutomationProvider.cpp b/vnext/Microsoft.ReactNative/Fabric/Composition/CompositionDynamicAutomationProvider.cpp index b229f740ab5..ba469bf4bed 100644 --- a/vnext/Microsoft.ReactNative/Fabric/Composition/CompositionDynamicAutomationProvider.cpp +++ b/vnext/Microsoft.ReactNative/Fabric/Composition/CompositionDynamicAutomationProvider.cpp @@ -563,6 +563,15 @@ HRESULT __stdcall CompositionDynamicAutomationProvider::GetPropertyValue(PROPERT : SysAllocString(L""); break; } + case UIA_FullDescriptionPropertyId: { + pRetVal->vt = VT_BSTR; + auto helpText = props->accessibilityHint.empty() + ? ::Microsoft::Common::Unicode::Utf8ToUtf16(compositionView->DefaultHelpText()) + : ::Microsoft::Common::Unicode::Utf8ToUtf16(props->accessibilityHint); + pRetVal->bstrVal = SysAllocString(helpText.c_str()); + hr = pRetVal->bstrVal != nullptr ? S_OK : E_OUTOFMEMORY; + break; + } } return hr; diff --git a/vnext/Microsoft.ReactNative/ViewProps.idl b/vnext/Microsoft.ReactNative/ViewProps.idl index 577bb33af71..fd2c8ee68b3 100644 --- a/vnext/Microsoft.ReactNative/ViewProps.idl +++ b/vnext/Microsoft.ReactNative/ViewProps.idl @@ -53,6 +53,7 @@ namespace Microsoft.ReactNative { Color BackgroundColor { get; }; String TestId { get; }; String AccessibilityLabel { get; }; + String AccessibilityHint { get; }; // TODO add accessors to all the properties on ViewProps };