Skip to content

Determine add-on status based on tab of add-on store#15860

Merged
seanbudd merged 4 commits into
masterfrom
fix-15568
Dec 4, 2023
Merged

Determine add-on status based on tab of add-on store#15860
seanbudd merged 4 commits into
masterfrom
fix-15568

Conversation

@seanbudd

@seanbudd seanbudd commented Nov 30, 2023

Copy link
Copy Markdown
Member

Link to issue number:

Fixes #15029
Fixes #15568

Summary of the issue:

Disabled add-ons were not listed in the updatable add-ons tab.
Add-ons with overridden compatibility were also not listed in the updatable add-ons tab.
Disabled incompatible add-ons should trigger the dialog to override when attempting to update.

Add-on statuses were the same for each tab of the add-on store, this limited determining actions for the add-on.

Description of user facing changes

Add-on status is now contextual. to the add-on store tab Updatable/downloadable information is only shown on the updatable and available add-ons tab. Installed add-ons tabs now only show statuses relevant to installed add-ons. This means "update available" and "downloaded, pending install" will not be listed in the installed add-ons tab.

Disabled and incompatible add-ons can now be updated.

Description of development approach

Created a new status and action for incompatible add-ons with an incompatible update available.

Ensure available and updatable statuses are checked before statuses for installed add-ons.
Ensure available and updatable statuses are only checked for their relevant tabs.
This means disabled and incompatible add-ons return updatable status before checking their disabled/compatibility state.

Testing strategy:

Manual testing with various states across various add-ons.
Particular cases:

  • Updating "clip contents" in disabled/enabled state from incompatible version 27.1 to incompatible version 29.0.0 to compatible version 29.0.1

Known issues with pull request:

None

Code Review Checklist:

  • Documentation:
    • Change log entry
    • User Documentation
    • Developer / Technical Documentation
    • Context sensitive help for GUI changes
  • Testing:
    • Unit tests
    • System (end to end) tests
    • Manual testing
  • UX of all users considered:
    • Speech
    • Braille
    • Low Vision
    • Different web browsers
    • Localization in other languages / culture than English
  • API is compatible with existing add-ons.
  • Security precautions taken.

@seanbudd seanbudd requested a review from a team as a code owner November 30, 2023 05:59
@seanbudd

Copy link
Copy Markdown
Member Author

cc @XLTechie and @josephsl as reporters of the issues

@Adriani90

Copy link
Copy Markdown
Collaborator

Why is the status „update available“ not shown in the installed addons tab? At least for me I would look at the installed addons and hope to see if there is an update available or not. From an Ux Perspektive, why are the updatable addons tab and the installed tabs as well as the incopatible addons tab not merged?

  1. Under The tab installed addons NVDA could report „Update available“ when landing on the respective addon name with the system focus or the mouse cursor. Also addons which have an update available could be shown at the top of the list, similar to what poedit does for translation strings which should be updated.
  2. Since there is a filter to show incopatible addons already in place, why is this tab still needed? This filter could be added to the installed addons tab as well which would make the incompatible tab obsolete.

@seanbudd

seanbudd commented Nov 30, 2023

Copy link
Copy Markdown
Member Author

Why is the status „update available“ not shown in the installed addons tab? At least for me I would look at the installed addons and hope to see if there is an update available or not.

Under The tab installed addons NVDA could report „Update available“ when landing on the respective addon name with the system focus or the mouse cursor.

There's a wide range of statuses with similar importance which conflict with update available: for example "disabled", "disabled (incompatible)", "pending remove", etc. We could start showing a list of multiple current statuses, but that would get very verbose potentially.

Also addons which have an update available could be shown at the top of the list, similar to what poedit does for translation strings which should be updated.

I think this would be better suited to a separate feature request, but I think the "updatable" tab much better handles the case you describe here. I think we should keep sorting methods in favour of #15277

From an Ux Perspektive, why are the updatable addons tab and the installed tabs as well as the incopatible addons tab not merged?

The idea of separate tabs is to be able to filter by different status groups. Initially this was done as a select control like the other filters, but tabs with headers are more common for this type of filtering.

Since there is a filter to show incopatible addons already in place, why is this tab still needed? This filter could be added to the installed addons tab as well which would make the incompatible tab obsolete.

These are separate controls. For available and update tabs, this is to include incompatible add-ons, which should be filtered out by default. For installed add-ons, it's to view incompatible add-ons separately.
This is because users often want to manage incompatible add-ons separately to currently installed ones. We had a separate list for these in add-ons manager.
This is similar logic to the update/available split based on action/intention, users often want to see the subset e.g. updateable/incompatible of the wider lists.

@AppVeyorBot

Copy link
Copy Markdown

See test results for failed build of commit 8249300ae2

@Adriani90

Copy link
Copy Markdown
Collaborator

There's a wide range of statuses with similar importance which conflict with update available: for example "disabled", "disabled (incompatible)", "pending remove", etc. We could start showing a list of multiple current statuses, but that would get very verbose potentially.

We could treat statuses differently and achieve a better user experience:

  • Addon items with updates can be indicated via a sound when focusing them (using speech refactor for this) instead of reporting "update available". the new speech framework has been introduced in New speech framework including callbacks, beeps, sounds, profile switches and prioritized queuing #7599 but for whatever reason it has never been really applied to to design user experience. It would then suffice to have in the user guide a remark, that a sound will indicate that an update is available. Of course users should not be overwelmed by different sounds for other things in the same dialog or use case, but for new updates in my view this would make sense at least.
  • Status "enabled" or "disabled" can be reported by NVDA while navigating through the list, so this should not be changed
  • Status compatibel or incompatible can be handled via a checkbox after the enabled / disabled combo box. Currently on the installed tab, the combo box lets you filter addons by "all", "enabled" and "disabled". I propose to add a checkbox called "show only incompatible addons" and link it to this combo box. So when you choose the filter "enabled" and tick the checkbox, you get only the enabled incompatible addons. When you choose "all" and thick the checkbox, you get a combination of enabled and disabled incompatible addons.

So in the end, with this proposal, when navigating through the list of addons the highest verbosity you would get is i.e. "golden cursor > enabled > pending removal.

For available and update tabs, this is to include incompatible add-ons, which should be filtered out by default.

However, for the updatable addons the incompatible addons should not be filtered by default. The users should be incentivized to update them. For available tab I get your point of course.

@Adriani90

Copy link
Copy Markdown
Collaborator

I think we should keep sorting methods in favour of #15277

That is true, however, including all sorting methods in columns would introduce more verbosity because they all will have to be visible in order to sort the list. For addon name, publisher and maybe last updated date, in case it will be implemented, make most sense to sort the list by. But we should still make the difference between sorting and filtering.

@beqabeqa473

beqabeqa473 commented Nov 30, 2023 via email

Copy link
Copy Markdown
Contributor

@XLTechie

XLTechie commented Nov 30, 2023 via email

Copy link
Copy Markdown
Collaborator

@Adriani90

Adriani90 commented Nov 30, 2023 via email

Copy link
Copy Markdown
Collaborator

@beqabeqa473

beqabeqa473 commented Nov 30, 2023 via email

Copy link
Copy Markdown
Contributor

@seanbudd

seanbudd commented Dec 4, 2023

Copy link
Copy Markdown
Member Author

I think these feature requests are out of scope for this issue - which intends to fix 2 moderate bugs. I'd encourage separate issue proposals.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

7 participants