Accessibility Structure Auditor

Accessibility Structure Auditor

Inspect semantic and keyboard-order clues in static HTML.

This does not read a browser accessibility tree. Computed CSS, dynamic rendering, Shadow DOM, actual keyboard and screen reader behavior, and WCAG conformance are outside this audit.

HTML input

Up to 512 KiB of UTF-8. HTML is never rendered here. The audit stops instead of returning a partial clean report after 20,000 parsed nodes, 4,000 outline items or 1,000 findings.

Paste HTML or load the example, then run the audit.

Reference specifications

Comments & questions

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

  1. Paste page HTML or load and edit the included example.
  2. Run the audit and inspect each finding's source line and column.
  3. Switch between semantic outline and estimated tab order to review roles and names.
  4. 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.

Related Tools

SEO HTML AuditorContrast CheckerResponsive Layout AuditorWasm Module InspectorHreflang Matrix CheckerAST Query PlaygroundContainer Build GraphDependency Graph ExplorerSemver Range LabCron Schedule AuditorPatch Review WorkbenchSource Map ExplorerLocalization Catalog AuditorStructured Data ReviewerHTTP Archive AnalyzerWebhook Signature LabProtobuf Schema WorkbenchGraphQL Schema LabAvro Schema EvolutionLocal SQL WorkbenchSchema Form BuilderMesh Repair WorkbenchPipe Network LabRobot Arm Kinematics LabThermal Network LabBeam Response LabGear Train DesignerTolerance Stackup LabSensor Calibration FitPCB Stackup PlannerDigital Filter DesignerNetwork Reachability MapSun Shadow MapGPS Error SimulatorDigital Logic SimulatorAnalog Circuit LabMechanism Linkage LabAnalysis Mesh GeneratorOpenAPI Contract InspectorDatabase Migration PlannerDimensional Equation CheckerTruss Force LabBoolean Minimization LabControl Response LabQueueing Simulation LabGeofence Event SimulatorCoordinate Reference LabSurvey Traverse LabRaster Classification LabChoropleth Design LabMap Print ComposerRaster Reprojection LabElevation Contour MakerTerrain Viewshed LabWatershed DelineatorMap Tile PackagerText File Encoding WorkbenchFilesystem Portability AuditorSBOM License ExplorerFile Signature Auditornpm Lockfile Conflict ResolverSource Secret AuditorOffline Web Package BuilderCertificate Chain InspectorTorrent Metainfo InspectorChunked File PackagerEncrypted File VaultDuplicate File FinderArchive WorkbenchDesign Token ManagerSpacing Token DesignerResponsive Type SystemPackaging Dieline DesignerSVG Icon Sprite PackerFlex Layout PlaygroundCSS Grid PlaygroundRegex Equivalence LabMarkdown Repository AuditorLog Template MinerEmail Template PreviewInternal Link GraphState Machine TesterPetri Net SimulatorGit History VisualizerCurl Request WorkbenchBinary Protocol DesignerHex File EditorBinary Patch WorkbenchFile Signature WorkbenchAPI Mock SandboxSchema Column MapperEvent Log SessionizerER Diagram DesignerTime Series Gap AuditorStratified Data SplitterData Lineage DesignerDecision Tree LabData Anonymization WorkbenchData Expectation RunnerJSON Schema ValidatorBasket Pattern AnalyzerRobots Policy TesterSyndication Feed WorkbenchIndexNow Payload BuilderCrawl Log AnalyzerCSP Policy WorkbenchSearch Performance AnalyzerCSV Formula Risk AuditorCORS Response SimulatorCache Header LabCookie Policy InspectorWeb Vitals Trace LabSitemap Health AuditorBatch File RenamerFile Manifest VerifierFolder Space MapFolder Difference ReviewerRoute Order OptimizerGeoJSON Map EditorPolygon Overlay LabCartographic Label PlacerSpatial Table JoinGeoJSON Topology AuditorGPX Track AnalyzerTrack Privacy RedactorCSV Table JoinCSV Pivot WorkbenchScientific Data ProfilerTabular Cleaning WorkbenchRecord ReconciliationData Dictionary BuilderCanonical Graph AuditorRedirect Plan TesterHTTP response and ping reference testBrowser and System InformationJSON ↔ YAML ConverterXML ↔ JSON ConverterHTML FormatterJavaScript MinifierMock Data Generator.gitignore GeneratorLicense GeneratorUser-Agent ParserPassword Strength CheckerCode to ImageXML FormatterHTTP Status Code LookupMIME Type LookupJS & SQL String EscapeCSS Box Shadow GeneratorCSS Gradient GeneratorIndent ConverterNumber Base ConverterUnicode Escape ConverterUnicode InspectorJSON Structure DiffMarkdown Table GeneratorBase64 EncoderJSON FormatterURL EncoderSQL FormatterCron Expression GeneratorRegex TesterUUID GeneratorHash GeneratorTimestamp ConverterJWT DecoderHTML Entity ConverterMarkdown PreviewCSS MinifierMeta Tag GeneratorJSON ↔ CSVCase ConverterImage to Base64
Explore all Dev Tools tools →Image/Media →Text/Convert →Life/Fun →