nvaccess / nvda

NVDA, the free and open source Screen Reader for Microsoft Windows
Other
2.08k stars 627 forks source link

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

Open josephsl opened 4 years ago

josephsl commented 4 years ago

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:

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:

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 commented 4 years ago

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 commented 4 years ago

Hi, the biggest issue to note is that it might or might not be possible to separate volume change announcements from the rest. As part of UIA notification event, an activity Id is generated, which describes which activity triggered such an announcement. For Word 365 problems, it is possible to prevent announcement of certain things because activity Id’s are different, which may not be so for File Explorer (that is, if the activity Id is same for volume and brightness change announcements, we run into a problem). As for announcing volume and brightness changes from everywhere, this can be done by asking File Explorer app module to not pass this event onto default event handler (defined in UIA objects collection), as the default handler will ignore events from background apps. Thanks.

josephsl commented 4 years ago

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 commented 3 years ago

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. 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.