ultra11y 2.32.0 → 3.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/marketplace.json +1 -1
- package/.claude-plugin/plugin.json +1 -1
- package/.codex-plugin/plugin.json +1 -1
- package/.opencode/plugins/ultra11y.js +1 -1
- package/README.md +14 -2
- package/package.json +1 -1
- package/scripts/ultra11y.mjs +1133 -222
- package/skills/review-a11y/SKILL.md +1 -1
- package/skills/review-a11y/scripts/ultra11y.mjs +1133 -222
- package/skills/ultra11y/SKILL.md +17 -11
- package/skills/ultra11y/references/audit.md +1 -1
- package/skills/ultra11y/references/ci.md +63 -0
- package/skills/ultra11y/references/judgment.md +8 -0
- package/skills/ultra11y/references/methodology.md +1 -1
- package/skills/ultra11y/references/orchestrators.md +26 -11
- package/skills/ultra11y/references/prd.md +9 -36
- package/skills/ultra11y/references/tickets.md +156 -0
- package/skills/ultra11y/scripts/ultra11y.mjs +1133 -222
- package/src/cli.ts +386 -63
- package/src/config.ts +10 -0
- package/src/gh-cli.ts +39 -0
- package/src/mcp/handlers.ts +28 -0
- package/src/mcp/tools.ts +27 -0
- package/src/pages.ts +13 -0
- package/src/pr-comment.ts +78 -0
- package/src/tickets/grain.ts +218 -0
- package/src/tickets/http.ts +107 -0
- package/src/tickets/providers/github.ts +155 -0
- package/src/tickets/providers/gitlab.ts +158 -0
- package/src/tickets/providers/jira.ts +152 -0
- package/src/tickets/providers/remote.ts +40 -0
- package/src/tickets/push.ts +94 -0
- package/src/tickets/registry.ts +45 -0
- package/src/tickets/render.ts +157 -0
- package/src/tickets/types.ts +154 -0
- package/src/types.ts +1 -1
- package/src/gh.ts +0 -333
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
"name": "ultra11y",
|
|
11
11
|
"source": "./",
|
|
12
12
|
"description": "Automatic accessibility review of the code under change before every commit, push and pull request, plus full WCAG 2.2 AA / RGAA audits and conformance deliverables on demand.",
|
|
13
|
-
"version": "
|
|
13
|
+
"version": "3.0.0",
|
|
14
14
|
"author": { "name": "maxgfr" },
|
|
15
15
|
"homepage": "https://github.com/maxgfr/ultra11y",
|
|
16
16
|
"repository": "https://github.com/maxgfr/ultra11y",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ultra11y",
|
|
3
3
|
"description": "Accessibility for WCAG 2.2 AA and country standards (RGAA…): an automatic review of the code under change before every commit, push and pull request, plus full audits and conformance deliverables on demand.",
|
|
4
|
-
"version": "
|
|
4
|
+
"version": "3.0.0",
|
|
5
5
|
"author": { "name": "maxgfr" },
|
|
6
6
|
"homepage": "https://github.com/maxgfr/ultra11y",
|
|
7
7
|
"repository": "https://github.com/maxgfr/ultra11y",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ultra11y",
|
|
3
3
|
"description": "Accessibility for WCAG 2.2 AA and country standards (RGAA…): an automatic review of the code under change before every commit, push and pull request, plus full audits and conformance deliverables on demand.",
|
|
4
|
-
"version": "
|
|
4
|
+
"version": "3.0.0",
|
|
5
5
|
"author": { "name": "maxgfr", "url": "https://github.com/maxgfr" },
|
|
6
6
|
"homepage": "https://github.com/maxgfr/ultra11y",
|
|
7
7
|
"repository": "https://github.com/maxgfr/ultra11y",
|
|
@@ -27,7 +27,7 @@ import { fileURLToPath } from "node:url";
|
|
|
27
27
|
// Ownership marker: `ultra11y install --opencode` refuses to overwrite a plugin file that
|
|
28
28
|
// does not carry it, so a user's own ultra11y.js is never clobbered.
|
|
29
29
|
const ULTRA11Y_OPENCODE_PLUGIN = "ULTRA11Y_OPENCODE_PLUGIN";
|
|
30
|
-
const ULTRA11Y_PLUGIN_VERSION = "
|
|
30
|
+
const ULTRA11Y_PLUGIN_VERSION = "3.0.0";
|
|
31
31
|
|
|
32
32
|
const here = dirname(fileURLToPath(import.meta.url));
|
|
33
33
|
|
package/README.md
CHANGED
|
@@ -143,7 +143,8 @@ ultra11y audit [--changed | --since <ref> | --staged] [--max-files <n>] [--de
|
|
|
143
143
|
ultra11y audit [--captures <dir>] [--no-captures] [--require-captures] # audit rendered-DOM captures alongside source
|
|
144
144
|
ultra11y audit [--format sarif|github] # CI: code-scanning SARIF, or inline annotations + job summary
|
|
145
145
|
ultra11y report --in <audit.json> [--out <dir>] [--standard <pack>] [--format sarif|github] [--lang auto|en|fr]
|
|
146
|
-
ultra11y prd --in <audit.json> [--out <dir>] [--split criterion] [--format audit|doc|remediation] [--standard <pack>] [--
|
|
146
|
+
ultra11y prd --in <audit.json> [--out <dir>] [--split criterion] [--format audit|doc|remediation] [--standard <pack>] [--lang auto|en|fr]
|
|
147
|
+
ultra11y tickets --in <audit.json> [--provider auto|github|gitlab|jira] [--grain criterion|page|page-criterion|single|file] [--transport auto|cli|rest] [--max-tickets <n>] [--dry-run] [--json]
|
|
147
148
|
ultra11y render [<dir>] [--scaffold | --setup | --e2e | --coverage | --storybook] [--runner playwright|cypress] [--captures <dir>] [--out <file>] [--json]
|
|
148
149
|
ultra11y snapshot write [--root <dir>] [--fail-on blocking|major|minor] [--json] # payload on stdin → .ultra11y/pages/<id>/ + audit
|
|
149
150
|
ultra11y snapshot list [--root <dir>] [--json]
|
|
@@ -350,7 +351,9 @@ a test). See [`CONTRIBUTING.md`](CONTRIBUTING.md) and `skills/ultra11y/reference
|
|
|
350
351
|
optionally, the **pages** (it can start your app, wait for it, then scan real URLs or your
|
|
351
352
|
declared sample). The engine ships inside the action, so there is nothing to install and no
|
|
352
353
|
`setup-node`. The gate runs **last**, after SARIF, annotations, the summary, the sticky PR
|
|
353
|
-
comment and the report — a red job is never a dead end. `
|
|
354
|
+
comment and the report — a red job is never a dead end. `adjudicate: api|agent` optionally
|
|
355
|
+
rules on the judgment criteria that would otherwise stay « à évaluer » in CI, reading its key
|
|
356
|
+
from the job environment and skipping itself without one. `ultra11y init --ci` writes a
|
|
354
357
|
workflow using it. See `references/ci.md`.
|
|
355
358
|
- **CI surfaces** — a red job says *that* the build broke, not *where*. `--format sarif` emits
|
|
356
359
|
SARIF 2.1.0 for GitHub code scanning, so each finding lands as an **inline annotation on the
|
|
@@ -377,6 +380,15 @@ adjudication leaves the audit untouched. All-`manual` with reasons is accepted,
|
|
|
377
380
|
a correct answer. It is the **only** part of the tool that takes an API key; without one the
|
|
378
381
|
command explains itself and exits, and nothing else changes.
|
|
379
382
|
|
|
383
|
+
The GitHub Action wires this as `adjudicate: api`, and offers `adjudicate: agent` as the other
|
|
384
|
+
half — the same worklist handed to a `claude-code-action` run, which can **open the cited files**
|
|
385
|
+
instead of ruling from harvested evidence alone. Both end in the same fail-closed gate; they
|
|
386
|
+
differ in evidence, not in trust. Both read `ANTHROPIC_API_KEY` from the **job environment**,
|
|
387
|
+
never from an input, and **skip themselves when it is absent** — which is exactly what a fork's
|
|
388
|
+
pull request looks like, so the job stays green and the criteria stay « à évaluer ». See
|
|
389
|
+
`references/ci.md` for the cost per run and for `gate-adjudicated`, which lets a model-ruled
|
|
390
|
+
non-conformity fail the build at the price of a red/green that no longer reproduces.
|
|
391
|
+
|
|
380
392
|
### Optional dynamic tier (axe-core)
|
|
381
393
|
|
|
382
394
|
`scan` runs **axe-core in a headless browser** to decide the *needs-rendering* criteria the static engine leaves as residual risks — chiefly **computed colour contrast (1.4.3)** plus a 320px **reflow** check (1.4.10) and a render cross-check of the structural rules. Two runtimes (default `--runtime auto`): **`--runtime local`** uses a Playwright that resolves from your project (`--cwd`) — **no Docker** — and additionally probes focus visibility (2.4.7), 200% zoom (1.4.4), text spacing (1.4.12) and content-on-hover (1.4.13), plus **stateful** probes (fill inputs then re-measure overflow, and a live-region probe for status messages 4.1.3 — opt out with `--no-interact`, `--interact-clicks` for authed-scan button clicks), and takes `--storage-state` for authenticated pages; **`--runtime docker`** falls back to a self-contained image built on first use. `--merge` folds the findings into a static `AuditResult`, upgrading `manual` criteria to `C`/`NC`. A country-standard audit scans its declared page sample with `scan --sample` (lint it first with `sample check`):
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ultra11y",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "3.0.0",
|
|
4
4
|
"description": "Audit HTML/CSS/JSX against WCAG 2.2 AA and produce a dated compliance report, or author/review accessible markup (native-HTML-first). A skills.sh agent skill: an install-free static engine (bundled, no npm install) plus the agent's judgment, with check/verify gates against hallucinated non-conformities, and pluggable in-repo standards packs (RGAA France first; Section 508 & EN 301 549 next).",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"packageManager": "pnpm@10.33.0",
|