New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Windows 10: recognize several common dialog classes from XAML and other controls #8405

Closed
josephsl opened this Issue Jun 16, 2018 · 2 comments

Comments

Projects
None yet
1 participant
@josephsl
Collaborator

josephsl commented Jun 16, 2018

Hi,

Related to #8339:

There are dialogs powered by XAML that are not recognized by NVDA as proper dialogs. These include app removal dialog in Settings/Apps/App and Features, reset dialog in Settings/Update and Security/Recovery/Reset, and potentially others. For now, NVDA does not read them natively, and in order to announce them, one needs to install Windows 10 App Essentials add-on.

Technical: in the old days, automation ID's weren't useful, but that's slowly changing. Thankfully these controls have unique UIA class names, including Shell_SystemDialog, Popup and others. Checking for class names could serve as one of several tests to detect dialogs.

Thanks.

@josephsl

This comment has been minimized.

Show comment
Hide comment
@josephsl

josephsl Jun 28, 2018

Collaborator

Hi,

This and #8339 will be combined into a single PR. Thanks.

Collaborator

josephsl commented Jun 28, 2018

Hi,

This and #8339 will be combined into a single PR. Thanks.

@josephsl

This comment has been minimized.

Show comment
Hide comment
@josephsl

josephsl Jun 30, 2018

Collaborator

Hi,

Actually, they will be a separate PR just for this issue so it can go live as part of 2018.3 at the earliest. Thanks.

Collaborator

josephsl commented Jun 30, 2018

Hi,

Actually, they will be a separate PR just for this issue so it can go live as part of 2018.3 at the earliest. Thanks.

josephsl added a commit to josephsl/nvda that referenced this issue Jun 30, 2018

UIA handler: add class names for various dialogs encountered on Windo…
…ws 7, 8.x, 10, as well as apps. Re nvaccess#8405.

Windows 10 and various apps added more dilaog class names. Rather than using a static list as part of overlay class chooser in UIA object, this list, along iwth new ones, are now available in UIA handler.
Also, added constant for UIA_IsDialogPropertyID in UIA handler, to be removed once IUIAutomation6 interface support comes to NVDA, as this property ID will be included in Redstone 5.

josephsl added a commit to josephsl/nvda that referenced this issue Jun 30, 2018

NVDAObjects/UIA: detect more dilaogs using class names and IsDialog p…
…roperty in Windows 10 RS5. Re nvaccess#8405.

Instead of looking up only three class names, look up more via:
* Additional class names found in Windows 10 and various apps.
* In RS5, IsDialog property.
This allows dialogs such as app uninstlal dialog and many others to be recognized and their contents read by NVDA.

josephsl added a commit to josephsl/nvda that referenced this issue Jul 3, 2018

UIA/IsDialog: address review actions. Re nvaccess#8405.
Reviewed by @leonardder (Babbage): simplify dialog flag via assigning this flag from exception hyandler segment rahter than setting it to False when COM error is thrown. This then allows IsDialog flag to be set whether or not exceptoin has occured.

michaelDCurran added a commit that referenced this issue Jul 19, 2018

Upgrade to IUIAutomation6, and UIA objects: recognize more UIA dialog…
…s via more class names and IsDialog property in Windows 10 Redstone 5 (#8473)

* UIA handler: add class names for various dialogs encountered on Windows 7, 8.x, 10, as well as apps. Re #8405.

Windows 10 and various apps added more dilaog class names. Rather than using a static list as part of overlay class chooser in UIA object, this list, along iwth new ones, are now available in UIA handler.
Also, added constant for UIA_IsDialogPropertyID in UIA handler, to be removed once IUIAutomation6 interface support comes to NVDA, as this property ID will be included in Redstone 5.

* NVDAObjects/UIA: detect more dilaogs using class names and IsDialog property in Windows 10 RS5. Re #8405.

Instead of looking up only three class names, look up more via:
* Additional class names found in Windows 10 and various apps.
* In RS5, IsDialog property.
This allows dialogs such as app uninstlal dialog and many others to be recognized and their contents read by NVDA.

* UIA/IsDialog: address review actions. Re #8405.

Reviewed by @leonardder (Babbage): simplify dialog flag via assigning this flag from exception hyandler segment rahter than setting it to False when COM error is thrown. This then allows IsDialog flag to be set whether or not exceptoin has occured.

* Upgrade to IUIAutomation6/IUIAutomationElement9 interface (based on build 17692).

* Use IsDialog property directly from IUIAutomationElement9 interface. re #8405.

* UIA: Popup is not supported as a fallback dialog class as the className is too generic. All the other classes are clearly dialogs from the name.

* Update What's new
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment