Skip to content

Conversation

@hanna-skryl
Copy link
Collaborator

@hanna-skryl hanna-skryl commented Nov 7, 2025

  • Implement Axe accessibility plugin with Playwright integration
  • Support WCAG 2.1/2.2, best practice, and all presets
  • Add comprehensive documentation and E2E tests

Closes #1134

Portal preview

@nx-cloud
Copy link

nx-cloud bot commented Nov 7, 2025

View your CI Pipeline Execution ↗ for commit 0560b3e

Command Status Duration Result
nx code-pushup --nx-bail -- compare ✅ Succeeded 1m 3s View ↗
nx code-pushup --nx-bail -- ✅ Succeeded 1m 11s View ↗
nx code-pushup --nx-bail -- print-config --outp... ✅ Succeeded 4m 34s View ↗

☁️ Nx Cloud last updated this comment at 2025-11-12 14:25:00 UTC

@pkg-pr-new
Copy link

pkg-pr-new bot commented Nov 7, 2025

Open in StackBlitz

@code-pushup/ci

npm i https://pkg.pr.new/code-pushup/cli/@code-pushup/ci@1141

@code-pushup/cli

npm i https://pkg.pr.new/code-pushup/cli/@code-pushup/cli@1141

@code-pushup/core

npm i https://pkg.pr.new/code-pushup/cli/@code-pushup/core@1141

@code-pushup/create-cli

npm i https://pkg.pr.new/code-pushup/cli/@code-pushup/create-cli@1141

@code-pushup/models

npm i https://pkg.pr.new/code-pushup/cli/@code-pushup/models@1141

@code-pushup/nx-plugin

npm i https://pkg.pr.new/code-pushup/cli/@code-pushup/nx-plugin@1141

@code-pushup/axe-plugin

npm i https://pkg.pr.new/code-pushup/cli/@code-pushup/axe-plugin@1141

@code-pushup/coverage-plugin

npm i https://pkg.pr.new/code-pushup/cli/@code-pushup/coverage-plugin@1141

@code-pushup/eslint-plugin

npm i https://pkg.pr.new/code-pushup/cli/@code-pushup/eslint-plugin@1141

@code-pushup/js-packages-plugin

npm i https://pkg.pr.new/code-pushup/cli/@code-pushup/js-packages-plugin@1141

@code-pushup/jsdocs-plugin

npm i https://pkg.pr.new/code-pushup/cli/@code-pushup/jsdocs-plugin@1141

@code-pushup/lighthouse-plugin

npm i https://pkg.pr.new/code-pushup/cli/@code-pushup/lighthouse-plugin@1141

@code-pushup/typescript-plugin

npm i https://pkg.pr.new/code-pushup/cli/@code-pushup/typescript-plugin@1141

@code-pushup/utils

npm i https://pkg.pr.new/code-pushup/cli/@code-pushup/utils@1141

@code-pushup/models-transformers

npm i https://pkg.pr.new/code-pushup/cli/@code-pushup/models-transformers@1141

commit: 0560b3e

@hanna-skryl hanna-skryl force-pushed the axe-plugin/core-functionality branch 2 times, most recently from 3680cce to e4e390f Compare November 7, 2025 22:57
@github-actions github-actions bot added the 🦾 CI/CD Continuous integration and deployment label Nov 7, 2025
@hanna-skryl hanna-skryl force-pushed the axe-plugin/core-functionality branch from e4e390f to 72fc042 Compare November 7, 2025 23:36
@github-actions github-actions bot removed the 🦾 CI/CD Continuous integration and deployment label Nov 7, 2025
@hanna-skryl hanna-skryl force-pushed the axe-plugin/core-functionality branch 2 times, most recently from c8c6dd5 to 972b3f1 Compare November 8, 2025 00:05
@hanna-skryl hanna-skryl force-pushed the axe-plugin/core-functionality branch from 972b3f1 to 6d66b16 Compare November 8, 2025 00:17
@hanna-skryl hanna-skryl force-pushed the axe-plugin/core-functionality branch from fa31898 to 5dcf3ad Compare November 11, 2025 16:15
@github-actions
Copy link
Contributor

github-actions bot commented Nov 11, 2025

Code PushUp

🤨 Code PushUp report has both improvements and regressions – compared current commit 517cd6a with previous commit 4a982a5.

🕵️ See full comparison in Code PushUp portal 🔍

🏷️ Categories

🏷️ Category ⭐ Previous score ⭐ Current score 🔄 Score change
Performance 🔴 36 🔴 33 ↓ −3
Updates 🟡 73 🟡 75 ↑ +1.4
Documentation 🔴 36 🔴 35 ↓ −1.3
Code coverage 🟡 88 🟡 88 ↑ +0.2
Security 🟡 56 🟡 56
Accessibility 🟢 92 🟢 92
Best Practices 🟢 100 🟢 100
SEO 🟡 61 🟡 61
Type Safety 🟢 100 🟢 100
Bug prevention 🟢 100 🟢 100
Miscellaneous 🟢 100 🟢 100
Code style 🟢 100 🟢 100
👍 2 groups improved, 👎 2 groups regressed, 👍 4 audits improved, 👎 6 audits regressed, 15 audits changed without impacting score

🗃️ Groups

🔌 Plugin 🗃️ Group ⭐ Previous score ⭐ Current score 🔄 Score change
Lighthouse Performance 🔴 36 🔴 33 ↓ −3
JS Packages NPM outdated dependencies 🟡 73 🟡 75 ↑ +1.4
JSDoc coverage Documentation coverage 🔴 36 🔴 35 ↓ −1.3
Code coverage Code coverage metrics 🟡 88 🟡 88 ↑ +0.2

17 other groups are unchanged.

🛡️ Audits

🔌 Plugin 🛡️ Audit 📏 Previous value 📏 Current value 🔄 Value change
JSDoc coverage Types coverage 🟥 242 undocumented types 🟥 243 undocumented types ↑ +0.4 %
Lighthouse Total Blocking Time 🟥 1,660 ms 🟥 2,700 ms ↑ +62.5 %
Lighthouse Speed Index 🟥 6.9 s 🟥 7.3 s ↑ +5.6 %
Lighthouse First Contentful Paint 🟥 3.2 s 🟥 3.2 s ↑ +2.3 %
JS Packages Outdated NPM prod dependencies. 🟨 18 outdated package versions (6 major, 8 minor, 4 patch) 🟨 18 outdated package versions (6 major, 8 minor, 4 patch)  +0 %
Lighthouse Time to Interactive 🟥 13.3 s 🟥 13.4 s ↑ +0.8 %
JSDoc coverage Functions coverage 🟥 523 undocumented functions 🟥 539 undocumented functions ↑ +3.1 %
Code coverage Function coverage 🟨 89.5 % 🟨 89.7 % ↑ +0.2 %
Code coverage Branch coverage 🟨 86.5 % 🟨 86.6 % ↑ +0.2 %
Code coverage Line coverage 🟨 84.6 % 🟨 84.5 % ↓ −0.2 %
Lighthouse Avoids enormous network payloads 🟩 Total size was 2,064 KiB 🟩 Total size was 2,035 KiB ↓ −1.4 %
Lighthouse Minimizes main-thread work 🟥 12.6 s 🟥 14.8 s ↑ +18.1 %
Lighthouse JavaScript execution time 🟥 4.9 s 🟥 6.2 s ↑ +26.6 %
Lighthouse Largest Contentful Paint 🟥 11.3 s 🟥 12.1 s ↑ +6.8 %
Lighthouse Server Backend Latencies 🟩 1,600 ms 🟩 850 ms ↓ −46.6 %
Lighthouse Max Potential First Input Delay 🟥 1,150 ms 🟥 1,610 ms ↑ +40.5 %
Lighthouse Uses efficient cache policy on static assets 🟨 30 resources found 🟨 30 resources found ↑ +0.1 %
Lighthouse Reduce unused CSS 🟥 Potential savings of 94 KiB 🟥 Potential savings of 105 KiB ↑ +25 %
Lighthouse Avoids an excessive DOM size 🟥 2,361 elements 🟥 2,245 elements ↓ −4.9 %
Lighthouse Metrics 🟩 100% 🟩 100% ↑ +0.8 %
Lighthouse Initial server response time was short 🟩 Root document took 550 ms 🟩 Root document took 440 ms ↓ −18.6 %
Lighthouse Reduce unused JavaScript 🟥 Potential savings of 181 KiB 🟥 Potential savings of 183 KiB ↑ +9.3 %
JSDoc coverage Variables coverage 🟥 294 undocumented variables 🟥 245 undocumented variables ↓ −16.7 %
Lighthouse Remove duplicate modules in JavaScript bundles 🟥 Potential savings of 105 KiB 🟥 Potential savings of 91 KiB ↓ −6.2 %
Lighthouse Network Round Trip Times 🟩 20 ms 🟩 20 ms ↑ +5.2 %

585 other audits are unchanged.

@hanna-skryl hanna-skryl force-pushed the axe-plugin/core-functionality branch 10 times, most recently from 597803d to f1fc866 Compare November 11, 2025 21:16
Comment on lines 17 to 19
"build": {
"dependsOn": ["^build", "install-browser"]
},
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I like that the browser installation is now part of our Nx graph. 👍

However, I'm wondering if build is the right target where we should define the dependency. We don't need have the browser installed in order to build the package. So in some scenarios (e.g., checking for type errors), we may be adding an unnecessary and expensive operation.

As I understand, the browser installation is only required for our code-pushup-axe target (you've already defined this dependency in our root project.json) and for e2e-test target of plugin-axe-e2e. So I'm thinking it would be more optimal to add ^install-browser to the dependsOn array of the e2e-test target instead. This could even be applied globally for all e2e-test targets 🤔

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I tried swapping configurations around and believe the target was unnecessary after all.

Now that the plugin handles Chromium installation, Playwright's own caching mechanism will prevent repeated downloads. Playwright caches browsers in the user's cache directory, which means that locally, the browser is only downloaded once on first use. In CI, the browser is downloaded fresh on each workflow run, which is Playwright's recommended approach.

@hanna-skryl hanna-skryl force-pushed the axe-plugin/core-functionality branch 3 times, most recently from d9630ff to 5a9d83a Compare November 12, 2025 13:41
@hanna-skryl hanna-skryl force-pushed the axe-plugin/core-functionality branch from 5a9d83a to 0560b3e Compare November 12, 2025 14:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Axe Plugin - Core Functionality

3 participants