@setsquare/review-sdk 0.0.1 → 0.1.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/NOTICE +3 -2
- package/README.md +220 -0
- package/dist/autoscan.d.ts +15 -1
- package/dist/autoscan.d.ts.map +1 -1
- package/dist/autoscan.js +168 -13
- package/dist/autoscan.js.map +1 -1
- package/dist/brand.d.ts +51 -2
- package/dist/brand.d.ts.map +1 -1
- package/dist/brand.js +560 -5
- package/dist/brand.js.map +1 -1
- package/dist/checks/context-change.d.ts +96 -0
- package/dist/checks/context-change.d.ts.map +1 -0
- package/dist/checks/context-change.js +655 -0
- package/dist/checks/context-change.js.map +1 -0
- package/dist/checks/focus.d.ts +154 -0
- package/dist/checks/focus.d.ts.map +1 -0
- package/dist/checks/focus.js +1123 -0
- package/dist/checks/focus.js.map +1 -0
- package/dist/checks/heuristics.d.ts +116 -0
- package/dist/checks/heuristics.d.ts.map +1 -0
- package/dist/checks/heuristics.js +931 -0
- package/dist/checks/heuristics.js.map +1 -0
- package/dist/checks/keyboard.d.ts +106 -0
- package/dist/checks/keyboard.d.ts.map +1 -0
- package/dist/checks/keyboard.js +452 -0
- package/dist/checks/keyboard.js.map +1 -0
- package/dist/checks/reflow.d.ts +75 -0
- package/dist/checks/reflow.d.ts.map +1 -0
- package/dist/checks/reflow.js +285 -0
- package/dist/checks/reflow.js.map +1 -0
- package/dist/checks/rule-pack.d.ts +1 -1
- package/dist/checks/rule-pack.d.ts.map +1 -1
- package/dist/checks/rule-pack.js +350 -45
- package/dist/checks/rule-pack.js.map +1 -1
- package/dist/checks/shortcuts.d.ts +71 -0
- package/dist/checks/shortcuts.d.ts.map +1 -0
- package/dist/checks/shortcuts.js +196 -0
- package/dist/checks/shortcuts.js.map +1 -0
- package/dist/checks/versions.d.ts.map +1 -1
- package/dist/checks/versions.js +33 -1
- package/dist/checks/versions.js.map +1 -1
- package/dist/contract.d.ts +18 -0
- package/dist/contract.d.ts.map +1 -1
- package/dist/covers.d.ts +56 -0
- package/dist/covers.d.ts.map +1 -0
- package/dist/covers.js +135 -0
- package/dist/covers.js.map +1 -0
- package/dist/dedupe.d.ts +23 -0
- package/dist/dedupe.d.ts.map +1 -1
- package/dist/dedupe.js +96 -2
- package/dist/dedupe.js.map +1 -1
- package/dist/document.d.ts.map +1 -1
- package/dist/document.js +144 -0
- package/dist/document.js.map +1 -1
- package/dist/envelope.d.ts +8 -0
- package/dist/envelope.d.ts.map +1 -1
- package/dist/envelope.js +28 -0
- package/dist/envelope.js.map +1 -1
- package/dist/fixture.d.ts.map +1 -1
- package/dist/fixture.js +12 -0
- package/dist/fixture.js.map +1 -1
- package/dist/html-report.d.ts +24 -7
- package/dist/html-report.d.ts.map +1 -1
- package/dist/html-report.js +608 -136
- package/dist/html-report.js.map +1 -1
- package/dist/index.d.ts +13 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +13 -0
- package/dist/index.js.map +1 -1
- package/dist/links.d.ts +43 -0
- package/dist/links.d.ts.map +1 -1
- package/dist/links.js +43 -0
- package/dist/links.js.map +1 -1
- package/dist/observe.d.ts +8 -0
- package/dist/observe.d.ts.map +1 -1
- package/dist/observe.js +45 -1
- package/dist/observe.js.map +1 -1
- package/dist/options.d.ts +53 -0
- package/dist/options.d.ts.map +1 -1
- package/dist/options.js +3 -0
- package/dist/options.js.map +1 -1
- package/dist/reading-level.d.ts +22 -1
- package/dist/reading-level.d.ts.map +1 -1
- package/dist/reading-level.js +122 -19
- package/dist/reading-level.js.map +1 -1
- package/dist/reporter.d.ts.map +1 -1
- package/dist/reporter.js +31 -15
- package/dist/reporter.js.map +1 -1
- package/dist/scan.d.ts +36 -1
- package/dist/scan.d.ts.map +1 -1
- package/dist/scan.js +16 -2
- package/dist/scan.js.map +1 -1
- package/dist/screens.d.ts +55 -4
- package/dist/screens.d.ts.map +1 -1
- package/dist/screens.js +243 -43
- package/dist/screens.js.map +1 -1
- package/dist/summary.d.ts +22 -0
- package/dist/summary.d.ts.map +1 -1
- package/dist/summary.js +197 -22
- package/dist/summary.js.map +1 -1
- package/dist/viewports.d.ts +105 -0
- package/dist/viewports.d.ts.map +1 -0
- package/dist/viewports.js +134 -0
- package/dist/viewports.js.map +1 -0
- package/package.json +5 -4
package/dist/dedupe.js
CHANGED
|
@@ -19,10 +19,39 @@
|
|
|
19
19
|
* `/items/:id/edit`), so it collapses exactly what should collapse. The surface
|
|
20
20
|
* name then comes from whichever scan WINS, which is how an explicit label ends
|
|
21
21
|
* up on the row instead of competing with an inferred one for a place in the list.
|
|
22
|
+
*
|
|
23
|
+
* ## The viewport joined the tuple on 2026-09-12, and it had to
|
|
24
|
+
*
|
|
25
|
+
* It was missing, and the consequence was not theoretical: adding a tablet and
|
|
26
|
+
* a mobile Playwright project to this repository's own marketing site produced
|
|
27
|
+
* three scans of every surface and this function collapsed them to one. Ties
|
|
28
|
+
* break LAST-wins, so the last project configured won every bucket and the
|
|
29
|
+
* entire grid became mobile evidence — with the desktop and tablet scans
|
|
30
|
+
* silently dropped and the report showing no sign that anything had been lost.
|
|
31
|
+
* A run that looked at three widths reported one, and the two it discarded were
|
|
32
|
+
* the two the reader would have assumed were there.
|
|
33
|
+
*
|
|
34
|
+
* The argument is the one already made above for the theme: collapsing two
|
|
35
|
+
* themes reports a themed surface as clean when only one of its themes was
|
|
36
|
+
* looked at, and a viewport is the same shape of claim. A rule only ever sees
|
|
37
|
+
* the viewport it ran in — a navigation that collapses into a menu below a
|
|
38
|
+
* breakpoint is a different DOM, not a narrower one — so a scan at 1280 has no
|
|
39
|
+
* opinion whatsoever about the same page at 390.
|
|
40
|
+
*
|
|
41
|
+
* A single-viewport run is unaffected: every scan carries the same value, so
|
|
42
|
+
* every key is unchanged. It costs the common case nothing and it is the
|
|
43
|
+
* difference between viewport evidence existing and viewport evidence being
|
|
44
|
+
* thrown away.
|
|
22
45
|
*/
|
|
23
46
|
export function contextKey(scan) {
|
|
24
|
-
const { surface, urlPattern, theme, persona, state } = scan.context;
|
|
25
|
-
return [
|
|
47
|
+
const { surface, urlPattern, theme, persona, state, viewport } = scan.context;
|
|
48
|
+
return [
|
|
49
|
+
urlPattern ?? surface,
|
|
50
|
+
theme ?? '',
|
|
51
|
+
persona ?? '',
|
|
52
|
+
state ?? '',
|
|
53
|
+
viewport ? `${viewport.width}x${viewport.height}` : '',
|
|
54
|
+
].join('\u0000');
|
|
26
55
|
}
|
|
27
56
|
/**
|
|
28
57
|
* How good a scan is as evidence for its context, higher being better.
|
|
@@ -60,9 +89,11 @@ function score(input) {
|
|
|
60
89
|
*/
|
|
61
90
|
export function dedupeScans(inputs) {
|
|
62
91
|
const best = new Map();
|
|
92
|
+
const byKey = new Map();
|
|
63
93
|
for (const input of inputs) {
|
|
64
94
|
const key = contextKey(input.scan);
|
|
65
95
|
const incumbent = best.get(key);
|
|
96
|
+
byKey.set(key, [...(byKey.get(key) ?? []), input]);
|
|
66
97
|
// >= rather than >: on equal evidence the LATER scan wins.
|
|
67
98
|
//
|
|
68
99
|
// Later means more settled. A page whose content arrives after its first
|
|
@@ -73,9 +104,72 @@ export function dedupeScans(inputs) {
|
|
|
73
104
|
if (!incumbent || score(input) >= score(incumbent))
|
|
74
105
|
best.set(key, input);
|
|
75
106
|
}
|
|
107
|
+
for (const [key, winner] of best) {
|
|
108
|
+
carryDrivenChecks(winner.scan, byKey.get(key) ?? []);
|
|
109
|
+
}
|
|
76
110
|
const kept = [...best.values()].sort((a, b) => a.index - b.index).map((input) => input.scan);
|
|
77
111
|
return { kept, dropped: inputs.length - kept.length };
|
|
78
112
|
}
|
|
113
|
+
/**
|
|
114
|
+
* Move Setsquare's DRIVEN checks from the losing scans of a context onto the
|
|
115
|
+
* winner, instead of dropping them with the row that carried them.
|
|
116
|
+
*
|
|
117
|
+
* Dedupe picks the best AXE evidence for a context, and it should: two axe runs
|
|
118
|
+
* of one surface are the same question asked twice. The driven checks are not.
|
|
119
|
+
* They only ever run at TEARDOWN — focusing, pressing Tab, resizing are unsafe
|
|
120
|
+
* while a test is still asserting — and a teardown scan loses dedupe to an
|
|
121
|
+
* explicit `setsquare.scan()` every time, because a customer naming a surface
|
|
122
|
+
* outranks us inferring one. So on any suite that calls `setsquare.scan()`
|
|
123
|
+
* — the recommended way to reach a state we could not infer — every driven
|
|
124
|
+
* check was gathered and then thrown away.
|
|
125
|
+
*
|
|
126
|
+
* Measured on this repository's own marketing site: fifteen surfaces, ninety-one
|
|
127
|
+
* passing specs, and 1.4.10, 2.1.2, 2.4.7, 2.4.11, 3.2.1, 3.2.2 and 2.1.4 all
|
|
128
|
+
* reporting "no automated result" while the checks for every one of them had
|
|
129
|
+
* run and passed.
|
|
130
|
+
*
|
|
131
|
+
* These are facts about the surface rather than about a particular scan of it,
|
|
132
|
+
* so carrying them across is not a fudge: whichever row ends up representing
|
|
133
|
+
* the context, that is where they belong. Matched on rule id so a winner that
|
|
134
|
+
* already has them — a teardown scan that won on its own merits — gains nothing.
|
|
135
|
+
*/
|
|
136
|
+
function carryDrivenChecks(winner, all) {
|
|
137
|
+
const present = new Set([
|
|
138
|
+
...winner.findings.map((row) => row.ruleId),
|
|
139
|
+
...winner.passes.map((row) => row.ruleId),
|
|
140
|
+
...(winner.inapplicable ?? []).map((row) => row.ruleId),
|
|
141
|
+
]);
|
|
142
|
+
for (const { scan } of all) {
|
|
143
|
+
if (scan === winner)
|
|
144
|
+
continue;
|
|
145
|
+
for (const finding of scan.findings) {
|
|
146
|
+
if (!isDrivenCheck(finding) || present.has(finding.ruleId))
|
|
147
|
+
continue;
|
|
148
|
+
present.add(finding.ruleId);
|
|
149
|
+
winner.findings.push(finding);
|
|
150
|
+
}
|
|
151
|
+
for (const pass of scan.passes) {
|
|
152
|
+
if (!isDrivenCheck(pass) || present.has(pass.ruleId))
|
|
153
|
+
continue;
|
|
154
|
+
present.add(pass.ruleId);
|
|
155
|
+
winner.passes.push(pass);
|
|
156
|
+
}
|
|
157
|
+
for (const row of scan.inapplicable ?? []) {
|
|
158
|
+
if (!isDrivenCheck(row) || present.has(row.ruleId))
|
|
159
|
+
continue;
|
|
160
|
+
present.add(row.ruleId);
|
|
161
|
+
winner.inapplicable = [...(winner.inapplicable ?? []), row];
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
/**
|
|
166
|
+
* Setsquare's own rule ids all carry this prefix. Matching on the prefix rather
|
|
167
|
+
* than on a list of ids is deliberate: a new check must not have to be added
|
|
168
|
+
* here to be carried, because the failure of forgetting is silent.
|
|
169
|
+
*/
|
|
170
|
+
function isDrivenCheck({ ruleId }) {
|
|
171
|
+
return ruleId.startsWith('setsquare-');
|
|
172
|
+
}
|
|
79
173
|
/**
|
|
80
174
|
* Projects that exist to prepare the suite rather than to test it.
|
|
81
175
|
*
|
package/dist/dedupe.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dedupe.js","sourceRoot":"","sources":["../src/dedupe.ts"],"names":[],"mappings":"AA2BA
|
|
1
|
+
{"version":3,"file":"dedupe.js","sourceRoot":"","sources":["../src/dedupe.ts"],"names":[],"mappings":"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"}
|
package/dist/document.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"document.d.ts","sourceRoot":"","sources":["../src/document.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAItD;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,YAAY,CAAC;CACzB;
|
|
1
|
+
{"version":3,"file":"document.d.ts","sourceRoot":"","sources":["../src/document.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAItD;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,YAAY,CAAC;CACzB;AAiCD;;;;;;;GAOG;AACH,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,aAAa,CAAC,CA2N1E"}
|
package/dist/document.js
CHANGED
|
@@ -63,6 +63,120 @@ export async function readDocumentFacts(page) {
|
|
|
63
63
|
return false;
|
|
64
64
|
}
|
|
65
65
|
});
|
|
66
|
+
/*
|
|
67
|
+
* Navigation order and link names, for the cross-surface criteria.
|
|
68
|
+
*
|
|
69
|
+
* 3.2.3, 3.2.4 and 3.2.6 are statements about a SET of pages and no
|
|
70
|
+
* single-page scanner can ever check them. Read here, in the round trip
|
|
71
|
+
* that already runs for every scan, rather than as a second pass: the
|
|
72
|
+
* comparison happens later in the projection, and this is only the
|
|
73
|
+
* material for it.
|
|
74
|
+
*
|
|
75
|
+
* Targets are paths, stripped of query and fragment before they leave the
|
|
76
|
+
* page. A reset token lives in a query string and a navigation
|
|
77
|
+
* comparison has no use for one, so the value never enters a record at
|
|
78
|
+
* all — belt and braces with the contract, which strips it again.
|
|
79
|
+
*/
|
|
80
|
+
const pathOf = (anchor) => {
|
|
81
|
+
const raw = anchor.getAttribute('href');
|
|
82
|
+
if (!raw || raw.startsWith('#') || raw.startsWith('javascript:'))
|
|
83
|
+
return undefined;
|
|
84
|
+
try {
|
|
85
|
+
const url = new URL(raw, location.href);
|
|
86
|
+
// Off-origin links are ordinary in a footer and are not this page's
|
|
87
|
+
// navigation in any sense a consistency comparison cares about.
|
|
88
|
+
if (url.origin !== location.origin)
|
|
89
|
+
return `external:${url.hostname}`;
|
|
90
|
+
return url.pathname;
|
|
91
|
+
}
|
|
92
|
+
catch {
|
|
93
|
+
return undefined;
|
|
94
|
+
}
|
|
95
|
+
};
|
|
96
|
+
const nameOf = (el) => {
|
|
97
|
+
const label = el.getAttribute('aria-label');
|
|
98
|
+
if (label && label.trim())
|
|
99
|
+
return label.trim();
|
|
100
|
+
const text = el.innerText ?? el.textContent ?? '';
|
|
101
|
+
return text.replace(/\s+/g, ' ').trim();
|
|
102
|
+
};
|
|
103
|
+
const navs = Array.from(document.querySelectorAll('nav, [role="navigation"]')).slice(0, 5);
|
|
104
|
+
const navigation = [];
|
|
105
|
+
navs.forEach((nav, index) => {
|
|
106
|
+
const items = [];
|
|
107
|
+
for (const anchor of Array.from(nav.querySelectorAll('a[href]')).slice(0, 40)) {
|
|
108
|
+
const path = pathOf(anchor);
|
|
109
|
+
if (path)
|
|
110
|
+
items.push(path);
|
|
111
|
+
}
|
|
112
|
+
if (items.length === 0)
|
|
113
|
+
return;
|
|
114
|
+
// Named by its accessible name where it has one; a page with two
|
|
115
|
+
// unnamed <nav>s is ordinary, so the index keeps them apart.
|
|
116
|
+
const landmark = nav.getAttribute('aria-label')?.trim() || `nav-${index + 1}`;
|
|
117
|
+
navigation.push({ landmark, items });
|
|
118
|
+
});
|
|
119
|
+
if (navigation.length > 0)
|
|
120
|
+
result.navigation = navigation;
|
|
121
|
+
/*
|
|
122
|
+
* Only links inside a REPEATED REGION, and this narrowing is the
|
|
123
|
+
* difference between a usable rule and a noise generator.
|
|
124
|
+
*
|
|
125
|
+
* 3.2.4 is about components with the same functionality within a set of
|
|
126
|
+
* pages: a navigation item, a footer link, a header action. An inline
|
|
127
|
+
* prose link is not a repeated component, and naming one "its twin" in
|
|
128
|
+
* one sentence and "Consistency one" in another is ordinary writing, not
|
|
129
|
+
* an inconsistency. Collecting every anchor produced ten disagreements on
|
|
130
|
+
* the fixture site of which two were real — the rest were prose.
|
|
131
|
+
*/
|
|
132
|
+
const REPEATED = 'nav, [role="navigation"], header, [role="banner"], footer, [role="contentinfo"]';
|
|
133
|
+
const regions = Array.from(document.querySelectorAll(REPEATED));
|
|
134
|
+
const names = new Map();
|
|
135
|
+
for (const anchor of regions.flatMap((region) => Array.from(region.querySelectorAll('a[href]')))) {
|
|
136
|
+
if (names.size >= 50)
|
|
137
|
+
break;
|
|
138
|
+
const path = pathOf(anchor);
|
|
139
|
+
if (!path)
|
|
140
|
+
continue;
|
|
141
|
+
const name = nameOf(anchor);
|
|
142
|
+
// First occurrence wins. A page that links the same place twice with
|
|
143
|
+
// two names is its own problem and not 3.2.4's, which is about the
|
|
144
|
+
// SAME target being named differently on DIFFERENT pages.
|
|
145
|
+
if (!name || names.has(path))
|
|
146
|
+
continue;
|
|
147
|
+
names.set(path, name);
|
|
148
|
+
}
|
|
149
|
+
if (names.size > 0) {
|
|
150
|
+
result.linkNames = [...names].map(([target, name]) => ({ target, name }));
|
|
151
|
+
}
|
|
152
|
+
/*
|
|
153
|
+
* A search control, for 2.4.5 Multiple Ways. Structural rather than
|
|
154
|
+
* text-matching, for the same reason the skip-link probe is: looking for
|
|
155
|
+
* the word "search" is English-only and would report every localised
|
|
156
|
+
* site as having none.
|
|
157
|
+
*/
|
|
158
|
+
result.hasSearch =
|
|
159
|
+
document.querySelector('input[type="search"], [role="search"], form[role="search"], [aria-label*="earch"]') !== null;
|
|
160
|
+
/*
|
|
161
|
+
* A table of contents, for 2.4.5 Multiple Ways (G64).
|
|
162
|
+
*
|
|
163
|
+
* Structural, like the search probe and for the same reason: a label
|
|
164
|
+
* reading "contents" is English, and matching on it would report every
|
|
165
|
+
* localised site as having none. What a table of contents IS, in markup,
|
|
166
|
+
* is a run of links into sections of the current document — three or
|
|
167
|
+
* more, because one or two in-page anchors is a footnote.
|
|
168
|
+
*
|
|
169
|
+
* Deliberately NOT satisfied by the primary navigation, which counts as
|
|
170
|
+
* its own mechanism: same-document targets are the whole test, so a nav
|
|
171
|
+
* of links to other pages cannot qualify here. Counting one landmark
|
|
172
|
+
* twice would let a site with a single way in read as having two.
|
|
173
|
+
*/
|
|
174
|
+
const sectionLinks = Array.from(document.querySelectorAll('a[href^="#"]')).filter((link) => {
|
|
175
|
+
const href = link.getAttribute('href') ?? '';
|
|
176
|
+
// `#` and `#top` are "back to the top", not a section of content.
|
|
177
|
+
return href.length > 1 && href !== '#top';
|
|
178
|
+
});
|
|
179
|
+
result.hasToc = sectionLinks.length >= 3;
|
|
66
180
|
return result;
|
|
67
181
|
});
|
|
68
182
|
}
|
|
@@ -87,6 +201,36 @@ export async function readDocumentFacts(page) {
|
|
|
87
201
|
}
|
|
88
202
|
if (raw.hasSkipLink !== undefined)
|
|
89
203
|
document_.hasSkipLink = raw.hasSkipLink;
|
|
204
|
+
if (raw.hasSearch !== undefined)
|
|
205
|
+
document_.hasSearch = raw.hasSearch;
|
|
206
|
+
if (raw.hasToc !== undefined)
|
|
207
|
+
document_.hasToc = raw.hasToc;
|
|
208
|
+
/*
|
|
209
|
+
* Sanitised here rather than trusted from the page. Landmark names, link
|
|
210
|
+
* names and even paths are page-derived, which on a real site means they
|
|
211
|
+
* routinely contain third-party and user-generated content — and a rule
|
|
212
|
+
* author's care is not a boundary (D13).
|
|
213
|
+
*/
|
|
214
|
+
if (raw.navigation && raw.navigation.length > 0) {
|
|
215
|
+
const navigation = raw.navigation
|
|
216
|
+
.map((nav) => ({
|
|
217
|
+
landmark: sanitiseLabel(nav.landmark) ?? '',
|
|
218
|
+
items: nav.items.map((item) => sanitiseLabel(item) ?? '').filter(Boolean),
|
|
219
|
+
}))
|
|
220
|
+
.filter((nav) => nav.landmark.length > 0 && nav.items.length > 0);
|
|
221
|
+
if (navigation.length > 0)
|
|
222
|
+
document_.navigation = navigation;
|
|
223
|
+
}
|
|
224
|
+
if (raw.linkNames && raw.linkNames.length > 0) {
|
|
225
|
+
const linkNames = raw.linkNames
|
|
226
|
+
.map((link) => ({
|
|
227
|
+
target: sanitiseLabel(link.target) ?? '',
|
|
228
|
+
name: sanitiseLabel(link.name) ?? '',
|
|
229
|
+
}))
|
|
230
|
+
.filter((link) => link.target.length > 0 && link.name.length > 0);
|
|
231
|
+
if (linkNames.length > 0)
|
|
232
|
+
document_.linkNames = linkNames;
|
|
233
|
+
}
|
|
90
234
|
if (Object.keys(document_).length > 0)
|
|
91
235
|
facts.document = document_;
|
|
92
236
|
return facts;
|
package/dist/document.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"document.js","sourceRoot":"","sources":["../src/document.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAKzC,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"document.js","sourceRoot":"","sources":["../src/document.ts"],"names":[],"mappings":"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"}
|
package/dist/envelope.d.ts
CHANGED
|
@@ -70,6 +70,14 @@ export interface TestOutcome {
|
|
|
70
70
|
* testId prefix back apart.
|
|
71
71
|
*/
|
|
72
72
|
lane?: string;
|
|
73
|
+
/**
|
|
74
|
+
* Success criteria this test declared it covers, via `setsquare.covers()`.
|
|
75
|
+
*
|
|
76
|
+
* Read off the attempt's own annotations, so a test that declares different
|
|
77
|
+
* criteria on a retry says so rather than inheriting the first attempt's.
|
|
78
|
+
* Absent when the test declared nothing, which is almost every test.
|
|
79
|
+
*/
|
|
80
|
+
covers?: string[];
|
|
73
81
|
/**
|
|
74
82
|
* Where Playwright put the screenshots this test produced.
|
|
75
83
|
*
|
package/dist/envelope.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"envelope.d.ts","sourceRoot":"","sources":["../src/envelope.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAW,gBAAgB,EAAE,UAAU,EAAgB,MAAM,mBAAmB,CAAC;AAQ7F,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,KAAK,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC7D,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAElC,OAAO,EAIL,KAAK,eAAe,EAErB,MAAM,YAAY,CAAC;AAGpB;;;;;;;;;;;;;;GAcG;AAEH,iDAAiD;AACjD,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mFAAmF;IACnF,OAAO,CAAC,EAAE,gBAAgB,CAAC;IAC3B;;;;;;OAMG;IACH,YAAY,CAAC,EAAE,QAAQ,EAAE,CAAC;IAC1B;;;;;;;;;;OAUG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB;;;;OAIG;IACH,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;;;;;;OAQG;IACH,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC;CAChB;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,qFAAqF;IACrF,sBAAsB,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC7C,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,IAAI,GAAG,OAAO,CAAC;IAC1B,EAAE,CAAC,EAAE,gBAAgB,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC;IACtC,4EAA4E;IAC5E,QAAQ,CAAC,EAAE,gBAAgB,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,CAAC;IAClD,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;;GAGG;AACH,OAAO,EAAE,OAAO,EAAE,CAAC;AAEnB,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,mFAAmF;AAEnF,wBAAgB,aAAa,CAAC,MAAM,EAAE,cAAc,GAAG,aAAa,CAyKnE;
|
|
1
|
+
{"version":3,"file":"envelope.d.ts","sourceRoot":"","sources":["../src/envelope.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAW,gBAAgB,EAAE,UAAU,EAAgB,MAAM,mBAAmB,CAAC;AAQ7F,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,KAAK,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC7D,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAElC,OAAO,EAIL,KAAK,eAAe,EAErB,MAAM,YAAY,CAAC;AAGpB;;;;;;;;;;;;;;GAcG;AAEH,iDAAiD;AACjD,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mFAAmF;IACnF,OAAO,CAAC,EAAE,gBAAgB,CAAC;IAC3B;;;;;;OAMG;IACH,YAAY,CAAC,EAAE,QAAQ,EAAE,CAAC;IAC1B;;;;;;;;;;OAUG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB;;;;OAIG;IACH,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB;;;;;;;;OAQG;IACH,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC;CAChB;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,qFAAqF;IACrF,sBAAsB,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC7C,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,IAAI,GAAG,OAAO,CAAC;IAC1B,EAAE,CAAC,EAAE,gBAAgB,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC;IACtC,4EAA4E;IAC5E,QAAQ,CAAC,EAAE,gBAAgB,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,CAAC;IAClD,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;;GAGG;AACH,OAAO,EAAE,OAAO,EAAE,CAAC;AAEnB,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,mFAAmF;AAEnF,wBAAgB,aAAa,CAAC,MAAM,EAAE,cAAc,GAAG,aAAa,CAyKnE;AAsJD;;;;;;;;;;;GAWG;AACH,wBAAgB,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAGxD"}
|
package/dist/envelope.js
CHANGED
|
@@ -178,6 +178,8 @@ function toResult(outcome) {
|
|
|
178
178
|
result.project = outcome.project;
|
|
179
179
|
if (outcome.lane)
|
|
180
180
|
result.lane = outcome.lane;
|
|
181
|
+
if (outcome.covers && outcome.covers.length > 0)
|
|
182
|
+
result.covers = [...outcome.covers];
|
|
181
183
|
if (outcome.workerIndex !== undefined)
|
|
182
184
|
result.workerIndex = outcome.workerIndex;
|
|
183
185
|
if (outcome.failure)
|
|
@@ -214,9 +216,34 @@ function addLedgerRow(ledger, urlPattern, reason, count) {
|
|
|
214
216
|
}
|
|
215
217
|
function toScans(outcome, inference) {
|
|
216
218
|
const scans = [];
|
|
219
|
+
/** visitRef -> the scan a checks-only record merges into. */
|
|
220
|
+
const byVisit = new Map();
|
|
217
221
|
for (const record of outcome.records) {
|
|
218
222
|
if (record.kind !== 'scan')
|
|
219
223
|
continue;
|
|
224
|
+
/*
|
|
225
|
+
* A checks-only record carries the driven checks for a page that was
|
|
226
|
+
* already scanned and had not changed, so no axe run happened. It MERGES
|
|
227
|
+
* into the scan sharing its visitRef rather than becoming a second row:
|
|
228
|
+
* two rows for one context would collide in dedupe, and whichever lost
|
|
229
|
+
* would take its whole kind of evidence with it — silently, and in a
|
|
230
|
+
* direction nobody could see from the output.
|
|
231
|
+
*
|
|
232
|
+
* A record with no scan to merge into is dropped. It cannot happen (the
|
|
233
|
+
* only emitter checks first) and inventing a surface for it would be worse
|
|
234
|
+
* than losing it.
|
|
235
|
+
*/
|
|
236
|
+
if (record.checksOnly) {
|
|
237
|
+
const host = byVisit.get(record.visitRef);
|
|
238
|
+
if (!host)
|
|
239
|
+
continue;
|
|
240
|
+
host.findings.push(...record.findings);
|
|
241
|
+
host.passes.push(...record.passes);
|
|
242
|
+
if (record.inapplicable && record.inapplicable.length > 0) {
|
|
243
|
+
host.inapplicable = [...(host.inapplicable ?? []), ...record.inapplicable];
|
|
244
|
+
}
|
|
245
|
+
continue;
|
|
246
|
+
}
|
|
220
247
|
const { pattern } = toUrlPattern(record.page.url);
|
|
221
248
|
const explicit = record.declared.surface.length > 0;
|
|
222
249
|
const context = {
|
|
@@ -271,6 +298,7 @@ function toScans(outcome, inference) {
|
|
|
271
298
|
if (record.settle)
|
|
272
299
|
scan.settle = record.settle;
|
|
273
300
|
scans.push(scan);
|
|
301
|
+
byVisit.set(record.visitRef, scan);
|
|
274
302
|
}
|
|
275
303
|
return scans;
|
|
276
304
|
}
|
package/dist/envelope.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"envelope.js","sourceRoot":"","sources":["../src/envelope.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAGlE,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,qBAAqB,GACtB,MAAM,0BAA0B,CAAC;AAKlC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,WAAW,EAAoB,MAAM,aAAa,CAAC;AAC5D,OAAO,EACL,YAAY,EACZ,cAAc,EACd,YAAY,GAGb,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,SAAS,EAAiB,gBAAgB,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"envelope.js","sourceRoot":"","sources":["../src/envelope.ts"],"names":[],"mappings":"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"}
|
package/dist/fixture.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fixture.d.ts","sourceRoot":"","sources":["../src/fixture.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAQ,QAAQ,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"fixture.d.ts","sourceRoot":"","sources":["../src/fixture.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAQ,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAavE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAC;AAwE7D,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,wBAAwB,IAElE,0BAA0B;IAAE,OAAO,EAAE,cAAc,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,EAC1E,KAAK,CAAC,OAAO,EAAE,cAAc,KAAK,OAAO,CAAC,IAAI,CAAC,EAC/C,UAAU,QAAQ,KACjB,OAAO,CAAC,IAAI,CAAC,CA+FjB"}
|
package/dist/fixture.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { SCAN_RECORD_ATTACHMENT, SCAN_RECORD_VERSION, } from './contract.js';
|
|
2
2
|
import { flushAutoScan, installAutoScan } from './autoscan.js';
|
|
3
|
+
import { KEY_LISTENER_SCRIPT } from './checks/shortcuts.js';
|
|
3
4
|
import { observePageRuntime } from './observe.js';
|
|
4
5
|
import { unscannableOmitted, unscannableRows } from './unscannable.js';
|
|
5
6
|
/**
|
|
@@ -70,6 +71,17 @@ export function createContextFixture(options) {
|
|
|
70
71
|
// A context that refuses init scripts still yields real navigations below.
|
|
71
72
|
// Partial evidence beats none, provided we do not pretend it is complete.
|
|
72
73
|
});
|
|
74
|
+
/*
|
|
75
|
+
* WCAG 2.1.4, and the only thing this SDK installs that runs before the
|
|
76
|
+
* customer's own code. Opt-in for exactly that reason — see
|
|
77
|
+
* `SetsquareOptions.keyShortcuts` and `checks/shortcuts.ts`.
|
|
78
|
+
*/
|
|
79
|
+
if (options.keyShortcuts && !options.disabled) {
|
|
80
|
+
await context.addInitScript(KEY_LISTENER_SCRIPT).catch(() => {
|
|
81
|
+
// Same posture as above: without it, 2.1.4 has no evidence in this run
|
|
82
|
+
// rather than a clean one.
|
|
83
|
+
});
|
|
84
|
+
}
|
|
73
85
|
const observe = (page) => {
|
|
74
86
|
const observer = { page, navigations: [] };
|
|
75
87
|
observers.push(observer);
|
package/dist/fixture.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fixture.js","sourceRoot":"","sources":["../src/fixture.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"fixture.js","sourceRoot":"","sources":["../src/fixture.ts"],"names":[],"mappings":"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"}
|
package/dist/html-report.d.ts
CHANGED
|
@@ -41,16 +41,33 @@ export interface HtmlReportInput {
|
|
|
41
41
|
*/
|
|
42
42
|
group?: RunGroupMeta;
|
|
43
43
|
/**
|
|
44
|
-
* The run's screenshots, when it produced any.
|
|
44
|
+
* The run's screenshots, when it produced any — counted here, not shown.
|
|
45
45
|
*
|
|
46
|
-
*
|
|
47
|
-
*
|
|
48
|
-
*
|
|
49
|
-
*
|
|
50
|
-
*
|
|
51
|
-
*
|
|
46
|
+
* This document used to EMBED the whole contact sheet, which meant a report
|
|
47
|
+
* carrying every capture inline: on this repository's own site that is most
|
|
48
|
+
* of a 696 KB file, and the pictures sit between the conformance verdict and
|
|
49
|
+
* the provenance, where somebody scrolling for the verdict has to pass all of
|
|
50
|
+
* them. The sheet is already written beside this file and is better read on
|
|
51
|
+
* its own, at its own pace.
|
|
52
|
+
*
|
|
53
|
+
* So the section is now a link plus a count. The count is the part worth
|
|
54
|
+
* keeping inline: "no captures" and "forty captures nobody looked at" are
|
|
55
|
+
* different states, and a bare link cannot tell them apart.
|
|
56
|
+
*
|
|
57
|
+
* Absent means no captures to show, and the section is omitted rather than
|
|
58
|
+
* rendered empty: a WCAG evidence document should not carry a heading whose
|
|
59
|
+
* only content is an apology.
|
|
52
60
|
*/
|
|
53
61
|
screens?: ScreensInput;
|
|
62
|
+
/**
|
|
63
|
+
* Where the contact sheet was written, relative to this file.
|
|
64
|
+
*
|
|
65
|
+
* Set ONLY once that file exists. The reporter writes the sheet before this
|
|
66
|
+
* report for exactly that reason — a link to a file a failed write never
|
|
67
|
+
* produced is worse than no link, and the sheet has its own failure domain
|
|
68
|
+
* precisely so it can fail alone.
|
|
69
|
+
*/
|
|
70
|
+
screensHref?: string;
|
|
54
71
|
/**
|
|
55
72
|
* Local-only facts from `meta.json`, for the P1b insight sections.
|
|
56
73
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"html-report.d.ts","sourceRoot":"","sources":["../src/html-report.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAE1D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"html-report.d.ts","sourceRoot":"","sources":["../src/html-report.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAE1D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AA8BlD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC5D,OAAO,EAAe,KAAK,YAAY,EAAE,MAAM,cAAc,CAAC;AAmB9D;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,6EAA6E;IAC7E,cAAc,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,CAAC;IACxD;;;;OAIG;IACH,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB;;;;;;;;;;;;;;;;;OAiBG;IACH,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB;;;;;;;OAOG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;;;;OAOG;IACH,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,QAAQ,CAAC,EAAE,aAAa,CAAC;IACzB,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,cAAc,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACpC;AAgSD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,eAAe,GAAG,MAAM,CA48B/D"}
|