Skip to content
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

Unlike Narrator, NVDA does not read the notification for no available app updates in the Microsoft Store #7984

Closed
k-kolev1985 opened this issue Feb 10, 2018 · 5 comments

Comments

@k-kolev1985
Copy link

Steps to reproduce:

  1. Open Microsoft Store.
  2. TAB to the "See more" button and activate it, to show a menu with additional options/commands.
  3. From the menu, with the up/down arrow keys, select the "Downloads and Updates" item and activate it with ENTER.
  4. TAB to the "Get Updates" button and activate it with ENTER.
  5. Wait for the check for updates to complete. If there are updates available, wait for them to complete updating and repeat step 4. If not, go to step 6.
  6. Observe what will NVDA report when there are no updates available. Note, that if there are no updates available, Microsoft Store will display a notification about it above the list of recently updated apps.
  7. Repeat the steps from 1 to 6 again, this time using Narrator.
  8. Observe what Narrator will report when there are no updates available. Note, that if there are no updates available, Microsoft Store will display a notification about it above the list of recently updated apps.

Expected behavior:

NVDA should report the displayed on the screen message about no available updates, as Narrator does.

Actual behavior:

NVDA does not report the notification about no available updates.

System configuration:

  • Operating system: Windows 10 Pro version 1709 (build 16299.214), 64-bit, in Bulgarian with all locale settings set to "Bulgarian".
  • NVDA version: next-14846,f24c74c2.
  • Microsoft Store version: 11801.1001.6.0.
  • Processor: Intel Core i5-4670 at 3.40GHz.
  • RAM Memory: 8.00GB.
  • Graphics: Palit GeForce GT 630, 1024MB dedicated memory + 4065MB shared system memory, desktop resolution set to 1920x1080.
  • Sound Card: Realtek ALC887 at Intel Lynx Point PCH - High Definition Audio Controller.
@josephsl
Copy link
Collaborator

Hi,

Confirmed.

Technical: either name change event isn't picking up the correct object (in which case I can fix it by probing for things and editing my add-on), or notification UIA event must be caught (requires a fix from NVDA Core). The UIA notification event is part of build 16299 and later.

CC @michaelDCurran

josephsl added a commit to josephsl/nvda that referenced this issue Feb 23, 2018
…ported. Re nvaccess#8009.

Also includes nvaccess#7984: in Windows 10 Version 1709 (Fall Creators Update), UIA notification event is introduced for the benefit of screen readers so they can announct needed text. This is part of UIA 5 interface, which NVDA does not support yet.
The UIA notification event accepts additional parameters such as notification kind, notification processing constant and activit ID. This is useful for controlling how things should be announced and when. For now, the handler will do nothing.
Also, when initializing UIA handler, use UIA 5, and then fall back to UIA 4.
josephsl added a commit to josephsl/nvda that referenced this issue Feb 24, 2018
nvaccess#7984.

If IUIAutomation5 is in use, add notificaiton event handler, otherwise COM error is thrown.
Also, instead of relying solely on Python MRO to retrieve UIA interface, save the string somewhere for reference purposes and for future use.
@josephsl
Copy link
Collaborator

Hi,

Update: #8009 provides a more general case.

Thanks.

@Brian1Gaff
Copy link

Brian1Gaff commented Feb 24, 2018 via email

@josephsl
Copy link
Collaborator

josephsl commented Feb 24, 2018 via email

michaelDCurran pushed a commit that referenced this issue Mar 28, 2018
…ons in Windows 10 Fall Creators Update and later (#8045)

* UIA: support IUIAutomation5 so notification event tracking can be supported. Re #8009.

Also includes #7984: in Windows 10 Version 1709 (Fall Creators Update), UIA notification event is introduced for the benefit of screen readers so they can announct needed text. This is part of UIA 5 interface, which NVDA does not support yet.
The UIA notification event accepts additional parameters such as notification kind, notification processing constant and activit ID. This is useful for controlling how things should be announced and when. For now, the handler will do nothing.
Also, when initializing UIA handler, use UIA 5, and then fall back to UIA 4.

* UIA notification event: treat it the same as any other event except for additional kwargs for event execution. Re #8009.

Treat UIA notification event just like others except for two things:
* A new UIA_notification event will be fired.
* The new event will populate kwargs based on arguments for the actual event handling function (sender, displayString, etc.). This means app modules, global plugins, objects and others must include these kwargs when defining this event.

* UIA interface: obtain appropriate IUIAutomation interface based on Windows release. Re #8009.

A new function named getIUIAInterface (along with a private companion for Windows 10) is introduced to obtain highest supported IUIAutomation interface. Depending on Windows release, it'll return various interfaces. In case of Windows 10, a companion function will return appropriate interface based on build ranges.

* UIA notification event: add the handler if IUIAutomation5 is in use. Re #7984.

If IUIAutomation5 is in use, add notificaiton event handler, otherwise COM error is thrown.
Also, instead of relying solely on Python MRO to retrieve UIA interface, save the string somewhere for reference purposes and for future use.

* UIA notification event: camel case for consistency.

* NVDAObjects/UIA: handle UIA notification event from object level. Re #8009.

The base implementation for UIA notification handler will just speak whatever notification it receives. Subclasses are more than welcome to add further processing routines.

* UIA interface: query interface from version 5 downwards. Re #8009.

Comments from @LeonarddeR and @michaelDCurran: build ranges aren't useful, subsequently proven to be true. As an alternative, query interfaces from newest to oldest, which does allow NVDA to use IUIAutomation5 interface from source.
Also, this means getIUIAInterface function is no longer necessary.

* UIA support: check isinstance, no more IUIAVersion string. Re #8009.

Commented by @LeonarddeR and @michaelDCurran: check isinstance instead of keeping an eye on IUIA interface string.

* UIA notification: do not include sender argument. Re #8009.

Reviewed by @michaelDCurran (NV Access): sender argument is redundant.

* UIA notification: do not announce notifications from background apps. Re #8045.
@Adriani90
Copy link
Collaborator

This works as expected in NVDA 2019.1.1. Closing as works for me.

This issue was closed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants