@setsquare/review-sdk 0.1.0 → 0.2.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 (73) hide show
  1. package/README.md +119 -16
  2. package/dist/autoscan.d.ts +9 -1
  3. package/dist/autoscan.d.ts.map +1 -1
  4. package/dist/autoscan.js +57 -7
  5. package/dist/autoscan.js.map +1 -1
  6. package/dist/axe.d.ts.map +1 -1
  7. package/dist/axe.js +25 -3
  8. package/dist/axe.js.map +1 -1
  9. package/dist/checks/context-change.d.ts.map +1 -1
  10. package/dist/checks/context-change.js +3 -0
  11. package/dist/checks/context-change.js.map +1 -1
  12. package/dist/checks/dynamic.d.ts.map +1 -1
  13. package/dist/checks/dynamic.js +3 -0
  14. package/dist/checks/dynamic.js.map +1 -1
  15. package/dist/checks/focus.d.ts +25 -5
  16. package/dist/checks/focus.d.ts.map +1 -1
  17. package/dist/checks/focus.js +203 -15
  18. package/dist/checks/focus.js.map +1 -1
  19. package/dist/checks/heuristics.d.ts +6 -5
  20. package/dist/checks/heuristics.d.ts.map +1 -1
  21. package/dist/checks/heuristics.js +37 -1
  22. package/dist/checks/heuristics.js.map +1 -1
  23. package/dist/checks/keyboard.js +12 -0
  24. package/dist/checks/keyboard.js.map +1 -1
  25. package/dist/checks/reflow.d.ts.map +1 -1
  26. package/dist/checks/reflow.js +4 -0
  27. package/dist/checks/reflow.js.map +1 -1
  28. package/dist/checks/shortcuts.d.ts.map +1 -1
  29. package/dist/checks/shortcuts.js +3 -0
  30. package/dist/checks/shortcuts.js.map +1 -1
  31. package/dist/colour-shim.d.ts +77 -0
  32. package/dist/colour-shim.d.ts.map +1 -0
  33. package/dist/colour-shim.js +192 -0
  34. package/dist/colour-shim.js.map +1 -0
  35. package/dist/contract.d.ts +14 -0
  36. package/dist/contract.d.ts.map +1 -1
  37. package/dist/envelope.d.ts.map +1 -1
  38. package/dist/envelope.js +78 -16
  39. package/dist/envelope.js.map +1 -1
  40. package/dist/findings.d.ts.map +1 -1
  41. package/dist/findings.js +57 -0
  42. package/dist/findings.js.map +1 -1
  43. package/dist/fixture.d.ts.map +1 -1
  44. package/dist/fixture.js +21 -4
  45. package/dist/fixture.js.map +1 -1
  46. package/dist/html-report.d.ts.map +1 -1
  47. package/dist/html-report.js +54 -12
  48. package/dist/html-report.js.map +1 -1
  49. package/dist/insights.d.ts.map +1 -1
  50. package/dist/insights.js +9 -12
  51. package/dist/insights.js.map +1 -1
  52. package/dist/options.d.ts +20 -9
  53. package/dist/options.d.ts.map +1 -1
  54. package/dist/options.js +23 -1
  55. package/dist/options.js.map +1 -1
  56. package/dist/reporter.js +2 -2
  57. package/dist/reporter.js.map +1 -1
  58. package/dist/screens.d.ts.map +1 -1
  59. package/dist/screens.js +34 -1
  60. package/dist/screens.js.map +1 -1
  61. package/dist/settle.d.ts +35 -0
  62. package/dist/settle.d.ts.map +1 -1
  63. package/dist/settle.js +43 -2
  64. package/dist/settle.js.map +1 -1
  65. package/dist/summary.d.ts +33 -1
  66. package/dist/summary.d.ts.map +1 -1
  67. package/dist/summary.js +271 -45
  68. package/dist/summary.js.map +1 -1
  69. package/dist/unscannable-reasons.d.ts +30 -0
  70. package/dist/unscannable-reasons.d.ts.map +1 -0
  71. package/dist/unscannable-reasons.js +53 -0
  72. package/dist/unscannable-reasons.js.map +1 -0
  73. package/package.json +4 -4
@@ -67,11 +67,21 @@ export interface IndicatorRow {
67
67
  /**
68
68
  * Whether `:focus-visible` matched once focused.
69
69
  *
70
- * Load-bearing, not a curiosity. A great many sites style `:focus-visible`
71
- * only, and a programmatic `focus()` does not always match it — so "nothing
72
- * changed" from a script-driven focus is not the same claim as "a keyboard
73
- * user sees nothing". When this is false the row cannot support a violation
74
- * and reports needs-review instead.
70
+ * Load-bearing, and it used to document a limitation as though it were a fact
71
+ * about the world: "a programmatic `focus()` does not always match it". That
72
+ * is true, and it is a property of OUR METHOD rather than of the page. The
73
+ * browser is reporting modality whether the last real interaction was a
74
+ * keyboard one — and a suite that clicked anything leaves us in pointer
75
+ * modality, where `:focus-visible` matches nothing at all.
76
+ *
77
+ * Friction record run 4 measured the cost: 129 elements on Eos reported as
78
+ * "we could not tell", on a site that styles `:focus-visible` only — which is
79
+ * to say, the population this check exists for was the population it could
80
+ * least judge.
81
+ *
82
+ * The walk now presses Tab before measuring, so this field answers the
83
+ * question it is named for. When it is still false, that is a real signal
84
+ * rather than an artefact.
75
85
  */
76
86
  focusVisible: boolean;
77
87
  /**
@@ -129,6 +139,16 @@ export interface FocusWalk {
129
139
  ambiguous: ObscuredRow[];
130
140
  /** One row per element focused, for 2.4.7 and 2.4.13. */
131
141
  indicators: IndicatorRow[];
142
+ /**
143
+ * Did we manage to put the browser into keyboard modality before measuring?
144
+ *
145
+ * `:focus-visible` is a statement about modality, so every row's
146
+ * `focusVisible` is only as good as this. False means the Tab press did not
147
+ * happen — a page closed under us, typically — and the rows below cannot
148
+ * distinguish "no indicator" from "we were in pointer modality", which is the
149
+ * difference this whole check turns on.
150
+ */
151
+ keyboardModality: boolean;
132
152
  }
133
153
  /**
134
154
  * WCAG 2.4.11 Focus Not Obscured (Minimum, AA) and 2.4.12 (Enhanced, AAA).
@@ -1 +1 @@
1
- {"version":3,"file":"focus.d.ts","sourceRoot":"","sources":["../../src/checks/focus.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAS7C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAEzD;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAGH,eAAO,MAAM,8BAA8B,sBAAsB,CAAC;AAElE,eAAO,MAAM,sBAAsB,6BAA6B,CAAC;AACjE,eAAO,MAAM,+BAA+B,sCAAsC,CAAC;AACnF,eAAO,MAAM,qBAAqB,4BAA4B,CAAC;AAC/D,eAAO,MAAM,wBAAwB,+BAA+B,CAAC;AAsCrE;;;;;;;;GAQG;AACH,MAAM,WAAW,WAAW;IAC1B,4CAA4C;IAC5C,QAAQ,EAAE,MAAM,CAAC;IACjB,wDAAwD;IACxD,EAAE,EAAE,MAAM,CAAC;IACX,oEAAoE;IACpE,UAAU,EAAE,MAAM,CAAC;IACnB,kEAAkE;IAClE,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,0EAA0E;IAC1E,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB;;;;;;;;OAQG;IACH,YAAY,EAAE,OAAO,CAAC;IACtB;;;;;OAKG;IACH,cAAc,EAAE,MAAM,CAAC;IACvB,iDAAiD;IACjD,MAAM,EAAE,cAAc,EAAE,CAAC;IACzB,2EAA2E;IAC3E,gBAAgB,EAAE,MAAM,CAAC;IACzB;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,SAAS,GAAG,YAAY,GAAG,QAAQ,GAAG,YAAY,CAAC;IACzD,gCAAgC;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,+BAA+B;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf;;;;OAIG;IACH,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,2CAA2C;IAC3C,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,SAAS;IACxB,kFAAkF;IAClF,OAAO,EAAE,MAAM,CAAC;IAChB,oDAAoD;IACpD,KAAK,EAAE,MAAM,CAAC;IACd,uEAAuE;IACvE,SAAS,EAAE,OAAO,CAAC;IACnB,8CAA8C;IAC9C,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,mFAAmF;IACnF,SAAS,EAAE,WAAW,EAAE,CAAC;IACzB,yDAAyD;IACzD,UAAU,EAAE,YAAY,EAAE,CAAC;CAC5B;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,UAAU,GACjB,OAAO,CAAC,oBAAoB,EAAE,CAAC,CAuwBjC;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,GAAG,oBAAoB,EAAE,CAMzF"}
1
+ {"version":3,"file":"focus.d.ts","sourceRoot":"","sources":["../../src/checks/focus.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAS7C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAEzD;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAGH,eAAO,MAAM,8BAA8B,sBAAsB,CAAC;AAElE,eAAO,MAAM,sBAAsB,6BAA6B,CAAC;AACjE,eAAO,MAAM,+BAA+B,sCAAsC,CAAC;AACnF,eAAO,MAAM,qBAAqB,4BAA4B,CAAC;AAC/D,eAAO,MAAM,wBAAwB,+BAA+B,CAAC;AAsCrE;;;;;;;;GAQG;AACH,MAAM,WAAW,WAAW;IAC1B,4CAA4C;IAC5C,QAAQ,EAAE,MAAM,CAAC;IACjB,wDAAwD;IACxD,EAAE,EAAE,MAAM,CAAC;IACX,oEAAoE;IACpE,UAAU,EAAE,MAAM,CAAC;IACnB,kEAAkE;IAClE,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,0EAA0E;IAC1E,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB;;;;;;;;;;;;;;;;;;OAkBG;IACH,YAAY,EAAE,OAAO,CAAC;IACtB;;;;;OAKG;IACH,cAAc,EAAE,MAAM,CAAC;IACvB,iDAAiD;IACjD,MAAM,EAAE,cAAc,EAAE,CAAC;IACzB,2EAA2E;IAC3E,gBAAgB,EAAE,MAAM,CAAC;IACzB;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,SAAS,GAAG,YAAY,GAAG,QAAQ,GAAG,YAAY,CAAC;IACzD,gCAAgC;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,+BAA+B;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf;;;;OAIG;IACH,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,2CAA2C;IAC3C,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,SAAS;IACxB,kFAAkF;IAClF,OAAO,EAAE,MAAM,CAAC;IAChB,oDAAoD;IACpD,KAAK,EAAE,MAAM,CAAC;IACd,uEAAuE;IACvE,SAAS,EAAE,OAAO,CAAC;IACnB,8CAA8C;IAC9C,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,mFAAmF;IACnF,SAAS,EAAE,WAAW,EAAE,CAAC;IACzB,yDAAyD;IACzD,UAAU,EAAE,YAAY,EAAE,CAAC;IAC3B;;;;;;;;OAQG;IACH,gBAAgB,EAAE,OAAO,CAAC;CAC3B;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,UAAU,GACjB,OAAO,CAAC,oBAAoB,EAAE,CAAC,CAu2BjC;AA0CD;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,GAAG,oBAAoB,EAAE,CAMzF"}
@@ -78,9 +78,35 @@ const FOCUSABLE = [
78
78
  * the same scoping as the in-page rule pack and axe's own three AAA rules.
79
79
  */
80
80
  export async function runFocusNotObscured(page, target) {
81
+ /*
82
+ * Put the browser into keyboard modality BEFORE measuring anything.
83
+ *
84
+ * `:focus-visible` is a statement about how the user got here, not about the
85
+ * element — so a suite that clicked anything leaves us in pointer modality,
86
+ * where it matches nothing and every indicator styled for it is invisible to
87
+ * us. That is the whole of the 129 elements run 4 reported as undecidable.
88
+ *
89
+ * Measured across all three engines, after a real click:
90
+ *
91
+ * after click + Shift + Tab
92
+ * chromium false TRUE true
93
+ * firefox false false true
94
+ * webkit false false true
95
+ *
96
+ * So Tab, and only Tab. A bare `Shift` moves no focus and would have been
97
+ * tidier — and would have fixed Chromium while leaving Firefox and WebKit
98
+ * exactly as blind as before, which is the worst of the three outcomes
99
+ * because it looks fixed.
100
+ *
101
+ * And it does not buy the measurement: an element with no indicator under
102
+ * either selector still computes `outline-style: none` after Tab in all
103
+ * three engines.
104
+ */
105
+ const keyboardModality = await establishKeyboardModality(page);
81
106
  let walk;
82
107
  try {
83
- walk = await page.evaluate(({ selector, maxElements, budgetMs }) => {
108
+ walk = await page
109
+ .evaluate(({ selector, maxElements, budgetMs }) => {
84
110
  const startedAt = performance.now();
85
111
  const previouslyFocused = document.activeElement;
86
112
  const scrollX = window.scrollX;
@@ -344,24 +370,83 @@ export async function runFocusNotObscured(page, target) {
344
370
  * the same reason. Guessing an average would be inventing a
345
371
  * measurement.
346
372
  */
373
+ /*
374
+ * What the browser will actually paint behind everything.
375
+ *
376
+ * Read once per walk, not per element — it cannot differ between two
377
+ * elements of the same document, and it costs a DOM insertion.
378
+ *
379
+ * `Canvas` is a CSS system colour, so this is an OBSERVATION rather
380
+ * than the assumption the old code refused to make: it resolves to a
381
+ * concrete value in all three engines, and it follows the user's
382
+ * forced-colors and colour-scheme settings, which "white" would not.
383
+ */
384
+ let canvasColour = null;
385
+ const pageCanvas = () => {
386
+ if (canvasColour !== null)
387
+ return canvasColour;
388
+ canvasColour = undefined;
389
+ try {
390
+ const probe = document.createElement('div');
391
+ probe.style.cssText =
392
+ 'position:fixed;left:-9999px;top:0;width:1px;height:1px;background-color:Canvas';
393
+ document.body.appendChild(probe);
394
+ canvasColour = rgb(window.getComputedStyle(probe).backgroundColor);
395
+ probe.remove();
396
+ }
397
+ catch {
398
+ canvasColour = undefined;
399
+ }
400
+ return canvasColour;
401
+ };
347
402
  const effectiveBackground = (start) => {
348
403
  let node = start;
404
+ /*
405
+ * Translucent layers passed over on the way up, nearest first.
406
+ *
407
+ * This used to give up the moment it met one — "the background
408
+ * behind it is semi-transparent" — and that was a measurement
409
+ * declined rather than a measurement unavailable. Compositing a
410
+ * stack of known alphas onto a known solid is exact arithmetic,
411
+ * and `composite` already does it for the indicator's own bands
412
+ * fifty lines above. The same page, the same sum, two different
413
+ * answers depending on which function asked.
414
+ */
415
+ const translucent = [];
416
+ const over = (base) => {
417
+ let result = base;
418
+ // Farthest first: each nearer layer composites over the result.
419
+ for (let i = translucent.length - 1; i >= 0; i -= 1) {
420
+ result = composite(translucent[i], result);
421
+ }
422
+ return result;
423
+ };
349
424
  while (node) {
350
425
  const cs = window.getComputedStyle(node);
351
426
  if (cs.backgroundImage && cs.backgroundImage !== 'none') {
427
+ /*
428
+ * The one that genuinely cannot be answered here. A gradient has
429
+ * no single colour, and averaging it would be inventing a
430
+ * measurement — the same answer axe's contrast rule gives, for
431
+ * the same reason. Sampling the composited pixel would need a
432
+ * screenshot, which this package does not take.
433
+ */
352
434
  return { unresolved: 'the background behind it is an image or a gradient' };
353
435
  }
354
436
  const colour = rgb(cs.backgroundColor);
355
437
  if (colour && colour[3] === 1)
356
- return { colour };
357
- if (colour && colour[3] > 0 && colour[3] < 1) {
358
- return { unresolved: 'the background behind it is semi-transparent' };
359
- }
438
+ return { colour: over(colour) };
439
+ if (colour && colour[3] > 0 && colour[3] < 1)
440
+ translucent.push(colour);
360
441
  node = node.parentElement;
361
442
  }
362
- // Nothing in the chain painted: the canvas is the browser default,
363
- // which we did not observe and will not assume.
364
- return { unresolved: 'nothing in the ancestor chain paints a background' };
443
+ // Nothing in the chain painted a solid colour, so what shows through
444
+ // is the canvas and that can be observed.
445
+ const canvas = pageCanvas();
446
+ if (!canvas) {
447
+ return { unresolved: 'nothing in the ancestor chain paints a background' };
448
+ }
449
+ return { colour: over(canvas) };
365
450
  };
366
451
  /*
367
452
  * The properties a focus indicator can be drawn with, including both
@@ -750,15 +835,61 @@ export async function runFocusNotObscured(page, target) {
750
835
  }
751
836
  window.scrollTo(scrollX, scrollY);
752
837
  return { checked, found: candidates.length, truncated, obscured, ambiguous, indicators };
753
- }, { selector: FOCUSABLE, maxElements: MAX_ELEMENTS, budgetMs: BUDGET_MS });
838
+ }, { selector: FOCUSABLE, maxElements: MAX_ELEMENTS, budgetMs: BUDGET_MS })
839
+ .then((result) => ({ ...result, keyboardModality }));
754
840
  }
755
841
  catch {
756
842
  // Never throws into a customer's test, and never reports a guess in place
757
843
  // of an answer: a walk that could not run produces no evidence at all.
758
844
  return [];
759
845
  }
846
+ finally {
847
+ // Tab moved focus off whatever the test left focused, and the walk restores
848
+ // only to where IT started — which is post-Tab. This puts the page back to
849
+ // where the test actually left it.
850
+ await releaseFocusAnchor(page);
851
+ }
760
852
  return focusEvidence(walk, target);
761
853
  }
854
+ /** Namespaced, and deleted again the moment it is used. Documented pollution. */
855
+ const FOCUS_ANCHOR = '__setsquareFocusAnchor';
856
+ /**
857
+ * Press Tab, having first remembered what the test left focused.
858
+ *
859
+ * Returns whether it worked. A page closed under us is the ordinary failure and
860
+ * it is not an error — but it does mean every `focusVisible` below is a
861
+ * statement about pointer modality, so the verdict has to say so rather than
862
+ * read it as "no indicator".
863
+ */
864
+ async function establishKeyboardModality(page) {
865
+ try {
866
+ await page.evaluate((key) => {
867
+ window[key] = document.activeElement;
868
+ }, FOCUS_ANCHOR);
869
+ await page.keyboard.press('Tab');
870
+ return true;
871
+ }
872
+ catch {
873
+ return false;
874
+ }
875
+ }
876
+ /** Put focus back where the test left it, and take our property off the window. */
877
+ async function releaseFocusAnchor(page) {
878
+ try {
879
+ await page.evaluate((key) => {
880
+ const global = window;
881
+ const anchor = global[key];
882
+ delete global[key];
883
+ if (anchor && anchor.isConnected && typeof anchor.focus === 'function')
884
+ anchor.focus();
885
+ else if (document.activeElement instanceof HTMLElement)
886
+ document.activeElement.blur();
887
+ }, FOCUS_ANCHOR);
888
+ }
889
+ catch {
890
+ // The page is gone. There is nothing to restore it to.
891
+ }
892
+ }
762
893
  /**
763
894
  * The verdict, as a pure function of the walk.
764
895
  *
@@ -806,6 +937,13 @@ function minimum(walk) {
806
937
  finding: {
807
938
  ruleId: FOCUS_OBSCURED_RULE_ID,
808
939
  status: 'incomplete',
940
+ /*
941
+ * The geometry IS measured — we know exactly what covers what. What is
942
+ * undecided is whether a translucent band HIDES the ring, and that is a
943
+ * judgement rather than a number: a decorative overlay at 20% does not,
944
+ * an opaque bar does, and the middle is a person looking.
945
+ */
946
+ undecidable: 'judgement',
809
947
  impact: 'moderate',
810
948
  wcag: MINIMUM_WCAG,
811
949
  helpUrl: FOCUS_NOT_OBSCURED_MINIMUM_HELP_URL,
@@ -845,6 +983,13 @@ function enhanced(walk) {
845
983
  finding: {
846
984
  ruleId: FOCUS_OBSCURED_ENHANCED_RULE_ID,
847
985
  status: 'incomplete',
986
+ /*
987
+ * The geometry IS measured — we know exactly what covers what. What is
988
+ * undecided is whether a translucent band HIDES the ring, and that is a
989
+ * judgement rather than a number: a decorative overlay at 20% does not,
990
+ * an opaque bar does, and the middle is a person looking.
991
+ */
992
+ undecidable: 'judgement',
848
993
  impact: 'moderate',
849
994
  wcag: ENHANCED_WCAG,
850
995
  helpUrl: FOCUS_NOT_OBSCURED_ENHANCED_HELP_URL,
@@ -919,18 +1064,43 @@ function focusVisible(walk) {
919
1064
  },
920
1065
  };
921
1066
  }
1067
+ /*
1068
+ * An unobserved row means something different depending on how we got here.
1069
+ *
1070
+ * With keyboard modality established, `:focus-visible` not matching is a fact
1071
+ * about the element. Without it — the Tab press failed, the page went away —
1072
+ * it is a fact about US, and reporting it as though we had looked would be the
1073
+ * manufactured cause this repository keeps finding.
1074
+ */
922
1075
  const review = [...unobserved, ...backgroundOnly];
923
1076
  if (review.length > 0) {
924
1077
  const why = unobserved.length > 0
925
- ? `:focus-visible did not match when we focused ${unobserved[0].selector} from script, so ` +
926
- `an indicator styled for :focus-visible only would not have applied "nothing changed" ` +
927
- `here is not the same claim as "a keyboard user sees nothing"`
1078
+ ? walk.keyboardModality
1079
+ ? `:focus-visible did not match on ${unobserved[0].selector} even after a Tab press put ` +
1080
+ `the browser in keyboard modality, so this element does not take the state an ` +
1081
+ `indicator styled for :focus-visible would paint`
1082
+ : `we could not press Tab on this page, so the browser stayed in pointer modality where ` +
1083
+ `:focus-visible matches nothing — "nothing changed" on ${unobserved[0].selector} is a ` +
1084
+ `statement about our measurement rather than about the page`
928
1085
  : `the only thing that changes on focus for ${backgroundOnly[0].selector} is its ` +
929
1086
  `background colour, which is as likely to be a hover style leaking as a deliberate indicator`;
930
1087
  return {
931
1088
  finding: {
932
1089
  ruleId: FOCUS_VISIBLE_RULE_ID,
933
1090
  status: 'incomplete',
1091
+ /*
1092
+ * The one branch here that carries both kinds, so it is decided per row
1093
+ * rather than per rule.
1094
+ *
1095
+ * A background-only change is a JUDGEMENT: we measured the change and
1096
+ * the question left is whether it was meant as an indicator or is a
1097
+ * hover style leaking, which a person settles by looking.
1098
+ *
1099
+ * Modality we could not establish is a MEASUREMENT: nothing about the
1100
+ * page is in doubt, we simply failed to press a key. That is our debt
1101
+ * and it belongs in the figure that should fall.
1102
+ */
1103
+ undecidable: walk.keyboardModality ? 'judgement' : 'measurement',
934
1104
  impact: 'moderate',
935
1105
  wcag: VISIBLE_WCAG,
936
1106
  helpUrl: FOCUS_VISIBLE_HELP_URL,
@@ -1027,13 +1197,31 @@ function focusAppearance(walk) {
1027
1197
  finding: {
1028
1198
  ruleId: FOCUS_APPEARANCE_RULE_ID,
1029
1199
  status: 'incomplete',
1200
+ /*
1201
+ * After #135 the only reason left here is a background that is an image
1202
+ * or a gradient, which has no single colour to contrast against. That is
1203
+ * a number we did not get rather than a question for a person — nobody
1204
+ * can settle it by looking either.
1205
+ */
1206
+ undecidable: 'measurement',
1030
1207
  impact: 'moderate',
1031
1208
  wcag: APPEARANCE_WCAG,
1032
1209
  helpUrl: FOCUS_APPEARANCE_HELP_URL,
1033
1210
  evidence: {
1034
- failureSummary: `The indicator on ${first.selector} measures ${first.qualifyingAreaPx}px² at ` +
1035
- `${APPEARANCE_MIN_CONTRAST}:1 against a requirement of ${first.requiredAreaPx}px², ` +
1036
- `and the shortfall turns on a band we could not measure: ${why}. ` +
1211
+ /*
1212
+ * `0px²` beside a refusal to judge is the worst of both: it looks like
1213
+ * a measurement and behaves like a shrug. It does not mean the
1214
+ * indicator is nothing — it means nothing we COULD measure qualified,
1215
+ * which is a different sentence and the one a reader needs.
1216
+ */
1217
+ failureSummary: (first.qualifyingAreaPx === 0
1218
+ ? `No band of the indicator on ${first.selector} could be measured at ` +
1219
+ `${APPEARANCE_MIN_CONTRAST}:1 or better against a requirement of ` +
1220
+ `${first.requiredAreaPx}px². `
1221
+ : `The indicator on ${first.selector} measures ${first.qualifyingAreaPx}px² at ` +
1222
+ `${APPEARANCE_MIN_CONTRAST}:1 against a requirement of ${first.requiredAreaPx}px², ` +
1223
+ 'and the shortfall turns on a band we could not measure: ') +
1224
+ (first.qualifyingAreaPx === 0 ? `The reason: ${why}. ` : `${why}. `) +
1037
1225
  `${undecided.length} element(s) affected${uniformReason(undecided)
1038
1226
  ? ', all for the same reason — one question about one component, not ' +
1039
1227
  `${undecided.length} separate ones`
@@ -1 +1 @@
1
- {"version":3,"file":"focus.js","sourceRoot":"","sources":["../../src/checks/focus.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"focus.js","sourceRoot":"","sources":["../../src/checks/focus.ts"],"names":[],"mappings":"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"}
@@ -105,12 +105,13 @@ export interface HeuristicSignals {
105
105
  * could not read produces no heuristic findings rather than empty ones.
106
106
  */
107
107
  export declare function readHeuristicSignals(page: Page): Promise<HeuristicSignals | undefined>;
108
+ export declare function heuristicEvidence(signals: HeuristicSignals, target: WcagTarget, switches?: HeuristicSwitches,
108
109
  /**
109
- * The seven verdicts, as a pure function of the signals.
110
+ * Had the page met the quiet definition when these signals were read?
110
111
  *
111
- * Separated from the reading for the reason `focus.ts` records at length: the
112
- * unit lane cannot see a computed style, and the half of a check that decides
113
- * what to CLAIM is the half where the honesty rules live.
112
+ * Defaults to true, so nothing is suppressed unless a caller can actually say
113
+ * otherwise an explicit scan suppresses nothing, because the customer chose
114
+ * the moment and it is not ours to second-guess.
114
115
  */
115
- export declare function heuristicEvidence(signals: HeuristicSignals, target: WcagTarget, switches?: HeuristicSwitches): DynamicCheckEvidence[];
116
+ pageWentQuiet?: boolean): DynamicCheckEvidence[];
116
117
  //# sourceMappingURL=heuristics.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"heuristics.d.ts","sourceRoot":"","sources":["../../src/checks/heuristics.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAY7C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAEzD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AAEH,eAAO,MAAM,4BAA4B,2BAA2B,CAAC;AAErE,eAAO,MAAM,kBAAkB;;;;;;;;CAQrB,CAAC;AAEX,MAAM,MAAM,WAAW,GAAG,MAAM,OAAO,kBAAkB,CAAC;AAE1D,8CAA8C;AAC9C,MAAM,MAAM,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC;AA2DtE,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,wEAAwE;IACxE,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,sEAAsE;IACtE,OAAO,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAClE,gFAAgF;IAChF,YAAY,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAClD,6DAA6D;IAC7D,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,aAAa,EAAE,MAAM,CAAC;IACtB,iFAAiF;IACjF,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,WAAW,EAAE,OAAO,CAAC;IACrB,8DAA8D;IAC9D,QAAQ,EAAE;QACR,MAAM,EAAE,OAAO,CAAC;QAChB,aAAa,EAAE,OAAO,CAAC;QACvB,UAAU,EAAE,OAAO,CAAC;QACpB,UAAU,EAAE,OAAO,CAAC;QACpB,UAAU,EAAE,OAAO,CAAC;QACpB,MAAM,EAAE,OAAO,CAAC;KACjB,CAAC;IACF,+DAA+D;IAC/D,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB;;;;;;;;OAQG;IACH,KAAK,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;CAC7C;AAED;;;GAGG;AACH,wBAAsB,oBAAoB,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC,CAM5F;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,gBAAgB,EACzB,MAAM,EAAE,UAAU,EAClB,QAAQ,GAAE,iBAAsB,GAC/B,oBAAoB,EAAE,CA8BxB"}
1
+ {"version":3,"file":"heuristics.d.ts","sourceRoot":"","sources":["../../src/checks/heuristics.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAY7C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAEzD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AAEH,eAAO,MAAM,4BAA4B,2BAA2B,CAAC;AAErE,eAAO,MAAM,kBAAkB;;;;;;;;CAQrB,CAAC;AAEX,MAAM,MAAM,WAAW,GAAG,MAAM,OAAO,kBAAkB,CAAC;AAE1D,8CAA8C;AAC9C,MAAM,MAAM,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC;AA2DtE,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,wEAAwE;IACxE,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,sEAAsE;IACtE,OAAO,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAClE,gFAAgF;IAChF,YAAY,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAClD,6DAA6D;IAC7D,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,aAAa,EAAE,MAAM,CAAC;IACtB,iFAAiF;IACjF,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,WAAW,EAAE,OAAO,CAAC;IACrB,8DAA8D;IAC9D,QAAQ,EAAE;QACR,MAAM,EAAE,OAAO,CAAC;QAChB,aAAa,EAAE,OAAO,CAAC;QACvB,UAAU,EAAE,OAAO,CAAC;QACpB,UAAU,EAAE,OAAO,CAAC;QACpB,UAAU,EAAE,OAAO,CAAC;QACpB,MAAM,EAAE,OAAO,CAAC;KACjB,CAAC;IACF,+DAA+D;IAC/D,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB;;;;;;;;OAQG;IACH,KAAK,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;CAC7C;AAED;;;GAGG;AACH,wBAAsB,oBAAoB,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC,CAM5F;AA4BD,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,gBAAgB,EACzB,MAAM,EAAE,UAAU,EAClB,QAAQ,GAAE,iBAAsB;AAChC;;;;;;GAMG;AACH,aAAa,UAAO,GACnB,oBAAoB,EAAE,CAiCxB"}
@@ -123,11 +123,41 @@ export async function readHeuristicSignals(page) {
123
123
  * unit lane cannot see a computed style, and the half of a check that decides
124
124
  * what to CLAIM is the half where the honesty rules live.
125
125
  */
126
- export function heuristicEvidence(signals, target, switches = {}) {
126
+ /**
127
+ * Heuristics whose finding is "this page carries none of the mechanisms".
128
+ *
129
+ * A claim about what is ABSENT is only as good as the page being finished, and
130
+ * these two read the whole document to make it: 2.4.8 asks whether anything —
131
+ * breadcrumb, `aria-current`, site map, `rel` link — says where you are, and
132
+ * 3.1.4 asks whether anything expands an abbreviation. Every other heuristic
133
+ * here reasons about content it can SEE, and a half-rendered page gives it less
134
+ * to look at rather than a different answer.
135
+ *
136
+ * Found by friction record run 4: the 2.4.8 cue fired on one run and not the
137
+ * next, on identical code, because an SPA's router had or had not painted its
138
+ * active state by the time the page was scanned. This file's own first rule is
139
+ * that a heuristic fires only above a margin, and one that flips on render
140
+ * timing does not clear it — so on a page we already know never went quiet, the
141
+ * honest answer is silence rather than a finding we cannot reproduce.
142
+ */
143
+ const PAGE_ABSENCE_CLAIMS = new Set(['location', 'abbreviations']);
144
+ export function heuristicEvidence(signals, target, switches = {},
145
+ /**
146
+ * Had the page met the quiet definition when these signals were read?
147
+ *
148
+ * Defaults to true, so nothing is suppressed unless a caller can actually say
149
+ * otherwise — an explicit scan suppresses nothing, because the customer chose
150
+ * the moment and it is not ours to second-guess.
151
+ */
152
+ pageWentQuiet = true) {
127
153
  const english = signals.lang.toLowerCase().startsWith('en');
128
154
  const enabled = (id) => {
129
155
  if (switches[id] === false)
130
156
  return false;
157
+ // Silent, not a pass: the page never finished, so we did not look at the
158
+ // whole of it, and "we saw no mechanism" would be a claim about our timing.
159
+ if (!pageWentQuiet && PAGE_ABSENCE_CLAIMS.has(id))
160
+ return false;
131
161
  // Silent rather than guessing: a phrase list applied to a language it was
132
162
  // not written for manufactures findings, and a missing `lang` is already
133
163
  // an axe violation (3.1.1) rather than this check's problem to solve.
@@ -162,6 +192,12 @@ function note(ruleId, criteria, level, helpUrl, failureSummary, selectors) {
162
192
  // A judgement, so it asks. `fail()` is the sibling for the ones that
163
193
  // measure. See rule 1 at the top of this file.
164
194
  status: 'incomplete',
195
+ /*
196
+ * Every heuristic in this file is a judgement by construction — rule 1 at the
197
+ * top says so: `fail()` is for the ones that measure and `note()` is for the
198
+ * ones that ask. A person settles each of these by reading the page.
199
+ */
200
+ undecidable: 'judgement',
165
201
  impact: 'moderate',
166
202
  wcag: { criteria, level, versionTags: [] },
167
203
  helpUrl,