accessibility-server-mcp 1.0.7 → 1.0.9

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 +147 -6
  2. package/config/wcag-rules.json +22 -11
  3. package/dist/index.d.ts.map +1 -1
  4. package/dist/index.js +175 -31
  5. package/dist/index.js.map +1 -1
  6. package/dist/test-multi-standard.d.ts +6 -0
  7. package/dist/test-multi-standard.d.ts.map +1 -0
  8. package/dist/test-multi-standard.js +78 -0
  9. package/dist/test-multi-standard.js.map +1 -0
  10. package/dist/tools/accessibility-tester.d.ts +9 -1
  11. package/dist/tools/accessibility-tester.d.ts.map +1 -1
  12. package/dist/tools/accessibility-tester.js +75 -34
  13. package/dist/tools/accessibility-tester.js.map +1 -1
  14. package/dist/tools/wcag-validator.d.ts +19 -2
  15. package/dist/tools/wcag-validator.d.ts.map +1 -1
  16. package/dist/tools/wcag-validator.js +63 -1
  17. package/dist/tools/wcag-validator.js.map +1 -1
  18. package/dist/tools/website-accessibility-tester.d.ts +26 -4
  19. package/dist/tools/website-accessibility-tester.d.ts.map +1 -1
  20. package/dist/tools/website-accessibility-tester.js +122 -12
  21. package/dist/tools/website-accessibility-tester.js.map +1 -1
  22. package/dist/types/accessibility.d.ts +170 -5
  23. package/dist/types/accessibility.d.ts.map +1 -1
  24. package/dist/types/accessibility.js +67 -1
  25. package/dist/types/accessibility.js.map +1 -1
  26. package/dist/types/mcp.d.ts +13 -3
  27. package/dist/types/mcp.d.ts.map +1 -1
  28. package/dist/utils/ada-guidance.d.ts +22 -0
  29. package/dist/utils/ada-guidance.d.ts.map +1 -0
  30. package/dist/utils/ada-guidance.js +131 -0
  31. package/dist/utils/ada-guidance.js.map +1 -0
  32. package/dist/utils/browser-manager.d.ts +13 -0
  33. package/dist/utils/browser-manager.d.ts.map +1 -1
  34. package/dist/utils/browser-manager.js +67 -0
  35. package/dist/utils/browser-manager.js.map +1 -1
  36. package/dist/utils/index.d.ts +3 -0
  37. package/dist/utils/index.d.ts.map +1 -1
  38. package/dist/utils/index.js +3 -0
  39. package/dist/utils/index.js.map +1 -1
  40. package/dist/utils/report-generator.d.ts.map +1 -1
  41. package/dist/utils/report-generator.js +37 -2
  42. package/dist/utils/report-generator.js.map +1 -1
  43. package/dist/utils/standard-presets.d.ts +58 -0
  44. package/dist/utils/standard-presets.d.ts.map +1 -0
  45. package/dist/utils/standard-presets.js +188 -0
  46. package/dist/utils/standard-presets.js.map +1 -0
  47. package/dist/utils/standard-tag-metadata.d.ts +35 -0
  48. package/dist/utils/standard-tag-metadata.d.ts.map +1 -0
  49. package/dist/utils/standard-tag-metadata.js +416 -0
  50. package/dist/utils/standard-tag-metadata.js.map +1 -0
  51. package/dist/utils/website-crawler.d.ts +10 -0
  52. package/dist/utils/website-crawler.d.ts.map +1 -1
  53. package/dist/utils/website-crawler.js +40 -6
  54. package/dist/utils/website-crawler.js.map +1 -1
  55. package/package.json +1 -1
  56. package/dist/test-manual.d.ts +0 -6
  57. package/dist/test-manual.d.ts.map +0 -1
  58. package/dist/test-manual.js +0 -66
  59. package/dist/test-manual.js.map +0 -1
@@ -0,0 +1,416 @@
1
+ /**
2
+ * Utility for managing standard tag metadata
3
+ */
4
+ /**
5
+ * Metadata map for common standard tags
6
+ */
7
+ export const STANDARD_METADATA_MAP = {
8
+ // Category tags
9
+ 'cat.text-alternatives': {
10
+ category: 'category',
11
+ displayName: 'Text Alternatives',
12
+ description: 'Rules related to providing text alternatives for non-text content',
13
+ },
14
+ 'cat.aria': {
15
+ category: 'category',
16
+ displayName: 'ARIA',
17
+ description: 'Rules related to ARIA attributes, roles, and states',
18
+ },
19
+ 'cat.name-role-value': {
20
+ category: 'category',
21
+ displayName: 'Name, Role, Value',
22
+ description: 'Rules ensuring elements have proper accessible names, roles, and values',
23
+ },
24
+ 'cat.color': {
25
+ category: 'category',
26
+ displayName: 'Color',
27
+ description: 'Rules related to color contrast and color usage',
28
+ },
29
+ 'cat.structure': {
30
+ category: 'category',
31
+ displayName: 'Structure',
32
+ description: 'Rules related to document structure and landmarks',
33
+ },
34
+ 'cat.semantics': {
35
+ category: 'category',
36
+ displayName: 'Semantics',
37
+ description: 'Rules related to semantic HTML usage',
38
+ },
39
+ 'cat.tables': {
40
+ category: 'category',
41
+ displayName: 'Tables',
42
+ description: 'Rules related to table structure and markup',
43
+ },
44
+ 'cat.forms': {
45
+ category: 'category',
46
+ displayName: 'Forms',
47
+ description: 'Rules related to form controls and labels',
48
+ },
49
+ 'cat.keyboard': {
50
+ category: 'category',
51
+ displayName: 'Keyboard',
52
+ description: 'Rules related to keyboard accessibility',
53
+ },
54
+ 'cat.language': {
55
+ category: 'category',
56
+ displayName: 'Language',
57
+ description: 'Rules related to language attributes and identification',
58
+ },
59
+ 'cat.time-and-media': {
60
+ category: 'category',
61
+ displayName: 'Time and Media',
62
+ description: 'Rules related to audio, video, and time-based media',
63
+ },
64
+ 'cat.parsing': {
65
+ category: 'category',
66
+ displayName: 'Parsing',
67
+ description: 'Rules related to HTML parsing and validation',
68
+ },
69
+ 'cat.sensory-and-visual-cues': {
70
+ category: 'category',
71
+ displayName: 'Sensory and Visual Cues',
72
+ description: 'Rules related to sensory characteristics and visual cues',
73
+ },
74
+ // WCAG level tags
75
+ 'wcag2a': {
76
+ category: 'wcag',
77
+ displayName: 'WCAG 2.0 Level A',
78
+ description: 'Web Content Accessibility Guidelines 2.0 Level A conformance',
79
+ version: '2.0',
80
+ level: 'A',
81
+ },
82
+ 'wcag2aa': {
83
+ category: 'wcag',
84
+ displayName: 'WCAG 2.0 Level AA',
85
+ description: 'Web Content Accessibility Guidelines 2.0 Level AA conformance',
86
+ version: '2.0',
87
+ level: 'AA',
88
+ },
89
+ 'wcag2aaa': {
90
+ category: 'wcag',
91
+ displayName: 'WCAG 2.0 Level AAA',
92
+ description: 'Web Content Accessibility Guidelines 2.0 Level AAA conformance',
93
+ version: '2.0',
94
+ level: 'AAA',
95
+ },
96
+ 'wcag21a': {
97
+ category: 'wcag',
98
+ displayName: 'WCAG 2.1 Level A',
99
+ description: 'Web Content Accessibility Guidelines 2.1 Level A conformance',
100
+ version: '2.1',
101
+ level: 'A',
102
+ },
103
+ 'wcag21aa': {
104
+ category: 'wcag',
105
+ displayName: 'WCAG 2.1 Level AA',
106
+ description: 'Web Content Accessibility Guidelines 2.1 Level AA conformance',
107
+ version: '2.1',
108
+ level: 'AA',
109
+ },
110
+ 'wcag22aa': {
111
+ category: 'wcag',
112
+ displayName: 'WCAG 2.2 Level AA',
113
+ description: 'Web Content Accessibility Guidelines 2.2 Level AA conformance',
114
+ version: '2.2',
115
+ level: 'AA',
116
+ },
117
+ // Section 508
118
+ 'section508': {
119
+ category: 'section508',
120
+ displayName: 'Section 508',
121
+ description: 'US federal accessibility standard for electronic and information technology',
122
+ version: 'Revised 2017',
123
+ },
124
+ 'section508.22.a': {
125
+ category: 'section508',
126
+ displayName: 'Section 508.22(a)',
127
+ description: 'Text equivalent for non-text elements',
128
+ version: 'Revised 2017',
129
+ },
130
+ 'section508.22.f': {
131
+ category: 'section508',
132
+ displayName: 'Section 508.22(f)',
133
+ description: 'Client-side image maps',
134
+ version: 'Revised 2017',
135
+ },
136
+ 'section508.22.g': {
137
+ category: 'section508',
138
+ displayName: 'Section 508.22(g)',
139
+ description: 'Row and column headers for data tables',
140
+ version: 'Revised 2017',
141
+ },
142
+ 'section508.22.i': {
143
+ category: 'section508',
144
+ displayName: 'Section 508.22(i)',
145
+ description: 'Frames must be titled',
146
+ version: 'Revised 2017',
147
+ },
148
+ // EN 301 549
149
+ 'EN-301-549': {
150
+ category: 'en301549',
151
+ displayName: 'EN 301 549',
152
+ description: 'European accessibility standard for ICT products and services',
153
+ version: 'V3.2.1',
154
+ },
155
+ // Trusted Tester
156
+ 'TTv5': {
157
+ category: 'trustedtester',
158
+ displayName: 'Trusted Tester v5',
159
+ description: 'DHS Trusted Tester methodology for Section 508 conformance testing',
160
+ version: '5.0',
161
+ },
162
+ // RGAA
163
+ 'RGAAv4': {
164
+ category: 'rgaa',
165
+ displayName: 'RGAA v4',
166
+ description: 'French accessibility standard (Référentiel Général d\'Amélioration de l\'Accessibilité)',
167
+ version: '4.0',
168
+ },
169
+ // Special tags
170
+ 'ACT': {
171
+ category: 'special',
172
+ displayName: 'ACT Rules',
173
+ description: 'W3C Accessibility Conformance Testing rules',
174
+ },
175
+ 'best-practice': {
176
+ category: 'special',
177
+ displayName: 'Best Practices',
178
+ description: 'Industry best practices for accessibility not covered by formal standards',
179
+ },
180
+ 'experimental': {
181
+ category: 'special',
182
+ displayName: 'Experimental',
183
+ description: 'Experimental rules still in development',
184
+ },
185
+ };
186
+ /**
187
+ * Parse WCAG criterion tag (e.g., "wcag244" -> "WCAG 2.4.4")
188
+ */
189
+ function parseWcagCriterion(tag) {
190
+ const match = tag.match(/^wcag(\d)(\d)(\d+)$/);
191
+ if (!match || !match[1] || !match[2] || !match[3])
192
+ return null;
193
+ return {
194
+ principle: match[1],
195
+ guideline: match[2],
196
+ criterion: match[3],
197
+ };
198
+ }
199
+ /**
200
+ * Get human-readable name for WCAG criterion
201
+ */
202
+ function getWcagCriterionName(principle, guideline, criterion) {
203
+ // Map of known WCAG success criteria
204
+ const criteriaNames = {
205
+ '1.1.1': 'Non-text Content',
206
+ '1.2.1': 'Audio-only and Video-only (Prerecorded)',
207
+ '1.2.2': 'Captions (Prerecorded)',
208
+ '1.2.3': 'Audio Description or Media Alternative (Prerecorded)',
209
+ '1.3.1': 'Info and Relationships',
210
+ '1.3.2': 'Meaningful Sequence',
211
+ '1.3.3': 'Sensory Characteristics',
212
+ '1.3.4': 'Orientation',
213
+ '1.3.5': 'Identify Input Purpose',
214
+ '1.4.1': 'Use of Color',
215
+ '1.4.2': 'Audio Control',
216
+ '1.4.3': 'Contrast (Minimum)',
217
+ '1.4.4': 'Resize Text',
218
+ '1.4.5': 'Images of Text',
219
+ '1.4.10': 'Reflow',
220
+ '1.4.11': 'Non-text Contrast',
221
+ '1.4.12': 'Text Spacing',
222
+ '1.4.13': 'Content on Hover or Focus',
223
+ '2.1.1': 'Keyboard',
224
+ '2.1.2': 'No Keyboard Trap',
225
+ '2.1.4': 'Character Key Shortcuts',
226
+ '2.2.1': 'Timing Adjustable',
227
+ '2.2.2': 'Pause, Stop, Hide',
228
+ '2.4.1': 'Bypass Blocks',
229
+ '2.4.2': 'Page Titled',
230
+ '2.4.3': 'Focus Order',
231
+ '2.4.4': 'Link Purpose (In Context)',
232
+ '2.4.5': 'Multiple Ways',
233
+ '2.4.6': 'Headings and Labels',
234
+ '2.4.7': 'Focus Visible',
235
+ '2.5.1': 'Pointer Gestures',
236
+ '2.5.2': 'Pointer Cancellation',
237
+ '2.5.3': 'Label in Name',
238
+ '2.5.4': 'Motion Actuation',
239
+ '3.1.1': 'Language of Page',
240
+ '3.1.2': 'Language of Parts',
241
+ '3.2.1': 'On Focus',
242
+ '3.2.2': 'On Input',
243
+ '3.2.3': 'Consistent Navigation',
244
+ '3.2.4': 'Consistent Identification',
245
+ '3.3.1': 'Error Identification',
246
+ '3.3.2': 'Labels or Instructions',
247
+ '3.3.3': 'Error Suggestion',
248
+ '3.3.4': 'Error Prevention (Legal, Financial, Data)',
249
+ '4.1.1': 'Parsing',
250
+ '4.1.2': 'Name, Role, Value',
251
+ '4.1.3': 'Status Messages',
252
+ };
253
+ const key = `${principle}.${guideline}.${criterion}`;
254
+ return criteriaNames[key] || '';
255
+ }
256
+ /**
257
+ * Get metadata for a standard tag with pattern matching
258
+ */
259
+ export function getStandardMetadata(tag) {
260
+ // Check if we have predefined metadata
261
+ if (STANDARD_METADATA_MAP[tag]) {
262
+ return {
263
+ tag,
264
+ ...STANDARD_METADATA_MAP[tag],
265
+ };
266
+ }
267
+ // Pattern matching for dynamic tags
268
+ // WCAG criterion tags (e.g., wcag244)
269
+ if (tag.startsWith('wcag') && /^wcag\d\d\d+$/.test(tag)) {
270
+ const parsed = parseWcagCriterion(tag);
271
+ if (parsed) {
272
+ const { principle, guideline, criterion } = parsed;
273
+ const criterionName = getWcagCriterionName(principle, guideline, criterion);
274
+ return {
275
+ tag,
276
+ category: 'wcag',
277
+ displayName: `WCAG ${principle}.${guideline}.${criterion}${criterionName ? ` ${criterionName}` : ''}`,
278
+ description: `WCAG Success Criterion ${principle}.${guideline}.${criterion}${criterionName ? ` - ${criterionName}` : ''}`,
279
+ };
280
+ }
281
+ }
282
+ // Category tags
283
+ if (tag.startsWith('cat.')) {
284
+ const categoryName = tag.substring(4).split('-').map(w => w.charAt(0).toUpperCase() + w.slice(1)).join(' ');
285
+ return {
286
+ tag,
287
+ category: 'category',
288
+ displayName: categoryName,
289
+ description: `Rules related to ${categoryName.toLowerCase()}`,
290
+ };
291
+ }
292
+ // Section 508 specific subsections
293
+ if (tag.startsWith('section508.')) {
294
+ return {
295
+ tag,
296
+ category: 'section508',
297
+ displayName: tag.replace('section508.', 'Section 508.'),
298
+ description: `Section 508 ${tag.replace('section508.', '')} requirement`,
299
+ };
300
+ }
301
+ // EN 301 549 specific criteria
302
+ if (tag.startsWith('EN-')) {
303
+ return {
304
+ tag,
305
+ category: 'en301549',
306
+ displayName: tag.replace('EN-', 'EN '),
307
+ description: `EN 301 549 requirement ${tag.replace('EN-', '')}`,
308
+ };
309
+ }
310
+ // Trusted Tester test IDs
311
+ if (tag.startsWith('TT') && tag !== 'TTv5') {
312
+ return {
313
+ tag,
314
+ category: 'trustedtester',
315
+ displayName: `Trusted Tester ${tag.replace('TT', 'Test ')}`,
316
+ description: `Trusted Tester test ${tag.replace('TT', '')}`,
317
+ };
318
+ }
319
+ // RGAA criteria
320
+ if (tag.startsWith('RGAA-')) {
321
+ return {
322
+ tag,
323
+ category: 'rgaa',
324
+ displayName: tag.replace('RGAA-', 'RGAA '),
325
+ description: `RGAA criterion ${tag.replace('RGAA-', '')}`,
326
+ };
327
+ }
328
+ // Fallback for unknown tags
329
+ return {
330
+ tag,
331
+ category: 'special',
332
+ displayName: tag,
333
+ description: `Accessibility standard: ${tag}`,
334
+ };
335
+ }
336
+ /**
337
+ * Categorize standards by their family for reporting
338
+ */
339
+ export function categorizeStandardsByFamily(standards) {
340
+ const categories = {
341
+ wcag: [],
342
+ section508: [],
343
+ en301549: [],
344
+ trustedtester: [],
345
+ rgaa: [],
346
+ category: [],
347
+ special: [],
348
+ };
349
+ for (const standard of standards) {
350
+ const metadata = getStandardMetadata(standard);
351
+ const category = metadata.category;
352
+ if (categories[category]) {
353
+ categories[category].push(standard);
354
+ }
355
+ }
356
+ return categories;
357
+ }
358
+ /**
359
+ * Get all unique standard categories from a list of tags
360
+ */
361
+ export function getStandardCategories(standards) {
362
+ const categories = new Set();
363
+ for (const standard of standards) {
364
+ const metadata = getStandardMetadata(standard);
365
+ categories.add(metadata.category);
366
+ }
367
+ return Array.from(categories);
368
+ }
369
+ /**
370
+ * Format standard tags for display
371
+ */
372
+ /**
373
+ * Format standards for display with detailed breakdown
374
+ */
375
+ export function formatStandardsForDisplay(standards) {
376
+ const families = categorizeStandardsByFamily(standards);
377
+ const summary = formatStandardsSummary(standards);
378
+ return {
379
+ summary,
380
+ families
381
+ };
382
+ }
383
+ /**
384
+ * Format standards as a simple summary string
385
+ */
386
+ export function formatStandardsSummary(standards) {
387
+ if (standards.length === 0)
388
+ return 'None';
389
+ if (standards.length === 1 && standards[0])
390
+ return getStandardMetadata(standards[0]).displayName;
391
+ const categorized = categorizeStandardsByFamily(standards);
392
+ const parts = [];
393
+ if (categorized.wcag && categorized.wcag.length > 0) {
394
+ parts.push(`WCAG (${categorized.wcag.length} tags)`);
395
+ }
396
+ if (categorized.section508 && categorized.section508.length > 0) {
397
+ parts.push(`Section 508 (${categorized.section508.length} tags)`);
398
+ }
399
+ if (categorized.en301549 && categorized.en301549.length > 0) {
400
+ parts.push(`EN 301 549 (${categorized.en301549.length} tags)`);
401
+ }
402
+ if (categorized.trustedtester && categorized.trustedtester.length > 0) {
403
+ parts.push(`Trusted Tester (${categorized.trustedtester.length} tags)`);
404
+ }
405
+ if (categorized.rgaa && categorized.rgaa.length > 0) {
406
+ parts.push(`RGAA (${categorized.rgaa.length} tags)`);
407
+ }
408
+ if (categorized.category && categorized.category.length > 0) {
409
+ parts.push(`${categorized.category.length} category tags`);
410
+ }
411
+ if (categorized.special && categorized.special.length > 0) {
412
+ parts.push(`${categorized.special.length} other tags`);
413
+ }
414
+ return parts.join(', ');
415
+ }
416
+ //# sourceMappingURL=standard-tag-metadata.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"standard-tag-metadata.js","sourceRoot":"","sources":["../../src/utils/standard-tag-metadata.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { BrowserManager } from './browser-manager.js';
2
+ import { AuthContext } from '../types/accessibility.js';
2
3
  export interface CrawlOptions {
3
4
  /** Maximum number of pages to crawl */
4
5
  maxPages?: number;
@@ -14,6 +15,10 @@ export interface CrawlOptions {
14
15
  delay?: number;
15
16
  /** Whether to stay within the same domain */
16
17
  stayOnDomain?: boolean;
18
+ /** Optional list of allowed domains (app + IdP) for authenticated crawls */
19
+ allowedDomains?: string[];
20
+ /** Authentication context to apply before navigation */
21
+ auth?: AuthContext;
17
22
  }
18
23
  export interface CrawlResult {
19
24
  /** Successfully discovered URLs */
@@ -53,6 +58,11 @@ export declare class WebsiteCrawler {
53
58
  * Extract links from a page
54
59
  */
55
60
  private extractLinks;
61
+ /**
62
+ * Check if a domain is allowed based on the base domain
63
+ * Handles various cases like subdomains, www prefixes, and related domains
64
+ */
65
+ private isDomainAllowed;
56
66
  /**
57
67
  * Check if a URL should be excluded based on patterns
58
68
  */
@@ -1 +1 @@
1
- {"version":3,"file":"website-crawler.d.ts","sourceRoot":"","sources":["../../src/utils/website-crawler.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAItD,MAAM,WAAW,YAAY;IAC3B,uCAAuC;IACvC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,mDAAmD;IACnD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,wCAAwC;IACxC,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,qEAAqE;IACrE,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,oCAAoC;IACpC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,6CAA6C;IAC7C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,6CAA6C;IAC7C,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,WAAW;IAC1B,mCAAmC;IACnC,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,gCAAgC;IAChC,UAAU,EAAE,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAClD,gCAAgC;IAChC,aAAa,EAAE,MAAM,CAAC;IACtB,+BAA+B;IAC/B,QAAQ,EAAE;QACR,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,EAAE,MAAM,CAAC;QACjB,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;CACH;AAED,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAiB;IAChD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAqB;IAC7C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAqB;IAChD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA6C;IACxE,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA6B;gBAE1C,cAAc,EAAE,cAAc;IAK1C;;OAEG;IACG,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,GAAE,YAAiB,GAAG,OAAO,CAAC,WAAW,CAAC;IAyFtF;;OAEG;YACW,SAAS;IAgHvB;;OAEG;YACW,YAAY;IAsD1B;;OAEG;IACH,OAAO,CAAC,gBAAgB;CA0BzB"}
1
+ {"version":3,"file":"website-crawler.d.ts","sourceRoot":"","sources":["../../src/utils/website-crawler.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAGxD,MAAM,WAAW,YAAY;IAC3B,uCAAuC;IACvC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,mDAAmD;IACnD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,wCAAwC;IACxC,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,qEAAqE;IACrE,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,oCAAoC;IACpC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,6CAA6C;IAC7C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,6CAA6C;IAC7C,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,4EAA4E;IAC5E,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,wDAAwD;IACxD,IAAI,CAAC,EAAE,WAAW,CAAC;CACpB;AAED,MAAM,WAAW,WAAW;IAC1B,mCAAmC;IACnC,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,gCAAgC;IAChC,UAAU,EAAE,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAClD,gCAAgC;IAChC,aAAa,EAAE,MAAM,CAAC;IACtB,+BAA+B;IAC/B,QAAQ,EAAE;QACR,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,EAAE,MAAM,CAAC;QACjB,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;CACH;AAED,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAiB;IAChD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAqB;IAC7C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAqB;IAChD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA6C;IACxE,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA6B;gBAE1C,cAAc,EAAE,cAAc;IAK1C;;OAEG;IACG,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,GAAE,YAAiB,GAAG,OAAO,CAAC,WAAW,CAAC;IA8FtF;;OAEG;YACW,SAAS;IA8HvB;;OAEG;YACW,YAAY;IAsD1B;;;OAGG;IACH,OAAO,CAAC,eAAe;IAevB;;OAEG;IACH,OAAO,CAAC,gBAAgB;CA0BzB"}
@@ -30,7 +30,7 @@ export class WebsiteCrawler {
30
30
  'mailto:',
31
31
  'tel:',
32
32
  '#'
33
- ], includePatterns = [], delay = 1000, stayOnDomain = true } = options;
33
+ ], includePatterns = [], delay = 1000, stayOnDomain = true, allowedDomains = [], auth } = options;
34
34
  // Reset state
35
35
  this.visited.clear();
36
36
  this.discovered.clear();
@@ -39,6 +39,7 @@ export class WebsiteCrawler {
39
39
  // Normalize start URL
40
40
  const baseUrl = new URL(startUrl);
41
41
  const baseDomain = baseUrl.hostname;
42
+ const allowedDomainSet = new Set([...allowedDomains, baseDomain]);
42
43
  this.logger.info('Starting website crawl', {
43
44
  startUrl,
44
45
  maxPages,
@@ -55,7 +56,9 @@ export class WebsiteCrawler {
55
56
  delay,
56
57
  stayOnDomain,
57
58
  respectRobots: options.respectRobots ?? true,
58
- baseDomain
59
+ baseDomain,
60
+ allowedDomains: Array.from(allowedDomainSet),
61
+ ...(auth && { auth })
59
62
  };
60
63
  await this.crawlPage(startUrl, 0, maxDepth, crawlPageOptions);
61
64
  const crawlDuration = Date.now() - startTime;
@@ -104,12 +107,12 @@ export class WebsiteCrawler {
104
107
  if (this.shouldExcludeUrl(url, options.excludePatterns, options.includePatterns)) {
105
108
  return;
106
109
  }
107
- // Domain check
110
+ // Initial domain check (but allow for redirects)
108
111
  if (options.stayOnDomain && depth > 0) {
109
112
  try {
110
113
  const urlObj = new URL(url);
111
- if (urlObj.hostname !== options.baseDomain) {
112
- this.logger.debug('URL rejected due to domain constraint', {
114
+ if (!this.isDomainAllowed(urlObj.hostname, options.baseDomain, options.allowedDomains)) {
115
+ this.logger.debug('URL rejected due to domain constraint (pre-navigation)', {
113
116
  url,
114
117
  hostname: urlObj.hostname,
115
118
  baseDomain: options.baseDomain,
@@ -131,6 +134,7 @@ export class WebsiteCrawler {
131
134
  viewport: { width: 1920, height: 1080 },
132
135
  timeout: 30000
133
136
  });
137
+ await this.browserManager.applyAuthContext(page, url, options.auth);
134
138
  // Navigate to the page
135
139
  await this.browserManager.navigateToURL(page, url, {
136
140
  timeout: 20000,
@@ -139,9 +143,20 @@ export class WebsiteCrawler {
139
143
  // Get the final URL after any redirects
140
144
  const finalUrl = page.url();
141
145
  const finalUrlObj = new URL(finalUrl);
146
+ // Update base domain for root page if this is the first page (depth 0)
147
+ if (depth === 0) {
148
+ if (!options.allowedDomains.includes(finalUrlObj.hostname)) {
149
+ options.allowedDomains.push(finalUrlObj.hostname);
150
+ }
151
+ this.logger.info('Captured domains after initial navigation', {
152
+ originalUrl: url,
153
+ finalUrl,
154
+ allowedDomains: options.allowedDomains
155
+ });
156
+ }
142
157
  // Re-check domain constraint with final URL
143
158
  if (options.stayOnDomain && depth > 0) {
144
- if (finalUrlObj.hostname !== options.baseDomain) {
159
+ if (!this.isDomainAllowed(finalUrlObj.hostname, options.baseDomain, options.allowedDomains)) {
145
160
  this.logger.debug('Page rejected due to domain constraint after redirect', {
146
161
  finalUrl,
147
162
  finalDomain: finalUrlObj.hostname,
@@ -235,6 +250,25 @@ export class WebsiteCrawler {
235
250
  return [];
236
251
  }
237
252
  }
253
+ /**
254
+ * Check if a domain is allowed based on the base domain
255
+ * Handles various cases like subdomains, www prefixes, and related domains
256
+ */
257
+ isDomainAllowed(hostname, baseDomain, allowedDomains) {
258
+ const domainsToCheck = new Set([baseDomain, ...allowedDomains]);
259
+ const cleanHostname = hostname.replace(/^www\./, '');
260
+ for (const domain of domainsToCheck) {
261
+ const cleanDomain = domain.replace(/^www\./, '');
262
+ if (cleanHostname === cleanDomain)
263
+ return true;
264
+ if (cleanHostname.endsWith('.' + cleanDomain))
265
+ return true;
266
+ if (cleanDomain.endsWith('.' + cleanHostname))
267
+ return true;
268
+ }
269
+ this.logger.debug('Domain not allowed', { hostname, baseDomain, allowedDomains });
270
+ return false;
271
+ }
238
272
  /**
239
273
  * Check if a URL should be excluded based on patterns
240
274
  */
@@ -1 +1 @@
1
- {"version":3,"file":"website-crawler.js","sourceRoot":"","sources":["../../src/utils/website-crawler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"website-crawler.js","sourceRoot":"","sources":["../../src/utils/website-crawler.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "accessibility-server-mcp",
3
- "version": "1.0.7",
3
+ "version": "1.0.9",
4
4
  "description": "MCP server for web accessibility testing with WCAG compliance",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.js",
@@ -1,6 +0,0 @@
1
- /**
2
- * Manual test script for website accessibility testing
3
- * Run with: node --loader=tsx/esm src/test-manual.ts
4
- */
5
- export {};
6
- //# sourceMappingURL=test-manual.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"test-manual.d.ts","sourceRoot":"","sources":["../src/test-manual.ts"],"names":[],"mappings":"AAAA;;;GAGG"}