-
-
Notifications
You must be signed in to change notification settings - Fork 637
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
Attempting to install an incompatible add-on presents a dialog that can be confusing to some users #13632
Comments
A big, SECONDED, as to the opinion expressed in this issue. Error messages are not for developers, but users, and this one as currently presented, is entirely misleading to the typical end user of NVDA (and I include myself there). Absent some really esoteric knowledge, what it says is just plain wrong to the average reader, and we want "the average reader" to take appropriate actions, when possible, based upon what error messages tell them. |
Actualy, CC @feerrenrut , @derekriemer , @nvdaes and other add-ons community members Note that UI string changes are not accepted for 2022.1, but I think we might as well take care of this in 2022.2. I advise a careful consideration of the messaging here because:
In addition to the proposed message, others can include (addonName is the name of the add-on being installed):
I remember the add-ons community going through a massive confusion in early 2019 when version compatibility flags were first introduced. I wish we were alerted to the messaging problem earlier, but at least I'm glad that we have a record of this for posterity. Thanks. |
I agree that speaking of API is not user-friendly at all and should be changed. Some points to keep in mind however:
|
This is what comes from having testers who are not new enough users to see
the wood for the trees so to speak. Its a bit like when I read some of the
messages generated by the build engine talking about various sorts of errors
like linting which mean zilch to me.
|
The NVDA log should indicate clearly to the developer how the version check failed. When initially developing this we struggled to find the right balance between enough information to understand that this is a "version mismatch" problem without overwhelming a user, and a hint to core or addon developers about the versions required. This work was done in PR #9151 based on write up in issue #9055 Note that there are already two messages (See: addonGui.py line 610 snippet included below.) def _showAddonRequiresNVDAUpdateDialog(parent, bundle):
incompatibleMessage = _(
# Translators: The message displayed when installing an add-on package is prohibited,
# because it requires a later version of NVDA than is currently installed.
"Installation of {summary} {version} has been blocked. The minimum NVDA version required for "
"this add-on is {minimumNVDAVersion}, your current NVDA version is {NVDAVersion}"
def _showAddonTooOldDialog(parent, bundle):
confirmInstallMessage = _(
# Translators: A message informing the user that this addon can not be installed
# because it is not compatible.
"Installation of {summary} {version} has been blocked."
" An updated version of this add-on is required,"
" the minimum add-on API supported by this version of NVDA is {backCompatToAPIVersion}" We COULD avoid mentioning the add-on API version, however it would be easy to mislead the message receiver. Be aware that the API version and NVDA's version are two distinct concepts. |
You know, this is such a simple thing to fix, and that includes if you want different messages to a developer error log versus what's front facing to the user. And it's also simple, very simple, that what the end user should be told is that, "This add-on is combatible starting with NVDA version {lower limit} through version {higher limit}. You need the add-on compatible with {insert running NVDA version }." This is not rocket science. It is possible to give a clear, concise, and exact message that any end user can easily understand. They don't care that something's been tested with something else. They don't care about what's necessary for development teams to do in terms of fixing a problem. When they get error messages, they want to know what's incorrect about the current situation and, ideally, what they need to seek out to remedy it. |
Hi, one important thing to keep in mind: a given API release is valid through a year.x release. For instance, if someone installs an add-on with last tested version set to2022.1 in NVDA 2022.2 or 2022.3, folks may get an impression that one needs to either downgrade to 2022.1 or obtain a newer add-on release compatible with a newer NVDA version. The fix I always deploy for my add-ons is to update the last tested version whenever beta 1 of the said version is released, something that could be seen as a “luxury” by some – that is, not everyone has the time to update the manifest (made a bit more complex as we know that users do edit manifests from time to time, something that’s not ideal but seen as necessary as a last resort option). Thanks.
|
Please go ahead and create a PR @britechguy |
@feerrenrut I'll be happy to be assigned on this one. I was planning to do a PR anyway, once some feedback came in. |
This comment was marked as off-topic.
This comment was marked as off-topic.
@britechguy The condescending tone isn't very helpful, I'd like to request you reconsider that. You of course are free to offer as little or as much help as you wish. @XLTechie if you are interested in taking this on. Please go ahead. I'd recommend trying to get people to agree on the messages first. You can do that via PR or this issue, I don't mind. |
This comment was marked as abuse.
This comment was marked as abuse.
I have created a pull request to address this issue (#13673). Some notes:Regarding @josephsl's suggested wordings: I prefer to avoid anything talking about "last tested version", because that is still in the realm of API version. A user is only slightly more likely to know what last tested version means to them, than they are to know what API version means to them. Below I have provided examples of the dialogs created by the PR. Feel free to suggest alternatives here, as @feerrenrut mentioned above. Testing:For anyone who wants to test my proposal for how to resolve this, please download this try-build. Here are two add-ons you can use to demonstrate: one that is too old, and one that is too new. Sample of revised add-on is too old for NVDA dialog:
Sample of revised add-on is too new for NVDA dialog:
|
Thanks for the write up @XLTechie, this looks to going in the right direction.
This alludes to a concept that doesn't exist elsewhere, EG that all the 2021 releases are somewhat related. The fact that API breaking changes are planned for a 20XY.1 release is only due to current process. There may be another wording that works for this, but I'd like to question why try to include this at all? The second suggestion seems fine. |
I know, I didn't like it either. It was the best of everything I could think of, without, as I said in the PR, carrying a compatibility map in core. Note that such a map would not only need to cover situations going forward, but would need to be extended back to some reasonable degree, perhaps 2019.3.1. I don't like that idea either, though if it becomes the preferred (or only) solution, it isn't difficult to do. I just didn't want to do the data mining, unless it was (1) the only way, and (2) likely to be adopted.
That wasn't my first (or even second) thought as to why to give this information, although see point 3 below for why it does have some merit IMHO.
In that view, we are providing what the user needs to take an informed decision, not promoting a particular decision.
Those of us who work with end users on a regular basis, are very familiar with the "if the add-on doesn't work with NVDA any more, I'll just go back to Jaws, because I need (insert app name)." solution. At least providing an easily available "downgrade target", has the potential to divert that thinking. I recognize this as the weakest answer, and at best a subsidiary reason to the first. Still, I think it is at least partly behind why most other open source projects (I was downloading LibreOffice yesterday) make their older versions prominently available and downloadable. Even if the user has to go back, they stay in the ecosystem, and aren't made to feel like their doing something wrong. If you need an older version for some reason: hey we don't support it, but we want you to use our product, even an older version, so here it is.
|
Ok, I agree with that. The in-development add-on store, will eventually be able to provide this. I say eventually because it is not a core goal, however it won't be difficult information to provide. Additionally, it will make it possible to implement a way for users to check which of their add-ons have compatible versions before they upgrade NVDA. I'd suggest taking the simpler approach now, and adapting this with better information from the add-on store when it is available. Suggestions:
|
Some software seems a bit kinder in that the friendly warning appears and a
button saying something like details is there for those needing to know the
dirty truth!
In microsofts case these details are usually so incomprehensible as to be
pointless.
Brian
***@***.***
Sent via blueyonder.
Please address personal E-mail to:-
***@***.***, putting 'Brian Gaff'
in the display name field.
Newsgroup monitored: alt.comp.blind-users
----- Original Message -----
From: "Luke Davis" ***@***.***>
To: "nvaccess/nvda" ***@***.***>
Cc: "Subscribed" ***@***.***>
Sent: Monday, April 25, 2022 6:25 AM
Subject: Re: [nvaccess/nvda] Attempting to install an incompatible add-on
presents a dialog that can be confusing to some users (Issue #13632)
… CC @michaelDCurran @Qchristensen @britechguy
--
Reply to this email directly or view it on GitHub:
#13632 (comment)
You are receiving this because you are subscribed to this thread.
Message ID: ***@***.***>
|
* Continue to use the "minimum NVDA API version" from the add-on manifest.
In the case of add-on too old for NVDA, I.E. where the "series" message was
used, it would be lastTested, not minimum, if I understand you correctly.
Which brings us to:
* Perhaps instead specify the range: "This add-on version can only be used with NVDA versions in the range {minimumNVDAVersion}-{lastTestedNVDAVersion}"
And of course the problem with last tested, is that it can be inaccurate by
several major versions, if no API breaking change happens.
I.E. most add-ons will say last tested 2021.1, but will still work with 2021.3.5
or whatever. Therein lies the problem.
Thinking about this further, if we believe the store will eventually remove this
problem, then the maintenance burden for a compatibility map wouldn't really be
that high, because we could discontinue it once the store came into play.
|
This value is intended to be the author's guarantee that given a changed addon API version, they have tested the addon with those changes. Naming is hard, and I accept this name The confusion comes from equating an NVDA version to an add-on API version. However, when there are no backwards incompatible changes, from the perspective of a released add-on the API is equal. Even with additions to the API, logically these are irrelevant to an addon released before their introduction. The compatibility check is looking for two overlapping windows of compatibility. One range is formed by NVDA Addon API current version, and the backwards compatible to version. The other range is formed by the addon minimum required NVDA addon API version and last tested NVDA Addon API version. |
@britechguy, @josephsl, @CyrilleB79, can this be closed given the following? Under the add-on store (i.e. as of NVDA 2023.2), the problematic dialogs have changed. Attempting to install an add-on that is out of dateIf an add-on is too old to work in 2023.2, the dialog's wording has changed to:
Attempting to install an add-on newer than NVDAIf you attempt to install an add-on with a minimum NVDA version higher than the currently running copy, the dialog contains the following:
|
Seems OK to me. |
Closing as resolved by #13985 |
Steps to reproduce:
Actual behavior:
The add-on, for the case of Clipspeak, has a compatible range of 2018.3.0-2019.3.0.
As expected, it won't install in a 2022.1 NVDA alpha.
However the dialog which NVDA shows is as follows:
In the topic linked above, this wording confused a very experienced, and very technical user. Even after I had figured out what was going on in that case, I still misunderstood what this wording meant upon first reading, and thought it was incorrect.
Expected behavior:
The wording is technically true. However it expects the user to have ready knowledge about the way NVDA manages compatibility, in order to understand what it is saying.
For the case of add-ons which are no longer compatible with the currently installed version of NVDA, I would expect a more end-user friendly dialog to say something like the following:
In short: end-users do not care about internal API versions. They care about whether an add-on works with their current version of NVDA.
System configuration
NVDA installed/portable/running from source:
Source.
NVDA version:
A 2022.1 alpha series build.
Windows version:
N/A
Name and version of other software in use when reproducing the issue:
Other information about your system:
Other questions
Does the issue still occur after restarting your computer?
N/A
Have you tried any other versions of NVDA? If so, please report their behaviors.
No.
If NVDA add-ons are disabled, is your problem still occurring?
Not tested.
Does the issue still occur after you run the COM Registration Fixing Tool in NVDA's tools menu?
Yes
The text was updated successfully, but these errors were encountered: