Skip to content

Releases

2.0.0

Choose a tag to compare

@flgisimone flgisimone released this 28 Oct 20:07

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

Choose a tag to compare

@flgisimone flgisimone released this 28 Oct 05:47

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", in rules.
  • Results and options. seoAccessibilityTool() returns issues with ruleId, severity, category, message, selector, help, title and the WCAG criteria or source (1.8.0, 1.16.0). The rules option replaces the enableCheck* flags, and issues replaces errorMessages/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 title on the elements, and satReset does 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), the sat-check command 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/test are 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 answers POST /__sat/mcp (Streamable HTTP, JSON responses; MCP 2026-07-28 and the earlier versions with initialize). Tools: sat_issues returns 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_recheck makes the open pages run the checks again and returns what is left. Only connections from this computer, with a localhost host name and no foreign Origin. 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: true the pages send their results to POST /__sat/results after every run (same protection as Fix with AI); vite dev prints the MCP endpoint and the command for Claude Code.

Changed

  • Vite plugin: axe defaults to true when axe-core resolves from the project root, and Vite prints "SAT: axe-core found, running it as an engine"; axe: false turns it off. Without axe-core nothing changes. The other integrations still need engines: [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 dev and the AI agents; Playwright, the CLI and the extension are under Also. examples/vite-vanilla installs axe-core and turns on mcp.

Install: npm install -D seo-accessibility-tool axe-core · README · AI agents guide · live demo