jank.ai
All test types Pricing Sign up free
Compliance · WCAG 2.2 mapped +0.05 to +0.40 credits/page

Accessibility / WCAG 2.2 audit.

A 7,000-line in-browser audit bundle runs five test modules directly against the live DOM, returning per-criterion pass/fail mapped to WCAG 2.2 Level A, AA, and (in deep mode) AAA. Output is a graded W3C-style evaluation report; deep mode also emits a VPAT 2.4 export for procurement.

What it does accessibility.js

After the page renders, we inject accessibility-bundle.js via Playwright's page.evaluate(). It walks the DOM and runs five independent checkers:

Each finding lists the failing CSS selector, the WCAG criterion violated (e.g. 1.1.1 Non-text Content), the level (A / AA / AAA), severity, and a suggested fix. Aggregated counts produce a star rating per level — ★★★★★ when everything passes, dropping one star per ~20% of criteria failing. The overall rating is the worst of the three levels.

Rating scale
★★★★★all criteria pass · no failures ★★★★☆up to 20% of criteria fail · minor ★★★☆☆20–40% of criteria fail · moderate ★★☆☆☆40–60% of criteria fail · major ★☆☆☆☆60%+ fail · critical · likely legal exposure

Two intensity modes:

What it finds

Real examples, mapped to WCAG criteria:

Coverage

Standards
WCAG 2.2 Level A + AA (basic), or A + AA + AAA (deep). Mapped per-criterion.
Output
W3C-style evaluation report + per-grade letter scores. Deep mode adds a VPAT 2.4 PDF/HTML export.
Breadth
Entire rendered DOM. Every interactive element gets contrast + label + keyboard checks.
Throughput
~12–25s per page basic, ~30–50s deep. Runs in-browser, no extra LLM call for the rule pass.

Sample finding

// One entry from report.accessibility.issues.AA[]
{
  "criterion":   "2.1.2 No Keyboard Trap",
  "level":       "A",
  "severity":    "high",
  "selector":    "#consent-modal button.accept-all",
  "detail":      "Tab cycles between the two consent buttons; Escape key does not\nclose the modal; no programmatic dismissal hook.  Keyboard-only\nvisitors must reload the page to leave the consent dialog.",
  "fix":         "Add a Cancel/Decline button focusable in the tab cycle, OR wire\nthe Escape key (keydown listener on the overlay) to programmatic close,\nOR add `role=dialog aria-modal=true` with an `aria-labelledby` heading\nand a close affordance.",
  "evidence":    ["DOM screenshot: consent-modal-trap.png"]
}

See also

UX perspective
Persona Feedback →
A keyboard / screen-reader user persona surfaces qualitative a11y findings that the rule audit can't see.
Foundation
Page Analysis →
Catches obvious a11y wins (missing alt, missing label) inline, before the dedicated audit phase.
Run a free WCAG audit → All seven test types