[{"data":1,"prerenderedAt":69},["ShallowReactive",2],{"product:accessibility-auto-fixer":3},{"slug":4,"name":5,"index":6,"accent":7,"coverLine":8,"summary":9,"status":10,"license":11,"mood":12,"problem":17,"howItWorks":18,"media":31,"transparency":50,"roadmap":62,"links":63},"accessibility-auto-fixer","Accessibility Auto-Fixer","01","cyan","Built for the quiet parts of the interface.","A browser extension that finds contrast and ARIA failures on the page you are looking at, and proposes the fix locally.","in-development","MPL-2.0",{"src":13,"alt":14,"focal":15,"placeholder":16},"\u002Feditorial\u002F01-auto-fixer-studio.avif","A laptop on a plaster worktop in daylight, its screen showing the Accessibility Auto-Fixer panel with three contrast failures marked on a live page.","50% 40%",true,"Accessibility work fails at the last mile. Audits arrive as spreadsheets weeks after the code shipped, written by a tool that never saw the rendered page. By the time anyone reads them, the component has been reused eleven times. The failures that matter are small, repetitive and entirely fixable — they just need to be found while the page is still on screen.",[19,22,25,28],{"heading":20,"body":21},"It reads the page as rendered.","Computed styles, not source. Contrast is measured against what the pixel actually is after cascade, theme and inherited opacity — which is where most reported ratios quietly disagree with reality.",{"heading":23,"body":24},"It marks, then explains.","Each finding is placed on the element itself and restated in the side panel with the rule it violates, the measured value, and the threshold it missed. No score, no grade, no letter.",{"heading":26,"body":27},"It proposes, it does not commit.","Suggested fixes appear as a diff you read before anything changes. The nearest passing colour, the missing label, the role that contradicts the element. You decide whether it is right.",{"heading":29,"body":30},"It never leaves the machine.","Detection and suggestion both run in the extension. There is no account, no telemetry, and no request off the device — which is also why it works on staging behind a VPN.",[32,39,45],{"kind":33,"src":34,"poster":35,"alt":36,"caption":37,"ratio":38,"placeholder":16},"video","\u002Fmedia\u002Faccessibility-auto-fixer\u002Foverlay-markers.mp4","\u002Fmedia\u002Faccessibility-auto-fixer\u002Foverlay-markers.avif","Screen recording: contrast failures are marked in place on a live page as the scan runs.","Overlay markers, placed on the failing elements as the scan runs.","16 \u002F 9",{"kind":40,"src":41,"alt":42,"caption":43,"ratio":44,"placeholder":16},"image","\u002Fmedia\u002Faccessibility-auto-fixer\u002Fside-panel.avif","The side panel listing each finding with its rule, measured contrast ratio and required threshold.","The side panel. Rule, measured value, required threshold — in that order.","16 \u002F 10",{"kind":33,"src":46,"poster":47,"alt":48,"caption":49,"ratio":38,"placeholder":16},"\u002Fmedia\u002Faccessibility-auto-fixer\u002Fdiff-view.mp4","\u002Fmedia\u002Faccessibility-auto-fixer\u002Fdiff-view.avif","Screen recording: the proposed colour change shown as a diff, then applied to the page preview.","Every suggestion is a diff first. Nothing is applied until you say so.",{"automatic":51,"manual":56,"locality":61},[52,53,54,55],"Text and non-text contrast against WCAG 2.2 AA and AAA thresholds, measured on computed styles.","Missing or empty accessible names on interactive elements.","ARIA roles that contradict the element they are placed on, and required attributes that are absent.","Focus order breaks caused by positive tabindex values.",[57,58,59,60],"Whether alternative text is accurate, rather than merely present.","Whether heading structure reflects the actual document outline.","Whether a custom widget behaves the way its role promises under a real screen reader.","Anything that depends on intent — an image is decorative or informative because of what it is for, not because of what it is.","Everything runs in the extension, on your machine. No page content, URL, screenshot or finding is transmitted anywhere. There is no account to create and no server to trust, which is deliberate: an accessibility tool that reads every page you visit has no business also being a network client.","Currently in development. Next: exportable findings as a diffable artefact, so a fix can be reviewed in a pull request rather than in a browser. After that, shared rule configuration so a team audits against one agreed threshold.",[64,67],{"label":65,"href":66},"Source on GitHub","https:\u002F\u002Fgithub.com\u002Fvantradesign",{"label":68,"href":66},"Report an issue",1786696663243]