Image alternatives
Missing alt attributes and suspicious placeholder text in source; image-alt results after rendering.
Fix image alternativesThis website accessibility checker finds issues in source HTML and rendered content, with DOM evidence, WCAG references, and practical fixes.
Know what ran
This web accessibility checker evaluates a selected automated WCAG subset. Each finding keeps its evidence layer, rule identifier and next action; a missing observation stays unknown.
Missing alt attributes and suspicious placeholder text in source; image-alt results after rendering.
Fix image alternativesNames for inputs, textareas and select controls. Source labels and rendered accessible names may differ.
Fix a label associationDiscernible names for buttons, input buttons and links with destinations.
Fix an icon-only buttonPresence and language-tag syntax. Matching the actual language remains a human decision.
See a passing exampleHeading order, main landmark and rendered regions. Structural suggestions are advisory, not a conformance verdict.
Understand rule confidenceaxe checks text contrast where it can compute the foreground and background. Incomplete checks need review.
See a review itemIllustrative sample only. These are examples, not results from your website.
Evidence: Source HTML, #product-photo
<img id="product-photo" src="bag.jpg">Fix: Describe the informative image in alt text, or use an empty alt attribute if it is decorative.
WCAG 1.1.1: Non-text contentEvidence: Interactive keyboard navigation was not tested by this scan.
Next action: Tab through the page and open its dialogs. Verify visible focus, a sensible order and a way to leave every component.
WCAG 2.1.1: KeyboardEvidence: Source HTML includes a non-empty language attribute.
<html lang="en">Boundary: A declared language does not prove that it matches the content or that language changes are marked.
WCAG 3.1.1: Language of pageSource HTML reveals what the server sent before JavaScript. Rendered DOM checks see the page after scripts have started running. A script can add a missing name or introduce a new unlabeled control. The report preserves both observations instead of hiding one behind a score.
The browser waits 500 ms after DOM content loads. It does not log in, submit forms, click controls or complete consent flows. Late content, shadow DOM, cross-origin frames and interactive states may need a local test. Matching selectors are evidence groups, not a claim of component identity across different DOM trees.
Rule catalog 2026-09-19.1, substantively reviewed . Source checks use the 2-UA source subset; the actual axe-core version is shown in each rendered report.
The rendered catalog includes image-alt, label, select-name, button-name, input-button-name, link-name, html-has-lang, html-lang-valid, heading-order, landmark-one-main, region and color-contrast. The source layer also flags generic or filename-like alternative text; region and contrast remain UNKNOWN in source.
Evidence is labelled observed or heuristic. We do not produce an overall accessibility score. WCAG references explain related criteria; heading and landmark advice alone does not establish a failed success criterion.
Read the WCAG 2.2 quick reference, axe-core methodology and limitations, and Accessibility Insights automated and tab-stop workflow.
Automation does not judge whether alt text is meaningful, captions are accurate or a full purchase flow works with a keyboard and screen reader. Every report includes a manual backlog covering these gaps, visible labels, focus order, error recovery, sensory meaning, zoom, reflow and target sizes.
Problem → evidence: An informative product photo has no alt attribute. Describe its relevant purpose, not its filename.
<img src="bag.jpg" alt="Blue canvas shoulder bag with a front pocket">For a purely decorative image, use alt="". The checker cannot make that editorial decision for you.
Problem → evidence: The email input has a placeholder but no associated label. A placeholder can disappear as the person types.
<label for="email">Email address</label>
<input id="email" name="email" type="email" autocomplete="email">Problem → evidence: A button contains an unlabeled icon. Add a name that explains the action.
<button type="button" aria-label="Close dialog">
<span aria-hidden="true">×</span>
</button>Retest the complete dialog with a keyboard; an accessible name does not fix focus management.
This tool returns a transient report in the response to your request. It does not save a public report, full page HTML or screenshot. Evidence snippets are truncated and escaped. No report URL is added to the sitemap, and result responses use noindex and private, no-store caching.
We request the submitted public page and its allowed resources. The target site will see requests from our infrastructure. Source fetches allow up to 6 redirects and 2 MB of decoded HTML. The browser is limited to 40 seconds, 80 resource requests, 2 MB per resource and 10 MB total resource bytes; only GET requests to public HTTP(S) addresses on standard ports are allowed. Compressed browser resources are rejected if the server ignores identity encoding.
Blocked resources or a 100-node evidence cap produce a visible partial result. Browser sessions are fresh, with no supplied credentials or persisted cookies. Query strings are omitted from displayed report URLs. Do not scan password-reset links, authenticated pages or URLs containing secrets.
Validation errors may temporarily retain submitted form values in your session so you can correct them. Operational request metadata and product events follow the privacy policy. Choosing monitoring explicitly saves continuation context under your account; it does not automatically save this transient report.
Yes. You can run a rate-limited public-page check without signing up. Project monitoring and crawl limits depend on your plan.
No. A pass belongs to a selected automated rule and one observed page state. It is not certification, a legal opinion or complete WCAG conformance. Manual evaluation remains necessary.
The scan does not persist page HTML, screenshots or a public report. The result lives in this response. Monitoring continuation saves the submitted URL and selected device context only when you choose that action. See the data boundaries above and the privacy policy for operational data.
Authenticated flows, states behind clicks, caption quality, the meaning of alt text, complete keyboard interaction and screen-reader usability are outside this automated scan. A consent banner or blocked resource can also change what the browser sees.
Scripts, computed styles, visibility and device-specific markup can change the result. The source checker and axe also implement different checks. Compare the evidence and rule scope rather than assuming a source-only issue is resolved.
Recheck after template, component, content, CSS or JavaScript changes, and before important releases. Use the same device profile and add manual regression checks for your critical user flows.
Use it as a server-side preflight with source and rendered evidence. A local tool is still useful for interactive states, inspecting the live page and working through manual checks. No single automated tool establishes full conformance.