Accessibility Structure Auditor
Review role and name clues, form labels, headings, and estimated keyboard order in pasted static HTML. Use source positions to investigate findings, then test the real page in a browser with assistive technology.
Key features
- Inspect aria-labelledby, aria-label, explicit and wrapping labels, alt text, and content name clues
- Flag duplicate IDs, broken name references, unnamed controls, and missing image alt
- Distinguish hidden elements from focusable elements inside aria-hidden regions
- List estimated keyboard order from positive tabindex values and ordinary DOM order
- Show heading-level gaps and a semantic outline with source line and column
- Download a local JSON report without the complete HTML source
How to use
- Paste page HTML or load and edit the included example.
- Run the audit and inspect each finding's source line and column.
- Switch between semantic outline and estimated tab order to review roles and names.
- Optionally save JSON, then manually test the rendered page with a browser, keyboard and screen reader.
Use cases
- Find a form input that has only a placeholder instead of an associated label.
- Spot a duplicate ID that makes an aria-labelledby target ambiguous.
- Find a keyboard-focusable button in an aria-hidden section.
- Review where positive tabindex changes source order.
Frequently asked questions
Is this the browser's actual accessibility tree?
No. This is a source-only outline based on a limited subset of HTML and ARIA rules parsed with parse5. It cannot inspect computed CSS, JavaScript changes, Shadow DOM, platform accessibility APIs or screen reader output.
Does a report without warnings mean WCAG compliance?
No. Automated checks can identify only some structural clues. Real keyboard interaction, visible focus, content meaning, contrast and assistive technology use require manual testing. This tool does not certify WCAG conformance.
How is an accessible name estimated?
Within its supported scope, it examines aria-labelledby, aria-label, explicit and wrapping labels, alt text, button/link content and title. This is not the complete Accessible Name algorithm, so browsers may compute a different name.
Is the listed tab order the actual keyboard behavior?
The estimate puts positive tabindex values first in ascending order, followed by ordinary focusable elements in source order. CSS layout, closed details, script-driven focus and browser interactions are not modeled. Verify by pressing Tab on the real page.
When are empty alt and aria-hidden problems?
An empty alt can be appropriate for a decorative image, so it is different from a missing alt attribute. A focusable element inside aria-hidden is flagged for review, but actual DOM and script state should be checked.
Is my HTML sent to a server?
No. Pasted source is processed in browser memory and is never rendered or used to visit external URLs. A JSON report you choose to save may include extracted names, IDs and positions; inspect it before sharing.
Privacy
HTML is processed in this page's browser memory. The tool does not upload, fetch URLs, or persist the source. A downloaded JSON report omits the complete HTML but may contain extracted names and IDs.
Comments & questions