{"uid":"cap_hEuJv-EBa378_hfjy_P5c","slug":"agentstools-a11y-preflight-static-accessibility-checker-121281b9","name":"AgentsTools A11y Preflight – Static Accessibility Checker","description":"Static accessibility (WCAG 2.2) check of a UI markup fragment for JSX, TSX, Vue, Angular or HTML. Detects missing image alt, unlabeled form controls, buttons and links with no accessible name, skipped heading levels, invalid ARIA, non-interactive click handlers, duplicate ids, positive tabindex and low static colour contrast. Returns a pass, caution or block verdict with per-finding WCAG criterion, element and line. Accessibility indicators, not a legal compliance guarantee.","url":"https://api.agentstools.dev/a11y/preflight","method":"POST","headers":{},"bodySchema":{"type":"object","properties":{"level":{"enum":["A","AA"],"type":"string","description":"WCAG conformance level to check (default AA)"},"theme":{"type":"object","description":"Alias of palette"},"markup":{"type":"string","description":"The UI markup fragment or component to check"},"palette":{"type":"object","description":"Optional name-to-colour map for static contrast (e.g. CSS variables / theme tokens)"},"framework":{"enum":["auto","html","jsx","tsx","vue","angular"],"type":"string","description":"Source framework (default auto-detect)"}}},"responseSchema":null,"example":null,"exampleRequest":null,"tags":["x402"],"displayCostAmount":"0.02","displayCostAsset":"USDC","priceDynamic":false,"priceHint":null,"priceStatus":"priced","priceSource":"probe","requiresHandshake":false,"reviewCount":0,"rating":{"score":"0.00","successRate":"0.00","reviews":0,"stars":null,"state":"unrated"},"availabilityStatus":"unknown","priceObserved":null,"sessionDeposit":null,"pricing":{"kind":"static","summary":"$0.02/call","primary":{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.02","per":"call","confidence":"exact"},"accepted":[{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.02","per":"call","confidence":"exact"}]},"paymentMethods":[{"uid":"pm_U4LIys6P_x4VpWPkrN1cV","protocol":"x402","methodType":"crypto","chain":"base","mode":"charge","costAmount":"0.02","costPer":"request","priority":0,"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","unit":"request","depositMicros":null,"planRef":null}],"brandName":null,"brandSlug":null,"brandBaseUrl":null,"brandDocsUrl":null,"whatItDoes":"Runs a static WCAG 2.2 accessibility check on a UI markup fragment (HTML, JSX, TSX, Vue, or Angular) and returns pass/caution/block verdicts with per-finding WCAG criterion, element, and line number.","exampleAgentPrompt":"Can you run a WCAG AA accessibility check on this JSX component I'm about to paste — flag any missing alt text, unlabeled inputs, invalid ARIA, or low-contrast issues, and tell me which WCAG criterion each problem hits and on which line?","exampleUseCases":[{"title":"PR gate for React component accessibility","prompt":"Before we merge this pull request, run a WCAG AA static accessibility check on the following JSX snippet and block the merge if you get a 'block' verdict — show me every finding with its WCAG criterion and line number."},{"title":"Design token contrast validation","prompt":"I have a Vue component that uses CSS variable names like --color-primary and --color-bg — here's the markup and here's my theme palette map. Check it for low-contrast issues at WCAG AA level using those token values."},{"title":"Angular template audit for missing ARIA labels","prompt":"Audit this Angular template for WCAG A conformance issues, specifically looking for unlabeled form controls, buttons with no accessible name, invalid ARIA attributes, and any skipped heading levels — give me a verdict and per-line findings."}],"resultDescription":"A structured response containing an overall verdict (pass, caution, or block) and a list of per-finding objects each specifying the WCAG criterion violated, the element involved, the line number in the submitted markup, and a description of the issue. Note: results are accessibility indicators, not a legal compliance guarantee.","failureModes":["Malformed or non-parseable markup returns an error or empty findings","Auto-detect framework may misidentify ambiguous markup — use the `framework` enum to force the correct parser","Dynamic/runtime accessibility issues (e.g. focus management, live regions) are not detectable by static analysis","Color contrast can only be checked for colors resolvable at static analysis time; CSS variables require a `palette` map to be supplied","WCAG level defaults to AA if not specified — A-only checks require explicit `level` parameter"],"whenToPreferThis":"Choose this endpoint when you need a fast, cheap ($0.02/call) static accessibility pre-check integrated into a CI/CD pipeline, code review agent, or design-to-code workflow across JSX, TSX, Vue, Angular, or plain HTML. Prefer it over full browser-based audits (e.g. Axe, Lighthouse) when you want zero runtime dependency, instant feedback on a fragment rather than a full page, and structured machine-readable findings with WCAG criterion references that an agent can act on programmatically.","instructions":null,"reviewSummary":null,"reviewSummaryHighlights":null,"reviewSummaryConcerns":null,"reviewSummaryGeneratedAt":null,"activationCount":0,"lastUsedAt":null,"lastSuccessfullyRanAt":null,"lastHealthCheckAt":"2026-09-15T06:57:27.253Z","isFirstParty":false}