@holmdigital/standards 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +59 -0
- package/README.md +41 -0
- package/data/ict-manual-checks.json +189 -0
- package/data/rules.de.json +1945 -0
- package/data/rules.en.json +1946 -0
- package/data/rules.es.json +1945 -0
- package/data/rules.fr.json +1945 -0
- package/data/rules.sv.json +1946 -0
- package/data/wcag-to-en301549.json +1946 -0
- package/dist/index.d.mts +117 -0
- package/dist/index.d.ts +117 -0
- package/dist/index.js +10223 -0
- package/dist/index.mjs +10181 -0
- package/package.json +62 -0
- package/schema/convergence-schema.json +191 -0
package/package.json
ADDED
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@holmdigital/standards",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"private": false,
|
|
5
|
+
"publishConfig": {
|
|
6
|
+
"access": "public",
|
|
7
|
+
"registry": "https://registry.npmjs.org/"
|
|
8
|
+
},
|
|
9
|
+
"description": "Machine-readable regulatory database for WCAG, EN 301 549 and the DOS Act",
|
|
10
|
+
"repository": {
|
|
11
|
+
"type": "git",
|
|
12
|
+
"url": "git+https://github.com/holmdigital/a11y-hd.git",
|
|
13
|
+
"directory": "packages/standards"
|
|
14
|
+
},
|
|
15
|
+
"main": "./dist/index.js",
|
|
16
|
+
"module": "./dist/index.mjs",
|
|
17
|
+
"types": "./dist/index.d.ts",
|
|
18
|
+
"exports": {
|
|
19
|
+
".": {
|
|
20
|
+
"types": "./dist/index.d.ts",
|
|
21
|
+
"import": "./dist/index.mjs",
|
|
22
|
+
"require": "./dist/index.js"
|
|
23
|
+
},
|
|
24
|
+
"./data/*": "./data/*",
|
|
25
|
+
"./schema/*": "./schema/*"
|
|
26
|
+
},
|
|
27
|
+
"files": [
|
|
28
|
+
"dist",
|
|
29
|
+
"data",
|
|
30
|
+
"schema",
|
|
31
|
+
"README.md"
|
|
32
|
+
],
|
|
33
|
+
"scripts": {
|
|
34
|
+
"build": "tsup src/index.ts --format cjs,esm --dts --clean",
|
|
35
|
+
"dev": "tsup src/index.ts --format cjs,esm --dts --watch",
|
|
36
|
+
"test": "vitest",
|
|
37
|
+
"lint": "eslint src --ext .ts",
|
|
38
|
+
"validate-schema": "node scripts/validate-schema.js",
|
|
39
|
+
"validate-data": "node scripts/validate-data.js"
|
|
40
|
+
},
|
|
41
|
+
"keywords": [
|
|
42
|
+
"accessibility",
|
|
43
|
+
"a11y",
|
|
44
|
+
"wcag",
|
|
45
|
+
"en301549",
|
|
46
|
+
"dos-lagen",
|
|
47
|
+
"standards",
|
|
48
|
+
"regulatory",
|
|
49
|
+
"compliance"
|
|
50
|
+
],
|
|
51
|
+
"author": "Holm Digital AB",
|
|
52
|
+
"license": "MIT",
|
|
53
|
+
"dependencies": {
|
|
54
|
+
"ajv": "^8.17.1"
|
|
55
|
+
},
|
|
56
|
+
"devDependencies": {
|
|
57
|
+
"@types/node": "^22.10.2",
|
|
58
|
+
"tsup": "^8.3.5",
|
|
59
|
+
"typescript": "^5.7.2",
|
|
60
|
+
"vitest": "^2.1.8"
|
|
61
|
+
}
|
|
62
|
+
}
|
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"$id": "https://a11y.holmdigital.se/schema/convergence-schema.json",
|
|
4
|
+
"title": "HolmDigital Convergence Schema",
|
|
5
|
+
"description": "Schema för mappning mellan WCAG, EN 301 549 och DOS-lagen med regulatorisk metadata",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"required": [
|
|
8
|
+
"ruleId",
|
|
9
|
+
"wcagCriteria",
|
|
10
|
+
"en301549Criteria",
|
|
11
|
+
"remediation",
|
|
12
|
+
"holmdigitalInsight"
|
|
13
|
+
],
|
|
14
|
+
"properties": {
|
|
15
|
+
"ruleId": {
|
|
16
|
+
"type": "string",
|
|
17
|
+
"description": "Unikt ID för regeln",
|
|
18
|
+
"pattern": "^[a-z0-9-]+$"
|
|
19
|
+
},
|
|
20
|
+
"wcagCriteria": {
|
|
21
|
+
"type": "string",
|
|
22
|
+
"description": "WCAG Success Criteria (format: X.X.X)",
|
|
23
|
+
"pattern": "^[0-9]\\.[0-9]\\.[0-9]+$"
|
|
24
|
+
},
|
|
25
|
+
"wcagLevel": {
|
|
26
|
+
"type": "string",
|
|
27
|
+
"description": "WCAG conformance level",
|
|
28
|
+
"enum": [
|
|
29
|
+
"A",
|
|
30
|
+
"AA",
|
|
31
|
+
"AAA"
|
|
32
|
+
]
|
|
33
|
+
},
|
|
34
|
+
"wcagTitle": {
|
|
35
|
+
"type": "string",
|
|
36
|
+
"description": "WCAG Success Criteria titel"
|
|
37
|
+
},
|
|
38
|
+
"wcagVersion": {
|
|
39
|
+
"type": "string",
|
|
40
|
+
"description": "WCAG version",
|
|
41
|
+
"enum": [
|
|
42
|
+
"2.0",
|
|
43
|
+
"2.1",
|
|
44
|
+
"2.2"
|
|
45
|
+
]
|
|
46
|
+
},
|
|
47
|
+
"en301549Criteria": {
|
|
48
|
+
"type": "string",
|
|
49
|
+
"description": "EN 301 549 clause (format: X.X.X.X)",
|
|
50
|
+
"pattern": "^[0-9]+\\.[0-9]+\\.[0-9]+\\.[0-9]+$"
|
|
51
|
+
},
|
|
52
|
+
"en301549Title": {
|
|
53
|
+
"type": "string",
|
|
54
|
+
"description": "EN 301 549 clause titel"
|
|
55
|
+
},
|
|
56
|
+
"en301549Chapter": {
|
|
57
|
+
"type": "integer",
|
|
58
|
+
"description": "EN 301 549 kapitel nummer",
|
|
59
|
+
"minimum": 1,
|
|
60
|
+
"maximum": 14
|
|
61
|
+
},
|
|
62
|
+
"dosLagenApplies": {
|
|
63
|
+
"type": "boolean",
|
|
64
|
+
"description": "Om DOS-lagen är tillämplig"
|
|
65
|
+
},
|
|
66
|
+
"dosLagenReference": {
|
|
67
|
+
"type": "string",
|
|
68
|
+
"description": "Referens till DOS-lagen paragraf"
|
|
69
|
+
},
|
|
70
|
+
"remediation": {
|
|
71
|
+
"type": "object",
|
|
72
|
+
"description": "Åtgärdsinformation enligt WCAG 3.3.3",
|
|
73
|
+
"required": [
|
|
74
|
+
"description",
|
|
75
|
+
"technicalGuidance"
|
|
76
|
+
],
|
|
77
|
+
"properties": {
|
|
78
|
+
"description": {
|
|
79
|
+
"type": "string",
|
|
80
|
+
"description": "Beskrivning av problemet på svenska"
|
|
81
|
+
},
|
|
82
|
+
"technicalGuidance": {
|
|
83
|
+
"type": "string",
|
|
84
|
+
"description": "Teknisk vägledning för att åtgärda"
|
|
85
|
+
},
|
|
86
|
+
"component": {
|
|
87
|
+
"type": "string",
|
|
88
|
+
"description": "Rekommenderad komponent från @holmdigital/components",
|
|
89
|
+
"pattern": "^@holmdigital/components/[A-Z][a-zA-Z]+$"
|
|
90
|
+
},
|
|
91
|
+
"codeExample": {
|
|
92
|
+
"type": "string",
|
|
93
|
+
"description": "Kodexempel för korrekt implementation"
|
|
94
|
+
},
|
|
95
|
+
"wcagTechnique": {
|
|
96
|
+
"type": "array",
|
|
97
|
+
"description": "WCAG Techniques som är relevanta",
|
|
98
|
+
"items": {
|
|
99
|
+
"type": "string",
|
|
100
|
+
"pattern": "^(G|H|C|SCR|ARIA|F)[0-9]+$"
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
},
|
|
105
|
+
"holmdigitalInsight": {
|
|
106
|
+
"type": "object",
|
|
107
|
+
"description": "HolmDigitals expertanalys och riskbedömning",
|
|
108
|
+
"required": [
|
|
109
|
+
"diggRisk",
|
|
110
|
+
"eaaImpact",
|
|
111
|
+
"swedishInterpretation"
|
|
112
|
+
],
|
|
113
|
+
"properties": {
|
|
114
|
+
"diggRisk": {
|
|
115
|
+
"type": "string",
|
|
116
|
+
"description": "Riskklassificering baserat på DIGG:s tillsynspraxis",
|
|
117
|
+
"enum": [
|
|
118
|
+
"low",
|
|
119
|
+
"medium",
|
|
120
|
+
"high",
|
|
121
|
+
"critical"
|
|
122
|
+
]
|
|
123
|
+
},
|
|
124
|
+
"eaaImpact": {
|
|
125
|
+
"type": "string",
|
|
126
|
+
"description": "Påverkan enligt European Accessibility Act",
|
|
127
|
+
"enum": [
|
|
128
|
+
"none",
|
|
129
|
+
"low",
|
|
130
|
+
"medium",
|
|
131
|
+
"high",
|
|
132
|
+
"critical"
|
|
133
|
+
]
|
|
134
|
+
},
|
|
135
|
+
"swedishInterpretation": {
|
|
136
|
+
"type": "string",
|
|
137
|
+
"description": "Svensk tolkning och kontext"
|
|
138
|
+
},
|
|
139
|
+
"commonMistakes": {
|
|
140
|
+
"type": "array",
|
|
141
|
+
"description": "Vanliga misstag i svenska implementationer",
|
|
142
|
+
"items": {
|
|
143
|
+
"type": "string"
|
|
144
|
+
}
|
|
145
|
+
},
|
|
146
|
+
"diggPrecedent": {
|
|
147
|
+
"type": "string",
|
|
148
|
+
"description": "Tidigare DIGG-beslut eller vägledning"
|
|
149
|
+
},
|
|
150
|
+
"priorityRationale": {
|
|
151
|
+
"type": "string",
|
|
152
|
+
"description": "Motivering för prioritering"
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
},
|
|
156
|
+
"testability": {
|
|
157
|
+
"type": "object",
|
|
158
|
+
"description": "Information om testbarhet",
|
|
159
|
+
"properties": {
|
|
160
|
+
"automated": {
|
|
161
|
+
"type": "boolean",
|
|
162
|
+
"description": "Kan testas automatiskt"
|
|
163
|
+
},
|
|
164
|
+
"requiresManualCheck": {
|
|
165
|
+
"type": "boolean",
|
|
166
|
+
"description": "Kräver manuell verifiering"
|
|
167
|
+
},
|
|
168
|
+
"pseudoAutomation": {
|
|
169
|
+
"type": "boolean",
|
|
170
|
+
"description": "Kan generera testskript för manuell körning"
|
|
171
|
+
},
|
|
172
|
+
"complexity": {
|
|
173
|
+
"type": "string",
|
|
174
|
+
"enum": [
|
|
175
|
+
"simple",
|
|
176
|
+
"moderate",
|
|
177
|
+
"complex"
|
|
178
|
+
],
|
|
179
|
+
"description": "Komplexitet för testning"
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
},
|
|
183
|
+
"tags": {
|
|
184
|
+
"type": "array",
|
|
185
|
+
"description": "Tags för kategorisering",
|
|
186
|
+
"items": {
|
|
187
|
+
"type": "string"
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
}
|