Use this repeatable accessibility audit workflow to combine browser-based developer tools, automated checks, keyboard testing, and manual review before a page or release goes live.
Overview
Web accessibility testing is most reliable when it is treated as a sequence of checks rather than a single scan. An accessibility checker online can identify useful signals, but it cannot determine whether every interaction makes sense, whether focus moves logically, or whether instructions are understandable to people using assistive technology.
A practical audit has four layers: automated inspection, keyboard testing, visual and content review, and targeted checks with assistive technology where appropriate. Run the same sequence on a representative set of pages instead of testing only the home page. Include a page with a form, a content-heavy page, a modal or menu, an authenticated view if relevant, and any key conversion or support flow.
Use the findings to create an issue log. Record the page or component, the observed problem, the expected behavior, the impact, the proposed fix, and the verification result. This makes accessibility part of normal development work rather than a one-time review.
Useful tools at a glance
| Tool or method | Best for | Important limitation |
|---|---|---|
| Automated accessibility scanner | Detecting common markup, labeling, heading, and contrast signals | Cannot judge every user flow or understand design intent |
| Browser DevTools | Inspecting the accessibility tree, computed styles, focus state, and responsive behavior | Requires interpretation and manual testing |
| Color contrast checker | Comparing foreground and background colors for text and interface elements | Does not prove that color is used clearly or that all states are covered |
| Keyboard-only review | Finding inaccessible controls, focus problems, and unusable dialogs | Does not represent every assistive technology experience |
| Screen reader review | Checking names, roles, states, reading order, and announcements | Results vary by browser, operating system, and screen reader |
Use these tools as complementary web utilities for developers. For related frontend troubleshooting, the CSS Layout Debugging Toolkit can help you inspect layout, units, and color behavior, while the Frontend CSS Utility Guide provides a broader workflow for responsive interfaces.
Checklist by scenario
Before testing a new page
- Identify the page purpose and its primary user task.
- List interactive elements: links, buttons, form fields, menus, dialogs, tabs, carousels, and custom controls.
- Confirm that the page has a meaningful title, a logical heading structure, and a clear main content area.
- Test the narrowest supported viewport and a larger viewport before relying on visual assumptions.
- Run an automated scan, but treat every result as a lead to investigate rather than a final verdict.
For keyboard accessibility testing
- Start at the top of the page and use Tab and Shift+Tab to move through interactive elements.
- Check that the visible focus indicator is easy to locate and remains visible against the surrounding design.
- Confirm that the focus order follows the reading and task order, not merely the position of elements on screen.
- Open and close menus, dialogs, date pickers, custom selects, and other widgets without a mouse.
- Check whether focus moves into a dialog when it opens and returns to a sensible trigger when it closes.
- Make sure no control creates a keyboard trap and that users can reach the browser or page controls after each interaction.
- Verify that links and buttons have clear, distinguishable purposes without depending only on color.
For forms and validation
- Associate every field with a visible, specific label.
- Group related controls, such as radio buttons, with an appropriate descriptive label or legend.
- Explain required formats before submission when possible.
- Submit the form with empty, incomplete, and invalid values.
- Check that errors identify the affected field, explain how to fix it, and are announced or discoverable without forcing users to search the page.
- Ensure that entered values are not unnecessarily erased after an error.
For images, media, and content
- Give informative images useful alternative text and mark purely decorative images appropriately.
- Check that links do not rely on vague labels such as “click here” when context is not available.
- Confirm that headings describe sections and do not exist only to create visual styling.
- Provide captions or transcripts where the content requires them.
- Review instructions, placeholder text, error messages, and status updates for clarity.
When an issue involves a component embedded in a larger application, test the full flow rather than an isolated snippet. Accessibility defects often appear at the boundaries between state changes, routing, validation, and visual styling. The Online JSON, YAML, and XML Tools are useful when reviewing structured configuration or test data that supports those flows, but never paste sensitive production data into an untrusted browser tool.
What to double-check
Color and visual presentation
Use a color contrast checker to compare text with its actual background, including gradients, images, overlays, hover states, disabled states, and error states. A commonly used WCAG 2 reference is a contrast ratio of at least 4.5:1 for ordinary text and 3:1 for large text. User-interface components and meaningful graphical objects are commonly reviewed against a 3:1 reference as well. Treat these values as checkpoints, not a substitute for judgment.
Do not communicate status through color alone. Pair color with text, an icon with a useful accessible name, a pattern, or another visible distinction. Also inspect the interface at increased text size and with altered display settings where your product requirements call for it. Text should not disappear, overlap, or become unusable when presentation changes.
Structure and semantics
Inspect the accessibility tree in browser DevTools and compare it with the visual interface. A custom control should expose an appropriate name, role, and state. A visually obvious heading should also be represented as a heading. If an element looks clickable but is implemented as a generic container, ask whether a native button or link would provide a safer foundation.
Assistive technology behavior
Use at least one screen reader and keyboard combination that reflects your supported environments. Listen for page titles, headings, landmarks, form labels, expanded and collapsed states, live updates, and dialog announcements. Test after JavaScript-driven changes, because a page that appears correct visually may fail to announce a new result or error.
Recording issues
A compact issue record can use this format:
Page or component:
User task:
Steps to reproduce:
Observed behavior:
Expected accessible behavior:
Impact and affected interaction:
Suggested fix:
Verification method:
Status and date:Include a screenshot or short recording only when it clarifies the problem. The written reproduction steps should remain sufficient for another developer or tester to verify the fix.
Common mistakes
- Relying on one automated score. A clean scan does not confirm usable keyboard navigation, understandable content, or correct behavior for every user flow.
- Testing only the default state. Menus, dialogs, validation messages, loading states, tooltips, and error screens need their own checks.
- Fixing contrast without checking focus. A compliant text color can still hide a focus outline or make a selected state unclear.
- Using ARIA to repair avoidable markup. Start with native HTML elements where they fit. Additional attributes should describe real behavior and states.
- Ignoring zoom and responsive layout. A layout can pass at its design width while clipping controls or creating horizontal scrolling at another size.
- Closing issues without regression coverage. Component changes can reintroduce missing labels, poor focus order, or inaccessible states on other pages.
- Sharing sensitive data with online tools. Browser-based utilities are convenient, but use synthetic or redacted content when inspecting private code, tokens, customer data, or internal URLs. For debugging workflows involving API formats and schemas, see the OpenAPI and API Schema Tools guide.
When to revisit
Run this audit before a public release, after a redesign, when a shared component changes, and whenever navigation, forms, authentication, or content structure is modified. Revisit it during seasonal planning cycles if that is when your team reviews quality and regression coverage. Repeat the checks after browser, framework, design-system, or testing-tool changes because the workflow and available diagnostics may change over time.
For an efficient regression pass, keep a small set of representative URLs and critical user journeys in version control. Assign each check an owner, date, environment, and result. Start every review with automated inspection, then manually test the changed components and the flows most likely to be affected. Finish by verifying resolved issues with the same steps used to report them.
Before release, confirm that you have:
- Scanned representative pages and reviewed the results.
- Completed keyboard-only testing for every critical flow.
- Checked contrast, focus, zoom, responsive states, and non-color cues.
- Reviewed headings, landmarks, labels, names, roles, and status announcements.
- Tested errors, empty states, loading states, dialogs, and other dynamic behavior.
- Logged unresolved issues with owners, impact, and a follow-up plan.
Save the checklist and issue template with your project documentation. That small investment turns accessibility testing from an occasional scramble into a repeatable part of using online developer tools and shipping dependable web interfaces.