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

NvDA objects: introduce "shouldReportNotifications" flag to specify if NVDA should listen to and announce alerts and notifications #12043

Open
josephsl opened this issue Feb 5, 2021 · 0 comments
Labels

Comments

@josephsl
Copy link
Collaborator

josephsl commented Feb 5, 2021

Hi,

Stemming from #10626, #10956 and PR #11590:

Is your feature request related to a problem? Please describe.

As described in #10626, newer apps can raise UIA notification event, and these notifications will be announced from anywhere. In addition, #10956 and PR #11590 proposes letting UIA notifications announce notifications if configured to do so by users (see the pR for more recent and extensive discussions).

This situation is partly due to "Report notifications" checkbox found in object presentation settings panel. When first introduced, it was called "Report help balloons", and if checked, NVDA will announce help balloons (a small window that pops up when an event such as AutoPlay occurs). Help balloons are replaced by toasts in Windows 8 (later renamed to "action center notifications" in Windows 10) where it is now possible for users to move keyboard focus to it and read its contents. On Windows 10, toasts will appear under Action Center if not responded to. Because of this change, NVDA now calls the checkbox "Report notifications".

In Windows 10 Version 1709, UIA5 interface introduced notification event. This is raised by apps when assistive technologies such as screen readers should announce important messages. Just like toasts, they can be heard from anywhere, but NVDA contributors felt that it is better to limit UIA notification handling to foreground apps. Because any UIA control can raise notification event, it would be best to categorize these as notifications just like help balloons and toasts, therefore necessitating a handy abstraction.

Describe the solution you'd like

Introduce a new NVDA object property specifying if the given object should respond to and/or announce notifications and alerts. Tentatively titled "shouldReportNotifications", this boolean flag (default is True) will return "True" if NVDA can proceed with announcing notifications. This then allows subclasses to provide custom checks:

  • Help balloons and toasts (behavior overlay): return the value of current "report notifications" setting.
  • UIA objects: return if UIA notifications should be announced from all apps or current app if configured to do so.

With the new property in place, other overlay classes defining an alert event handler can perform their own checks rather than reporting all alerts. The most prominent use case is Firefox where alert event is fired for events such as downloads.

Describe alternatives you've considered

Either:

  • Leave it as is.
  • Group UIA notifications and alerts from other overlay classes with "report notifications".
  • Rename "reportHelpBalloons" config key to "reportNotifications" with upgrade steps provided.

Additional context

See #10626 and #11590 for details and implementation strategies.

Thanks.

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

No branches or pull requests

2 participants