A small, consistent collection of browser userscripts for manual accessibility (a11y) testing. Each one is a single-purpose tool that overlays information on the page you're auditing — heading structure, table semantics, focusable elements, ARIA roles, keyboard focus order, and WCAG 1.1.1 non-text content checks.
They're built for accessibility testers and front-end developers who do hands-on WCAG 2.1 / Section 508 review and want lightweight, no-dependency helpers that run on any page.
Design principles
- Read-only and safe. The tools highlight, label, and report. They never send data anywhere and make no network calls.
- Nothing runs until you ask. Each tool adds a small launcher button in the bottom-right corner. Click it to open the tool; click again (or use Close /
Esc) to remove it. The two that watch for activity — the focus log and ARIA hover — stay off until you switch them on, and they never take over your keyboard. - The tools are accessible themselves. Each panel is a labelled dialog with real form labels, clear focus outlines, keyboard support, and high-contrast colors.
- Consistent. Every script shares one look, one version number (1.1.0), and an MIT license.
- Install a userscript manager: Tampermonkey (Chrome/Edge/Firefox/Safari) or Violentmonkey.
- Open any
.user.jsfile in thescripts/folder and click Raw — your userscript manager will offer to install it. - The script's launcher button appears in the bottom-right of any page. Multiple tools stack neatly.
No special permissions are requested (@grant none).
| Script | What it does | How to use |
|---|---|---|
accessibility-heading-tool |
Color-coded outlines and level badges on H1–H6 and aria-level headings, with per-level counts |
Launcher → tick the levels to reveal |
accessibility-table-inspector |
Highlights tables, cells, and ARIA table roles; audits data tables for a missing <caption> |
Launcher → tick element types |
table-grid-accessibility-validator |
Checks HTML tables and ARIA grids for captions, <th> headers, scope, and required roles, with pass/warn/fail tags |
Launcher → read findings, re-scan |
highlight-focusable-elements |
Outlines focusable elements and numbers them in source order to inspect keyboard reachability | Launcher → outlines + counts |
keyboard-navigation-logger |
Logs each element that receives focus as you Tab/arrow through the page (does not block native navigation) | Launcher → tab the page, watch the log |
log-aria-roles-and-properties |
Shows the role and all aria-* properties of the element under the cursor |
Launcher → hover any element |
wcag-1.1.1-non-text-content-checker |
Scans for images, SVG, image inputs, and embedded media missing text alternatives (WCAG SC 1.1.1) | Launcher → read findings, re-scan |
- These are manual-testing aids, not a full automated audit. They surface things for a human to judge — they don't replace a tester or a conformance engine. Automated checks are labelled; manual judgement is still required.
- All changes to the page (outlines, badges, panels) are removed when you close a tool.
- Tested in Chromium-based browsers via Tampermonkey.
Issues and pull requests welcome — especially additional checks, better in-page reporting, and broader screen-reader coverage.