Repository navigation
Releases
Releases · flgisimone/SAT
2.0.0
SAT is one thing: the accessibility and SEO panel in vite dev that gives the issues to your AI agent. This version removes the 1.x options deprecated since 1.8.0 and the parts outside that job.
Upgrading from 1.x
| 1.x | 2.0 |
|---|---|
enableCheckImageAlt: false (every enableCheck* option) |
rules: { "image-alt": "off" }; true is the default, so remove it |
result.errorMessages, result.warningMessages |
result.issues.filter((issue) => issue.severity === "error").map((issue) => issue.message) |
satReset() |
Remove it: SAT never changes the page (since 1.9.0) |
useSATChecker(options) from seo-accessibility-tool/react |
sat(options) from seo-accessibility-tool/vite in vite.config; without Vite, satChecker(options) from seo-accessibility-tool/sat-controller once in the entry point |
useSatChecker(options) from seo-accessibility-tool/vue |
The same: the Vite plugin, or satChecker(options) in main.ts |
sat-check <url> --depth 2 --not-found "…" |
sat-check with each URL to check; to crawl a site and find broken links, unlighthouse or pa11y-ci with a sitemap |
rules: { "link-broken": "error" } |
Remove it: the rule is gone, with the crawler |
The browser extension (dist/extension) |
The Vite plugin in your project, or sat-check <url> for any page |
SAT 1.19.0
The first version on npm after 1.6.0: npm goes from 1.6.0 to 1.19.0. Versions 1.7.0 to 1.18.0 (changelog) were never published on their own; all their changes are in 1.19.0. This version gives the issues of the page in vite dev to any AI agent through MCP, and runs axe-core in the Vite plugin when it is installed.
Upgrading from 1.6.0
- What SAT reports. Every rule follows an official source (WCAG 2.2 and the W3C ACT rules, WAI-ARIA 1.2, the HTML standard, Google Search Central): requirements are errors, recommendations warnings, valid patterns are no longer reported (1.7.0, 1.13.0). Many rules are new and on by default: SEO and loading rules (1.10.0), ten rules from WCAG 2.2 and ACT (1.14.0), Google's required properties in structured data (1.15.0). The same page can show fewer issues, or different ones: set a rule's severity, or
"off", inrules. - Results and options.
seoAccessibilityTool()returnsissueswithruleId,severity,category,message,selector,help,titleand the WCAG criteria or source (1.8.0, 1.16.0). Therulesoption replaces theenableCheck*flags, andissuesreplaceserrorMessages/warningMessages: the old names still work in 1.x but are deprecated. New options:wcagLevel,observeDom,enabled,engines. - The page is never changed. Highlights are drawn on SAT's own layer instead of styles and
titleon the elements, andsatResetdoes nothing (1.9.0). The broken-links check is off by default (1.7.0). - New panel in a Shadow DOM, light and dark: counters that filter, issues by rule with their source, the heading map, single-page app routes, Copy fix prompt (1.9.0, 1.16.0, 1.17.0).
- New entry points:
seo-accessibility-tool/vite(plugin, with opt-in Fix with AI and MCP server, axe-core on when installed),/axe(axe-core engine),/playwright(checkPage,toHaveNoSATErrors), thesat-checkcommand for CI, and a browser extension built from the repository (1.10.0–1.12.0, 1.17.0). - AI agents. With
sat({ mcp: true })any agent that speaks MCP reads the issues of the open pages and checks them again (1.19.0); Copy fix prompt works everywhere, Fix with AI runs Claude Code from the panel (1.17.0). - Dependencies. React, Vue, Vite, axe-core and
@playwright/testare optional peer dependencies: install only the ones you use (1.7.0).
Added
- MCP server in the Vite plugin: with
sat({ mcp: true })the dev server answersPOST /__sat/mcp(Streamable HTTP, JSON responses; MCP 2026-07-28 and the earlier versions withinitialize). Tools:sat_issuesreturns the issues of the pages open in the browser, as the fix prompt and as a list (rule, severity, selector, component file, documentation link);sat_recheckmakes the open pages run the checks again and returns what is left. Only connections from this computer, with alocalhosthost name and no foreignOrigin. Off by default. Configurations for Claude Code, Cursor, VS Code, Codex CLI, Gemini CLI, Windsurf and Zed in the README and in the new AI agents guide. - With
mcp: truethe pages send their results toPOST /__sat/resultsafter every run (same protection as Fix with AI);vite devprints the MCP endpoint and the command for Claude Code.
Changed
- Vite plugin:
axedefaults totruewhenaxe-coreresolves from the project root, and Vite prints "SAT: axe-core found, running it as an engine";axe: falseturns it off. Withoutaxe-corenothing changes. The other integrations still needengines: [axe()]. - The endpoints of Fix with AI refuse with "SAT accepts requests from this computer only." and "…from the dev server's pages only." instead of "Fix with AI accepts…".
- README rewritten around the panel in
vite devand the AI agents; Playwright, the CLI and the extension are under Also.examples/vite-vanillainstallsaxe-coreand turns onmcp.
Install: npm install -D seo-accessibility-tool axe-core · README · AI agents guide · live demo