eaa-kit 0.5.0 → 0.7.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.
Files changed (69) hide show
  1. package/README.md +53 -5
  2. package/dist/astro/index.d.ts +1 -1
  3. package/dist/astro/index.js +1 -1
  4. package/dist/audit/runners/worker.js +1 -1
  5. package/dist/audit-Bwm1xBdJ.js +2 -0
  6. package/dist/{audit-B282A3EA.js → audit-DRjAY2iY.js} +243 -107
  7. package/dist/{baseline-CuAS2lMk.js → baseline-BpE7DbDq.js} +36 -9
  8. package/dist/baseline-rtnj3RHB.js +2 -0
  9. package/dist/cache-D4dOIuOi.js +219 -0
  10. package/dist/checklist-DDd9jewi.js +44 -0
  11. package/dist/cli/index.js +130 -17
  12. package/dist/{command-C3D7JWn6.js → command-3r4fht5f.js} +102 -10
  13. package/dist/{component-C3GL1Mnu.js → component-ChisoFyY.js} +1 -1
  14. package/dist/{component-DKd3EHOg.js → component-DcCn3BJS.js} +1 -1
  15. package/dist/{coverage-B_Y6l-Ra.js → coverage-cb5kPp48.js} +45 -290
  16. package/dist/coverage-n1X9CkiG.js +3 -0
  17. package/dist/{crawl-BUWPgaGW.js → crawl-BHkJmUkA.js} +42 -8
  18. package/dist/criteria-CnPJKGeb.js +286 -0
  19. package/dist/eleventy/index.d.ts +1 -1
  20. package/dist/eleventy/index.js +1 -1
  21. package/dist/{html-C4vktg0A.js → html-BIxxF3FC.js} +54 -30
  22. package/dist/{impact-DZt2oBCP.js → impact-luGCnN8F.js} +11 -1
  23. package/dist/index.d.ts +87 -1
  24. package/dist/index.js +3 -3
  25. package/dist/{init-CW7LfGT5.js → init-DrFfzjvm.js} +3 -3
  26. package/dist/jsdom-BUYuVJJm.js +3 -0
  27. package/dist/{jsdom-B--cEH-G.js → jsdom-CsW_xVcA.js} +11 -12
  28. package/dist/{json-DROX33kh.js → json-Bus6YhxB.js} +13 -17
  29. package/dist/{json-D_Mnnft5.js → json-CrQmoTj6.js} +1 -1
  30. package/dist/{load-yAR4wzez.js → load-BaWMa-G_.js} +11 -2
  31. package/dist/load-n62iXDq_.js +2 -0
  32. package/dist/nuxt/index.d.ts +1 -1
  33. package/dist/nuxt/index.js +1 -1
  34. package/dist/{playwright-BojtYVUa.js → playwright-ukCr_5o3.js} +3 -2
  35. package/dist/{pool-BO25OIez.js → pool-B4tEUa2S.js} +6 -2
  36. package/dist/{remediation-CMBIrnpN.js → remediation-C0klJblu.js} +35 -4
  37. package/dist/{render-DbGOVmhx.js → render-C1sUZZI_.js} +145 -6
  38. package/dist/{result-BWcYXeRs.js → result-B7_zVxAX.js} +24 -1
  39. package/dist/result-CRmjjoAA.js +2 -0
  40. package/dist/review-CdMK2GpQ.js +161 -0
  41. package/dist/review-DIbOTmOM.js +2 -0
  42. package/dist/{run-CtcEUhbe.d.ts → run-BK2blxMI.d.ts} +18 -0
  43. package/dist/{run-C2nKFcb-.js → run-DrS0Komf.js} +6 -2
  44. package/dist/{sarif-B-UBcVu8.js → sarif-BNCE0PNT.js} +24 -12
  45. package/dist/statement/templates/at.de.md +14 -0
  46. package/dist/statement/templates/at.en.md +14 -0
  47. package/dist/statement/templates/ch.de.md +14 -0
  48. package/dist/statement/templates/ch.en.md +14 -0
  49. package/dist/statement/templates/de.de.md +14 -0
  50. package/dist/statement/templates/de.en.md +14 -0
  51. package/dist/statement/templates/es.en.md +14 -0
  52. package/dist/statement/templates/es.es.md +15 -0
  53. package/dist/statement/templates/fr.en.md +14 -0
  54. package/dist/statement/templates/fr.fr.md +15 -0
  55. package/dist/statement/templates/it.en.md +14 -0
  56. package/dist/statement/templates/it.it.md +15 -0
  57. package/dist/statement/templates/nl.en.md +14 -0
  58. package/dist/statement/templates/nl.nl.md +15 -0
  59. package/dist/{text-CKKpzkYM.js → text-BF1LHMiV.js} +22 -2
  60. package/dist/vite/index.d.ts +1 -1
  61. package/dist/vite/index.js +1 -1
  62. package/dist/webpack/index.d.ts +1 -1
  63. package/dist/webpack/index.js +1 -1
  64. package/dist/worksheet-BIxMtbUd.js +64 -0
  65. package/package.json +3 -2
  66. package/dist/audit-DyHPmGeD.js +0 -2
  67. package/dist/baseline-0u4df12v.js +0 -2
  68. package/dist/jsdom-22Bkt65v.js +0 -3
  69. package/dist/load-CFq2VQtT.js +0 -2
package/README.md CHANGED
@@ -9,11 +9,26 @@ in the DACH region — the BFSG in Germany, the BaFG in Austria — and the stat
9
9
  the statute and supervisory body of **seven countries**: Austria, Germany, Switzerland,
10
10
  Spain, France, Italy and the Netherlands, each in its own language as well as English.
11
11
 
12
+ 0.7.0 makes a run cost what it should. A page that has not changed byte for byte is not
13
+ audited again, and a run with nothing to re-audit never loads an engine at all: twenty
14
+ pages go from ~2,520 ms to ~230 ms, which is about what starting the process costs. A
15
+ reused result is never passed off as a fresh one — every report says how much was reused
16
+ and from when, and `diff` will not call a page fixed that this run did not look at. The
17
+ statement now also says how many of WCAG's 55 criteria a person checked by hand, and
18
+ `pnpm bench` prints the numbers in this paragraph for your own machine.
19
+
20
+ 0.6.0 added the half no engine can do. Of the 55 WCAG 2.2 A and AA success criteria, 34
21
+ have no automated rule at all: `checklist` writes those down as a review somebody works
22
+ through, `audit --review` reads the answers back beside what the run measured, and
23
+ `statement` refuses to publish a claim of full conformance that either one contradicts.
24
+ Sites behind a login or a preview protection are auditable too.
25
+
12
26
  ```bash
13
27
  npx eaa-kit audit # WCAG 2.2 AA report; finds your build itself
14
28
  npx eaa-kit diff a.json b.json # what a change made worse, and what it fixed
15
29
  npx eaa-kit init # write an eaa.config.json
16
30
  npx eaa-kit statement # accessibility statement, in one of seven countries
31
+ npx eaa-kit checklist # the manual review no engine can do for you
17
32
  ```
18
33
 
19
34
  > **Not legal advice.** eaa-kit reports what an automated engine can and cannot determine
@@ -95,14 +110,32 @@ could invent a fix that looks right and is not.
95
110
  written in src/components/Header.astro:12
96
111
  ```
97
112
 
113
+ **Records the part no engine can do.** 34 of the 55 criteria have no automated rule at
114
+ all. `eaa-kit checklist` writes them out as a worksheet and a record; `audit --review`
115
+ reads the record back and reports what a person checked *beside* what the run measured,
116
+ never folded into it. A review never overrules the engine, never counts an entry nobody
117
+ answered, and never counts one that has aged out.
118
+
119
+ ```bash
120
+ eaa-kit checklist --output a11y-review.md
121
+ eaa-kit audit --review eaa-review.json --coverage
122
+ ```
123
+
98
124
  **Says how much of WCAG it could reach.** WCAG 2.2 has 55 success criteria at Levels A and
99
- AA. axe-core has rules touching 23 of them. Every run says so, and `--coverage` lists all
100
- 55 with what this run reached on each — never as a percentage, because most of WCAG cannot
101
- be automated and a score would present that as a fact about your site.
125
+ AA. This tool has rules for 21 of them, and 34 need a person. Every run says so, and
126
+ `--coverage` lists all 55 with what this run reached on each — never as a percentage,
127
+ because most of WCAG cannot be automated and a score would present that as a fact about
128
+ your site.
102
129
 
103
130
  **Says what it did not measure.** A crawl that stopped at its page limit, or could not
104
131
  fetch forty URLs, no longer produces a report that looks like a complete one.
105
132
 
133
+ **Audits only what changed.** A page whose markup is byte-identical to the last run's keeps
134
+ the result it already had, and a run with nothing to re-audit never loads an engine —
135
+ twenty pages in ~230 ms instead of ~2,520 ms, which is about what starting the process
136
+ costs. Reuse is counted apart from auditing in all four reports, and `diff` will not call a
137
+ page fixed that this run did not look at. `--no-cache` audits everything regardless.
138
+
106
139
  **Reports in four shapes**: a console report for whoever ran it, JSON for other tools,
107
140
  SARIF for GitHub code scanning, and a self-contained HTML page for the client whose site
108
141
  it is.
@@ -133,6 +166,16 @@ that instead — following the site's own sitemap, wherever it keeps it.
133
166
  eaa-kit audit --url http://localhost:8000 --sitemap /sitemap_index.xml
134
167
  ```
135
168
 
169
+ **Reaches a site behind a login.** A preview deployment or a staging CMS refuses anonymous
170
+ requests, which used to put both out of reach. `--basic-auth` and a repeatable `--header`
171
+ cover them, on the crawl and in the browser, and the credentials are never written into a
172
+ report, a baseline or a SARIF log — nor accepted from `eaa.config`, which is a committed
173
+ file.
174
+
175
+ ```bash
176
+ eaa-kit audit --url https://preview.example.com --basic-auth user:password
177
+ ```
178
+
136
179
  ## Documentation
137
180
 
138
181
  | | |
@@ -143,6 +186,7 @@ eaa-kit audit --url http://localhost:8000 --sitemap /sitemap_index.xml
143
186
  | [Baselines](docs/baseline.md) | Adopting the tool on a site that already has violations |
144
187
  | [Comparing two runs](docs/reports.md#comparing-two-runs) | The `diff` command, and what it refuses to call fixed |
145
188
  | [Coverage of WCAG](docs/audit.md#how-much-of-wcag-a-run-reaches) | What an automated engine can reach at all, and what it cannot |
189
+ | [Recording a manual review](docs/review.md) | The `checklist` command, the record, and what a review is not allowed to do |
146
190
  | [Report formats](docs/reports.md) | The JSON contract, SARIF, and the HTML report |
147
191
  | [Integrations](docs/integrations.md) | The build plugins, the GitHub Action, and the two builders that get a command instead |
148
192
 
@@ -169,11 +213,15 @@ you](docs/audit.md#what-the-browserless-engine-can-and-cannot-tell-you).
169
213
 
170
214
  The same applies to the statement: it says what you told it. eaa-kit cannot check whether
171
215
  those claims are true, and a statement claiming full conformance for a site that is not
172
- conformant is worse than no statement at all.
216
+ conformant is worse than no statement at all — which is why, given evidence, it now refuses
217
+ to write that particular one. `statement --audit` will not claim full conformance over a
218
+ report listing barriers, and `--review` will not claim it over criteria somebody recorded as
219
+ not met.
173
220
 
174
221
  ## Changelog
175
222
 
176
- See [CHANGELOG.md](CHANGELOG.md).
223
+ See [CHANGELOG.md](CHANGELOG.md), and [ROADMAP.md](ROADMAP.md) for what 0.6.0 is meant to
224
+ add and what it deliberately will not.
177
225
 
178
226
  ## License
179
227
 
@@ -1,4 +1,4 @@
1
- import { n as IntegrationOptions } from "../run-CtcEUhbe.js";
1
+ import { n as IntegrationOptions } from "../run-BK2blxMI.js";
2
2
  //#region src/astro/index.d.ts
3
3
  /**
4
4
  * An Astro integration that audits the build Astro just produced.
@@ -1,4 +1,4 @@
1
- import { n as auditBuild, t as BuildAuditError } from "../run-C2nKFcb-.js";
1
+ import { n as auditBuild, t as BuildAuditError } from "../run-DrS0Komf.js";
2
2
  import { fileURLToPath } from "node:url";
3
3
  //#region src/astro/index.ts
4
4
  var AstroAuditError = class extends Error {
@@ -1,4 +1,4 @@
1
- import { t as auditPage } from "../../jsdom-B--cEH-G.js";
1
+ import { t as auditPage } from "../../jsdom-CsW_xVcA.js";
2
2
  import { enableCompileCache } from "node:module";
3
3
  import { parentPort, workerData } from "node:worker_threads";
4
4
  //#region src/audit/runners/worker.ts
@@ -0,0 +1,2 @@
1
+ import { n as runAuditCommand } from "./audit-DRjAY2iY.js";
2
+ export { runAuditCommand };