nvaccess / nvda

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

Add a "Notifications" settings panel, to include settings for various real-time notifications #16564

Open XLTechie opened 1 month ago

XLTechie commented 1 month ago

Follow-up to @seanbudd's https://github.com/nvaccess/nvda/pull/16560#issuecomment-2116666349.

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

There are some notifications which NVDA provides, or for which users have asked, which users may or may not want to hear/have brailled. These include:

If others are commented below, I'll edit them in here for a more complete list.

Describe the solution you'd like

A Notifications panel in Preferences -> Settings, allowing granular control over these notifications.

Describe alternatives you've considered

Scattering these across various other panels that are suitable to the category of notification, and using "General" as the category when none other is appropriate.

Additional context

josephsl commented 1 month ago

Hi, volume/microphone notifications come from File Explorer via UIA notification event. A while ago I tried implementing notification toggle feature for UIA notifications but abandoned it. Thanks.

XLTechie commented 1 month ago

@josephsl For turning it off entirely, we could use one of the speech extensionPoints to filter it using a regular expression and a bit of other logic. At least, I think we could, if intercepting the notification itself isn't possible. That is, if I properly take your meaning.

seanbudd commented 1 month ago

I think the add-on store config will be quite complex, considering channels and behaviour (notify/auto update) and will need to go to an add-on store panel. I also think update notifications are a bit too different to device status notifications

seanbudd commented 1 month ago

I think "Play sounds when starting or exiting NVDA" might be a candidate

XLTechie commented 1 month ago

@seanbudd Okay I have removed those. Agreed about the store. Regarding the NVDA updates themselves, I was vaguely thinking about whether we might go to a toast model for those, and if so they might belong here. But it doesn't need to be on that list now regardless.

josephsl commented 1 month ago

Hi,

For UIA notifications, the base implementation (NVDAObjects.UIA.UIA) filters notifications based on focus - checks if the object is indeed focused via app modules. For volume and microphone notifications, these will be anounced as long as the user is focused on desktop icons or any File Explorer control such as folders list.

Thanks.

CyrilleB79 commented 1 month ago
  1. I think that Jaws' approach is to list all the last notifications that have occurred and allow the user to mute them in the future.
  2. Re filtering on the string: please take into account localization: not only the text can be different, but also the numbers or the % character.
  3. Re the volume announcement, as written elsewhere, it makes no sense to have it reported only in Explorer/Desktop. Ideally, it would be better to have it reported or always in any app, or never, according to the user's preference. The current situation is just a trade-off that has been made in the past; if the possibility to customize notifications is implemented, this choice should be reconsidered.
XLTechie commented 1 month ago

@CyrilleB79 Your point 3 is already discussed (and prioritized) in #15092, among others that you listed there. I don't think we need to get too far in the weeds on things already covered by other issues.