Developer-first accessibility

WCAG testing that lives in your CI.

Scan your sites with npm. Automate testing in CI/CD. Access scan results via REST API. Catch WCAG violations before they ship.

terminal
_

REST API

Scan Programmatically with Our REST API

Send a POST request and get structured accessibility data back. Every scan, issue, and report is available via the API.

request.js
const res = await fetch(
  "https://api.allyshield.net/v1/scans",
  {
    method: "POST",
    headers: {
      "Authorization": "Bearer sk_live_...",
      "Content-Type": "application/json"
    },
    body: JSON.stringify({
      url: "https://example.com",
      standard: "wcag22aa",
      depth: 3
    })
  }
);
response.json
{
  "id": "scan_9f8k2x",
  "url": "https://example.com",
  "score": 94,
  "issues": {
    "critical": 0,
    "moderate": 2,
    "minor": 5
  },
  "standard": "WCAG 2.2 AA",
  "duration_ms": 8420
}

CI/CD INTEGRATION

Catch Issues Before They Ship

Add AllyShield as a step in your pipeline. Block deploys that fail your accessibility threshold.

G
GitHub Commit
B
Build
A
AllyShield Scan
D
Deploy
AllyScore85/100
0 critical3 moderate
\u2713 Deploy approved

CATCH IT BEFORE IT SHIPS

Regression detection, keyboard audits, mobile targets.

The boring bugs that crash screen-reader users mid-flow — the ones axe-core alone won't catch — are exactly where AllyShield earns its keep.

/SCANS/[ID]/COMPARE

Before / after deltas on every scan

One click shows which rules are newly failing since your last scan and which ones you fixed. Lives at /scans/[id]/compare and is linked from every completed scan.

  • Score delta per severity
  • New vs fixed issue lists
  • Per-rule drill-down
KEYBOARD

Playwright-driven keyboard audit

A real browser tabs through the page and records where focus goes. We flag the traps, missing skip links, and invisible focus indicators that cause user rage reports.

  • allyshield-kbd-focus-trap
  • allyshield-kbd-skip-link-missing
  • allyshield-kbd-no-focus-indicator
  • allyshield-kbd-tab-order-mismatch
MOBILE

44×44 touch target audit

The mobile viewport scan measures every focusable element's bounding box and flags anything too small to hit comfortably with a thumb.

  • Runs at 375×812
  • WCAG 2.5.5 coverage
  • allyshield-touch-target-small
Embed your AllyScore badge →

DEVELOPER TOOLS

Tools for Every Workflow

From terminal to IDE, we meet you where you work.

>

npm CLI

Install globally and scan from your terminal. Tests against 200+ WCAG 2.1 & 2.2 checks plus custom rules you define — minimum touch targets, attribute checks, content patterns, and more.

{ }

REST API

Programmatic access to scans, results, and reports. JSON responses with full pagination.

GH

GitHub Actions

Drop-in workflow action. Fail PRs that introduce new accessibility violations.

</>

VS Code Extension

Real-time accessibility hints as you code. Inline warnings with one-click fixes.

<<

Webhooks

Push scan results to Slack, PagerDuty, or any HTTP endpoint in real time.

npm

npm Package

Import as a module in Node.js. Ideal for custom test harnesses and build scripts.

CODE EXAMPLES

See It in Action

Get started in minutes with your language of choice.

const res = await fetch("https://api.allyshield.net/v1/scans", {
  method: "POST",
  headers: {
    "Authorization": "Bearer YOUR_API_KEY",
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
    url: "https://example.com",
    standard: "wcag22aa"
  })
});
const data = await res.json();
console.log(data.score); // 94

Start building with AllyShield.

Get your free API key and ship accessible products from day one. No credit card required.

Get your API key →Read the docs