feat: add automated UX check - #2811
Conversation
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #2811 +/- ##
==========================================
+ Coverage 74.82% 74.90% +0.08%
==========================================
Files 19 19
Lines 2363 2363
==========================================
+ Hits 1768 1770 +2
+ Misses 595 593 -2
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
There was a problem hiding this comment.
Pull request overview
Adds a GitHub Actions workflow to trigger an automated UX demo review when a PR is labeled for UX review, integrating with Canonical’s upstream “automated UX QA checklist and quality standards” reusable workflow.
Changes:
- Introduces a new
ux-reviewGitHub Actions workflow triggered onpull_requestlabel events. - Invokes an upstream reusable workflow and passes PR metadata plus a Copilot CLI token to enable automated review/commenting.
Comments suppressed due to low confidence (1)
.github/workflows/ux-review.yaml:23
- The reusable workflow is referenced by a mutable branch (
@feat-reusable-workflow), and the same mutable ref is also passed as an input. Before merging, this should be pinned to an immutable ref (commit SHA, or a version tag) to avoid supply-chain risk and unexpected behavior changes when the branch moves.
# TEMPORARY: calling the reusable workflow from the upstream
# "feat-reusable-workflow" branch for testing before it lands on main.
# REVERT to a pinned commit SHA on main before merging for supply-chain safety.
uses: canonical/automated-ux-qa-checklist-and-quality-standards/.github/workflows/ux-demo-review.yml@feat-reusable-workflow
if: "github.event.label.name == 'Review: UX needed'"
with:
pr_number: "${{ github.event.pull_request.number }}"
# Run the skills repo scripts from the same upstream branch.
ref: feat-reusable-workflow
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
05a449b to
ac2e7c3
Compare
UX reviewAutomated UX QA review generated from this PR. Stages run: Demo review. Demo review — juju-charmhub-community-2026-07-23.mdUX demo review: Charmhub community (Juju)URL: https://canonical-com-2803.demos.haus/juju/charmhub-community Summary
Total issues: 10 (1 critical, 4 needs work, 5 minor) · Needs review: 2 · N/A sections: none – all checklist sections apply to this page Issues by page sectionJoin the community[Brand & style] 🟡 Needs Work – Superlative claim without support [Brand & style] 🟡 Needs Work – Superlative claim without support [Brand & style] 🟡 Needs Work – Product name capitalization Explore charms on Charmhub[Brand & style] 🟡 Needs Work – Inconsistent "open source" formatting [Links / Structure] 🔵 Minor – Inconsistent card markup produces a duplicate link [Accessibility] 🔵 Minor – Decorative logo images have empty alt text [Brand & style] ❓ Needs Review – Possible over-capitalization [Brand & style] 🔵 Minor – Missing hyphen in compound adjective Get started with Juju today[CTAs] 🟡 Needs Work – Ungrammatical button label Get in touch (modal form)[Accessibility] 🔴 Critical – Form field with no accessible name [Mobile Considerations] 🔵 Minor – Long country dropdown on a compact form Brand & style complianceIssues from the Canonical copy style guide check. Organized by severity. 🔴 CriticalNone found. 🟡 Needs Work
🔵 Minor
❓ Needs review
⬜ Not applicableNone – this page includes structure/headings, CTAs, links, a form, images, and in-page navigation, so all checklist sections apply. ✅ What looks goodNavigation
Structure & Hierarchy
CTAs and links
Forms
Brand & style
🔲 Manual checks for reviewer
Generated by the automated UX QA review tool. |
65c3c47 to
7b89551
Compare
7b89551 to
ddb744e
Compare
UX reviewAutomated UX QA review generated from this PR. Stages run: Demo review. Demo review — juju-charmhub-community-2026-07-24.mdUX demo review: Charmhub community (Juju)URL: https://canonical-com-2803.demos.haus/juju/charmhub-community Summary
Total issues: 6 (0 critical, 2 needs work, 4 minor) · Needs review: 1 · N/A sections: Navigation (standard sitewide nav, not page-specific) Issues by page sectionJoin the community[Brand & style] 🟡 Needs Work – Product name "Juju" not capitalized [Brand & style] 🟡 Needs Work – Inconsistent capitalization of "Discourse" [Accessibility] 🔵 Minor – Card images have generic, non-descriptive alt text [UX/Readability] 🔵 Minor – One sentence runs long Explore charms on Charmhub[Brand & style] 🟡 Needs Work – Inconsistent "open source" formatting [Accessibility] 🔵 Minor – Kafka charm link has no accessible name [Structure] 🔵 Minor – Inconsistent card markup for MySQL [Brand & style] ❓ Needs Review – Capitalization of "Machine charms" ✅ What looks goodHero: H1 "Community and Charmhub" is short, clear, and in sentence case. Heading hierarchy: H1 → H2 flows logically with no skipped levels (Join the community, Explore charms on Charmhub, Get started with Juju today). Join the community: Link text is specific and meaningful — "Connect with the community on Matrix ›" and "Connect with the community on Discourse ›" both tell the user exactly what they'll get, avoiding generic "click here"/"learn more" patterns. Explore charms on Charmhub: Tabbed structure (Databases, Big data and AI, Observability, Infrastructure) has a clear heading and intro copy above it, and each charm card pairs a name with a one-line, plain-language description of what it does. CTAs: "Read Docs" and "Contact us" in the closing "Get started with Juju today" section are distinct from each other and read naturally in context. Forms & Inputs (contact modal): Required fields are marked with Accessibility (modal): The optional "Tell us more about your needs" textarea has a supporting visible heading directly above it in the fieldset legend, giving it context even though its own ⬜ Not applicable
🔲 Manual checks for reviewer
Generated by the automated UX QA review tool. |
UX reviewAutomated UX QA review generated from this PR. Stages run: Demo review. Demo review — juju-charmhub-community-2026-07-24.mdUX demo review: Charmhub community (Juju)URL: https://canonical-com-2803.demos.haus/juju/charmhub-community Summary
Total issues: 16 (1 critical, 5 needs work, 10 minor) · Needs review: 1 · N/A sections: Navigation (breadcrumbs/back links) Issues by page sectionJoin the community – Matrix space / Discourse forum / Canonical support[Accessibility] 🔵 Minor – Generic alt text on illustrative card images [Brand & style – B7 Superlative] 🟡 Needs Work – Unjustified superlative [Brand & style – B5 Passive voice] 🔵 Minor – Passive construction [Brand & style – A4 Capitalization/consistency] 🟡 Needs Work – Inconsistent casing of "Discourse" (product name) [Brand & style – A3/A4 Capitalization] 🟡 Needs Work – Product name "Juju" not capitalized [Brand & style – B5 Passive voice] 🔵 Minor – Passive construction [Brand & style – B3 Sentence length] 🔵 Minor – Long, dense sentence (~25 words) [Brand & style – A12 Hyphens] 🔵 Minor – Missing hyphen in compound adjective [Brand & style – B7 Superlative] 🟡 Needs Work – Unjustified superlative [Brand & style – B3 Sentence length] 🔵 Minor – Long, dense sentence (~27 words) [Brand & style – A4 Consistency] 🔵 Minor – Inconsistent casing of the same proper noun Explore charms on Charmhub (intro copy)[Brand & style – A8 Punctuation] 🔵 Minor – Missing comma and missing sentence-ending period [Brand & style – A4 Capitalization] 🔵 Minor – Inconsistent capitalization [Brand & style – A12 Hyphens] 🔵 Minor – Missing hyphen in compound adjective Charm listing – Databases / Big data and AI / Observability / Infrastructure tabs[Brand & style – A2 "open source"] 🟡 Needs Work – Inconsistent formatting of "open source" [Brand & style – A10 Acronyms] ❓ Needs Review – Acronym not spelled out on first use Get in touch (contact modal, triggered from "Contact us")[Forms & Inputs / Accessibility] 🔴 Critical – Textarea has no accessible label Brand & style compliance🔴 CriticalNone found. 🟡 Needs Work
🔵 Minor
❓ Needs review
⬜ Not applicable
✅ What looks goodHero
Structure & hierarchy
CTAs and links
Accessibility
Brand & style
🔲 Manual checks for reviewer
Generated by the automated UX QA review tool. |
UX reviewAutomated UX QA review generated from this PR. Stages run: Demo review. Demo review — juju-charmhub-community-2026-07-24.mdUX content audit report – live pageURL: https://canonical-com-2803.demos.haus/juju/charmhub-community Summary
Total issues: 5 (0 critical, 5 needs work, 0 minor) · Needs review: 2 · N/A sections: Mobile considerations Issues by page sectionHero[Structure & Hierarchy] 🟡 Needs Work – Hero section has no introductory copy Join the community – Matrix space card[Brand & style – B7] 🟡 Needs Work – Unjustified superlative Join the community – Discourse forum card[Brand & style – A3] 🟡 Needs Work – Product name "Discourse" not capitalized [Brand & style – A3] 🟡 Needs Work – Product name "Juju" not capitalized Explore charms on Charmhub – charm descriptions[Brand & style – A2] 🟡 Needs Work – "Open-source" hyphenated
Per the Canonical style guide, "open source" is always two words with no hyphen – even as an adjective. Correct to "Open source" (sentence-initial capital is fine). Note: six other charm descriptions on the same page already use the correct "Open source" form (Prometheus, Grafana, Loki, Kafka, Kubeflow, Apache Spark), so this is also an internal consistency issue. Brand & style compliance🟡 Needs Work
❓ Needs review
⬜ Not applicable
✅ What looks goodHero
Secondary navigation
Join the community
Explore charms on Charmhub
Get started with Juju today
Contact form (modal)
Footer
🔲 Manual checks for reviewer
Generated by the automated UX QA review tool. |
UX reviewAutomated UX QA review generated from this PR. Stages run: Copy doc review. Copy doc review — juju-charmhub-community-2026-07-24.mdUX content audit report – copy docDocument: ux-review-copydoc.md (Juju – Community and Charmhub section, suggested URL Summary
Total issues: 17 (six critical, nine needs work, two minor) · Needs review: five · N/A sections: Forms and inputs – marketing page; Completeness (interactive states) – marketing page Issues by page sectionMetadata🔴 Critical
🟡 Needs work
Hero🟡 Needs work
Equal height row🔴 Critical
🟡 Needs work
Tabbed sections🟡 Needs work
🔵 Minor
CTA section🔴 Critical
Brand & style compliance🟡 Needs work
🔵 Minor
❓ Needs review
⬜ Not applicable
✅ What looks good
Generated by the automated UX QA review tool. |
UX reviewAutomated UX QA review generated from this PR. Stages run: Demo review. Demo review — juju-charmhub-community-2026-08-13.mdUX demo review: Charmhub community (Juju)URL: https://canonical-com-2803.demos.haus/juju/charmhub-community Summary
Total issues: 8 (1 critical, 3 needs work, 4 minor) · Needs review: 2 · N/A sections: none (all checklist sections apply to this page) Issues by page sectionExplore charms on Charmhub — charm grid (Databases tab)[Structure & Hierarchy] 🔴 Critical – Wrong logo displayed for Charmed MongoDB [Links] 🟡 Needs Work – Inconsistent link structure for the MySQL card Get started with Juju today (CTA strip)[CTAs] 🔵 Minor – Inconsistent CTA capitalization Brand & style compliance🟡 Needs Work
🔵 Minor
❓ Needs review
✅ What looks goodAccessibility & forms
CTAs & links
Structure & copy
🔲 Manual checks for reviewer
Generated by the automated UX QA review tool. |
UX reviewAutomated UX QA review generated from this PR. Stages run: Demo review. Demo review — juju-charmhub-community-2026-08-13.mdUX demo review: Charmhub communityURL: https://canonical-com-2803.demos.haus/juju/charmhub-community Summary
Total issues: 17 (one critical, six needs work, ten minor) · Needs review: two · N/A sections: breadcrumbs/back links Issues by page sectionHero[Structure & Hierarchy] 🔵 Minor – No intro text beneath the H1 Join the community[Structure & Hierarchy] 🟡 Needs Work – Card headings are styled paragraphs, not heading elements [CTAs] 🔵 Minor – "Contact us" link in community card uses same label as primary section CTA [Brand & style | B7] 🟡 Needs Work – Unjustified superlative: "the best way to interact" [Brand & style | B7] 🟡 Needs Work – Unjustified superlative: "best support experience" Explore charms on Charmhub[Structure & Hierarchy] 🔵 Minor – Bold lead-in sentence has no terminal punctuation [Structure & Hierarchy] 🔵 Minor – Identical descriptions for Postgres and MySQL [Accessibility] 🔵 Minor – Duplicate adjacent links for MySQL Get started with Juju today[CTAs] 🔵 Minor – "Read Docs" CTA lacks specificity Contact form (modal – "Get in touch")[Accessibility] 🔴 Critical – Empty [CTAs] 🟡 Needs Work – "Submit" is a vague form action Brand & style compliance🟡 Needs Work
🔵 Minor
❓ Needs review
⬜ Not applicable
✅ What looks goodNavigation
Hero
Join the community
Explore charms on Charmhub
Get started
Contact form (modal)
🔲 Manual checks for reviewer
Generated by the automated UX QA review tool. |
UX reviewAutomated UX QA review generated from this PR. Stages run: Demo review. Demo review — juju-charmhub-community-2026-08-13.mdUX demo review: Charmhub community (Juju)URL: https://canonical-com-2803.demos.haus/juju/charmhub-community Summary
Total issues: 16 (2 critical, 7 needs work, 7 minor) · Needs review: 2 · N/A sections: none (all checklist sections apply to this page) Issues by page sectionJoin the community (Matrix / Discourse / Canonical support cards)[Structure & Hierarchy] 🟡 Needs Work – Card titles are not real headings Explore charms on Charmhub — charm grid (Databases tab)[Structure & Hierarchy] 🔴 Critical – Wrong logo displayed for Charmed MongoDB [Links] 🟡 Needs Work – Inconsistent link structure for the MySQL card Get started with Juju today (CTA strip)[CTAs] 🔵 Minor – Inconsistent CTA capitalization Get in touch (contact modal form)[Forms & Inputs] 🔴 Critical – Textarea has no accessible label [Accessibility] 🟡 Needs Work – Decorative separator exposed as real option text in the country dropdown [CTAs] 🟡 Needs Work – Vague submit button text Brand & style compliance🟡 Needs Work
🔵 Minor
❓ Needs review
✅ What looks goodAccessibility & forms
CTAs & links
Structure & copy
🔲 Manual checks for reviewer
Generated by the automated UX QA review tool. |
Done
[List of work items including drive-bys]
QA
Issue / Card
Fixes #
Screenshots
[if relevant, include a screenshot]