A11y audit bookmarklets
You know the deal - drag these to your toolbar or right-click and add to favourites. Then run them whenever you feel like it.
Important: many of these load in pop-up windows, so you will need to allow pop-ups for the page that you are testing for some of these to work
-
anchor for Lost focus alert bookmarklet Lost focus alert
New Dec 2023
- Inspired by the revelation in this article How To Avoid Breaking Web Pages For Keyboard Users, specifically the video demonstration.
- Run this bookmarklet before doing keyboard testing and it will alert any loss of focus issues that may not be immediately obvious
- It checks for elements that lose focus as a result of:
- Being removed from DOM
- Being hidden
- Being set as
disabled
- Being set as
inert
- Link activated that goes to a target that lacks
tabindex="-1"
(if it is not a natively focusable element) - Having a
blur()
event set (unless immediately re-set withfocus()
)
-
anchor for WTFocus bookmarklet WTFocus
Updated 24 Nov 2023
- As you tab around the page, a panel shows alongside each element
- Show the accessible name, what the source of the accessible name is and indicates any name sources that have been overridden
- Alerts when no accessible name is found
- Also warns when use of role attribute may not be great
- NEW: Added a new curtain mode - screen is blanked out and all that shows as you tab through focusable elements is the accessible name and the role of that element
- NEW: Added a download text file feature (which lets you save a numbered list of all focusable elements, including the accessible name, role and description). Note that it does not work on all sites due to a URL size limit (the content is dynamically created via a data URI)
- Watch an explanatory video here
- WTFocus source is on Github
-
anchor for Screen Reader Simulation bookmarklet Screen Reader Simulation
NEW
- A script that attempts to show a styled site in a way similar to how screen reader users might perceive it. It does this by:
- Replacing images that have NO
alt
with the filename - Replacing images that have alts with the
alt
content - Removing images that have
alt=""
- Finding visually hidden text, exposing as visible text
- Hiding anything that is marked as hidden to AT
- Removing all styling, flattening layout
- Applying some very basic styling back to the now unstyled document
- Replacing images that have NO
- There is also an option to append a role (only for link or button) so that it is more clear what the controls are and to hint at how a screen reader would announce them
- Images that are changed to text are given green outline
- Images that have empty alts are given red outline
- Text that was previously visually hidden is given purple outline
- And yes, I will come up with a scheme that does not rely on use of color to indicate these
- This is a work in progress. It will be far from perfect.
- A script that attempts to show a styled site in a way similar to how screen reader users might perceive it. It does this by:
-
anchor for Focus Order bookmarklet Reveal Focus Order
- Finds all focusable elements and shows the actual tabbing order
- Can draw path of tabbing order (redraws when window resized)
- Helpful to identify SC 2.4.3 Focus Order (Level A) failures
- This is a work in progress. It may be a little ... funky.
-
anchor for List images bookmarklet List images
- Lists all images, shows any alt attribute issues
- Requires pop-up window to be allowed to show results
-
anchor for List links bookmarklet List links
- Searches for all real links on the page, and any element given a
role=link
- Reports on the visible text, the accessible name (so you can compare side-by-side)
- Flags any issues that might affect usage, such as keyboard focusability, Label in Name and more.
- Notes any superfluous elements that could be removed
- Requires pop-up window to be allowed to show results
- Searches for all real links on the page, and any element given a
-
anchor for List things with titles bookmarklet List things with titles
- Finds all elements that have a
title
attribute - Warns where the
title
attribute is a duplicate of the visible text (can be filtered out from results) - Highlights where the title attribute is different from the on-screen text
- Automatically console.logs a phrase for each instance of an element with different title content that you can copy/paste for reporting purposes
- Requires pop-up window to be allowed to show results
- Finds all elements that have a
-
anchor for Non-underlined links bookmarklet Non-underlined links
- Finds any links on the page that do not appear to be underlined (
text-decoration
set tonone
and no detectableborder-bottom
) - Indicates these non-underlined links in a big obvious red outline
- Provides xpath reference for all affected links
- Ignores non-underlined links that are inside a
nav
/role="navigation"
element - Where links without underlines are found, it checks color contrast and flags any under 3:1 ratio (which may indicate a 1.4.1 Use of Color issue)
- Finds any links on the page that do not appear to be underlined (
-
anchor for Check headings bookmarklet Check headings
- Checks the page for definite WCAG failures and also best practices
- Highlights problems on the page
- Provides an outline in the console (along with issues found)
-
anchor for Suggest autocomplete values bookmarklet Suggest autocomplete values
- Finds all fields on fields on a page that don't currently have
autocomplete
and highlights them - Provides a select list that you can choose the appropriate autocomplete value for
- Logs any changes that you make (so you can copy from console)
- Has option for cleaning up the page after so that your candidates for autocomplete are highlighted (and the select lists are removed) ready for screenshotting
- Finds all fields on fields on a page that don't currently have
-
anchor for Isolate images bookmarklet Isolate images
- Slightly experimental idea - this one does the opposite of some other tools (that hide images), and instead hides anything that is not an image
- It zooms the page out so you can see more in one go - a wall of images
- Aim of this is to be able to glance at the images and see if you can spot images that are actually just text which may not be obvious when scrolling the page in its normal state
- Trying to weed out SC 1.4.5 Images of Text issues
-
anchor for Show focus styles bookmarklet Show focus styles
- Runs through whole page,looking for focusable items and focuses them
- Focus style is captured and set as inline style
- You get a page that shows how all elements on the page will appear when they receive focus
-
anchor for Role Reverser bookmarklet Role Reverser
- Finds all elements on the page with
role
attributes - Replaces non-semantic elements with native HTML equivalent
- Summary of findings in alert, further diagnostics in the console
- Finds all elements on the page with
-
anchor for Unframe iFrames bookmarklet Unframe iFrames
- Finds all
iframe
elements that start with http in the src - Opens each of the
iframe
s in a new window - That's it. Do whatever you need to do with those pages after that ...
- Finds all
Not really a11y tools but you might still find handy:
-
anchor for Outliner bookmarklet Outliner
- Enter HTML element (or any other valid CSS selector)
- Choose a colour
- Bam! All those bad boys are highlighted on the page. Sure it's a one-trick pony. Nothing wrong with ponies.
-
NEW
anchor for Xpath getter bookmarklet Xpath getter
- Click on elements on the page
- As you click, the xpath reference for each element is added to a list in console
- You can copy that list or click on the download link to get it in Markdown format
- Watch it in action here
-
anchor for Isolator bookmarklet Isolator
- Isolates a section of a web page by hiding all sibling elements of it, and all parent elements
- Hover over on elements on the page, then click when the correct element is highlighted
- Press the arrow keys to fine tune your selection (choose parent, child and sibling elements in the DOM) and confirm that selection with Enter
- Watch the Isolator bookmarklet in action here
-
anchor for Freeze the DOM (debugger) bookmarklet Freeze the DOM (debugger)
- Kick starts the dev tools debugger
- Provides a 3-second countdown while you 'prepare your DOM'
- Debugger takes over so you can then start inspecting dynamic content that might otherwise disappear (dialogs, hover content etc)