Skip to content

Add Lighthouse CI accessibility audit (min score 90)#1022

Open
Joyyyb wants to merge 2 commits into
StellarCheckMate:mainfrom
Joyyyb:feature/lighthouse-ci-accessibility
Open

Add Lighthouse CI accessibility audit (min score 90)#1022
Joyyyb wants to merge 2 commits into
StellarCheckMate:mainfrom
Joyyyb:feature/lighthouse-ci-accessibility

Conversation

@Joyyyb

@Joyyyb Joyyyb commented Jun 30, 2026

Copy link
Copy Markdown
Contributor

Closes #907


Issue

There is no automated check to enforce a minimum accessibility score on the frontend, so regressions can be merged without notice.

Acceptance Criteria:

  • Add a Lighthouse CI step to the frontend CI workflow
  • Set minimum accessibility score threshold to 90
  • CI fails if the score drops below the threshold
  • Add lighthouserc.js or equivalent config to the frontend/ directory

Files: frontend/lighthouserc.js, .github/workflows/


Summary

Resolves the missing automated accessibility regression check on the frontend.

Changes

  • frontend/lighthouserc.js — Lighthouse CI config that:

    • Serves the built frontend/dist/ via staticDistDir
    • Asserts a minimum accessibility score of 0.9 (90%)
    • Uploads results to temporary-public-storage for review
  • .github/workflows/ci.yml — New lighthouse-accessibility job that:

    • Checks out the repo and sets up Node 20
    • Runs npm ci and npm run build in the frontend/ directory
    • Executes @lhci/cli@0.14.x autorun to run the audit
    • Fails CI if the accessibility score drops below 90

Acceptance Criteria

  • Lighthouse CI step added to the frontend CI workflow
  • Minimum accessibility score threshold set to 90
  • CI fails if the score drops below the threshold
  • lighthouserc.js config added to the frontend/ directory

Joyyyb added 2 commits June 30, 2026 08:46
- Add frontend/lighthouserc.js configuring LHCI with a minimum
  accessibility score of 0.9 (90%) using staticDistDir to serve
  the built frontend/dist/ directory
- Add lighthouse-accessibility job to .github/workflows/ci.yml
  that installs deps, builds the frontend, then runs @lhci/cli
  autorun; CI fails if the accessibility score drops below 90
Rust (Test job):
- contracts/escrow/src/tests/events.rs: add missing Ledger trait import
  so set_sequence_number() is in scope
- contracts/escrow/src/tests/token_allowlist.rs: remove spurious & borrow
  in assert_eq! calls (Address returned by value, not by reference)
- contracts/escrow/src/lib.rs: add missing is_allowlist_enforced() public
  method called by token_allowlist tests

Check API References:
- scripts/check_api_refs.sh: add oracle-service helper names (fetch_game,
  validate_game_id, platform_name, verify_game_result, fetch_with_backoff,
  new_with_result, create_client, get_snapshot, as_millis, as_ref,
  from_millis, is_ok, is_some, ok_or) to EXCLUDE list — these appear in
  illustrative Rust code blocks in docs, not as contract public functions

TypeScript / Lighthouse build (frontend):
- WalletConnector.tsx: fix import path ../wallets/types -> ../../wallets/types
- matchFilterService.ts: change to import type for MatchSummary, MatchFilters
- useMatchFilters.ts: change to import type for MatchSummary, MatchFilters
- useBalance.ts: remove unused SorobanRpc and Asset imports
- analyticsService.ts: cast through unknown to fix TS2352 on MatchSummary
- WalletErrorBoundary.test.tsx: Thrower return type void -> never
- WalletConnector.test.tsx: remove unused beforeEach and act imports
- albedo.test.ts: cast mock return value through any to satisfy
  PublicKeyIntentResult type
- vite.config.ts: import defineConfig from vitest/config instead of vite
  to include the test property in the type
@famvilianity-eng

Copy link
Copy Markdown
Contributor

please resolve conflicts

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add Lighthouse CI accessibility score check to frontend CI

2 participants