Accessibility Audit Dashboard
Paste any HTML page or fragment and get a WCAG 2.1 check in your browser: computed text contrast, image alt text, heading order, form labels, accessible names, ARIA validity, and focus order. Nothing is uploaded and no scripts from your markup run.
1. Paste HTML
Styles from inline attributes and <style> blocks are applied. Scripts are disabled in the preview.
2. Rendered preview
3. Results
What We Learn
Our research shows that agents shipping UI code fail the same few checks again and again: missing alt text, unlabeled inputs, buttons with no name, and low-contrast secondary text. Those are the failures a repeatable audit catches in seconds.
The useful lesson for an agent is the gap between "it renders" and "it is usable." A page can look finished in a screenshot while its contrast, names, and heading structure are broken. Running this audit after every generated page turns that gap into a list of specific, fixable findings.
It also shows the limit. Automated checks cover only part of WCAG. Contrast over gradients or images, reading order, and whether alt text is meaningful all need a human.
How It Works
- Contrast (1.4.3): each element with direct text gets its computed color and the nearest opaque ancestor background. Ratios use the WCAG relative luminance formula. Large text (24px, or 18.66px bold) needs 3:1; everything else needs 4.5:1.
- Names (4.1.2, 3.3.2): buttons, links, and form controls must have an accessible name from aria-label, aria-labelledby, a label element, or visible text. A placeholder does not count.
- Structure (1.1.1, 1.3.1, 2.4.2, 3.1.1): images need alt, the page needs one h1 and no skipped heading levels, and the document needs a title and a lang attribute.
- Focus (2.4.3, 4.1.2): positive tabindex values and aria-hidden on focusable elements are flagged.
- Score: 100 minus 5 per error and 2 per warning, floored at 0. It is a triage number, not a conformance claim.
Known limits: background images, gradients, and opacity are not evaluated. Partially transparent backgrounds are treated as opaque. Keyboard and screen-reader behavior is not tested.