Intopia's accessibility testing bookmarklets
A bookmarklet is a web browser bookmark with JavaScript commands that add new features. These small JavaScript snippets are stored as a bookmark URL and executed when clicked.
To use them:
- Drag a bookmarklet to your browser's Bookmarks Bar.
- Open the web page you want to inspect.
- Click the bookmarklet.
- Press Esc to remove the overlay.
| Bookmarklet | Test page |
|---|---|
|
Highlights all heading levels (H1–H6) with distinct colours. Flags empty headings and duplicate |
Testing headings |
|
Highlights all images. Distinguishes between meaningful |
Testing images |
|
Highlights all links on the page. Resolves the accessible name from any source (text content, |
Testing links |
|
Highlights native list elements and ARIA list roles with distinct colours per type. |
Reviewing lists |
|
Highlights all landmark regions with distinct colours per role. Shows accessible name where present. |
Reviewing landmarks |
| Bookmarklet | Test page |
|---|---|
|
Highlights the page language defined on the |
|
|
Displays the document title from the |
Testing document title - good example Testing document title - missing example |
|
Displays the character encoding declaration as a fixed banner at the top of the page. Detects both |
Testing character encoding - good example Testing character encoding - missing example Testing character encoding - invalid example |
| Bookmarklet | Test page |
|---|---|
|
Highlight captions and headers Highlights accessibility features within tables. Flags header cells with and without Click to activate, then press 1 through 3 in order to step through |
Testing tables |
|
Highlight table id and headers Highlights the relationship between headers and ids within complex tables. Click to activate, then press TAB or |
Testing complex tables |
|
Highlights ARIA roles relating to tables. Click to activate, then press 1 through 6 in order to step through the role hierarchy from container to cell. Press Note: re-run the bookmarklet after sorting to see updated |
Testing ARIA tables |
| Bookmarklet | Test page |
|---|---|
|
Tracks each focusable element on the page. Click to activate, then TAB through the page. Each element is numbered in order. ESC to stop. |
Testing focus order |
|
Highlights all |
Reviewing different tabindex methods |
| Bookmarklet | Test page |
|---|---|
|
Highlights all elements with |
Testing aria-label |
|
Highlights elements with |
Reviewing aria-labelledby |
|
Highlights elements with |
Testing aria-describedby |
|
Highlights links and buttons where the visible label and accessible name don’t match. |
Testing name mismatches |
|
Highlight name-prohibited roles Highlights elements with |
Testing name-prohibited roles |
| Bookmarklet | Test page |
|---|---|
|
Highlights form fields and their accessible names. Flags fields with no name, and fields where the name comes from an unreliable source such as |
Testing form labels |
|
Highlights all buttons and their accessible names. Flags buttons with no accessible name. |
Testing buttons |
|
Highlights |
Testing fieldsets |
|
Highlights required form fields. Distinguishes between native |
Testing required fields |
|
Highlights all |
Testing aria-invalid |
|
Highlights |
Testing autocomplete |
| Bookmarklet | Test page |
|---|---|
|
Highlights all |
testing aria-expanded |
|
Highlights all |
Testing aria-checked |
| Bookmarklet | Test page |
|---|---|
|
Highlight aria-roledescription Highlights all elements with |
Testing aria-roledescription |
|
Highlights all elements with |
Testing aria-details |
|
Highlights all elements with |
Testing aria-valuenow |
|
Highlights all elements with |
Testing aria-valuetext |
|
Highlight aria-valuemin and aria-valuemax Highlights all elements with |
Testing aria-valuetext |
|
Highlights all |
Testing aria-pressed |
|
Highlights all elements with |
Testing aria-level |
|
Highlight aria-setsize and aria-posinset Highlights all elements with |
Testing aria-setsize and aria-posinset |
|
Highlights all elements with |
Testing aria-setsize and aria-posinset |
|
Highlights elements with |
Testing aria-controls |
|
Highlights native readonly and aria-readonly for teaching purposes. Native readonly is browser-enforced and automatically announced correctly to AT, no ARIA needed. aria-readonly="true" alone only affects the AT announcement — it does not stop the user typing unless the field is functionally restricted some other way. Flags the redundant and conflicting combinations, and invalid values. | Testing aria-readonly |
|
Highlights open shadow DOM hosts and custom elements. Flags where shadow DOM cannot be confirmed. |
Testing shadow DOM |