Accessora
Automated fixes

Common issues, fixed as the page loads.

Unlabeled buttons, empty links, skipped heading levels and missing landmarks get repaired in the visitor's browser on every page load. Nothing is written back to your theme.

7-day free trial on every plan. One script tag, or the Shopify app.

A mock storefront with four red markers that turn green one by one as the cart button gets a name, the image link gets a label, the email field gets a label and the page language gets set.

Live on the pageAuto-fixed ·
QUILL & KILN
!!!!
Cart button gets a name
Image link gets a label
Email field gets a label
Page language gets set
What gets fixed

22 resolvers, each with one job.

Most rows map to an axe-core rule, so a fix here is usually a row that disappears from your next audit.

ProblemWCAGWhat the fix does
Names and labels
Buttons and controls without a name4.1.2 AAdds an aria-label built from the icon, image or surrounding text.
Links with no text2.4.4 ALabels the link from its icon, image or destination.
Form fields without a label4.1.2 AConnects the field to a nearby label, or names it from its placeholder.
Images without alt text1.1.1 AUses the image's title or aria-label if it has one, otherwise marks it decorative. Descriptions come from AI alt text.
Frames without a title4.1.2 AAdds a title from the frame's name or address.
Clickable elements that are not buttons2.1.1 AAdds role=button and makes them reachable with the keyboard.
Structure
Skipped heading levelsBest practiceInserts hidden placeholder headings so the outline is continuous.
Empty headingsBest practiceTakes them out of the outline so nothing is announced as a blank heading.
Missing landmarksBest practiceAdds main, navigation, banner and contentinfo roles to the matching regions.
Two landmarks with the same nameBest practiceGives each one a label of its own.
Skip link that points nowhereBest practiceAdds the missing target id to the main content.
Missing page title or language2.4.2 A, 3.1.1 ASets lang on the html element and a title from the page's own heading.
Duplicate ids4.1.2 ARenames later duplicates and updates the labels that point at them.
Lists and tables without semantics1.3.1 ARestores list roles and adds scope to table headers.
ARIA hygiene
Roles not allowed on the elementBest practiceRemoves the invalid role.
Labels on elements that cannot carry them4.1.2 ARemoves aria-label from generic elements, where it is ignored anyway.
Roles missing a required attribute4.1.2 AAdds the attribute with a safe default, such as aria-checked set to false.
Conflicting ARIA4.1.2 AClears leftover ARIA that contradicts the element it is on.
Invalid autocomplete values1.3.5 AAReplaces made-up values with off and drops tokens that are not in the spec.
Visual and mobile
Zoom disabled on mobile1.4.4 AARemoves user-scalable=no and maximum-scale from the viewport meta tag.
Low text contrast (opt-in)1.4.3 AANudges the text color until it meets AA, keeping the hue. Off by default because it changes how text looks.
How it runs

In the browser, on every page load.

The page arrives as your platform serves it, and the fixes are applied on top, in the visitor's browser.

  1. 1

    The widget loads.

    The script tag loads async after your content. Automated fixes are a plugin inside it, switched on per site in Settings.

  2. 2

    Resolvers walk the page.

    They run in a fixed order, from roles and landmarks down to form labels, so each one works on the result of the one before.

  3. 3

    Changes land in the browser.

    Most fixes are an attribute or a hidden element added to the page in the visitor's browser. A theme update cannot undo it, because it runs again on the next load. Content that loads later is picked up by an observer, with a short delay.

Plainly

What we will not fix automatically.

Some of accessibility is judgment, and a script should not guess. The audit tells you what is left after the fixes run.

  • Captions and transcripts for video and audio.
  • Link text that says where the link goes. A generated label is better than nothing, but a person writes a better one.
  • Reading order and the structure of a page that was built out of order.
  • Color choices that are part of the brand. Contrast correction is there if you want it, and off until you do.
  • Keyboard traps and focus handling inside custom components such as menus, carousels and modals.
Fixes and audits

The audit sees the fixed page.

With fixes on, each scan waits for them to run before axe-core checks the page. What is left in the list is yours to handle.

The Audit results screen: a score of 84, four stat tiles, and an issue list where the first issue is expanded to show the WCAG criterion and the affected element.

Quill & Kiln/quillandkiln.comQK
OverviewInstallationAuditsAlt TagsSettings
Audits › /lighting
Audit resultsquillandkiln.com/lighting · Scanned 10/14/2026 9:12 am · 6 rules flagged
Re-scan
Needs attention
Errors
1
WCAG A / AA blockers
Warnings
4
Likely violations
Notices
6
Manual review suggested
Passed checks
212
Across rules
All issuesErrorsWarningsNotices
IssueWCAGSeverityElements
Images must have alternate text1.1.1 · AError3
Affected elements (3)img.product-hero[src="rattan-pendant.jpg"]
What it checks: every image needs alt text, or must be marked as decorative.
Elements must meet minimum color contrast1.4.3 · AAWarning4
Links must have discernible text2.4.4 · ANotice2
Showing 3 of 11 issues

Alt text is a separate feature.

The image resolver can only mark an image decorative. A real description comes from AI alt text, which drafts one per image and serves it wherever that image appears.

Rescan to confirm.

Run the audit again after the fixes are on. The rows that disappeared are done; the rows that stay need a person. See how audits work.

Automated fixes by plan.

StarterNot included
GrowthNot included
EnterpriseIncluded

Every plan starts with a 7-day free trial. Compare plans.

FAQ

Questions about automated fixes.

Something else? Contact us.

Will it change my code?

No. Each fix happens in the visitor's browser after the widget loads. Switch fixes off and the next page load is back to your original markup.

Can I turn fixes off?

Yes. Automated fixes have their own switch per site in Settings. Color contrast correction has a second switch and starts off, because it changes how your text looks.

Does a fix count as compliance?

No. A fix changes what assistive tech gets on that page, and the audit stops flagging it. Compliance covers the whole site and its content, so keep auditing and handle the items that need a person.

What about pages the widget is not on?

Fixes only run where the script tag loads. Install it site-wide, and check the Installation tab if a page does not show the launcher.

See it on your own site.

Start a free trial, add the script tag, and the widget shows up on your next page load. Cancel any time during the trial.

Try the widget