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

Allow "report notifications" to toggle UIA notification announcements #10956

Open
josephsl opened this issue Apr 7, 2020 · 4 comments
Open

Comments

@josephsl
Copy link
Collaborator

josephsl commented Apr 7, 2020

Hi,

A more generic request (see #10626 for specifics):

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

IN Windows 10 Version 1709/IUIAutomation5, UIA notification event was introduced to let screen readers such as NVDA and Narrator announce useful information. This is used in various apps, including:

  • File Explorer: volume and brightness changes
  • Microsoft Edge (classic and Chromium)L page loads
  • Microsoft Store: app updates
  • Alarms and Clock: stopwatch functions
  • Word 365: editing functions

Although UIA notification announcements are important, they can become annoying, particularly when announcements are repeated in quick succession. For example, as discussed in #10626, whenever a user changes volume, UIA notification event is fired by File Explorer to announce new values every time volume up/down buttons are pressed. Similarly, as documented in #10851, certain editing functions in recent Word 365 releases present results via UIA notification message.

Describe the solution you'd like

As discussed in #10626, let "report notifications" checkbox in object presentation settings panel toggle UIA notification announcement as well. This may mean redefining what a notification is in the user guide. The obvious advantage of this change is ability to configure app-specific profiles to silence UIA notifications, but this change won't solve notifications coming from background processes (Microsoft and app vendors must be reminded about using this event under specific circumstances).

Describe alternatives you've considered

Two alternatives:

  • Leave it as is.
  • Introduce a dedicated control to toggle UIA notification announcements.

Additional context

For practical issues, see #10626, #10851, and #10950 (the last one is important for translators as it will result in double speaking and/or odd text being announced for editing functions as opposed to what translators specified for earlier Word releases).

Thanks.

@CyrilleB79
Copy link
Collaborator

In File Explorer, also Wifi enabling/disabling is reported when using dedicated HW button.
The problem with explorer is that it is a program that serves for all, not only the file manager.
It would be logical to have Explorer notifications such as Wifi, volume and brightness changes announced from everywhere since they are not specific to the explorer file management window.
However IMO volume announcement should be silenced when an audio stream is already playing (multimedia, NVDA speaking, etc) since it is annoying, as described in #10626.
I hope this comment is at a correct place, it deals with various aspects of UIA notification and I did not know exactly in which issue I should leave this comment.

@josephsl
Copy link
Collaborator Author

josephsl commented Apr 8, 2020 via email

@josephsl
Copy link
Collaborator Author

Hi,

A few months later...

JAWS 2021 implements the second alternative from above: a dedicated checkbox inside Settings Center to toggle UIA notification announcement. Given that UIA notifications are really meant for AT's and are quite different than typical notifications such as ones shown in Action Center, I propose implementing a dedicated checkbox (only visible if Windows 10 Fall Creators Update/Version 1709 or later) to toggle this.

Thanks.

josephsl added a commit to josephsl/nvda that referenced this issue Sep 10, 2020
…nvaccess#10956.

Toasts, help balloons and others are not really the same thing as UIA (accessible event) notifications. Therefore add a completley different setting to toggle UIA notification announcements. The key mentions UIA notifications because that's where accessible event messages come from.
josephsl added a commit to josephsl/nvda that referenced this issue Sep 10, 2020
…o do so by users. Re nvaccess#10956.

By default, UIA notification events will be handled, but if it isn't, return early from notification event handler.
josephsl added a commit to josephsl/nvda that referenced this issue Sep 10, 2020
… checkbox. Re nvaccess#10956.

Separate from 'report notifications' setting, add a checkbox to toggle UIA (accessible event) notification announcement.
josephsl added a commit to josephsl/nvda that referenced this issue Sep 10, 2020
…ses earlier than Version 1709 (Fall Creators Update). Re nvaccess#10956.

As UIA notification event (part of IUIAutomation5) was introduced in Version 1709, disable this checkbox if using earlier releases.
josephsl added a commit to josephsl/nvda that referenced this issue Sep 10, 2020
josephsl added a commit to josephsl/nvda that referenced this issue Oct 10, 2020
nvaccess#10956.

In order to support announcing UIA notifications from the foreground (focused) app, change UIA notification announcement setting from a boolean to an option list. The available settings are 'always', 'focused app', and 'off'.
josephsl added a commit to josephsl/nvda that referenced this issue Oct 10, 2020
…or is coming from a background app. Re nvaccess#10956.

Do not announce UIA notifications if:
* Notifications are off.
* Notifications are coming from background apps when NVDA is asked to announce notifications from the focused app.
josephsl added a commit to josephsl/nvda that referenced this issue Oct 10, 2020
…cations' from a checkbox to a combo box. Re nvaccess#10956.

Suggested by Leonard de Ruijter: add a possibility to limit UIA notification announcement to focused app. To do this, change accessible event notifications control from a checkbox to a combo box. Also, add a dedicated tuple containing settings and labels for UIA notifications combo box and refer to it when setting and retrieving values when saving object presentation settings.
josephsl added a commit to josephsl/nvda that referenced this issue Oct 10, 2020
josephsl added a commit to josephsl/nvda that referenced this issue Oct 12, 2020
…w 'focused app'. Re nvaccess#10956.

Reviewed by Leonard de Ruijter: for backward compatibility, default notification value is focused app - announce notifications coming from the app the user is using at the moment.
josephsl added a commit to josephsl/nvda that referenced this issue Oct 12, 2020
nvaccess#10956.

Suggestion from Leonard de Ruijter (subtle optimization): swap focused app and app module check: app modules will be compared if UIA notification setting is set to 'focusedApp', otherwise return early.
josephsl added a commit to josephsl/nvda that referenced this issue Oct 12, 2020
…oreground'. Re nvaccess#10956.

Suggestion from Leonard de Ruijter: rename 'focused app' to something more descriptive that informs users that notifications will be announced from focused apps.
josephsl added a commit to josephsl/nvda that referenced this issue Oct 13, 2020
josephsl added a commit to josephsl/nvda that referenced this issue Dec 9, 2020
Suggestion from Reef Turner (NV Access): add an extra parentheses to clarify focused app check syntax and semantics.

Co-authored-by: Reef Turner <feerrenrut@users.noreply.github.com>
josephsl added a commit to josephsl/nvda that referenced this issue Feb 4, 2021
…ns. Re nvaccess#10956.

Comment from Reef Turner (NV Access): contextualize accessible event (UIA notification) options through pgettext.
josephsl added a commit to josephsl/nvda that referenced this issue Feb 4, 2021
…ions -> report UIA accessible event notifications. Re nvaccess#10956.

Reviewed by Reef Turner (NV Access): object presentation settings panel inclues 'report notifications' setting to announce help balloons and toasts, and adding a setting called 'accessible event notifications' can confuse users as to what 'accessible event notifications' are. Therefore clarify that the new setting refers to UIA notifications. This change is also applied to the user guide.
@josephsl
Copy link
Collaborator Author

josephsl commented Feb 5, 2021

Hi,

Update: based on #11590 discussion, a more generalist approach would be better:

  1. Change 'Report notifications" checkbox into a check list box with two options: help balloons and toasts, other notifications. The first checkbox comes from the current "report notifications" checkbox, while the second item will implement a corresponding PR to close this issue.
  2. Annoying volume announcement in Explorer window #10626 will be resolved through a combination of 'other notifications" checkbox and an additional list for configuring notification scope: current app or everywhere. In other words, one can turn off UIA notifications by turning off report notifications/other notifications checkbox. The notification scope list will be enabled if "other notifications" checkbox is checked.

The biggest advantage is that it is future-proof - UIA notifications can be treated as app notifications just like alerts in web browsers. So if the accompanying PR is successful, it will open up opportunities to let contributors take advantage of the new settings.

To help with feature discoverability, I think a new property should be added to NVDA objects to specify if an object should report notifications and alerts if raised (separate issue).

Thanks.

josephsl added a commit to josephsl/nvda that referenced this issue Feb 6, 2021
…ification event. Re nvaccess#10956.

UIA notification event should be handled if:
1. App notifications is on.
2. And NVDA is told to announce foreground notifications and the user is using the app in question.
3. Or all app notifications can be announced provided that app notifications is on.
Subclasses can change this behavior in their own UIA notification event handlers.
josephsl added a commit to josephsl/nvda that referenced this issue Feb 6, 2021
…ification values, remove 'off'. Re nvaccess#10956.

Rename notification values to app notification values, and remove 'off' due to report notifications UI redesign (next commit).
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 a pull request may close this issue.

2 participants