react-native-windows icon indicating copy to clipboard operation
react-native-windows copied to clipboard

Accessibility and UIA Support for XAML Fabric implementation

Open protikbiswas100 opened this issue 2 weeks ago • 4 comments

Description

Accessibility and UIA Support for XAML Fabric implementation

Type of Change

  • New feature (non-breaking change which adds functionality)

Why

To ensure Accessibility props are read in Accessibility Insights.

Resolves [https://github.com/microsoft/react-native-windows/issues/15325]

What

Override hitTest in ContentIslandComponentView to properly handle hit testing for content inside the ChildSiteLink/ContentIsland. The method is checking if the point is within the ContentIslandComponentView's bounds If yes, return the tag of the ContentIslandComponentView itself (or the tag that represents it properly) This allows the accessibility tree to properly identify the container of the XAML content

Screenshots & Testing

https://github.com/user-attachments/assets/6920f24b-c7da-41b8-808e-7b8669297127

Changelog

Should this change be included in the release notes: yes

Add a brief summary of the change to use in the release notes for the next release. Accessibility and UIA Support for XAML Fabric implementation

Microsoft Reviewers: Open in CodeFlow

protikbiswas100 avatar Dec 09 '25 04:12 protikbiswas100

/azp run PR

protikbiswas100 avatar Dec 12 '25 04:12 protikbiswas100

Azure Pipelines successfully started running 1 pipeline(s).

azure-pipelines[bot] avatar Dec 12 '25 04:12 azure-pipelines[bot]

/azp run PR

protikbiswas100 avatar Dec 12 '25 04:12 protikbiswas100

Azure Pipelines successfully started running 1 pipeline(s).

azure-pipelines[bot] avatar Dec 12 '25 04:12 azure-pipelines[bot]

/azp run PR

protikbiswas100 avatar Dec 15 '25 04:12 protikbiswas100

Azure Pipelines successfully started running 1 pipeline(s).

azure-pipelines[bot] avatar Dec 15 '25 04:12 azure-pipelines[bot]

lgtm but one thing we are not traversing into children, thats intentional? ContentIslandComponentView this will be the boundary

Yes, this is intentional and correct. Here's why:

  1. ContentIslandComponentView is a Boundary: ContentIslandComponentView hosts a separate ContentIsland with its own XAML tree
  2. XAML Hit Testing Happens Separately: The UIA hit test delegates to the XAML tree via ElementProviderFromPoint

protikbiswas100 avatar Dec 15 '25 08:12 protikbiswas100