mcp-accessibility-scanner 3.0.0 → 3.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.
Files changed (59) hide show
  1. package/README.md +232 -7
  2. package/lib/browserContextFactory.js +645 -32
  3. package/lib/browserContextFactory.js.map +1 -1
  4. package/lib/browserServerBackend.js +8 -2
  5. package/lib/browserServerBackend.js.map +1 -1
  6. package/lib/context.js +179 -62
  7. package/lib/context.js.map +1 -1
  8. package/lib/extension/extensionContextFactory.js +3 -0
  9. package/lib/extension/extensionContextFactory.js.map +1 -1
  10. package/lib/mcp/proxyBackend.js +1 -0
  11. package/lib/mcp/proxyBackend.js.map +1 -1
  12. package/lib/networkPolicy.js +73 -0
  13. package/lib/networkPolicy.js.map +1 -0
  14. package/lib/program.js +21 -3
  15. package/lib/program.js.map +1 -1
  16. package/lib/response.js +8 -3
  17. package/lib/response.js.map +1 -1
  18. package/lib/tab.js +117 -16
  19. package/lib/tab.js.map +1 -1
  20. package/lib/tools/auditKeyboard.js +203 -0
  21. package/lib/tools/auditKeyboard.js.map +1 -1
  22. package/lib/tools/auditScreenReader.js +826 -0
  23. package/lib/tools/auditScreenReader.js.map +1 -0
  24. package/lib/tools/auditSite.js +267 -86
  25. package/lib/tools/auditSite.js.map +1 -1
  26. package/lib/tools/axe.js +479 -21
  27. package/lib/tools/axe.js.map +1 -1
  28. package/lib/tools/dialogs.js +18 -4
  29. package/lib/tools/dialogs.js.map +1 -1
  30. package/lib/tools/evaluate.js +34 -5
  31. package/lib/tools/evaluate.js.map +1 -1
  32. package/lib/tools/keyboard.js +1 -2
  33. package/lib/tools/keyboard.js.map +1 -1
  34. package/lib/tools/navigate.js +2 -1
  35. package/lib/tools/navigate.js.map +1 -1
  36. package/lib/tools/network.js +225 -8
  37. package/lib/tools/network.js.map +1 -1
  38. package/lib/tools/scanPageMatrix.js +134 -43
  39. package/lib/tools/scanPageMatrix.js.map +1 -1
  40. package/lib/tools/screenshot.js +3 -3
  41. package/lib/tools/screenshot.js.map +1 -1
  42. package/lib/tools/snapshot.js +269 -8
  43. package/lib/tools/snapshot.js.map +1 -1
  44. package/lib/tools/tool.js.map +1 -1
  45. package/lib/tools/utils.js +62 -6
  46. package/lib/tools/utils.js.map +1 -1
  47. package/lib/tools.js +5 -2
  48. package/lib/tools.js.map +1 -1
  49. package/lib/utils/dataUrl.js +58 -35
  50. package/lib/utils/dataUrl.js.map +1 -1
  51. package/lib/utils/jsSource.js +187 -0
  52. package/lib/utils/jsSource.js.map +1 -0
  53. package/lib/vscode/browserContextFactory.js +83 -0
  54. package/lib/vscode/browserContextFactory.js.map +1 -0
  55. package/lib/vscode/host.js +16 -1
  56. package/lib/vscode/host.js.map +1 -1
  57. package/lib/vscode/main.js +1 -33
  58. package/lib/vscode/main.js.map +1 -1
  59. package/package.json +6 -4
@@ -2,7 +2,7 @@ import fs from 'node:fs';
2
2
  import { z } from 'zod';
3
3
  import { defineTabTool } from './tool.js';
4
4
  import { sanitizeForFilePath } from '../utils/fileUtils.js';
5
- import { axeTagValues, dedupeAxeNodes, runAxeScan, summarizeAxeViolations, trimAxeResults } from './axe.js';
5
+ import { assertRuleOptionsValid, axeRuleSchemaShape, axeScopeSchemaShape, axeTagValues, defaultAxeTags, prepareAxeResults, runAxeScan, summarizeAxeViolations, } from './axe.js';
6
6
  const variantSchema = z.object({
7
7
  name: z.string().min(1).describe('Variant name.'),
8
8
  viewport: z.object({
@@ -44,18 +44,50 @@ const defaultVariants = [
44
44
  ];
45
45
  const scanPageMatrixSchema = z.object({
46
46
  variants: z.array(variantSchema).min(1).optional().describe('Variant list to run. Defaults to baseline/mobile/desktop/forced-colors/reduced-motion/zoom-200.'),
47
- violationsTag: z.array(z.enum(axeTagValues)).min(1).default([...axeTagValues]).describe('Axe tags to include in scans.'),
47
+ violationsTag: z.array(z.enum(axeTagValues)).min(1).default([...defaultAxeTags]).describe('Axe tags to include in scans.'),
48
+ includeIncomplete: z.boolean().default(true).describe('Also collect Axe "incomplete" results per variant — checks Axe could not decide automatically.'),
48
49
  maxNodesPerViolation: z.number().int().min(1).max(50).default(10).describe('Maximum nodes kept per violation in the report.'),
49
50
  waitAfterApplyMs: z.number().int().min(0).max(5000).default(250).describe('Wait after applying each variant before scanning.'),
50
51
  reloadBetweenVariants: z.boolean().default(false).describe('Reload page between variants.'),
51
52
  reportFile: z.string().optional().describe('Output JSON report file name.'),
53
+ ...axeScopeSchemaShape,
54
+ ...axeRuleSchemaShape,
52
55
  });
53
- function normalizeMedia(variantMedia) {
56
+ // Playwright has no getter for a page's media emulation, and passing null to
57
+ // emulateMedia resets a feature to the browser default rather than to whatever
58
+ // the context was created with: a context made with `colorScheme: 'dark'` reads
59
+ // light again after a null. So the effective state is measured from the page
60
+ // before the first variant and used both as the per-variant fallback and to put
61
+ // the page back afterwards - the same way the viewport and zoom already are.
62
+ async function readPageState(page) {
63
+ return await page.evaluate(() => ({
64
+ zoom: document.documentElement.style.zoom || '',
65
+ media: {
66
+ // Neither query matching is a third state, not light. Pinning it to light
67
+ // would emulate a preference the page never had, so it is left
68
+ // un-emulated - the same treatment the unrepresentable contrast values get.
69
+ colorScheme: matchMedia('(prefers-color-scheme: dark)').matches
70
+ ? 'dark'
71
+ : matchMedia('(prefers-color-scheme: light)').matches ? 'light' : null,
72
+ forcedColors: matchMedia('(forced-colors: active)').matches ? 'active' : 'none',
73
+ reducedMotion: matchMedia('(prefers-reduced-motion: reduce)').matches ? 'reduce' : 'no-preference',
74
+ // `less` and `custom` are values emulateMedia cannot express. Leaving the
75
+ // feature un-emulated reproduces them exactly, naming a value cannot.
76
+ contrast: matchMedia('(prefers-contrast: more)').matches
77
+ ? 'more'
78
+ : matchMedia('(prefers-contrast: no-preference)').matches ? 'no-preference' : null,
79
+ },
80
+ }));
81
+ }
82
+ // An unset property means "whatever this page had before the scan started", not
83
+ // "the browser default" - undoing the previous variant must not also undo the
84
+ // media emulation the session was configured with.
85
+ function normalizeMedia(variantMedia, original) {
54
86
  return {
55
- colorScheme: variantMedia?.colorScheme ?? null,
56
- forcedColors: variantMedia?.forcedColors ?? null,
57
- contrast: variantMedia?.contrast ?? null,
58
- reducedMotion: variantMedia?.reducedMotion ?? null,
87
+ colorScheme: variantMedia?.colorScheme ?? original.colorScheme,
88
+ forcedColors: variantMedia?.forcedColors ?? original.forcedColors,
89
+ contrast: variantMedia?.contrast ?? original.contrast,
90
+ reducedMotion: variantMedia?.reducedMotion ?? original.reducedMotion,
59
91
  };
60
92
  }
61
93
  function safeIsoTimestampForFileName() {
@@ -92,47 +124,65 @@ const scanPageMatrix = defineTabTool({
92
124
  type: 'destructive',
93
125
  },
94
126
  handle: async (tab, params, response) => {
127
+ // Rule ids apply to the whole run, so a bad one must fail before the first
128
+ // variant is applied. The finally block restores viewport/media/zoom, but
129
+ // reloadBetweenVariants has already thrown away form and application state
130
+ // by the time the per-scan check would reject the argument.
131
+ assertRuleOptionsValid({ rules: params.withRules, disableRules: params.disableRules });
95
132
  const variants = params.variants ?? defaultVariants;
96
133
  const originalViewport = tab.page.viewportSize() ?? await tab.page.evaluate(() => ({
97
134
  width: window.innerWidth,
98
135
  height: window.innerHeight,
99
136
  }));
100
- const originalZoom = await tab.page.evaluate(() => document.documentElement.style.zoom || '');
137
+ const { zoom: originalZoom, media: originalMedia } = await readPageState(tab.page);
101
138
  const variantResults = [];
102
139
  try {
103
140
  for (const variant of variants) {
104
141
  // Apply each property once per variant: the variant value when set,
105
142
  // otherwise the original page state (undoing the previous variant).
143
+ // Strictly in this order, not in parallel: a page that reacts to a
144
+ // viewport or media change by writing document.documentElement.style.zoom
145
+ // would overwrite a zoom applied alongside it, and the variant would be
146
+ // scanned - and reported - at a zoom it never actually had.
106
147
  await tab.page.setViewportSize(variant.viewport ?? originalViewport);
107
- await tab.page.emulateMedia(normalizeMedia(variant.media));
148
+ // One value, applied and then reported, so `applied.media` cannot drift
149
+ // from what the variant was actually scanned under.
150
+ const media = normalizeMedia(variant.media, originalMedia);
151
+ await tab.page.emulateMedia(media);
152
+ // Before the zoom, not after it. Viewport and media emulation survive a
153
+ // reload, but the zoom is an inline style on documentElement and the new
154
+ // document does not have it - applying it first would scan the variant
155
+ // unzoomed while `applied.zoomPercent` still claimed the requested zoom.
156
+ if (params.reloadBetweenVariants)
157
+ await tab.page.reload({ waitUntil: 'domcontentloaded' });
108
158
  await tab.page.evaluate(zoom => {
109
159
  document.documentElement.style.zoom = zoom;
110
160
  }, variant.zoomPercent !== undefined ? `${variant.zoomPercent}%` : originalZoom);
111
- if (params.reloadBetweenVariants)
112
- await tab.page.reload({ waitUntil: 'domcontentloaded' });
113
161
  await tab.waitForTimeout(params.waitAfterApplyMs);
114
- const axeResult = await runAxeScan(tab.page, params.violationsTag);
115
- const dedupedViolations = axeResult.violations.map(violation => ({
116
- ...violation,
117
- nodes: dedupeAxeNodes(violation.nodes),
118
- }));
119
- const trimmedViolations = trimAxeResults({ violations: dedupedViolations }, { maxNodesPerViolation: params.maxNodesPerViolation, dedupe: false });
120
- const nodeCountByRuleId = countNodesByRule(dedupedViolations);
162
+ const axeResult = await runAxeScan(tab.page, {
163
+ tags: params.violationsTag,
164
+ rules: params.withRules,
165
+ disableRules: params.disableRules,
166
+ include: params.includeSelectors,
167
+ exclude: params.excludeSelectors,
168
+ });
169
+ const violations = prepareAxeResults(axeResult.violations, params.maxNodesPerViolation);
170
+ const nodeCountByRuleId = countNodesByRule(violations.deduped);
121
171
  variantResults.push({
122
172
  name: variant.name,
123
173
  applied: {
124
174
  viewport: variant.viewport ?? null,
125
- media: normalizeMedia(variant.media),
175
+ media,
126
176
  zoomPercent: variant.zoomPercent ?? null,
127
177
  },
128
- summary: summarizeAxeViolations(trimmedViolations),
129
- violations: trimmedViolations,
178
+ summary: summarizeAxeViolations(violations.trimmed),
179
+ unscannedFrames: axeResult.unscannedFrames,
180
+ violations: violations.trimmed,
181
+ incomplete: params.includeIncomplete
182
+ ? prepareAxeResults(axeResult.incomplete, params.maxNodesPerViolation).trimmed
183
+ : [],
130
184
  nodeCountByRuleId,
131
- diffFromBaseline: {
132
- newViolationIds: [],
133
- resolvedViolationIds: [],
134
- changedCounts: {},
135
- },
185
+ diffFromBaseline: null,
136
186
  });
137
187
  await response.reportProgress({
138
188
  progress: variantResults.length,
@@ -140,29 +190,42 @@ const scanPageMatrix = defineTabTool({
140
190
  message: `Scanned variant ${variantResults.length}/${variants.length}: ${variant.name}`,
141
191
  });
142
192
  }
143
- const baselineCounts = variantResults[0]?.nodeCountByRuleId ?? {};
144
- for (const result of variantResults)
145
- result.diffFromBaseline = computeDiffFromBaseline(baselineCounts, result.nodeCountByRuleId);
193
+ const baseline = variantResults[0];
194
+ const baselineCounts = baseline?.nodeCountByRuleId ?? {};
195
+ for (const result of variantResults) {
196
+ // Only comparable when both sides scanned the same documents. With a
197
+ // frame missed on either side, a rule absent from one run may simply
198
+ // live in the document that went unscanned, and calling that "resolved"
199
+ // - or its reappearance "new" - states an accessibility outcome the run
200
+ // cannot support. The warning already says coverage differs; the
201
+ // numbers must not quietly contradict it.
202
+ const comparable = !result.unscannedFrames.length && !baseline?.unscannedFrames.length;
203
+ result.diffFromBaseline = comparable
204
+ ? computeDiffFromBaseline(baselineCounts, result.nodeCountByRuleId)
205
+ : null;
206
+ }
146
207
  }
147
208
  finally {
209
+ // Same ordering as the apply path, and for the same reason.
148
210
  await tab.page.setViewportSize(originalViewport);
149
- await tab.page.emulateMedia({
150
- colorScheme: null,
151
- forcedColors: null,
152
- contrast: null,
153
- reducedMotion: null,
154
- });
211
+ await tab.page.emulateMedia(originalMedia);
155
212
  await tab.page.evaluate(zoom => {
156
213
  document.documentElement.style.zoom = zoom;
157
214
  }, originalZoom);
158
215
  }
159
216
  const report = {
160
- version: 'v1',
217
+ // v2 allows diffFromBaseline to be null when scan coverage differs.
218
+ version: 'v2',
161
219
  metadata: {
162
220
  url: tab.page.url(),
163
221
  baselineVariant: variantResults[0]?.name ?? 'baseline',
164
222
  options: {
165
223
  violationsTag: params.violationsTag,
224
+ includeIncomplete: params.includeIncomplete,
225
+ includeSelectors: params.includeSelectors ?? null,
226
+ excludeSelectors: params.excludeSelectors ?? null,
227
+ withRules: params.withRules ?? null,
228
+ disableRules: params.disableRules ?? null,
166
229
  maxNodesPerViolation: params.maxNodesPerViolation,
167
230
  waitAfterApplyMs: params.waitAfterApplyMs,
168
231
  reloadBetweenVariants: params.reloadBetweenVariants,
@@ -182,6 +245,7 @@ const scanPageMatrix = defineTabTool({
182
245
  });
183
246
  response.setStructuredContent({
184
247
  kind: 'scan_page_matrix',
248
+ version: 'v2',
185
249
  report: {
186
250
  path: reportPath,
187
251
  uri: reportResourceLink.uri,
@@ -197,18 +261,45 @@ const scanPageMatrix = defineTabTool({
197
261
  name: result.name,
198
262
  totalViolations: result.summary.totalRules,
199
263
  totalNodes: result.summary.totalNodes,
200
- newViolationIds: result.diffFromBaseline.newViolationIds,
201
- resolvedViolationIds: result.diffFromBaseline.resolvedViolationIds,
202
- changedRuleIds: Object.keys(result.diffFromBaseline.changedCounts),
264
+ // null, not 0, when collection is off: structuredContent does not carry
265
+ // includeIncomplete, so a 0 here is indistinguishable from a variant
266
+ // with no needs-review findings. Matches the "-" in the markdown table.
267
+ totalIncomplete: params.includeIncomplete ? result.incomplete.length : null,
268
+ // Without this a client reading only structured output cannot tell a
269
+ // partly-scanned variant from a clean one.
270
+ unscannedFrames: result.unscannedFrames,
271
+ // null, not [], when the coverage differs from the baseline's: an empty
272
+ // list reads as "nothing changed", which is the one thing an incomplete
273
+ // pair of scans cannot establish.
274
+ newViolationIds: result.diffFromBaseline?.newViolationIds ?? null,
275
+ resolvedViolationIds: result.diffFromBaseline?.resolvedViolationIds ?? null,
276
+ changedRuleIds: result.diffFromBaseline ? Object.keys(result.diffFromBaseline.changedCounts) : null,
203
277
  reportUri: reportResourceLink.uri,
204
278
  })),
205
279
  });
280
+ const variantsWithUnscannedFrames = variantResults.filter(result => result.unscannedFrames.length);
206
281
  const lines = [
207
- 'Variant | Violations | Nodes | Top new vs baseline',
208
- '--- | --- | --- | ---',
282
+ ...(variantsWithUnscannedFrames.length ? [
283
+ `WARNING: Axe could not be installed in frames on ${variantsWithUnscannedFrames.length} variant(s); their contents were not scanned and contribute no findings below.`,
284
+ ...variantsWithUnscannedFrames.map(result => `- ${result.name}: ${result.unscannedFrames.join(', ')}`),
285
+ 'Baseline deltas are reported as "n/a" wherever the two scans did not cover the same documents.',
286
+ '',
287
+ ] : []),
288
+ 'Variant | Violations | Nodes | Incomplete | Top new vs baseline',
289
+ '--- | --- | --- | --- | ---',
209
290
  ...variantResults.map(result => {
210
- const topNew = result.diffFromBaseline.newViolationIds.slice(0, 5).join(', ') || '-';
211
- return `${result.name} | ${result.summary.totalRules} | ${result.summary.totalNodes} | ${topNew}`;
291
+ // "n/a" rather than "-": "-" means "compared, nothing new", which is a
292
+ // claim a pair of scans with differing coverage cannot make. The reason
293
+ // names neither side, because the gap may be in the baseline - in which
294
+ // case every other row is uncomparable through no fault of its own.
295
+ const topNew = result.diffFromBaseline
296
+ ? result.diffFromBaseline.newViolationIds.slice(0, 5).join(', ') || '-'
297
+ : 'n/a (coverage differs)';
298
+ // "-" rather than 0: with collection off, 0 is indistinguishable from
299
+ // "no needs-review findings". audit_site omits its section for the same
300
+ // reason.
301
+ const incomplete = params.includeIncomplete ? String(result.incomplete.length) : '-';
302
+ return `${result.name} | ${result.summary.totalRules} | ${result.summary.totalNodes} | ${incomplete} | ${topNew}`;
212
303
  }),
213
304
  '',
214
305
  `JSON report: ${reportPath}`,
@@ -1 +1 @@
1
- {"version":3,"file":"scanPageMatrix.js","sourceRoot":"","sources":["../../src/tools/scanPageMatrix.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scanPageMatrix.js","sourceRoot":"","sources":["../../src/tools/scanPageMatrix.ts"],"names":[],"mappings":"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"}
@@ -18,9 +18,9 @@ import { defineTabTool } from './tool.js';
18
18
  import * as javascript from '../utils/codegen.js';
19
19
  import { generateLocator } from './utils.js';
20
20
  const screenshotSchema = z.object({
21
- type: z.enum(['png', 'jpeg']).default('png').describe('Image format for the screenshot. Default is png.'),
21
+ type: z.enum(['png', 'jpeg', 'webp']).default('png').describe('Image format for the screenshot. Default is png.'),
22
22
  scale: z.enum(['css', 'device']).default('css').describe(`Image resolution scale. 'css' produces a screenshot sized in CSS pixels (smaller, consistent across devices). 'device' produces a high-resolution screenshot using device pixels (larger, accounts for the device pixel ratio). Default is css.`),
23
- filename: z.string().optional().describe('File name to save the screenshot to. Defaults to `page-{timestamp}.{png|jpeg}` if not specified.'),
23
+ filename: z.string().optional().describe('File name to save the screenshot to. Defaults to `page-{timestamp}.{png|jpeg|webp}` if not specified.'),
24
24
  element: z.string().optional().describe('Human-readable element description used to obtain permission to screenshot the element. If not provided, the screenshot will be taken of viewport. If element is provided, ref must be provided too.'),
25
25
  ref: z.string().optional().describe('Exact target element reference from the page snapshot. If not provided, the screenshot will be taken of viewport. If ref is provided, element must be provided too.'),
26
26
  fullPage: z.boolean().optional().describe('When true, takes a screenshot of the full scrollable page, instead of the currently visible viewport. Cannot be used with element screenshots.'),
@@ -69,7 +69,7 @@ const screenshot = defineTabTool({
69
69
  // Never return large images to LLM, saving them to the file system is enough.
70
70
  if (!params.fullPage) {
71
71
  response.addImage({
72
- contentType: fileType === 'png' ? 'image/png' : 'image/jpeg',
72
+ contentType: `image/${fileType}`,
73
73
  data: buffer
74
74
  });
75
75
  }
@@ -1 +1 @@
1
- {"version":3,"file":"screenshot.js","sourceRoot":"","sources":["../../src/tools/screenshot.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"screenshot.js","sourceRoot":"","sources":["../../src/tools/screenshot.ts"],"names":[],"mappings":"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"}