Skip to content

NVDAObjects.UIA: fallback to known dialog class names if encountering a dialog despite UIA saying no#15730

Merged
seanbudd merged 3 commits into
nvaccess:masterfrom
josephsl:i15729isDialogPropertyRefinement
Nov 2, 2023
Merged

NVDAObjects.UIA: fallback to known dialog class names if encountering a dialog despite UIA saying no#15730
seanbudd merged 3 commits into
nvaccess:masterfrom
josephsl:i15729isDialogPropertyRefinement

Conversation

@josephsl

@josephsl josephsl commented Nov 2, 2023

Copy link
Copy Markdown
Contributor

Link to issue number:

Closes #15729

Summary of the issue:

NVDA does not announce dialog content for dialogs which UIA says no.

Description of user facing changes

NVDA will announce dialog content for more dialogs in Windows 10 and 11.

Description of development approach

Changed dialog detection in NVDAObjects.UIA by falling back to known class names if isDialog property says False.

Testing strategy:

Manual testing: type "shutdown /S /T 600" from PowerShell or Command Prompt with admin privileges and making sure NVDA announces dialog content.

Known issues with pull request:

None

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.

… UIA itself says otherwise. Re nvaccess#15729.

Some UIA windows such as Windows shutdown dialog are dialogs despite UIA saying they are not. Therefore, say 'False' when COM error is raised when obtaining UIA is dialog property, and if the property is indeed False, check UIA class name membership in known dialog class names.
@josephsl josephsl requested a review from a team as a code owner November 2, 2023 05:48
@josephsl josephsl requested a review from seanbudd November 2, 2023 05:48
@josephsl josephsl changed the title NVDAObjets.UIA: fallback to known dialog class names if encountering a dialog despite UIA saying no NVDAObjects.UIA: fallback to known dialog class names if encountering a dialog despite UIA saying no Nov 2, 2023

@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

@josephsl

josephsl commented Nov 2, 2023

Copy link
Copy Markdown
Contributor Author

Hi,

Also performed lint (sorry for the late notice) - yep, findOverlayClasses is very complex.

Thanks.

@seanbudd seanbudd merged commit 34ffdb5 into nvaccess:master Nov 2, 2023
@nvaccessAuto nvaccessAuto added this to the 2024.1 milestone Nov 2, 2023
@josephsl josephsl deleted the i15729isDialogPropertyRefinement branch November 24, 2023 05:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

NVDAObjects.UIA: not all Windows 10/11 dialogs are recognized even though UIA says they are not dialogs

3 participants