nvaccess / nvda

NVDA, the free and open source Screen Reader for Microsoft Windows
https://www.nvaccess.org/
Other
2.11k stars 637 forks source link

Less intrusive automatic update notifications #2257

Open nvaccessAuto opened 12 years ago

nvaccessAuto commented 12 years ago

Reported by elliott94 on 2012-04-20 18:00 Ok, so I've just had my first experience of automatic updates, and have some suggestions.

I was typing, and the dialog literally popped up on my screen, and automatically took focus. Before I knew what was going on, I had hit space, and the donate dialog had appeared. I hit the Not Now button, which started the download of the update. Figuring that I would update later, I hit the Cancel button which disappeared, but the download continued.

So, here are some suggestions:

nvaccessAuto commented 12 years ago

Comment 1 by briang1 on 2012-04-21 10:46 Hmm with a nod to my ticket 55 about this, maybe the way to go then is to download the update in any case with no intervention, and present the user with some audible warning that a new update has been downloaded and saved. Then the user can decide when or if to run it and update. This has the added side effect of keeping all updates and thus if reinstallation is needed, one can do it with the latest version.

I've noticed quite a few free software seems to do it this way. Of course it does mean you might, in the end fill your drive up with old versions, but I guess you could make it just keep the latest one or over write the earlier one, though for snapshots this could be a dangerous course!

nvaccessAuto commented 12 years ago

Comment 2 by jteh (in reply to comment description) on 2012-04-22 21:57 Replying to elliott94:

  • Create some kind of audible notification to alert the user to a new update (this could maybe appear in the notification area). In my opinion, this would not only be a nicer way than a dialog that automatically takes focus,

If we do use a balloon in the notification area, it should probably be just like every other notification area experience; i.e. no custom sounds, etc.

but the user could choose when they wanted to actually update.

They already can. The dialog has a "Remind me later" button. That said, I think an application can only display one balloon at a time and this can't stay around forever, so you'd have to do a manual check for updates if you waited too long.

  • Make the Cancel button of the download process functional, which would close the download and remove the temperary launcher from the temp directory.

I kinda forgot to implement this button. :) That's a bug which I'll address in a separate ticket.

  • Alert the user as to when the update had been installed, as aposed to closing the installer and relaunching the new copy of NVDA.

I honestly don't understand the point of this. It's just extra unnecessary interaction. You're already alerted to the update starting and then to its completion through the disappearance of the progress dialog and accompanying beeps. I guess i feel this would be like displaying a dialog every time the user finishes copying a file.

nvaccessAuto commented 12 years ago

Comment 3 by elliott94 (in reply to comment 2) on 2012-04-23 16:09 Replying to jteh:

Replying to elliott94:

  • Create some kind of audible notification to alert the user to a new update (this could maybe appear in the notification area). In my opinion, this would not only be a nicer way than a dialog that automatically takes focus,

If we do use a balloon in the notification area, it should probably be just like every other notification area experience; i.e. no custom sounds, etc.

The problem I can see with this approach is that if this was implimented, the user might miss the notification if they were typing, etc. This is why I suggested the sound in addition to the baloon hint.

but the user could choose when they wanted to actually update.

They already can. The dialog has a "Remind me later" button. That said, I think an application can only display one balloon at a time and this can't stay around forever, so you'd have to do a manual check for updates if you waited too long.

  • Make the Cancel button of the download process functional, which would close the download and remove the temperary launcher from the temp directory.

I kinda forgot to implement this button. :) That's a bug which I'll address in a separate ticket.

  • Alert the user as to when the update had been installed, as aposed to closing the installer and relaunching the new copy of NVDA.

I honestly don't understand the point of this. It's just extra unnecessary interaction. You're already alerted to the update starting and then to its completion through the disappearance of the progress dialog and accompanying beeps. I guess i feel this would be like displaying a dialog every time the user finishes copying a file.

On second thoughts, I agree.

I guess the main reason for me opening this ticket is that I think that an alternative method of alerting the user to updates should be added. While I do want to be notified of new updates, I would rather not have a dialog take focus of whatever I was doing, which is why I think a Windows Update style process would be suited for this.

nvaccessAuto commented 12 years ago

Comment 4 by jteh on 2012-05-09 02:58 59b9e3704a41414d6e69aa047118fe1c8802f2f0 sets the initial focus to the "Remind me later" button for automatic updates to avoid accidental triggering of updates. This isn't a perfect solution, but it does solve the issue until we can implement something better in a subsequent release.

Btw, the Cancel button now works while downloading the update.

nvaccessAuto commented 12 years ago

Comment 5 by jteh on 2012-05-09 02:59 Changes: Changed title from "Improve friendlyness of automatic updates" to "Less intrusive automatic update notifications"

nvaccessAuto commented 9 years ago

Comment 7 by briang1 on 2015-07-06 07:59 When I raised the new ticket, Iwas mainly thinking along the lines of only having a check at the start up of nvda with the start of a system, or log in of a user. I did a search for several words and this ticket was not in the list, by the way.

I notice that soom software does indeed change its tray to something else, dropbox does this when its syncing and some anti virus programs do as well

nvaccessAuto commented 9 years ago

Comment 8 by nvdakor on 2015-07-10 06:50 Hi, As for playing a sound, this might be doable for Windows 8 and later, as one can integrate with toast system if given permission to do so.

If this is accepted, it could be like this:

  1. Have a setting in general settings to control update notifications. Users would be able to choose between an update dialog (current behavior and set as the default) or as a balloon notification with or without playing a custom sound (I'm concerned about this, see below).
  2. When the update is ready, use the help balloon notification system to announce availability up an update. For Windows XP/Vista/7, it will be a help balloon, and for Windows 8/8.1, it will be a toast notification, and for Windows 10 and if it can be done, a notification displayed in Action Center.
  3. As explained earlier, the user should react to this event quickly, otherwise the message will be gone. The only exception so far will be Windows 10 variant, in that users can open Action Center, select the update notification and choose how to respond (see a note about this below).
  4. I'd limit this option to installed copies, as one must download the full installer to update portable copiey and users will not use temporary copies just for updating NVDA.

Few concerns:

Thanks.

bhavyashah commented 7 years ago

@jcsteh Does the branch cited in https://github.com/nvaccess/nvda/issues/2257#issuecomment-155297185 fully resolve this issue, or are there portions of this ticket which remain to be addressed?

jcsteh commented 7 years ago

This still isn't addressed. The commit I mentioned is already included and just helps to mitigate accidental installation while typing.

In addition to using balloons and system notifications instead of a dialog, one other idea is to show an "Update ready to install" entry or similar as the first item in the NVDA menu until it is dismissed. This way, if the user misses the notification, they have another chance to see it.

Brian1Gaff commented 7 years ago

That is a good idea. I find that often the update screen itself never gets focus, so some kind of reminder would be welcome I think.

Maybe a unique sound when an update is ready also. Brian

bglists@blueyonder.co.uk Sent via blueyonder. Please address personal email to:- briang1@blueyonder.co.uk, putting 'Brian Gaff' in the display name field.

bdorer commented 5 years ago

I'd like to see update notifications in the windows 10 actions center. For windows 7 I think a simple speech message woult do the trick.

Brian1Gaff commented 5 years ago

I disagree, as updates are not very often encountered in use, but you do want to know when a major one has arrived surely. Brian

bglists@blueyonder.co.uk Sent via blueyonder. Please address personal E-mail to:- briang1@blueyonder.co.uk, putting 'Brian Gaff' in the display name field.


Adriani90 commented 5 years ago

In my view, a notification in the windows system tray would be the best option. That notification could appear every few minutes until the user decides to postpone the update until next start of NVDA. This is the trend in many software solutions from what I can see.

jcsteh commented 5 years ago

I thought about this a bit in the days when it was likely to be my job to implement it. For what it's worth (remembering my opinion doesn't carry so much weight these days :) ), I'd say that:

  1. Update notifications should be delivered using the appropriate system mechanism. On Windows 8.1 and earlier, this is help balloons. In Windows 10, this is the Action Center. I think help balloons actually get mapped to the Action Center, so implementing one might give us both. I also vaguely recall something about recent versions of wx having a framework to make OS notifications easier, but I might be wrong.
  2. Because these can be missed and/or users might not think/know how to access them, we should also add an item to the top of the NVDA menu indicating that an update is available. This way, next time the user opens the NVDA menu, they will see this and will be able to easily activate it if they wish.
josephsl commented 5 years ago

Hi,

I ran an experiment in July 2019 that simulates this feature for add-on updates. The potential is there - in order to fully use this, wxPython 4.1.0 (powered by wsWidgets 3.1.x) and Windows 8 or later are required (an actionable toast is a better approach, in that it allows users to perform tasks such as view release notes, update then, or postpone it). This cannot be done for Windows 7 at the moment for two important reasons:

  1. We have no facility to click help balloons, as that's what wx.NotificationMessage will generate on Windows releases other than 10.
  2. Windows 7 is going out of support in 2020, so we need to take this into consideration.

Thanks.

josephsl commented 4 years ago

Hi,

Now that wxPython 4.1.0 is out, let's get this conversation going again (I expect this won't happen for a while).

Thanks.

josephsl commented 4 years ago

Blocked by #11057.

josephsl commented 3 years ago

Hi,

2021 update: I think a block on #11057 is not needed at this time.

As a follow-up to my note on wxPython 4.1.0, in order to generate toasts properly, a specific function must be called before creating the first toast. This function wants app shortcut and app model string, meaning that an installed copy of NVDA is a must (at least for now). My earlier reminder on Windows 7 still applies (out of support and not easy to click help balloons).

Thanks.

ctoth commented 1 year ago

Still having my read all interrupted when not at the keyboard, still frustrated. Any update on this?

seanbudd commented 1 year ago

@ctoth - seems like a good candidate to be part of #13915, adding it there