Accessora
Dashboard

Automated fixes

Automated fixes repair common code problems in the visitor's browser, such as buttons without names or skipped heading levels. Your site's files stay as they are.

Updated

On this page

Switch them on

Automated fixes are on the Enterprise plan, including during an Enterprise trial. They are rule-based: each resolver follows fixed rules, with no AI involved.

  1. In Settings, find Automated Fixes and switch on Enable Automated Fixes.
  2. If you want low-contrast text fixed too, switch on Auto-fix color contrast. It is off by default because it is the only fix that changes how your page looks.

The change reaches your site within about a minute.

How they run

  1. Step 1: The page loadsThe widget starts and the fixes run once over the whole page.
  2. Step 2: Resolvers run in orderEach resolver looks for one kind of problem and fixes what it can. The order matters: roles are cleaned up before landmarks are added, and links are named before buttons.
  3. Step 3: Each change is markedA fixed element gets a data-acs-fixed-by attribute naming the resolver, so you can find every change.
  4. Step 4: New content is fixed tooThe widget watches the page. Content added later, such as a cart drawer or the next page of results, gets the same fixes.
Fixes are applied in the browser on every page view. A theme update or a redesign can't undo them, and switching the feature off removes every change on the next page load.

Every resolver

There are 22 resolvers. 21 run whenever automated fixes are on. Color contrast runs only when you switch it on.

The 22 automated fix resolvers, what each one fixes and the WCAG success criterion it relates to
ResolverWhat it fixesWCAG
Page and document
DocumentAdds lang to the html element and a title taken from the h1, og:title or host name when either is missing.3.1.1 A, 2.4.2 A
Meta viewportRemoves user-scalable=no and low maximum-scale values so people can pinch to zoom.1.4.4 AA
Duplicate idRenames repeated ids to id-acs-2 and so on, and updates labels that pointed at them.4.1.1 A (WCAG 2.1)
Landmarks and structure
ARIA landmarkAdds main, navigation, banner and contentinfo roles to the likely regions when the page has none.1.3.1 A
Skip link targetGives the main content the id that a broken skip link points to.2.4.1 A
Unique landmarkGives repeated landmarks distinct names, or drops the role from unnamed duplicates.1.3.1 A
HeadingInserts visually hidden placeholder headings where levels are skipped, such as h1 to h3.1.3.1 A
Empty headingTakes empty headings out of the outline and adds a hidden h1 when the page has none.2.4.6 AA
TableAdds scope to header cells and row and cell roles to div-based tables.1.3.1 A
ListRestores list semantics for lists styled with list-style: none and stray li elements.1.3.1 A
Names and labels
ImageGives images with no alt, or a file name as alt, the text of their title or aria-label. With neither, it sets an empty alt, which marks the image as decorative. Also marks images that repeat nearby text as decorative.1.1.1 A
LinkNames links that have no text, from their icon, image or address.2.4.4 A
Accessible nameNames buttons, tabs and menu items that have no text.4.1.2 A
Frame titleAdds a title to iframes from their name or address.4.1.2 A
FormConnects fields to their visible labels or adds a label, including search and cart forms.4.1.2 A
Clickable elementAdds a button role and keyboard focus to clickable elements that are not buttons or links.2.1.1 A
ARIA hygiene
ARIA allowed roleRemoves roles the element is not allowed to have, such as a button with role=listitem.4.1.2 A
Required ARIA attributeAdds attributes a role needs, with a safe default such as aria-checked=false.4.1.2 A
ARIA prohibited attributeRemoves aria-label from generic elements, where screen readers ignore it.4.1.2 A
ARIA cleanupClears aria-hidden on focusable elements and references to ids that do not exist.4.1.2 A
AutocompleteReplaces made-up autocomplete values with off and drops tokens the spec does not know.1.3.5 AA
Opt-in
Color contrastShifts the lightness of low-contrast text until it reaches 4.5:1, or 3:1 for large text. Hue stays the same. Off unless you switch it on.1.4.3 AA

The WCAG column names the success criterion the fix helps with. One fix rarely makes a page pass a criterion on its own. Duplicate ids fall under 4.1.1 Parsing, which WCAG 2.2 removed. It still matters for screen readers and for anyone measuring against WCAG 2.1.

Check what was fixed

Open your site, then the browser console, and run:

Browser console
// How many fixes ran when the page loaded
window.__accessoraFixesReady

// Every element a resolver changed
document.querySelectorAll("[data-acs-fixed-by-image], [data-acs-fixed-by-link], [data-acs-fixed-by-heading]")

Each resolver uses its own attribute, such as data-acs-fixed-by-accessible-name or data-acs-fixed-by-aria-landmark. Inspect any element to see which resolver touched it.

What they don’t do

  • They don’t change your files. Your theme, templates, CMS and product data stay as they are. Search engines and tools that read your HTML without running scripts see the original.
  • They don’t fix everything. Problems that need judgment stay with you: whether alt text is accurate, whether the reading order makes sense, whether an error message is clear. Run audits to find them.
  • Some fixes mostly satisfy scanners. Placeholder headings fill skipped levels without real text, an image with nothing to describe it gets an empty alt that hides it from screen readers, and a required ARIA attribute gets a safe default that may not match the control’s real state. A cleaner scan after fixes doesn’t mean the page works well with a screen reader.
  • They hold back where a fix could break the page. Resolvers skip anything inside the widget, avoid visible layout changes, and leave elements alone when they can’t be sure.
Fixing it for good

Treat the data-acs-fixed-by attributes as a to-do list for your developers. Each one marks a spot where a fix in your own code would help visitors before the widget loads, and in browsers that block scripts.

Still stuck?Send us your site address and what you see, and we will look into it.
Contact us

Try the widget