agentic-qe 2.4.0 → 2.5.1
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/.claude/agents/qe-a11y-ally.md +855 -0
- package/.claude/agents/qx-partner.md +120 -4
- package/.claude/skills/testability-scoring/SKILL.md +107 -6
- package/CHANGELOG.md +135 -0
- package/README.md +7 -6
- package/dist/agents/AccessibilityAllyAgent.d.ts +168 -0
- package/dist/agents/AccessibilityAllyAgent.d.ts.map +1 -0
- package/dist/agents/AccessibilityAllyAgent.js +462 -0
- package/dist/agents/AccessibilityAllyAgent.js.map +1 -0
- package/dist/agents/SONAIntegration.d.ts +109 -0
- package/dist/agents/SONAIntegration.d.ts.map +1 -0
- package/dist/agents/SONAIntegration.js +167 -0
- package/dist/agents/SONAIntegration.js.map +1 -0
- package/dist/agents/index.d.ts +3 -0
- package/dist/agents/index.d.ts.map +1 -1
- package/dist/agents/index.js +93 -2
- package/dist/agents/index.js.map +1 -1
- package/dist/cli/init/agents.js +1 -1
- package/dist/cli/init/claude-config.js +2 -2
- package/dist/cli/init/database-init.js +1 -1
- package/dist/core/cache/BinaryCacheImpl.d.ts +161 -0
- package/dist/core/cache/BinaryCacheImpl.d.ts.map +1 -0
- package/dist/core/cache/BinaryCacheImpl.js +685 -0
- package/dist/core/cache/BinaryCacheImpl.js.map +1 -0
- package/dist/core/cache/BinaryMetadataCache.d.ts +244 -0
- package/dist/core/cache/BinaryMetadataCache.d.ts.map +1 -1
- package/dist/core/cache/BinaryMetadataCache.js +63 -1
- package/dist/core/cache/BinaryMetadataCache.js.map +1 -1
- package/dist/core/cache/index.d.ts +1 -0
- package/dist/core/cache/index.d.ts.map +1 -1
- package/dist/core/cache/index.js +10 -1
- package/dist/core/cache/index.js.map +1 -1
- package/dist/core/memory/AgentDBService.d.ts +30 -4
- package/dist/core/memory/AgentDBService.d.ts.map +1 -1
- package/dist/core/memory/AgentDBService.js +122 -12
- package/dist/core/memory/AgentDBService.js.map +1 -1
- package/dist/core/memory/CachedHNSWVectorMemory.d.ts +153 -0
- package/dist/core/memory/CachedHNSWVectorMemory.d.ts.map +1 -0
- package/dist/core/memory/CachedHNSWVectorMemory.js +329 -0
- package/dist/core/memory/CachedHNSWVectorMemory.js.map +1 -0
- package/dist/core/memory/HNSWVectorMemory.js +1 -1
- package/dist/core/memory/RuVectorPatternStore.d.ts.map +1 -1
- package/dist/core/memory/RuVectorPatternStore.js +8 -2
- package/dist/core/memory/RuVectorPatternStore.js.map +1 -1
- package/dist/core/memory/UnifiedMemoryCoordinator.d.ts +50 -0
- package/dist/core/memory/UnifiedMemoryCoordinator.d.ts.map +1 -1
- package/dist/core/memory/UnifiedMemoryCoordinator.js +206 -0
- package/dist/core/memory/UnifiedMemoryCoordinator.js.map +1 -1
- package/dist/core/memory/index.d.ts +2 -0
- package/dist/core/memory/index.d.ts.map +1 -1
- package/dist/core/memory/index.js +8 -1
- package/dist/core/memory/index.js.map +1 -1
- package/dist/core/optimization/RecursiveOptimizer.d.ts +233 -0
- package/dist/core/optimization/RecursiveOptimizer.d.ts.map +1 -0
- package/dist/core/optimization/RecursiveOptimizer.js +509 -0
- package/dist/core/optimization/RecursiveOptimizer.js.map +1 -0
- package/dist/core/strategies/SONALearningStrategy.d.ts +115 -0
- package/dist/core/strategies/SONALearningStrategy.d.ts.map +1 -0
- package/dist/core/strategies/SONALearningStrategy.js +656 -0
- package/dist/core/strategies/SONALearningStrategy.js.map +1 -0
- package/dist/core/strategies/TRMLearningStrategy.d.ts +162 -0
- package/dist/core/strategies/TRMLearningStrategy.d.ts.map +1 -0
- package/dist/core/strategies/TRMLearningStrategy.js +670 -0
- package/dist/core/strategies/TRMLearningStrategy.js.map +1 -0
- package/dist/core/strategies/index.d.ts +10 -1
- package/dist/core/strategies/index.d.ts.map +1 -1
- package/dist/core/strategies/index.js +4 -1
- package/dist/core/strategies/index.js.map +1 -1
- package/dist/learning/SONAFeedbackLoop.d.ts +168 -0
- package/dist/learning/SONAFeedbackLoop.d.ts.map +1 -0
- package/dist/learning/SONAFeedbackLoop.js +344 -0
- package/dist/learning/SONAFeedbackLoop.js.map +1 -0
- package/dist/learning/baselines/BaselineCollector.d.ts +1 -1
- package/dist/learning/baselines/BaselineCollector.js +1 -1
- package/dist/learning/baselines/StandardTaskSuite.d.ts +1 -1
- package/dist/learning/baselines/StandardTaskSuite.js +1 -1
- package/dist/learning/index.d.ts +2 -0
- package/dist/learning/index.d.ts.map +1 -1
- package/dist/learning/index.js +6 -1
- package/dist/learning/index.js.map +1 -1
- package/dist/mcp/server-instructions.d.ts +1 -1
- package/dist/mcp/server-instructions.js +1 -1
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +23 -16
- package/dist/mcp/server.js.map +1 -1
- package/dist/mcp/services/AgentRegistry.d.ts.map +1 -1
- package/dist/mcp/services/AgentRegistry.js +6 -1
- package/dist/mcp/services/AgentRegistry.js.map +1 -1
- package/dist/mcp/tools/qe/accessibility/accname-computation.d.ts +114 -0
- package/dist/mcp/tools/qe/accessibility/accname-computation.d.ts.map +1 -0
- package/dist/mcp/tools/qe/accessibility/accname-computation.js +566 -0
- package/dist/mcp/tools/qe/accessibility/accname-computation.js.map +1 -0
- package/dist/mcp/tools/qe/accessibility/apg-patterns.d.ts +103 -0
- package/dist/mcp/tools/qe/accessibility/apg-patterns.d.ts.map +1 -0
- package/dist/mcp/tools/qe/accessibility/apg-patterns.js +1028 -0
- package/dist/mcp/tools/qe/accessibility/apg-patterns.js.map +1 -0
- package/dist/mcp/tools/qe/accessibility/en-301-549-mapping.d.ts +48 -0
- package/dist/mcp/tools/qe/accessibility/en-301-549-mapping.d.ts.map +1 -0
- package/dist/mcp/tools/qe/accessibility/en-301-549-mapping.js +565 -0
- package/dist/mcp/tools/qe/accessibility/en-301-549-mapping.js.map +1 -0
- package/dist/mcp/tools/qe/accessibility/eu-accessibility-act.d.ts +117 -0
- package/dist/mcp/tools/qe/accessibility/eu-accessibility-act.d.ts.map +1 -0
- package/dist/mcp/tools/qe/accessibility/eu-accessibility-act.js +571 -0
- package/dist/mcp/tools/qe/accessibility/eu-accessibility-act.js.map +1 -0
- package/dist/mcp/tools/qe/accessibility/html-report-generator.d.ts +23 -0
- package/dist/mcp/tools/qe/accessibility/html-report-generator.d.ts.map +1 -0
- package/dist/mcp/tools/qe/accessibility/html-report-generator.js +1152 -0
- package/dist/mcp/tools/qe/accessibility/html-report-generator.js.map +1 -0
- package/dist/mcp/tools/qe/accessibility/index.d.ts +22 -0
- package/dist/mcp/tools/qe/accessibility/index.d.ts.map +1 -0
- package/dist/mcp/tools/qe/accessibility/index.js +38 -0
- package/dist/mcp/tools/qe/accessibility/index.js.map +1 -0
- package/dist/mcp/tools/qe/accessibility/markdown-report-generator.d.ts +18 -0
- package/dist/mcp/tools/qe/accessibility/markdown-report-generator.d.ts.map +1 -0
- package/dist/mcp/tools/qe/accessibility/markdown-report-generator.js +549 -0
- package/dist/mcp/tools/qe/accessibility/markdown-report-generator.js.map +1 -0
- package/dist/mcp/tools/qe/accessibility/remediation-code-generator.d.ts +139 -0
- package/dist/mcp/tools/qe/accessibility/remediation-code-generator.d.ts.map +1 -0
- package/dist/mcp/tools/qe/accessibility/remediation-code-generator.js +1300 -0
- package/dist/mcp/tools/qe/accessibility/remediation-code-generator.js.map +1 -0
- package/dist/mcp/tools/qe/accessibility/scan-comprehensive.d.ts +138 -0
- package/dist/mcp/tools/qe/accessibility/scan-comprehensive.d.ts.map +1 -0
- package/dist/mcp/tools/qe/accessibility/scan-comprehensive.js +1298 -0
- package/dist/mcp/tools/qe/accessibility/scan-comprehensive.js.map +1 -0
- package/dist/mcp/tools/qe/accessibility/video-vision-analyzer.d.ts +50 -0
- package/dist/mcp/tools/qe/accessibility/video-vision-analyzer.d.ts.map +1 -0
- package/dist/mcp/tools/qe/accessibility/video-vision-analyzer.js +469 -0
- package/dist/mcp/tools/qe/accessibility/video-vision-analyzer.js.map +1 -0
- package/dist/mcp/tools/qe/accessibility/webvtt-generator.d.ts +193 -0
- package/dist/mcp/tools/qe/accessibility/webvtt-generator.d.ts.map +1 -0
- package/dist/mcp/tools/qe/accessibility/webvtt-generator.js +511 -0
- package/dist/mcp/tools/qe/accessibility/webvtt-generator.js.map +1 -0
- package/dist/mcp/tools.d.ts +1 -0
- package/dist/mcp/tools.d.ts.map +1 -1
- package/dist/mcp/tools.js +61 -0
- package/dist/mcp/tools.js.map +1 -1
- package/dist/providers/HybridRouter.d.ts +34 -3
- package/dist/providers/HybridRouter.d.ts.map +1 -1
- package/dist/providers/HybridRouter.js +69 -4
- package/dist/providers/HybridRouter.js.map +1 -1
- package/dist/providers/LLMProviderFactory.d.ts +68 -1
- package/dist/providers/LLMProviderFactory.d.ts.map +1 -1
- package/dist/providers/LLMProviderFactory.js +173 -6
- package/dist/providers/LLMProviderFactory.js.map +1 -1
- package/dist/providers/OpenRouterProvider.d.ts +150 -0
- package/dist/providers/OpenRouterProvider.d.ts.map +1 -0
- package/dist/providers/OpenRouterProvider.js +545 -0
- package/dist/providers/OpenRouterProvider.js.map +1 -0
- package/dist/providers/RuvllmProvider.d.ts +130 -16
- package/dist/providers/RuvllmProvider.d.ts.map +1 -1
- package/dist/providers/RuvllmProvider.js +399 -83
- package/dist/providers/RuvllmProvider.js.map +1 -1
- package/dist/providers/index.d.ts +33 -4
- package/dist/providers/index.d.ts.map +1 -1
- package/dist/providers/index.js +72 -21
- package/dist/providers/index.js.map +1 -1
- package/dist/telemetry/instrumentation/agent.d.ts +1 -1
- package/dist/telemetry/instrumentation/agent.js +1 -1
- package/dist/telemetry/instrumentation/index.d.ts +1 -1
- package/dist/telemetry/instrumentation/index.js +1 -1
- package/dist/types/index.d.ts +2 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +2 -0
- package/dist/types/index.js.map +1 -1
- package/dist/types/ruvllm.d.ts +97 -0
- package/dist/types/ruvllm.d.ts.map +1 -0
- package/dist/types/ruvllm.js +46 -0
- package/dist/types/ruvllm.js.map +1 -0
- package/dist/utils/ruvllm-loader.d.ts +94 -0
- package/dist/utils/ruvllm-loader.d.ts.map +1 -0
- package/dist/utils/ruvllm-loader.js +87 -0
- package/dist/utils/ruvllm-loader.js.map +1 -0
- package/docs/reference/agents.md +36 -1
- package/package.json +5 -2
|
@@ -0,0 +1,571 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* European Accessibility Act (EAA) Legal Framework
|
|
4
|
+
*
|
|
5
|
+
* Legal compliance mapping for Directive (EU) 2019/882
|
|
6
|
+
* Version: Based on Directive (EU) 2019/882 (17 April 2019)
|
|
7
|
+
*
|
|
8
|
+
* Purpose: Track legal compliance with EU accessibility requirements
|
|
9
|
+
* Reference: https://eur-lex.europa.eu/eli/dir/2019/882/oj
|
|
10
|
+
*
|
|
11
|
+
* Compliance Deadline: June 28, 2025
|
|
12
|
+
*
|
|
13
|
+
* Related Legislation:
|
|
14
|
+
* - EU Web Accessibility Directive 2016/2102
|
|
15
|
+
* - EN 301 549 V3.2.1 (Harmonized Standard)
|
|
16
|
+
* - WCAG 2.1 Level AA (Technical Standard)
|
|
17
|
+
*/
|
|
18
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
19
|
+
exports.NATIONAL_IMPLEMENTATIONS = exports.EU_ACCESSIBILITY_ACT_REQUIREMENTS = void 0;
|
|
20
|
+
exports.getDeadlineUrgency = getDeadlineUrgency;
|
|
21
|
+
exports.assessEAACompliance = assessEAACompliance;
|
|
22
|
+
exports.getApplicableRequirements = getApplicableRequirements;
|
|
23
|
+
exports.generateEAAComplianceReport = generateEAAComplianceReport;
|
|
24
|
+
/**
|
|
25
|
+
* EU Accessibility Act Requirements Database
|
|
26
|
+
*/
|
|
27
|
+
exports.EU_ACCESSIBILITY_ACT_REQUIREMENTS = {
|
|
28
|
+
'annex-i-section-i': {
|
|
29
|
+
article: 'Annex I, Section I',
|
|
30
|
+
title: 'General Accessibility Requirements for Products and Services',
|
|
31
|
+
requirement: 'Provision of information about the functioning of the product or service that is perceivable, operable, understandable, and robust',
|
|
32
|
+
applicableTo: [
|
|
33
|
+
'computers',
|
|
34
|
+
'operating-systems',
|
|
35
|
+
'self-service-terminals',
|
|
36
|
+
'smartphones',
|
|
37
|
+
'tv-equipment',
|
|
38
|
+
'websites',
|
|
39
|
+
'mobile-apps',
|
|
40
|
+
'e-commerce'
|
|
41
|
+
],
|
|
42
|
+
en301549Clauses: ['9.1.1.1', '9.2.1.1', '9.3.1.1', '9.4.1.1'],
|
|
43
|
+
wcagCriteria: ['1.1.1', '2.1.1', '3.1.1', '4.1.1'],
|
|
44
|
+
mandatory: true,
|
|
45
|
+
complianceDeadline: '2025-06-28',
|
|
46
|
+
referenceUrl: 'https://eur-lex.europa.eu/eli/dir/2019/882/oj'
|
|
47
|
+
},
|
|
48
|
+
'annex-i-section-ii-a': {
|
|
49
|
+
article: 'Annex I, Section II(a)',
|
|
50
|
+
title: 'Perceivable - Information and user interface components must be presentable to users in ways they can perceive',
|
|
51
|
+
requirement: 'Text alternatives for non-text content',
|
|
52
|
+
applicableTo: [
|
|
53
|
+
'computers',
|
|
54
|
+
'operating-systems',
|
|
55
|
+
'smartphones',
|
|
56
|
+
'websites',
|
|
57
|
+
'mobile-apps',
|
|
58
|
+
'e-commerce',
|
|
59
|
+
'audiovisual-media',
|
|
60
|
+
'e-books'
|
|
61
|
+
],
|
|
62
|
+
en301549Clauses: ['9.1.1.1'],
|
|
63
|
+
wcagCriteria: ['1.1.1'],
|
|
64
|
+
mandatory: true,
|
|
65
|
+
complianceDeadline: '2025-06-28'
|
|
66
|
+
},
|
|
67
|
+
'annex-i-section-ii-b': {
|
|
68
|
+
article: 'Annex I, Section II(b)',
|
|
69
|
+
title: 'Perceivable - Time-based media alternatives',
|
|
70
|
+
requirement: 'Alternatives for time-based media including captions and audio descriptions',
|
|
71
|
+
applicableTo: [
|
|
72
|
+
'audiovisual-media',
|
|
73
|
+
'websites',
|
|
74
|
+
'mobile-apps',
|
|
75
|
+
'e-commerce',
|
|
76
|
+
'tv-equipment'
|
|
77
|
+
],
|
|
78
|
+
en301549Clauses: ['9.1.2.1', '9.1.2.2', '9.1.2.3', '9.1.2.5'],
|
|
79
|
+
wcagCriteria: ['1.2.1', '1.2.2', '1.2.3', '1.2.5'],
|
|
80
|
+
mandatory: true,
|
|
81
|
+
complianceDeadline: '2025-06-28'
|
|
82
|
+
},
|
|
83
|
+
'annex-i-section-ii-c': {
|
|
84
|
+
article: 'Annex I, Section II(c)',
|
|
85
|
+
title: 'Perceivable - Adaptable content',
|
|
86
|
+
requirement: 'Content can be presented in different ways without losing information or structure',
|
|
87
|
+
applicableTo: [
|
|
88
|
+
'websites',
|
|
89
|
+
'mobile-apps',
|
|
90
|
+
'e-commerce',
|
|
91
|
+
'operating-systems',
|
|
92
|
+
'smartphones',
|
|
93
|
+
'computers'
|
|
94
|
+
],
|
|
95
|
+
en301549Clauses: ['9.1.3.1', '9.1.3.2', '9.1.3.3'],
|
|
96
|
+
wcagCriteria: ['1.3.1', '1.3.2', '1.3.3'],
|
|
97
|
+
mandatory: true,
|
|
98
|
+
complianceDeadline: '2025-06-28'
|
|
99
|
+
},
|
|
100
|
+
'annex-i-section-ii-d': {
|
|
101
|
+
article: 'Annex I, Section II(d)',
|
|
102
|
+
title: 'Perceivable - Distinguishable content',
|
|
103
|
+
requirement: 'Make it easier for users to see and hear content including color contrast',
|
|
104
|
+
applicableTo: [
|
|
105
|
+
'websites',
|
|
106
|
+
'mobile-apps',
|
|
107
|
+
'e-commerce',
|
|
108
|
+
'smartphones',
|
|
109
|
+
'computers',
|
|
110
|
+
'operating-systems',
|
|
111
|
+
'self-service-terminals'
|
|
112
|
+
],
|
|
113
|
+
en301549Clauses: ['9.1.4.1', '9.1.4.3', '9.1.4.5', '9.1.4.11'],
|
|
114
|
+
wcagCriteria: ['1.4.1', '1.4.3', '1.4.5', '1.4.11'],
|
|
115
|
+
mandatory: true,
|
|
116
|
+
complianceDeadline: '2025-06-28'
|
|
117
|
+
},
|
|
118
|
+
'annex-i-section-iii-a': {
|
|
119
|
+
article: 'Annex I, Section III(a)',
|
|
120
|
+
title: 'Operable - Keyboard accessible',
|
|
121
|
+
requirement: 'All functionality available from keyboard',
|
|
122
|
+
applicableTo: [
|
|
123
|
+
'websites',
|
|
124
|
+
'mobile-apps',
|
|
125
|
+
'e-commerce',
|
|
126
|
+
'computers',
|
|
127
|
+
'operating-systems',
|
|
128
|
+
'self-service-terminals'
|
|
129
|
+
],
|
|
130
|
+
en301549Clauses: ['9.2.1.1', '9.2.1.2'],
|
|
131
|
+
wcagCriteria: ['2.1.1', '2.1.2'],
|
|
132
|
+
mandatory: true,
|
|
133
|
+
complianceDeadline: '2025-06-28'
|
|
134
|
+
},
|
|
135
|
+
'annex-i-section-iii-b': {
|
|
136
|
+
article: 'Annex I, Section III(b)',
|
|
137
|
+
title: 'Operable - Enough time',
|
|
138
|
+
requirement: 'Provide users enough time to read and use content',
|
|
139
|
+
applicableTo: [
|
|
140
|
+
'websites',
|
|
141
|
+
'mobile-apps',
|
|
142
|
+
'e-commerce',
|
|
143
|
+
'banking-services',
|
|
144
|
+
'self-service-terminals'
|
|
145
|
+
],
|
|
146
|
+
en301549Clauses: ['9.2.2.1', '9.2.2.2'],
|
|
147
|
+
wcagCriteria: ['2.2.1', '2.2.2'],
|
|
148
|
+
mandatory: true,
|
|
149
|
+
complianceDeadline: '2025-06-28',
|
|
150
|
+
exemptions: ['Real-time events (auctions, games)']
|
|
151
|
+
},
|
|
152
|
+
'annex-i-section-iii-c': {
|
|
153
|
+
article: 'Annex I, Section III(c)',
|
|
154
|
+
title: 'Operable - Seizures and physical reactions',
|
|
155
|
+
requirement: 'Do not design content that causes seizures or physical reactions',
|
|
156
|
+
applicableTo: [
|
|
157
|
+
'websites',
|
|
158
|
+
'mobile-apps',
|
|
159
|
+
'e-commerce',
|
|
160
|
+
'audiovisual-media',
|
|
161
|
+
'tv-equipment',
|
|
162
|
+
'smartphones'
|
|
163
|
+
],
|
|
164
|
+
en301549Clauses: ['9.2.3.1'],
|
|
165
|
+
wcagCriteria: ['2.3.1'],
|
|
166
|
+
mandatory: true,
|
|
167
|
+
complianceDeadline: '2025-06-28'
|
|
168
|
+
},
|
|
169
|
+
'annex-i-section-iii-d': {
|
|
170
|
+
article: 'Annex I, Section III(d)',
|
|
171
|
+
title: 'Operable - Navigable',
|
|
172
|
+
requirement: 'Provide ways to help users navigate, find content, and determine where they are',
|
|
173
|
+
applicableTo: [
|
|
174
|
+
'websites',
|
|
175
|
+
'mobile-apps',
|
|
176
|
+
'e-commerce',
|
|
177
|
+
'banking-services',
|
|
178
|
+
'transport-services'
|
|
179
|
+
],
|
|
180
|
+
en301549Clauses: ['9.2.4.1', '9.2.4.2', '9.2.4.3', '9.2.4.4', '9.2.4.5', '9.2.4.6', '9.2.4.7'],
|
|
181
|
+
wcagCriteria: ['2.4.1', '2.4.2', '2.4.3', '2.4.4', '2.4.5', '2.4.6', '2.4.7'],
|
|
182
|
+
mandatory: true,
|
|
183
|
+
complianceDeadline: '2025-06-28'
|
|
184
|
+
},
|
|
185
|
+
'annex-i-section-iii-e': {
|
|
186
|
+
article: 'Annex I, Section III(e)',
|
|
187
|
+
title: 'Operable - Input modalities',
|
|
188
|
+
requirement: 'Make it easier for users to operate functionality through various inputs beyond keyboard',
|
|
189
|
+
applicableTo: [
|
|
190
|
+
'websites',
|
|
191
|
+
'mobile-apps',
|
|
192
|
+
'smartphones',
|
|
193
|
+
'self-service-terminals'
|
|
194
|
+
],
|
|
195
|
+
en301549Clauses: ['9.2.5.1', '9.2.5.2', '9.2.5.3', '9.2.5.4'],
|
|
196
|
+
wcagCriteria: ['2.5.1', '2.5.2', '2.5.3', '2.5.4'],
|
|
197
|
+
mandatory: true,
|
|
198
|
+
complianceDeadline: '2025-06-28'
|
|
199
|
+
},
|
|
200
|
+
'annex-i-section-iv-a': {
|
|
201
|
+
article: 'Annex I, Section IV(a)',
|
|
202
|
+
title: 'Understandable - Readable',
|
|
203
|
+
requirement: 'Make text content readable and understandable',
|
|
204
|
+
applicableTo: [
|
|
205
|
+
'websites',
|
|
206
|
+
'mobile-apps',
|
|
207
|
+
'e-commerce',
|
|
208
|
+
'banking-services',
|
|
209
|
+
'e-books'
|
|
210
|
+
],
|
|
211
|
+
en301549Clauses: ['9.3.1.1', '9.3.1.2'],
|
|
212
|
+
wcagCriteria: ['3.1.1', '3.1.2'],
|
|
213
|
+
mandatory: true,
|
|
214
|
+
complianceDeadline: '2025-06-28'
|
|
215
|
+
},
|
|
216
|
+
'annex-i-section-iv-b': {
|
|
217
|
+
article: 'Annex I, Section IV(b)',
|
|
218
|
+
title: 'Understandable - Predictable',
|
|
219
|
+
requirement: 'Make web pages appear and operate in predictable ways',
|
|
220
|
+
applicableTo: [
|
|
221
|
+
'websites',
|
|
222
|
+
'mobile-apps',
|
|
223
|
+
'e-commerce',
|
|
224
|
+
'banking-services',
|
|
225
|
+
'self-service-terminals'
|
|
226
|
+
],
|
|
227
|
+
en301549Clauses: ['9.3.2.1', '9.3.2.2', '9.3.2.3', '9.3.2.4'],
|
|
228
|
+
wcagCriteria: ['3.2.1', '3.2.2', '3.2.3', '3.2.4'],
|
|
229
|
+
mandatory: true,
|
|
230
|
+
complianceDeadline: '2025-06-28'
|
|
231
|
+
},
|
|
232
|
+
'annex-i-section-iv-c': {
|
|
233
|
+
article: 'Annex I, Section IV(c)',
|
|
234
|
+
title: 'Understandable - Input assistance',
|
|
235
|
+
requirement: 'Help users avoid and correct mistakes',
|
|
236
|
+
applicableTo: [
|
|
237
|
+
'websites',
|
|
238
|
+
'mobile-apps',
|
|
239
|
+
'e-commerce',
|
|
240
|
+
'banking-services',
|
|
241
|
+
'transport-services'
|
|
242
|
+
],
|
|
243
|
+
en301549Clauses: ['9.3.3.1', '9.3.3.2', '9.3.3.3', '9.3.3.4'],
|
|
244
|
+
wcagCriteria: ['3.3.1', '3.3.2', '3.3.3', '3.3.4'],
|
|
245
|
+
mandatory: true,
|
|
246
|
+
complianceDeadline: '2025-06-28'
|
|
247
|
+
},
|
|
248
|
+
'annex-i-section-v': {
|
|
249
|
+
article: 'Annex I, Section V',
|
|
250
|
+
title: 'Robust - Compatible',
|
|
251
|
+
requirement: 'Maximize compatibility with current and future user agents, including assistive technologies',
|
|
252
|
+
applicableTo: [
|
|
253
|
+
'websites',
|
|
254
|
+
'mobile-apps',
|
|
255
|
+
'e-commerce',
|
|
256
|
+
'computers',
|
|
257
|
+
'operating-systems',
|
|
258
|
+
'smartphones'
|
|
259
|
+
],
|
|
260
|
+
en301549Clauses: ['9.4.1.1', '9.4.1.2', '9.4.1.3'],
|
|
261
|
+
wcagCriteria: ['4.1.1', '4.1.2', '4.1.3'],
|
|
262
|
+
mandatory: true,
|
|
263
|
+
complianceDeadline: '2025-06-28'
|
|
264
|
+
},
|
|
265
|
+
'annex-i-section-vi': {
|
|
266
|
+
article: 'Annex I, Section VI',
|
|
267
|
+
title: 'Support services',
|
|
268
|
+
requirement: 'Provide accessible customer support and feedback mechanisms',
|
|
269
|
+
applicableTo: [
|
|
270
|
+
'telephony-services',
|
|
271
|
+
'banking-services',
|
|
272
|
+
'transport-services',
|
|
273
|
+
'e-commerce',
|
|
274
|
+
'audiovisual-media'
|
|
275
|
+
],
|
|
276
|
+
mandatory: true,
|
|
277
|
+
complianceDeadline: '2025-06-28'
|
|
278
|
+
}
|
|
279
|
+
};
|
|
280
|
+
/**
|
|
281
|
+
* National implementations of the European Accessibility Act
|
|
282
|
+
*/
|
|
283
|
+
exports.NATIONAL_IMPLEMENTATIONS = {
|
|
284
|
+
'DE': {
|
|
285
|
+
countryCode: 'DE',
|
|
286
|
+
country: 'Germany',
|
|
287
|
+
nationalLaw: 'Barrierefreiheitsstärkungsgesetz (BFSG)',
|
|
288
|
+
status: 'implemented',
|
|
289
|
+
authority: 'Bundesnetzagentur',
|
|
290
|
+
penalties: {
|
|
291
|
+
maxFine: '€100,000',
|
|
292
|
+
criminalSanctions: false,
|
|
293
|
+
description: 'Administrative fines up to €100,000 for non-compliance'
|
|
294
|
+
}
|
|
295
|
+
},
|
|
296
|
+
'FR': {
|
|
297
|
+
countryCode: 'FR',
|
|
298
|
+
country: 'France',
|
|
299
|
+
nationalLaw: 'In progress',
|
|
300
|
+
status: 'in-progress',
|
|
301
|
+
authority: 'Autorité de régulation des communications électroniques, des postes et de la distribution de la presse (ARCEP)',
|
|
302
|
+
penalties: {
|
|
303
|
+
description: 'Implementation pending - penalties to be defined'
|
|
304
|
+
}
|
|
305
|
+
},
|
|
306
|
+
'IT': {
|
|
307
|
+
countryCode: 'IT',
|
|
308
|
+
country: 'Italy',
|
|
309
|
+
nationalLaw: 'Decreto Legislativo (pending)',
|
|
310
|
+
status: 'in-progress',
|
|
311
|
+
authority: 'Agenzia per l\'Italia Digitale (AgID)'
|
|
312
|
+
},
|
|
313
|
+
'ES': {
|
|
314
|
+
countryCode: 'ES',
|
|
315
|
+
country: 'Spain',
|
|
316
|
+
nationalLaw: 'In progress',
|
|
317
|
+
status: 'in-progress',
|
|
318
|
+
authority: 'Ministerio de Asuntos Económicos y Transformación Digital'
|
|
319
|
+
},
|
|
320
|
+
'NL': {
|
|
321
|
+
countryCode: 'NL',
|
|
322
|
+
country: 'Netherlands',
|
|
323
|
+
nationalLaw: 'In progress',
|
|
324
|
+
status: 'in-progress',
|
|
325
|
+
authority: 'Autoriteit Consument en Markt (ACM)'
|
|
326
|
+
},
|
|
327
|
+
'BE': {
|
|
328
|
+
countryCode: 'BE',
|
|
329
|
+
country: 'Belgium',
|
|
330
|
+
nationalLaw: 'In progress',
|
|
331
|
+
status: 'in-progress',
|
|
332
|
+
authority: 'Service Public Fédéral Économie'
|
|
333
|
+
},
|
|
334
|
+
'AT': {
|
|
335
|
+
countryCode: 'AT',
|
|
336
|
+
country: 'Austria',
|
|
337
|
+
nationalLaw: 'Barrierefreiheitsgesetz',
|
|
338
|
+
status: 'implemented',
|
|
339
|
+
authority: 'Bundesministerium für Soziales, Gesundheit, Pflege und Konsumentenschutz'
|
|
340
|
+
},
|
|
341
|
+
'PL': {
|
|
342
|
+
countryCode: 'PL',
|
|
343
|
+
country: 'Poland',
|
|
344
|
+
nationalLaw: 'In progress',
|
|
345
|
+
status: 'in-progress',
|
|
346
|
+
authority: 'Urząd Ochrony Konkurencji i Konsumentów (UOKiK)'
|
|
347
|
+
},
|
|
348
|
+
'SE': {
|
|
349
|
+
countryCode: 'SE',
|
|
350
|
+
country: 'Sweden',
|
|
351
|
+
nationalLaw: 'Lag om tillgänglighet till digital offentlig service',
|
|
352
|
+
status: 'implemented',
|
|
353
|
+
authority: 'Myndigheten för digital förvaltning (DIGG)',
|
|
354
|
+
penalties: {
|
|
355
|
+
maxFine: 'SEK 1,000,000',
|
|
356
|
+
description: 'Administrative fines for non-compliance'
|
|
357
|
+
}
|
|
358
|
+
},
|
|
359
|
+
'DK': {
|
|
360
|
+
countryCode: 'DK',
|
|
361
|
+
country: 'Denmark',
|
|
362
|
+
nationalLaw: 'In progress',
|
|
363
|
+
status: 'in-progress',
|
|
364
|
+
authority: 'Erhvervsstyrelsen (Danish Business Authority)'
|
|
365
|
+
},
|
|
366
|
+
'FI': {
|
|
367
|
+
countryCode: 'FI',
|
|
368
|
+
country: 'Finland',
|
|
369
|
+
nationalLaw: 'Laki digitaalisten palvelujen tarjoamisesta',
|
|
370
|
+
status: 'implemented',
|
|
371
|
+
authority: 'Liikenne- ja viestintävirasto (Finnish Transport and Communications Agency)'
|
|
372
|
+
},
|
|
373
|
+
'IE': {
|
|
374
|
+
countryCode: 'IE',
|
|
375
|
+
country: 'Ireland',
|
|
376
|
+
nationalLaw: 'In progress',
|
|
377
|
+
status: 'in-progress',
|
|
378
|
+
authority: 'National Disability Authority (NDA)'
|
|
379
|
+
}
|
|
380
|
+
};
|
|
381
|
+
/**
|
|
382
|
+
* Calculate compliance deadline urgency
|
|
383
|
+
*/
|
|
384
|
+
function getDeadlineUrgency(category) {
|
|
385
|
+
const deadline = new Date('2025-06-28');
|
|
386
|
+
const now = new Date();
|
|
387
|
+
const daysUntilDeadline = Math.ceil((deadline.getTime() - now.getTime()) / (1000 * 60 * 60 * 24));
|
|
388
|
+
let urgencyLevel;
|
|
389
|
+
let message;
|
|
390
|
+
if (daysUntilDeadline < 0) {
|
|
391
|
+
urgencyLevel = 'critical';
|
|
392
|
+
message = `OVERDUE: Compliance deadline passed ${Math.abs(daysUntilDeadline)} days ago`;
|
|
393
|
+
}
|
|
394
|
+
else if (daysUntilDeadline < 90) {
|
|
395
|
+
urgencyLevel = 'critical';
|
|
396
|
+
message = `URGENT: ${daysUntilDeadline} days until mandatory compliance deadline`;
|
|
397
|
+
}
|
|
398
|
+
else if (daysUntilDeadline < 180) {
|
|
399
|
+
urgencyLevel = 'high';
|
|
400
|
+
message = `${daysUntilDeadline} days until compliance deadline - immediate action required`;
|
|
401
|
+
}
|
|
402
|
+
else if (daysUntilDeadline < 365) {
|
|
403
|
+
urgencyLevel = 'moderate';
|
|
404
|
+
message = `${daysUntilDeadline} days until compliance deadline - plan remediation now`;
|
|
405
|
+
}
|
|
406
|
+
else {
|
|
407
|
+
urgencyLevel = 'low';
|
|
408
|
+
message = `${daysUntilDeadline} days until compliance deadline`;
|
|
409
|
+
}
|
|
410
|
+
return { daysUntilDeadline, urgencyLevel, message };
|
|
411
|
+
}
|
|
412
|
+
/**
|
|
413
|
+
* Assess EAA compliance for a product/service
|
|
414
|
+
*/
|
|
415
|
+
function assessEAACompliance(category, violations, targetMarkets = ['EU']) {
|
|
416
|
+
// Get all applicable requirements for this category
|
|
417
|
+
const applicableRequirements = Object.values(exports.EU_ACCESSIBILITY_ACT_REQUIREMENTS)
|
|
418
|
+
.filter(req => req.applicableTo.includes(category));
|
|
419
|
+
// Map violations to failed requirements
|
|
420
|
+
const failedRequirements = [];
|
|
421
|
+
violations.forEach(violation => {
|
|
422
|
+
applicableRequirements.forEach(req => {
|
|
423
|
+
if (req.wcagCriteria?.includes(violation.wcagCriterion)) {
|
|
424
|
+
failedRequirements.push({
|
|
425
|
+
article: req.article,
|
|
426
|
+
requirement: req.requirement,
|
|
427
|
+
severity: violation.severity === 'critical' || violation.severity === 'serious' ? 'critical' :
|
|
428
|
+
violation.severity === 'moderate' ? 'major' : 'minor'
|
|
429
|
+
});
|
|
430
|
+
}
|
|
431
|
+
});
|
|
432
|
+
});
|
|
433
|
+
// Calculate compliance score
|
|
434
|
+
const totalRequirements = applicableRequirements.length;
|
|
435
|
+
const failedCount = failedRequirements.length;
|
|
436
|
+
const score = Math.max(0, Math.round(((totalRequirements - failedCount) / totalRequirements) * 100));
|
|
437
|
+
// Determine status
|
|
438
|
+
let status;
|
|
439
|
+
if (failedRequirements.filter(r => r.severity === 'critical').length > 0) {
|
|
440
|
+
status = 'non-compliant';
|
|
441
|
+
}
|
|
442
|
+
else if (score >= 95) {
|
|
443
|
+
status = 'compliant';
|
|
444
|
+
}
|
|
445
|
+
else if (score >= 70) {
|
|
446
|
+
status = 'partially-compliant';
|
|
447
|
+
}
|
|
448
|
+
else {
|
|
449
|
+
status = 'non-compliant';
|
|
450
|
+
}
|
|
451
|
+
// Deadline urgency
|
|
452
|
+
const { daysUntilDeadline, urgencyLevel } = getDeadlineUrgency(category);
|
|
453
|
+
// Risk level
|
|
454
|
+
const riskLevel = daysUntilDeadline < 0 ? 'critical' :
|
|
455
|
+
(status === 'non-compliant' && daysUntilDeadline < 180) ? 'critical' :
|
|
456
|
+
(status === 'non-compliant' && daysUntilDeadline < 365) ? 'high' :
|
|
457
|
+
status === 'partially-compliant' ? 'moderate' : 'low';
|
|
458
|
+
// Generate recommendations
|
|
459
|
+
const recommendations = [];
|
|
460
|
+
// Critical violations
|
|
461
|
+
const criticalViolations = failedRequirements.filter(r => r.severity === 'critical');
|
|
462
|
+
if (criticalViolations.length > 0) {
|
|
463
|
+
recommendations.push({
|
|
464
|
+
priority: 'critical',
|
|
465
|
+
action: `Fix ${criticalViolations.length} critical accessibility violations immediately`,
|
|
466
|
+
deadline: 'Within 30 days'
|
|
467
|
+
});
|
|
468
|
+
}
|
|
469
|
+
// Major violations
|
|
470
|
+
const majorViolations = failedRequirements.filter(r => r.severity === 'major');
|
|
471
|
+
if (majorViolations.length > 0) {
|
|
472
|
+
recommendations.push({
|
|
473
|
+
priority: 'high',
|
|
474
|
+
action: `Address ${majorViolations.length} major accessibility issues`,
|
|
475
|
+
deadline: 'Within 90 days'
|
|
476
|
+
});
|
|
477
|
+
}
|
|
478
|
+
// Compliance testing
|
|
479
|
+
if (status !== 'compliant') {
|
|
480
|
+
recommendations.push({
|
|
481
|
+
priority: 'high',
|
|
482
|
+
action: 'Conduct comprehensive accessibility audit against EN 301 549',
|
|
483
|
+
deadline: 'Before June 28, 2025'
|
|
484
|
+
});
|
|
485
|
+
}
|
|
486
|
+
// Documentation
|
|
487
|
+
recommendations.push({
|
|
488
|
+
priority: 'medium',
|
|
489
|
+
action: 'Document accessibility conformance for EAA compliance evidence',
|
|
490
|
+
deadline: 'Ongoing'
|
|
491
|
+
});
|
|
492
|
+
// Staff training
|
|
493
|
+
if (failedRequirements.length > 5) {
|
|
494
|
+
recommendations.push({
|
|
495
|
+
priority: 'medium',
|
|
496
|
+
action: 'Train development and design teams on accessibility requirements',
|
|
497
|
+
deadline: 'Within 60 days'
|
|
498
|
+
});
|
|
499
|
+
}
|
|
500
|
+
return {
|
|
501
|
+
status,
|
|
502
|
+
category,
|
|
503
|
+
score,
|
|
504
|
+
riskLevel,
|
|
505
|
+
daysUntilDeadline,
|
|
506
|
+
failedRequirements,
|
|
507
|
+
recommendations,
|
|
508
|
+
applicableMarkets: targetMarkets
|
|
509
|
+
};
|
|
510
|
+
}
|
|
511
|
+
/**
|
|
512
|
+
* Get applicable EAA requirements for a product/service category
|
|
513
|
+
*/
|
|
514
|
+
function getApplicableRequirements(category) {
|
|
515
|
+
return Object.values(exports.EU_ACCESSIBILITY_ACT_REQUIREMENTS)
|
|
516
|
+
.filter(req => req.applicableTo.includes(category));
|
|
517
|
+
}
|
|
518
|
+
/**
|
|
519
|
+
* Generate EAA compliance report
|
|
520
|
+
*/
|
|
521
|
+
function generateEAAComplianceReport(assessment) {
|
|
522
|
+
let report = '=== European Accessibility Act Compliance Report ===\n\n';
|
|
523
|
+
report += `Product/Service Category: ${assessment.category}\n`;
|
|
524
|
+
report += `Compliance Status: ${assessment.status.toUpperCase()}\n`;
|
|
525
|
+
report += `Compliance Score: ${assessment.score}/100\n`;
|
|
526
|
+
report += `Legal Risk Level: ${assessment.riskLevel.toUpperCase()}\n`;
|
|
527
|
+
const { message } = getDeadlineUrgency(assessment.category);
|
|
528
|
+
report += `Deadline: ${message}\n\n`;
|
|
529
|
+
if (assessment.failedRequirements.length > 0) {
|
|
530
|
+
report += '--- Failed Requirements ---\n';
|
|
531
|
+
assessment.failedRequirements.forEach((req, index) => {
|
|
532
|
+
const icon = req.severity === 'critical' ? '❌' :
|
|
533
|
+
req.severity === 'major' ? '⚠️' : 'ℹ️';
|
|
534
|
+
report += `${icon} [${req.article}] ${req.requirement}\n`;
|
|
535
|
+
});
|
|
536
|
+
report += '\n';
|
|
537
|
+
}
|
|
538
|
+
if (assessment.recommendations.length > 0) {
|
|
539
|
+
report += '--- Recommended Actions ---\n';
|
|
540
|
+
assessment.recommendations
|
|
541
|
+
.sort((a, b) => {
|
|
542
|
+
const priority = { critical: 1, high: 2, medium: 3, low: 4 };
|
|
543
|
+
return priority[a.priority] - priority[b.priority];
|
|
544
|
+
})
|
|
545
|
+
.forEach((rec, index) => {
|
|
546
|
+
const icon = rec.priority === 'critical' ? '🔴' :
|
|
547
|
+
rec.priority === 'high' ? '🟠' :
|
|
548
|
+
rec.priority === 'medium' ? '🟡' : '🟢';
|
|
549
|
+
report += `${icon} [${rec.priority.toUpperCase()}] ${rec.action}\n`;
|
|
550
|
+
report += ` Deadline: ${rec.deadline}\n`;
|
|
551
|
+
});
|
|
552
|
+
report += '\n';
|
|
553
|
+
}
|
|
554
|
+
report += '--- Applicable Markets ---\n';
|
|
555
|
+
assessment.applicableMarkets.forEach(market => {
|
|
556
|
+
const implementation = exports.NATIONAL_IMPLEMENTATIONS[market];
|
|
557
|
+
if (implementation) {
|
|
558
|
+
report += `${implementation.country} (${market}): ${implementation.status}\n`;
|
|
559
|
+
if (implementation.penalties) {
|
|
560
|
+
report += ` Penalties: ${implementation.penalties.description}\n`;
|
|
561
|
+
}
|
|
562
|
+
}
|
|
563
|
+
});
|
|
564
|
+
report += '\n--- Legal Framework ---\n';
|
|
565
|
+
report += '• Directive (EU) 2019/882 (European Accessibility Act)\n';
|
|
566
|
+
report += '• Compliance Deadline: June 28, 2025\n';
|
|
567
|
+
report += '• Harmonized Standard: EN 301 549 V3.2.1\n';
|
|
568
|
+
report += '• Technical Standard: WCAG 2.1 Level AA\n';
|
|
569
|
+
return report;
|
|
570
|
+
}
|
|
571
|
+
//# sourceMappingURL=eu-accessibility-act.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"eu-accessibility-act.js","sourceRoot":"","sources":["../../../../../src/mcp/tools/qe/accessibility/eu-accessibility-act.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* HTML Report Generator for Accessibility Scan Results
|
|
3
|
+
*
|
|
4
|
+
* Generates beautiful, comprehensive HTML reports with:
|
|
5
|
+
* - Executive summary with compliance score
|
|
6
|
+
* - Detailed violation listings with context
|
|
7
|
+
* - Context-aware remediation recommendations
|
|
8
|
+
* - ROI-based prioritization
|
|
9
|
+
* - Visual severity indicators
|
|
10
|
+
* - Print-friendly styling
|
|
11
|
+
*/
|
|
12
|
+
import type { AccessibilityScanResult } from './scan-comprehensive.js';
|
|
13
|
+
export interface HTMLReportOptions {
|
|
14
|
+
title?: string;
|
|
15
|
+
includeCodeExamples?: boolean;
|
|
16
|
+
includeScreenshots?: boolean;
|
|
17
|
+
theme?: 'light' | 'dark';
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Generate comprehensive HTML accessibility report
|
|
21
|
+
*/
|
|
22
|
+
export declare function generateHTMLReport(result: AccessibilityScanResult, options?: HTMLReportOptions): string;
|
|
23
|
+
//# sourceMappingURL=html-report-generator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"html-report-generator.d.ts","sourceRoot":"","sources":["../../../../../src/mcp/tools/qe/accessibility/html-report-generator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAEvE,MAAM,WAAW,iBAAiB;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;CAC1B;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,uBAAuB,EAC/B,OAAO,GAAE,iBAAsB,GAC9B,MAAM,CAuCR"}
|