
I build web apps and I always mean to audit accessibility before shipping, and I never do. axe-core...
title: Audit WCAG 2.1 accessibility on every pull request (free GitHub Action) published: true description: tags: accessibility, github, webdev, devops
I build web apps and I always mean to audit accessibility before shipping,
and I never do. axe-core DevTools is great but it's a browser extension
I have to remember to open. So I built the thing I actually wanted:
a GitHub Action that runs axe-core on every PR and fails the job if it
finds serious violations.
on: pull_request
jobs:
a11y:
runs-on: ubuntu-latest
permissions: { contents: read, pull-requests: write }
steps:
- uses: jpatel3/a11yscout@v1
with:
urls: https://your-preview-url.example.com
level: AA
fail-on: serious
That's it. You'll get a PR comment like:
3 violations (2 critical, 1 serious)
button-name— Buttons must have discernible text (WCAG 4.1.2 A)image-alt— Images must have alternative text (WCAG 1.1.1 A)link-name— Links must have discernible text (WCAG 2.4.4 A)
axe-core reports violations by CSS selector — button.sc-dkPtRN — which
is useless. a11yscout ships an optional Vite plugin that makes the
violations say src/components/Button.tsx:12:4 instead:
import { a11yscout } from "@a11yscout/vite-plugin";
export default defineConfig({
plugins: [react(), a11yscout()],
});
The plugin injects a data-a11yscout-src attribute at build time, and the
scanner reads it back.
It's day one. Feedback welcome — especially on which framework plugin to
build next.
gemmaI ported the whole Gemma-4 family — E2B, E4B, 12B, 31B, and the 26B-A4B MoE — to run on...
communityHey DEV, I'm Tobore. Let's actually connect. I've been on here for a while now, mostly writing and...
ai(yep, kinda clickbait, just for the funsies 😊) At the beginning of the year, I relaunched my...
aiMy laptop was sitting idle with the fan at full tilt. Nothing was running that I knew of. The culprit...
githubactionsI Built a Thing! TL;DR — Google Gemini-based Pull Request reviews and Issue Triaging for...
aiI've been hearing the word "harness" thrown around a lot lately. I assumed it just meant "the IDE" or...
Workflows from the Neura Market marketplace related to this CoPilot resource