Skip to content

UIA handler: add WinUI 3 top-level pane window class name (Microsoft.UI.Content.DesktopChildSiteBridge) to good UIA window class names to enable mouse and touch access#17904

Merged
seanbudd merged 3 commits into
nvaccess:masterfrom
josephsl:winUIGoodUIAWindowClassNames
Apr 6, 2025

Conversation

@josephsl

@josephsl josephsl commented Apr 5, 2025

Copy link
Copy Markdown
Contributor

Link to issue number:

Closes #17771
Partly closes #17407

Summary of the issue:

Mouse and touch interaction does not work in WinUI 3 apps such as Microsoft Copilot and parts of Windows 11 File Explorer interface.

Description of user facing changes

Mouse and touch interaction can be used in WinUI 3 apps.

Description of development approach

Added Microsoft.UI.Content.DesktopChildSiteBridge to good UIA window class names. An alternative approach is done through Mouse Enhancement add-on where NVDA will confess that WinUI 3 app elements are good UIA windows when the mentioned top-level pane window class is present.

Testing strategy:

Manual: in Windows 11, observe that one can use mouse to move through File Explorer's quick access interface.

Known issues with pull request:

This partly resolves #17407 because it does not include WinUI 2 window class name. As @codeofdusk noted in #17407, a UIA bridge would be a better solution - that is, let NVDA see that windows claiming to be IAccessible are in fact UIA when dealing with WinUI app interfaces.

Code Review Checklist:

  • Documentation:
    • Change log entry
    • User Documentation
    • Developer / Technical Documentation
    • Context sensitive help for GUI changes
  • Testing:
    • Unit tests
    • System (end to end) tests
    • Manual testing
  • UX of all users considered:
    • Speech
    • Braille
    • Low Vision
    • Different web browsers
    • Localization in other languages / culture than English
  • API is compatible with existing add-ons.
  • Security precautions taken.

@coderabbitai summary

josephsl added 2 commits April 5, 2025 07:05
…ntent.DesktopChildSiteBridge) to good UIA window class names. Re nvaccess#17771, nvaccess#17407.

Add WinUI 3 top-level window class name to good UIA window class names so mouse and touchscreen access can work in apps such as WinUI 3 versions of Microsoft Copilot and parts of Windows 11 File Explorer/quick access interface.
@josephsl josephsl requested a review from a team as a code owner April 5, 2025 13:15
@josephsl josephsl requested a review from seanbudd April 5, 2025 13:15
@josephsl

josephsl commented Apr 5, 2025

Copy link
Copy Markdown
Contributor Author

CC @hwf1324

@hwf1324

hwf1324 commented Apr 5, 2025

Copy link
Copy Markdown
Contributor

Thanks a lot @josephsl for fixing this in core, I'll try to test it.

@seanbudd seanbudd left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @josephsl

@seanbudd seanbudd merged commit 235d1f7 into nvaccess:master Apr 6, 2025
@github-actions github-actions Bot added this to the 2025.2 milestone Apr 6, 2025
@josephsl josephsl deleted the winUIGoodUIAWindowClassNames branch April 7, 2025 02:01
nvdaes pushed a commit to nvdaes/nvda that referenced this pull request Apr 10, 2025
…ssNames

Closes nvaccess#17771
Partly closes nvaccess#17407

Summary of the issue:
Mouse and touch interaction does not work in WinUI 3 apps such as Microsoft Copilot and parts of Windows 11 File Explorer interface.

Description of user facing changes
Mouse and touch interaction can be used in WinUI 3 apps.

Description of development approach
Added Microsoft.UI.Content.DesktopChildSiteBridge to good UIA window class names. An alternative approach is done through Mouse Enhancement add-on where NVDA will confess that WinUI 3 app elements are good UIA windows when the mentioned top-level pane window class is present.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

3 participants