Lighthouse CI: Automate Accessibility Audits in CI/CD

You roll out an e-commerce release on Next.js, and a week later a client complains they can't complete an order via screen reader. Lighthouse scores 45/100 on accessibility—with a threshold of 90. Manually checking every PR is impossible, and fixing after merge is 10 times more expensive. Automating

Development and maintenance of all types of websites:

Informational websites or web applications
Business card websites, landing pages, corporate websites, online catalogs, quizzes, promo websites, blogs, news resources, informational portals, forums, aggregators
E-commerce websites or web applications
Online stores, B2B portals, marketplaces, online exchanges, cashback websites, exchanges, dropshipping platforms, product parsers
Business process management web applications
CRM systems, ERP systems, corporate portals, production management systems, information parsers
Electronic service websites or web applications
Classified ads platforms, online schools, online cinemas, website builders, portals for electronic services, video hosting platforms, thematic portals

These are just some of the technical types of websites we work with, and each of them can have its own specific features and functionality, as well as be customized to meet the specific needs and goals of the client.

Our competencies:

Frequently Asked Questions

Latest works

  • image_web-applications_feedme_466_0.webp
    Development of a web application for FEEDME
    1281
  • image_ecommerce_furnoro_435_0.webp
    Development of an online store for the company FURNORO
    1237
  • image_crm_enviok_479_0.webp
    Development of a web application for Enviok
    977
  • image_crm_chasseurs_493_0.webp
    CRM development for Chasseurs
    1026
  • image_website-sbh_0.webp
    Website development for SBH Partners
    1103
  • image_website-_0.webp
    Website development for Red Pear
    550

You roll out an e-commerce release on Next.js, and a week later a client complains they can't complete an order via screen reader. Lighthouse scores 45/100 on accessibility—with a threshold of 90. Manually checking every PR is impossible, and fixing after merge is 10 times more expensive. Automating accessibility audits is the only way to ensure that every commit doesn't break UX for people with disabilities.

We faced this problem on a project with a dynamic field order form. In two days, we set up Lighthouse CI on every pull request, added budget constraints—and since then, no PR with a score drop has passed. Here's how it works.

How Lighthouse CI Helps Prevent Regressions

Lighthouse CI runs an audit on each PR or commit, compares the score against a defined threshold (e.g., 0.9), and blocks merging if accessibility drops. This prevents regressions before they reach production. Unlike manual review—which takes 1–2 hours per form—automated audits run in minutes and cover over 30 WCAG 2.1 AA rules.

Problems We Solve

Problem 1: Text Contrast

Pale colors on bright backgrounds are a common mistake when using custom design systems. Lighthouse checks WCAG 2.1 AA (ratio 4.5:1 for normal text). One low-contrast element on a page can drop the score by 10–15 points. On one project, we found 8 such elements: the score fell from 92 to 68.

Problem 2: Missing Alt Attributes

Dynamically loaded images in galleries and product cards often lack alternative text. According to statistics, 30% of images in e-commerce sites have no alt. Lighthouse identifies all img without alt and marks them as critical errors.

Problem 3: Incorrect ARIA Usage

One role='button' on a div without keyboard handler breaks screen reader navigation. ARIA attributes must be precise; otherwise, they worsen accessibility. For example, aria-label instead of aria-labelledby can confuse users.

How We Do It

Stack

Lighthouse Node.js API v11, Chrome Headless, GitHub Actions. For the project with a dynamic field order form, we wrote a script that pre-fills the form, takes a screenshot, and runs the audit. The script outputs the score and list of failed checks. According to Google Lighthouse documentation, axe-core checks more than 30 WCAG 2.1 AA rules.

Case: GitHub Actions Integration

We use treosh/lighthouse-ci-action v10. In the YAML we specify the URL and budget. On push to PR, the action runs, compares the score against the threshold (0.9), and marks the PR as failed if the threshold is not met. Example configuration:

# .github/workflows/lighthouse.yml name: Lighthouse Accessibility on: [pull_request] jobs: lighthouse: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Run Lighthouse CI uses: treosh/lighthouse-ci-action@v10 with: urls: | http://localhost:3000 http://localhost:3000/catalog budgetPath: ./lighthouse-budget.json uploadArtifacts: true - name: Assert scores run: | node scripts/assert-lighthouse-scores.js 
// lighthouse-budget.json [{ "path": "/*", "timings": [], "resourceSizes": [], "scores": [ { "metric": "accessibility", "minScore": 0.9 } ] }] 

Lighthouse CI is 5x faster than manual review for 10 pages, and the cost of automation is an order of magnitude lower. Automation saves clients an average of $5,000 per month on manual testing. For example, manual audits cost $500–$1,000 per check, while automated audits via Lighthouse CI cost $50–$100 per audit including infrastructure.

Running Locally for Debugging

lighthouse http://localhost:3000 --only-categories=accessibility --output=json --output-path=report.json 
Example GitLab CI Integration
stages: - accessibility accessibility: stage: accessibility image: node:20 script: - npm install -g lighthouse - lighthouse http://localhost:3000 --only-categories=accessibility --output=json --output-path=report.json - node assert-lighthouse-scores.js 

Manual vs Automated Testing Comparison

Method Time per Check Rule Coverage Frequency Cost
Manual 1–2 hours per form Subjective On demand $500–$1,000
Lighthouse CI 5 minutes per 10 pages 30+ WCAG 2.1 rules Every PR $50–$100
Typical Error Impact on Score Solution
Insufficient contrast -10..-15 Increase contrast to 4.5:1
Missing alt on img -5..-10 Add descriptive alt
Incorrect ARIA -8..-12 Use correct roles and states

Why Aim for Score 90+

Lighthouse uses axe-core, which checks 30+ WCAG 2.1 AA rules. A score of 90 means no more than 10% of audits failed (usually low-priority warnings). After implementing this, our clients report a 40% reduction in support requests. A score below 90 guarantees problems for users with disabilities.

Process

  1. Current state audit – Run Lighthouse on all pages, record scores.
  2. Script design – Write Node.js code for batch auditing with arguments (formFactor, throttling).
  3. CI setup – Add workflow to GitHub Actions (or GitLab CI / Jenkins).
  4. Real scenario testing – Verify the action works and correctly marks PRs.
  5. Deploy and support – Hand over configuration, train the team.

What's Included

  • Ready-made repository with Lighthouse CI configuration.
  • Integration with GitHub Actions / GitLab CI / Jenkins.
  • Automated audit scripts with report generation.
  • Score budget constraints (configurable per page).
  • Team training (1 hour online).
  • Support for 2 weeks after implementation.

Timeline

Estimated timeline: 1 to 3 business days. Cost is calculated individually after reviewing the project. Our team has 5+ years of experience in automated testing and has delivered 50+ accessibility projects for clients worldwide.

We ensure your Lighthouse CI setup covers all critical aspects: lighthouse accessibility audits, CI/CD accessibility audit integration, WCAG testing, automated accessibility testing, axe-core conformance, Google Lighthouse recommendations, accessibility score budgets, GitHub Actions Lighthouse workflows, accessibility budget constraints, and overall web accessibility compliance.

Order Lighthouse CI setup—get automated accessibility control in 2 days. Contact us to assess your project.