Skip to content
Back to blog

Blog

Deep Dive: Web Accessibility Audits with AI

4 min
Table of Contents

How I use tools like axe-core, AccessLint, and Deque AI to ship more inclusive websites


If you’ve ever squinted at a high-contrast toggle, tried to tab through a site and got lost, or found yourself clicking blindly through a dropdown with no feedback — congrats, you’ve experienced poor accessibility first-hand.

As developers, we often focus so much on performance, aesthetics, and clean code that we forget a core truth: not everyone interacts with the web the same way. That’s where accessibility — or A11y — comes in.

Over the past year, I’ve started making accessibility a default part of every project I work on. But manually checking every contrast ratio or keyboard state is painful. Luckily, we’ve got a growing suite of tools — some even powered by AI — to make the process smoother, smarter, and even automated.

This blog is a full deep dive into how I approach accessibility audits using AI-powered tools, scorecards, and DevOps integrations. No fluff — just clear steps, tools, code snippets, and checklists you can steal, lol.


Why Accessibility Matters More Than Ever

Let’s be real — accessibility has been the “right thing to do” for years, but it hasn’t always been taken seriously. In 2025, that’s changing fast:

  • Lawsuits & legal standards: Countries are now enforcing WCAG 2.1/2.2 compliance.
  • Search engines care: Google’s Core Web Vitals and Lighthouse scores reward accessible design.
  • Real people are impacted: Over 1 billion people live with disabilities globally. You’re building for them, too.

But beyond those reasons, I’ve found that accessible websites are just better websites — they’re cleaner, more usable, and easier to maintain.


Manual vs Automated Audits

Traditionally, accessibility audits were mostly manual:

  • Inspect the DOM for semantic tags
  • Tab through each screen manually
  • Use tools like Colour Contrast Analyzer
  • Hope you didn’t miss anything

This is important, but also time-consuming — and honestly, easy to skip when you’re under a deadline.

Now, we’ve got tools that combine static code analysis, AI heuristics, and in-browser simulations to find issues fast and at scale.


My Accessibility Audit Stack

Here’s the exact stack I use when auditing projects (especially Next.js or React apps):

1. axe-core

By far my favourite tool. You can run it via:

  • Browser extension (Chrome, Firefox): Gives a quick scan of any page with detailed issue breakdowns.
  • CLI: Use @axe-core/cli to scan static files or live URLs.
  • CI/CD integration: Plug into GitHub Actions or custom pipelines.
npx axe https://yourwebsite.com --save results.json

💡 Bonus: It also gives links to specific WCAG guidelines per issue.


2. WAVE (Web Accessibility Evaluation Tool)

Built by WebAIM. I like it because it gives visual feedback — it overlays issue icons directly on the page.

  • Helpful for spotting layout-related issues or things like missing headings.
  • Not AI-driven, but still excellent for manual review.

3. AccessLint

This is where it gets interesting.

  • Integrates directly with GitHub pull requests
  • Runs accessibility checks on your code, not just the DOM
  • Uses static analysis + AI to flag potential accessibility regressions early

Perfect for teams or solo devs who want to catch issues before merging to main.


4. Deque AI Tools

Deque’s tools (like axe DevTools Pro) now use AI to:

  • Suggest alt text based on image analysis
  • Auto-categorise issues and recommend fixes
  • Group similar problems to speed up triaging

Great for larger projects where you don’t want to scroll through 100+ individual issues.


Step-by-Step Audit Process (What I Actually Do)

Let’s walk through a real example: auditing a Next.js marketing site.


1. Run axe-core in the browser

I use the Chrome extension first:

  • Open DevTools → “axe” tab → Run scan

  • You’ll get a list of issues like:

    • “Elements must have sufficient color contrast”
    • “Form elements must have labels”
    • “Links must have discernible text”

It even highlights the DOM nodes directly. Quick, easy wins.


2. Run axe-core CLI in terminal

npx axe https://example.com --save results.json

This gives you a JSON file to parse or turn into a report. I usually convert this into a Notion checklist for teams.


3. Use AccessLint in PRs

Add AccessLint to your GitHub repo:

# .github/workflows/accesslint.yml
name: "AccessLint Check"
on: [pull_request]
jobs:
  accessibility:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - uses: accesslint/action@v1

It’ll add annotations right into your PR diffs.


4. Run WAVE for visual review

After fixes, I run WAVE to spot layout problems, landmark issues, or keyboard traps that the automated tools missed.


Sample Scorecard

I usually summarise findings like this:

Issue TypeCountFixedNotes
Missing alt text12✅Used AI suggestions from Deque
Poor colour contrast5✅Switched to accessible palette
Missing labels7✅Added aria-label
Keyboard traps2✅Fixed focus state with Tailwind

Fix Checklist: Common Errors

Here’s a table I keep reusing across projects — feel free to steal it:

❌ Issue✅ How to Fix
Missing alt textAdd alt="Description" or use aria-hidden="true" for decorative images
Contrast issuesUse accessible colour tools (e.g., Contrast Checker)
Non-descriptive linksReplace “click here” with meaningful text like “Read the blog”
No form labelsUse <label for="id"> or aria-label
Inaccessible buttonsAvoid div or span for buttons; use <button>
No skip linkAdd <a href="#main" class="skip-link">Skip to content</a>

CI/CD Integration: Accessibility in DevOps

This part is underrated.

Adding accessibility checks into CI/CD means:

  • No more “we’ll fix it later”
  • You break the build when A11y scores drop
  • You can track accessibility regressions just like performance or tests

Try this:

  • Add axe-core or Lighthouse CI to your GitHub Actions
  • Trigger alerts via Slack or email if scores drop below threshold
  • Include A11y score in PR templates
lighthouse https://yoururl.com --only-categories=accessibility --output=json

Accessibility is a Culture, Not a Task

I’ll be honest: I used to treat accessibility like a checklist item.

Now, it’s part of how I design components, review PRs, and even structure content.

AI helps massively — it reduces manual grind, catches patterns I miss, and fits cleanly into CI/CD pipelines.

But tools aren’t everything. You still need empathy — to imagine how someone might use a screen reader, or navigate without a mouse, or process content with cognitive challenges.

Accessible design = thoughtful design.


Resources & Downloads


In a Nutshell

If you’ve made it this far, you already care about accessibility — and that’s the first (and most important) step.

Start small: run a quick audit, fix a couple of contrast issues, add skip links. From there, let the tools (and the AI) help you scale.

And if you’ve got tips, tools, or war stories from your own audits — email me.

Let’s build better, more inclusive websites — together.