A11y Addons control panel - #6345
Conversation
✅ Deploy Preview for plone-components canceled.
|
|
Update |
|
@pnicolli @sneridagh I've looked at the bundle implication of loading react-aria-components. |
|
@ichim-david yeah Victor and I discussed this briefly with the people doing stuff with react-aria-components during Salamina Sprint and we said that we wouldn't use plone/components here because it's still alpha and kind of wip officially, but we can use react-aria-components for now, since moving from this to plone/components should remain easy enough. |
|
@pnicolli Thanks for the re-ping for the accessibility team. I'll take a review next week and follow up with the others! Edit: I've not had time to look at this, I'll take a look within the next few weeks (June). |
|
@deodorhunter an you give me an update on this PR, please? Do you think it can be finished, or at least merged with some improvements? Thank you! |
Hi @Wagner3UB! |
|
@Wagner3UB I remember that this was indeed finished and just needed a review from the a11y team which was postponed but it makes sense to review and merge this now that the team regained momentum and energy. I would recommend solving the conflicts and reviewing as-is, I don't think it needs functional changes (unless it has a11y bugs ofc) |
|
Great! Thanks for the clarification @deodorhunter and @pnicolli. I didn’t go beyond reading the whole discussion yet, but based on your feedback, we can definitely move forward. I’m also happy to hear that it is already finished. Marty, no worries, I can handle the conflict resolution myself. I’m a bit more familiar with the current context and should be able to do it more quickly. I’ll also run some tests and then ask the a11y team members to take a general look at it. Thanks! |
# Conflicts: # packages/volto/locales/ca/LC_MESSAGES/volto.po # packages/volto/locales/de/LC_MESSAGES/volto.po # packages/volto/locales/en/LC_MESSAGES/volto.po # packages/volto/locales/es/LC_MESSAGES/volto.po # packages/volto/locales/eu/LC_MESSAGES/volto.po # packages/volto/locales/fi/LC_MESSAGES/volto.po # packages/volto/locales/fr/LC_MESSAGES/volto.po # packages/volto/locales/hi/LC_MESSAGES/volto.po # packages/volto/locales/it/LC_MESSAGES/volto.po # packages/volto/locales/ja/LC_MESSAGES/volto.po # packages/volto/locales/nl/LC_MESSAGES/volto.po # packages/volto/locales/pt/LC_MESSAGES/volto.po # packages/volto/locales/pt_BR/LC_MESSAGES/volto.po # packages/volto/locales/ro/LC_MESSAGES/volto.po # packages/volto/locales/ru/LC_MESSAGES/volto.po # packages/volto/locales/volto.pot # packages/volto/locales/zh_CN/LC_MESSAGES/volto.po # packages/volto/package.json # packages/volto/src/components/manage/Controlpanels/Addons/AddonsControlpanel.test.jsx # packages/volto/src/components/manage/Controlpanels/AddonsControlpanel.jsx # packages/volto/src/components/manage/Controlpanels/__snapshots__/AddonsControlpanel.test.jsx.snap # pnpm-lock.yaml
…ntry Translate the 7 new msgids introduced by the Addons control panel refactor across all locales, and restore the "upgradeVersions" msgid that was silently dropped from volto.pot during the merge from main, which had cascaded into ca, eu and pt losing their existing translation.
…traction The intl.formatMessage call referenced the 'upgradeVersions' id without a defaultMessage, so the official pnpm i18n extraction silently dropped it from volto.pot on every run, wiping the translation from all locales.
|
I went through the merge conflicts, standardizing some files in the process, but kept the original structure and intent intact. I also updated a few dependency versions that were out of sync, since While testing the merged result, I found and fixed a few accessibility issues:
|
|
One thing I want to flag for discussion. The component is built on a What I'd expect instead: a labeled container per section ("Updates available: 0", "Available add-ons: 6", "Installed add-ons: 3"), and inside it a plain list of buttons, each with its own clear label. If some structure is still needed, Enter could get you into the container and Tab could move between items, without the table semantics on top. This would likely mean switching from |
|
Quick follow-up on the open points above:
|
stevepiercy
left a comment
There was a problem hiding this comment.
The id Add Addons doesn't have a matching msgid. Also its defaultMessage is incomplete.
| addAddons: { | ||
| id: 'Add Addons', | ||
| defaultMessage: | ||
| 'To make new add-ons show up here, add them to your configuration, build, and restart the server process. For detailed instructions see', |
| </h2> | ||
| <FormattedMessage | ||
| id="Add Addons" | ||
| defaultMessage="To make new add-ons show up here, add them to your configuration, build, and restart the server process. For detailed instructions see" |
| #. Default: "No installed add-ons." | ||
| #: components/manage/Controlpanels/Addons/AddonsControlpanel | ||
| msgid "No installed add-ons available" |
There was a problem hiding this comment.
Between the two, I'm not sure which is more correct, so I'll change both so they match each other.
| #. Default: "No installed add-ons." | |
| #: components/manage/Controlpanels/Addons/AddonsControlpanel | |
| msgid "No installed add-ons available" | |
| #. Default: "No installed add-ons available." | |
| #: components/manage/Controlpanels/Addons/AddonsControlpanel | |
| msgid "No installed add-ons available." |
| msgid "Press Enter to install this add-on" | ||
| msgstr "" | ||
|
|
||
| #. Default: "Press Enter to uninstall this add-on." | ||
| #: components/manage/Controlpanels/Addons/AddonItem | ||
| msgid "Press Enter to uninstall this add-on" | ||
| msgstr "" | ||
|
|
||
| #. Default: "Press Enter to update this add-on." | ||
| #: components/manage/Controlpanels/Addons/AddonItem | ||
| msgid "Press Enter to update this add-on" |
There was a problem hiding this comment.
This is nitpicky for consistency, but probably a good thing to do.
| msgid "Press Enter to install this add-on" | |
| msgstr "" | |
| #. Default: "Press Enter to uninstall this add-on." | |
| #: components/manage/Controlpanels/Addons/AddonItem | |
| msgid "Press Enter to uninstall this add-on" | |
| msgstr "" | |
| #. Default: "Press Enter to update this add-on." | |
| #: components/manage/Controlpanels/Addons/AddonItem | |
| msgid "Press Enter to update this add-on" | |
| msgid "Press Enter to install this add-on." | |
| msgstr "" | |
| #. Default: "Press Enter to uninstall this add-on." | |
| #: components/manage/Controlpanels/Addons/AddonItem | |
| msgid "Press Enter to uninstall this add-on." | |
| msgstr "" | |
| #. Default: "Press Enter to update this add-on." | |
| #: components/manage/Controlpanels/Addons/AddonItem | |
| msgid "Press Enter to update this add-on." |
| @@ -4386,6 +4431,11 @@ msgstr "" | |||
| msgid "Uploading image" | |||
| msgstr "" | |||
|
|
|||
| #. Default: "Use the arrows to move between items." | |||
| #: components/manage/Controlpanels/Addons/AddonItem | |||
| msgid "Use the arrows to move between items" | |||
There was a problem hiding this comment.
Another nitpick.
| msgid "Use the arrows to move between items" | |
| msgid "Use the arrows to move between items." |



This PR overhauls current Addons Control panel UI using react-aria-components and solves #5142.
All accordions removed, UI is now akin to Plone Classic.
Aria pattern used: ARIA grid pattern through GridList component
Changelog:
@plone/types@plone/typespackageUI Preview