Accessibility
GET /api/v1/accessibility
A static WCAG / axe-core accessibility audit — alt text, form labels, ARIA validity, heading order, landmarks, lang and more. Colour-contrast and tap-target checks need rendering and aren't included.
Query parameters
| Name | Type | Description |
|---|---|---|
url required | string | The URL to audit. |
key | string | Your API key. Optional for light use; raises your rate limit. |
Request
Response
200 · application/json
- {
- "url": "https://example.com",
- "score": 56,
- "grade": "D",
- "summary": {
- "violations": 3,
- "critical": 4,
- "serious": 0,
- "moderate": 2,
- "minor": 0,
- "rulesChecked": 23
- },
- "note": "Static WCAG/axe subset — colour-contrast and tap-target checks need rendering and are not included.",
- "violations": [
- {
- "id": "label",
- "impact": "critical",
- "description": "Form fields must have labels",
- "count": 4,
- "nodes": [ { "snippet": "<input type=\"text\" name=\"q\">" } ]
- },
- {
- "id": "heading-order",
- "impact": "moderate",
- "description": "Heading levels should not skip",
- "count": 1,
- "nodes": [ { "snippet": "h2 → h4 skips a level" } ]
- }
- ]
- }
Response fields
| Field | Type | Description |
|---|---|---|
score | integer | 0–100, starting at 100 minus an impact-weighted penalty for each violation (critical hurts most, minor least). |
grade | string | Overall grade A–F derived from the score. |
summary.violations | integer | Number of distinct rules that failed. |
summary.critical | integer | Count of failing nodes with critical impact. |
summary.serious | integer | Count of failing nodes with serious impact. |
summary.moderate | integer | Count of failing nodes with moderate impact. |
summary.minor | integer | Count of failing nodes with minor impact. |
summary.rulesChecked | integer | How many rules were evaluated. |
note | string | Reminder that this is a static subset — colour-contrast and tap-target need rendering and aren't included. |
violations | array | One entry per failing rule. |
violations[].id | string | The axe / WCAG rule that failed (e.g. label, heading-order). |
violations[].impact | string | Severity: critical, serious, moderate or minor. |
violations[].description | string | Human-readable description of the rule. |
violations[].count | integer | How many nodes on the page violate this rule. |
violations[].nodes | array | Up to 10 offending elements, each with a snippet of the markup. |
For full rendered audits (Core Web Vitals), use Lighthouse. See Errors for status codes.