Skip to content

feat: a11y - #13561

Merged
viktoravelino merged 34 commits into
release-1.11.0from
feat/a11y
Jun 25, 2026
Merged

feat: a11y#13561
viktoravelino merged 34 commits into
release-1.11.0from
feat/a11y

Conversation

@viktoravelino

@viktoravelino viktoravelino commented Jun 9, 2026

Copy link
Copy Markdown
Collaborator

Summary by CodeRabbit

Release Notes

  • New Features

    • Added automated accessibility scanning to the CI/CD pipeline and development workflow using IBM Equal Access standards.
    • Introduced runA11yScan() helper for manual accessibility checks during test execution.
  • Documentation

    • Added comprehensive accessibility gap audit and Level 1 requirements reference.
    • Documented accessibility action plan with phases and remediation tasks.
    • Added usage guide for running and aggregating accessibility reports.
  • Chores

    • Updated Docker builds to skip unnecessary dependency downloads during build process.

@coderabbitai

coderabbitai Bot commented Jun 9, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Important

Review skipped

Auto incremental reviews are disabled on this repository.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 56699b2f-53ce-413f-ae2f-cc702e091a23

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Walkthrough

This PR establishes end-to-end accessibility testing and audit infrastructure. It adds an IBM accessibility-checker configuration, Playwright scanning fixtures, Jest-Axe unit test support, GitHub Actions automation, and comprehensive documentation outlining current compliance gaps and a phased five-phase remediation plan.

Changes

Accessibility Testing & Audit Infrastructure

Layer / File(s) Summary
Audit findings and remediation planning
a11y-gap-report.md, a11y-level-1-requirements.md, a11y-action-plan.md
Gap report quantifies compliance shortfall with critical findings across keyboard, focus, semantics, naming, and contrast; Level 1 requirements document establishes baseline of 21 IBM criteria; action plan structures phased remediation across focus, semantics, keyboard, headings, error handling, and contrast.
Jest-Axe unit testing foundation
src/frontend/src/utils/a11y-test.ts, src/frontend/src/setupTests.ts
Configures Jest-Axe with shared axe instance; disables color-contrast rule since jsdom cannot compute layout; registers toHaveNoViolations matcher for component-level assertions.
Accessibility-checker utility functions and types
src/frontend/tests/utils/accessibility-checker.ts, src/frontend/tests/utils/types.ts
Exports label sanitization, scan indexing, type guards, attachment building, and failure message formatting for report processing; augments LangflowPage type with runA11yScan(label): Promise<ICheckerResult | null> method.
Playwright page fixture with runA11yScan helper
src/frontend/tests/fixtures.ts
Extends test fixture with RUN_A11Y and RUN_A11Y_ASSERT flags; adds worker-scoped _a11ySession fixture; implements page.runA11yScan(label) helper that runs accessibility scans, attaches summaries, optionally asserts compliance, and hardens response-body type checking and flow-error detection.
Accessibility-checker configuration and devDependencies
src/frontend/.achecker.yml, src/frontend/package.json
Configures checker with IBM_Accessibility policy, violation-level reporting, HTML/JSON output to coverage/accessibility-reports; adds jest-axe, accessibility-checker, @types/jest-axe to devDependencies; creates a11y:report npm script.
Report aggregation script and CLI
src/frontend/tests/utils/aggregate-a11y-reports.mjs
Aggregates JSON reports from accessibility-checker runs by ruleId; counts unique affected elements and scans; outputs --json machine-readable format or human-readable console summary with per-rule details and top-8 issue groups; exits with error code if no reports found.
GitHub Actions workflow for automated scanning
.github/workflows/a11y-scan.yml
Triggers on branch push, nightly cron, and manual dispatch; sets up Node/Python with dependency and browser caching; discovers specs containing runA11yScan() dynamically via grep; runs Playwright tests with accessibility scanning enabled; aggregates reports and appends summary to GitHub step summary; uploads reports as artifacts.
Docker build optimization for Puppeteer
docker/build_and_push.Dockerfile, docker/build_and_push_ep.Dockerfile, docker/build_and_push_with_extras.Dockerfile
Sets PUPPETEER_SKIP_DOWNLOAD=true during frontend npm ci across three Dockerfiles to prevent unnecessary Chromium downloads in builder stage; adds clarifying comments about unzip requirement and production image behavior.
Usage documentation and example tests
a11y-test-usage.md, src/frontend/src/components/ui/__tests__/checkbox.a11y.test.tsx, src/frontend/tests/core/unit/chatInputOutput.spec.ts
Comprehensive guide documenting environment flags, command examples, report locations, and integration patterns; adds checkbox component Axe and accessibility-checker tests; demonstrates runA11yScan usage in chatInputOutput spec with three scans at different flow states.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Suggested reviewers

  • Cristhianzl
  • ogabrielluiz
  • keval718
🚥 Pre-merge checks | ✅ 6 | ❌ 3

❌ Failed checks (2 warnings, 1 inconclusive)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
Test Quality And Coverage ⚠️ Warning checkbox.a11y.test.tsx uses Jest/RTL instead of Playwright. Review comment flags it should follow project patterns; Playwright for frontend tests. chatInputOutput.spec.ts properly uses Playwright. Migrate checkbox.a11y.test.tsx from Jest/RTL to Playwright format, or move to tests directory per Jest unit test convention for this project.
Title check ❓ Inconclusive The title 'feat: a11y' is extremely vague and does not meaningfully describe the actual changes in the pull request, which involve adding comprehensive accessibility tooling, workflows, testing utilities, and documentation. Use a more descriptive title that summarizes the main changes, such as 'feat: add accessibility testing infrastructure and IBM Level 1 compliance tooling' or 'feat: implement accessibility scanning with Playwright and accessibility-checker.'
✅ Passed checks (6 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Test Coverage For New Implementations ✅ Passed PR includes tests for new a11y features: checkbox.a11y.test.tsx tests jest-axe, chatInputOutput.spec.ts uses page.runA11yScan(), and fixtures provide test infrastructure for accessibility scanning.
Test File Naming And Structure ✅ Passed Test files use correct naming patterns: *.test.tsx for Jest/RTL (checkbox) and *.spec.ts for Playwright (chatInputOutput). Both have descriptive test names and proper structure.
Excessive Mock Usage Warning ✅ Passed New a11y tests use real components without excessive mocks; utilities are pure functions; pre-existing setupTests.ts mocks are necessary jsdom stubs.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/a11y

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actions github-actions Bot added enhancement New feature or request and removed enhancement New feature or request labels Jun 9, 2026
- Added `accessibility-checker` package to the project dependencies.
- Enhanced test fixtures to include accessibility scanning capabilities.
- Implemented `runA11yScan` method in the `LangflowPage` type for running accessibility checks.
- Created utility functions for building accessibility scan labels, formatting failure messages, and generating summary attachments.
- Updated test setup to manage accessibility sessions and assert compliance based on scan results.
@github-actions github-actions Bot added enhancement New feature or request and removed enhancement New feature or request labels Jun 9, 2026
@github-actions github-actions Bot added enhancement New feature or request and removed enhancement New feature or request labels Jun 9, 2026
@github-actions github-actions Bot added enhancement New feature or request and removed enhancement New feature or request labels Jun 10, 2026
@viktoravelino
viktoravelino marked this pull request as ready for review June 10, 2026 18:45
@github-actions

github-actions Bot commented Jun 10, 2026

Copy link
Copy Markdown
Contributor

✅ Test Coverage Advisor

No source changes detected without accompanying tests. Thanks for keeping coverage up! 🎉

Advisory check only — never blocks merge.

@github-actions github-actions Bot added enhancement New feature or request and removed enhancement New feature or request labels Jun 10, 2026
@codecov

codecov Bot commented Jun 10, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 42.53112% with 277 lines in your changes missing coverage. Please review.
✅ Project coverage is 59.49%. Comparing base (ffd119c) to head (28bb7a8).

Files with missing lines Patch % Lines
src/frontend/src/pages/SignUpPage/index.tsx 35.91% 91 Missing ⚠️
src/frontend/src/pages/LoginPage/index.tsx 29.21% 63 Missing ⚠️
src/frontend/src/alerts/displayArea/index.tsx 17.85% 23 Missing ⚠️
...ntend/src/pages/MainPage/components/list/index.tsx 27.27% 16 Missing ⚠️
src/frontend/src/components/ui/accordion.tsx 16.66% 15 Missing ⚠️
...c/components/common/genericIconComponent/index.tsx 41.66% 14 Missing ⚠️
src/frontend/src/utils/a11y-test.ts 0.00% 10 Missing ⚠️
...nd/src/components/common/GradientWrapper/index.tsx 0.00% 8 Missing ⚠️
src/frontend/src/utils/authErrorMessages.ts 57.89% 8 Missing ⚠️
src/frontend/src/types/components/index.ts 0.00% 7 Missing ⚠️
... and 8 more
Additional details and impacted files

Impacted file tree graph

@@                Coverage Diff                 @@
##           release-1.11.0   #13561      +/-   ##
==================================================
+ Coverage           59.22%   59.49%   +0.26%     
==================================================
  Files                2334     2291      -43     
  Lines              223414   222371    -1043     
  Branches            31221    32770    +1549     
==================================================
- Hits               132328   132306      -22     
+ Misses              89572    88551    -1021     
  Partials             1514     1514              
Flag Coverage Δ
frontend 58.24% <42.53%> (+0.43%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

Files with missing lines Coverage Δ
...src/components/common/paginatorComponent/index.tsx 91.13% <100.00%> (+0.05%) ⬆️
...e/appHeaderComponent/components/FlowMenu/index.tsx 94.01% <100.00%> (+0.07%) ⬆️
...nd/src/components/core/dropdownComponent/index.tsx 61.40% <100.00%> (-4.59%) ⬇️
...eBarFolderButtons/components/add-folder-button.tsx 91.66% <100.00%> (+49.11%) ⬆️
...rFolderButtons/components/upload-folder-button.tsx 89.74% <100.00%> (+42.37%) ⬆️
...ponent/components/copyFieldAreaComponent/index.tsx 90.85% <100.00%> (-1.06%) ⬇️
...nent/components/dbProviderInputComponent/index.tsx 54.34% <100.00%> (ø)
...enderComponent/components/inputComponent/index.tsx 81.89% <100.00%> (-1.73%) ⬇️
...ts/modelInputComponent/components/ModelTrigger.tsx 82.51% <100.00%> (-0.70%) ⬇️
...iew/chat-header/components/chat-header-actions.tsx 35.36% <100.00%> (ø)
... and 26 more

... and 239 files with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Actionable comments posted: 4

🧹 Nitpick comments (4)
a11y-gap-report.md (1)

51-51: 💤 Low value

Consider rewording "NEEDS TARGETED AUDIT" for clarity.

The phrase reads awkwardly. Consider alternatives:

  • "REQUIRES TARGETED AUDIT"
  • "NEEDS A TARGETED AUDIT"
  • "TO BE AUDITED"

Also applies to: 169-169

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@a11y-gap-report.md` at line 51, The table cell text "NEEDS TARGETED AUDIT" is
awkward; replace it with a clearer phrase like "REQUIRES TARGETED AUDIT" (or
"NEEDS A TARGETED AUDIT"/"TO BE AUDITED") in the two occurrences found for the
Error Prevention criterion (`3.3.4`) and the other occurrence referenced at the
second location; update both instances so the table entries consistently use the
chosen phrasing.

Source: Linters/SAST tools

.github/workflows/a11y-scan.yml (3)

38-41: ⚡ Quick win

Consider setting persist-credentials: false for security.

The checkout step does not explicitly set persist-credentials: false, which means the GitHub token remains available to subsequent steps. If the workflow never needs to push commits or access private repositories, setting this to false reduces the risk of credential exposure.

🔒 Set persist-credentials to false
     - name: Checkout Repository
       uses: actions/checkout@v6
       with:
         ref: ${{ inputs.ref || github.ref }}
+        persist-credentials: false
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.github/workflows/a11y-scan.yml around lines 38 - 41, Update the Checkout
Repository step (uses: actions/checkout@v6) to explicitly set
persist-credentials: false so the GITHUB_TOKEN is not left available to later
steps; locate the checkout step in the workflow and add the persist-credentials:
false key under its with: block to disable credential persistence when no
further pushes or private-repo access are required.

114-119: ⚡ Quick win

Avoid running aggregation command twice.

The npm run a11y:report --silent command is executed twice: once at line 115 (output discarded) and again at line 118 (captured for summary). Instead, capture the output once and reuse it:

♻️ Capture output once and reuse
       cd src/frontend
       if ls coverage/accessibility-reports/*.json > /dev/null 2>&1; then
-        npm run a11y:report --silent
+        REPORT_OUTPUT=$(npm run a11y:report --silent)
         {
           echo '```text'
-          npm run a11y:report --silent
+          echo "$REPORT_OUTPUT"
           echo '```'
         } >> "$GITHUB_STEP_SUMMARY"
       else
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.github/workflows/a11y-scan.yml around lines 114 - 119, The workflow
currently runs npm run a11y:report --silent twice; capture its output once into
a variable (e.g., REPORT_OUTPUT="$(npm run a11y:report --silent)") before the
summary block and then reuse that variable when appending to
$GITHUB_STEP_SUMMARY (echo "$REPORT_OUTPUT") instead of calling npm run
a11y:report --silent again; update the block around the ls check and the code
that appends to GITHUB_STEP_SUMMARY to use REPORT_OUTPUT and remove the
duplicate command invocation.

39-39: ⚖️ Poor tradeoff

Consider pinning GitHub Actions to commit SHAs.

The workflow uses semantic version tags (@v6, @v5) for actions. Some security policies require pinning to commit SHAs to prevent tag manipulation. If your organization follows this policy, consider pinning actions to their commit hashes.

Example:

uses: actions/checkout@<commit-sha>  # instead of `@v6`

This is a trade-off between security and maintainability — semantic versions are easier to update but commit SHAs provide stronger immutability guarantees.

Also applies to: 44-44, 54-54, 68-68, 84-84, 127-127

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.github/workflows/a11y-scan.yml at line 39, Replace the semantic version
tags with pinned commit SHAs for each GitHub Action usage to satisfy
immutability/security requirements: update uses entries for actions/checkout@v6,
actions/setup-node@v18, github/super-linter@v5, actions/upload-artifact@v4,
actions/cache@v4 (and any other uses entries in this workflow) to the
corresponding commit SHA for the desired release; fetch the exact commit SHA
from the action repo (or release tag) and substitute the `@tag` with @<commit-sha>
so each uses: line is pinned to an immutable commit.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In @.github/workflows/a11y-scan.yml:
- Around line 4-7: Remove the temporary push trigger that targets the specific
branch by deleting the "push: branches: [feat/a11y]" block (the temporary
trigger) from the workflow so the job relies on the intended triggers (e.g.,
workflow_dispatch and any global triggers); ensure only the permanent triggers
remain and no branch-specific test trigger referencing "feat/a11y" is left in
the a11y-scan workflow.

In `@a11y-gap-report.md`:
- Line 7: Replace all hard-coded absolute paths in documentation with
repository-relative paths: update occurrences of
"/Users/viktoravelino/projects/langflow/a11y-level-1-requirements.md" to
"a11y-level-1-requirements.md",
"/Users/viktoravelino/projects/langflow/a11y-gap-report.md" to
"a11y-gap-report.md", and any
"/Users/viktoravelino/projects/langflow/src/frontend/..." references to
"src/frontend/..." in files such as a11y-gap-report.md and a11y-action-plan.md;
ensure you search for and replace these absolute path patterns across the docs
so links to a11y-level-1-requirements.md, a11y-gap-report.md, and
src/frontend/... are repository-relative and work in CI and for other
developers.

In `@a11y-test-usage.md`:
- Around line 14-16: The three file links in a11y-test-usage.md currently use
absolute local paths; update the entries that reference
src/frontend/tests/fixtures.ts,
src/frontend/tests/utils/accessibility-checker.ts, and
src/frontend/.achecker.yml to use repository-relative paths (e.g., remove the
leading /Users/viktoravelino/projects/langflow/ prefix so the links point to
src/frontend/tests/fixtures.ts,
src/frontend/tests/utils/accessibility-checker.ts, and
src/frontend/.achecker.yml). Make the edit in the lines containing those links
so they work for other developers and CI.

In `@src/frontend/src/components/ui/__tests__/checkbox.a11y.test.tsx`:
- Around line 1-35: This Jest/RTL test file uses react-testing-library but must
follow the repo's Playwright frontend test standard: replace the two describe
blocks testing Checkbox and CheckBoxDiv with Playwright tests (or move/rename
this file out of the *.test.tsx frontend pattern if you intend to keep Jest).
Specifically, create Playwright tests that mount/render the Checkbox and
CheckBoxDiv components and assert (1) no a11y violations for Checkbox (use your
repo's axe/playwright helper or Playwright accessibility checks) and (2) that
Checkbox exposes role "checkbox" and is checked when passed checked, referencing
the Checkbox component; for the CheckBoxDiv case use Playwright's test.fail (or
mark as expected failure) and assert that it currently does not expose a
checkbox role/state, referencing CheckBoxDiv. Ensure the new tests live under
the Playwright test directory/naming convention (*.spec.ts or *.spec.tsx) and
remove or rename the original Jest file so it no longer matches the frontend
*.test.tsx pattern.

---

Nitpick comments:
In @.github/workflows/a11y-scan.yml:
- Around line 38-41: Update the Checkout Repository step (uses:
actions/checkout@v6) to explicitly set persist-credentials: false so the
GITHUB_TOKEN is not left available to later steps; locate the checkout step in
the workflow and add the persist-credentials: false key under its with: block to
disable credential persistence when no further pushes or private-repo access are
required.
- Around line 114-119: The workflow currently runs npm run a11y:report --silent
twice; capture its output once into a variable (e.g., REPORT_OUTPUT="$(npm run
a11y:report --silent)") before the summary block and then reuse that variable
when appending to $GITHUB_STEP_SUMMARY (echo "$REPORT_OUTPUT") instead of
calling npm run a11y:report --silent again; update the block around the ls check
and the code that appends to GITHUB_STEP_SUMMARY to use REPORT_OUTPUT and remove
the duplicate command invocation.
- Line 39: Replace the semantic version tags with pinned commit SHAs for each
GitHub Action usage to satisfy immutability/security requirements: update uses
entries for actions/checkout@v6, actions/setup-node@v18, github/super-linter@v5,
actions/upload-artifact@v4, actions/cache@v4 (and any other uses entries in this
workflow) to the corresponding commit SHA for the desired release; fetch the
exact commit SHA from the action repo (or release tag) and substitute the `@tag`
with @<commit-sha> so each uses: line is pinned to an immutable commit.

In `@a11y-gap-report.md`:
- Line 51: The table cell text "NEEDS TARGETED AUDIT" is awkward; replace it
with a clearer phrase like "REQUIRES TARGETED AUDIT" (or "NEEDS A TARGETED
AUDIT"/"TO BE AUDITED") in the two occurrences found for the Error Prevention
criterion (`3.3.4`) and the other occurrence referenced at the second location;
update both instances so the table entries consistently use the chosen phrasing.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 6d0bf27e-33ac-4160-9739-45ad5f7cecaf

📥 Commits

Reviewing files that changed from the base of the PR and between 8ee3493 and 66318cf.

⛔ Files ignored due to path filters (1)
  • src/frontend/package-lock.json is excluded by !**/package-lock.json
📒 Files selected for processing (18)
  • .github/workflows/a11y-scan.yml
  • a11y-action-plan.md
  • a11y-gap-report.md
  • a11y-level-1-requirements.md
  • a11y-test-usage.md
  • docker/build_and_push.Dockerfile
  • docker/build_and_push_ep.Dockerfile
  • docker/build_and_push_with_extras.Dockerfile
  • src/frontend/.achecker.yml
  • src/frontend/package.json
  • src/frontend/src/components/ui/__tests__/checkbox.a11y.test.tsx
  • src/frontend/src/setupTests.ts
  • src/frontend/src/utils/a11y-test.ts
  • src/frontend/tests/core/unit/chatInputOutput.spec.ts
  • src/frontend/tests/fixtures.ts
  • src/frontend/tests/utils/accessibility-checker.ts
  • src/frontend/tests/utils/aggregate-a11y-reports.mjs
  • src/frontend/tests/utils/types.ts

Comment thread .github/workflows/a11y-scan.yml Outdated
Comment thread a11y-gap-report.md Outdated
Comment thread a11y-test-usage.md Outdated
Comment thread src/frontend/src/components/ui/__tests__/checkbox.a11y.test.tsx
@github-actions

github-actions Bot commented Jun 10, 2026

Copy link
Copy Markdown
Contributor

Frontend Unit Test Coverage Report

Coverage Summary

Lines Statements Branches Functions
Coverage: 44%
44.14% (59466/134705) 69.43% (8100/11665) 42.6% (1349/3166)

Unit Test Results

Tests Skipped Failures Errors Time
5083 0 💤 0 ❌ 0 🔥 16m 16s ⏱️

@Adam-Aghili Adam-Aghili left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Change base from 1.10.0 to 1.11.0

Comment thread .github/workflows/a11y-scan.yml
Comment thread .github/workflows/a11y-scan.yml Outdated
Comment thread src/frontend/src/utils/a11y-test.ts
Comment thread src/frontend/tests/utils/accessibility-checker.ts
Comment thread src/frontend/tests/fixtures.ts
@viktoravelino
viktoravelino changed the base branch from release-1.10.0 to release-1.11.0 June 12, 2026 13:49
@github-actions github-actions Bot added enhancement New feature or request and removed enhancement New feature or request labels Jun 24, 2026

@Adam-Aghili Adam-Aghili left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Didn't look through every spec file but this is a pretty good first steps

This is possibly out of scope for this PR because the way we do dark/light mode is kind of inconsistent doesn't allow for this but can we have the fixture always go through both instead of having to repeatedly define dark/light mode in each test?

or even have it be like
await page.runA11yScan("homepage", { colorScheme: "light" });
await page.runA11yScan("homepage", { colorScheme: "dark" });

Comment thread .github/workflows/a11y-scan.yml
Comment thread .github/workflows/a11y-scan.yml Outdated
Comment thread src/frontend/tests/fixtures.ts
@github-actions github-actions Bot removed the lgtm This PR has been approved by a maintainer label Jun 25, 2026
* feat: add accessibility scan reports

* docs: add a11y scan route map

* test(a11y): add manifest-backed scans

* ci(a11y): summarize scans by route
@github-actions github-actions Bot added enhancement New feature or request and removed enhancement New feature or request labels Jun 25, 2026
@github-actions github-actions Bot added enhancement New feature or request and removed enhancement New feature or request labels Jun 25, 2026
@github-actions github-actions Bot added enhancement New feature or request and removed enhancement New feature or request labels Jun 25, 2026
@github-actions github-actions Bot added enhancement New feature or request and removed enhancement New feature or request labels Jun 25, 2026

@Adam-Aghili Adam-Aghili left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

LGTM it is up to you if you rather fix the spcs to use the new runA11yScan options now or fix it as you go.

@viktoravelino

Copy link
Copy Markdown
Collaborator Author

LGTM it is up to you if you rather fix the spcs to use the new runA11yScan options now or fix it as you go.

We will fix as we go, a lot of the specs are going to be redone. I dont want to bloat this PR.

@github-actions github-actions Bot added the lgtm This PR has been approved by a maintainer label Jun 25, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request lgtm This PR has been approved by a maintainer

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants