ultra11y 2.22.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 (153) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +223 -0
  3. package/docker/Dockerfile +7 -0
  4. package/docker/package.json +9 -0
  5. package/docker/runner.mjs +23 -0
  6. package/package.json +73 -0
  7. package/scripts/bench.mjs +151 -0
  8. package/scripts/build-act-corpus.mjs +143 -0
  9. package/scripts/build-adjudication.mjs +503 -0
  10. package/scripts/build-pack-rgaa.mjs +397 -0
  11. package/scripts/build-standards.mjs +548 -0
  12. package/scripts/copy-bundle.mjs +39 -0
  13. package/scripts/import-pack.mjs +107 -0
  14. package/scripts/sync-engine.mjs +84 -0
  15. package/scripts/sync-version.mjs +43 -0
  16. package/scripts/ultra11y.mjs +52739 -0
  17. package/scripts/vendor/act-testcases.json +12297 -0
  18. package/scripts/vendor/rgaa/SOURCE.json +8 -0
  19. package/scripts/vendor/rgaa/criteres.json +4144 -0
  20. package/scripts/vendor/rgaa/glossaire.json +480 -0
  21. package/scripts/vendor/wcag-2.2-fr.json +82 -0
  22. package/scripts/vendor/wcag-2.2-sc-universe.json +950 -0
  23. package/scripts/vendor/wcag-2.2-sc.json +574 -0
  24. package/scripts/verify-rgaa-source.mjs +126 -0
  25. package/scripts/verify-skill-bundle.mjs +91 -0
  26. package/skills/review-a11y/SKILL.md +123 -0
  27. package/skills/review-a11y/scripts/ultra11y.mjs +52739 -0
  28. package/skills/ultra11y/SKILL.md +292 -0
  29. package/skills/ultra11y/references/act.md +163 -0
  30. package/skills/ultra11y/references/adjudication.md +599 -0
  31. package/skills/ultra11y/references/audit.md +100 -0
  32. package/skills/ultra11y/references/authoring.md +37 -0
  33. package/skills/ultra11y/references/automation.md +113 -0
  34. package/skills/ultra11y/references/correction.md +41 -0
  35. package/skills/ultra11y/references/criteria.md +129 -0
  36. package/skills/ultra11y/references/cross-file.md +82 -0
  37. package/skills/ultra11y/references/dynamic.md +152 -0
  38. package/skills/ultra11y/references/false-positives.md +81 -0
  39. package/skills/ultra11y/references/fix.md +46 -0
  40. package/skills/ultra11y/references/focus-and-logic.md +64 -0
  41. package/skills/ultra11y/references/forbidden-patterns.md +61 -0
  42. package/skills/ultra11y/references/forms-and-errors.md +147 -0
  43. package/skills/ultra11y/references/guidance.md +55 -0
  44. package/skills/ultra11y/references/judgment.md +90 -0
  45. package/skills/ultra11y/references/media-and-motion.md +116 -0
  46. package/skills/ultra11y/references/methodology.md +72 -0
  47. package/skills/ultra11y/references/naming.md +117 -0
  48. package/skills/ultra11y/references/orchestration.md +44 -0
  49. package/skills/ultra11y/references/packs.md +193 -0
  50. package/skills/ultra11y/references/prd.md +104 -0
  51. package/skills/ultra11y/references/rendered.md +110 -0
  52. package/skills/ultra11y/references/scale.md +49 -0
  53. package/skills/ultra11y/references/standards.md +97 -0
  54. package/skills/ultra11y/references/structure.md +138 -0
  55. package/skills/ultra11y/references/verify.md +88 -0
  56. package/skills/ultra11y/references/widgets.md +106 -0
  57. package/skills/ultra11y/scripts/ultra11y.mjs +52739 -0
  58. package/src/act.ts +441 -0
  59. package/src/adjudicate.ts +630 -0
  60. package/src/aria.ts +230 -0
  61. package/src/audit.ts +396 -0
  62. package/src/auditor.ts +399 -0
  63. package/src/autofill.ts +102 -0
  64. package/src/axe-map.ts +294 -0
  65. package/src/baseline.ts +75 -0
  66. package/src/capture.ts +182 -0
  67. package/src/check.ts +243 -0
  68. package/src/cli.ts +1927 -0
  69. package/src/color.ts +102 -0
  70. package/src/config.ts +182 -0
  71. package/src/crawl.ts +75 -0
  72. package/src/criteria.ts +183 -0
  73. package/src/data/adjudication.json +770 -0
  74. package/src/data/guidance/rgaa.json +2395 -0
  75. package/src/data/standards/rgaa.glossary.json +478 -0
  76. package/src/data/standards/rgaa.json +3454 -0
  77. package/src/data/wcag-universe.json +530 -0
  78. package/src/data/wcag.json +1178 -0
  79. package/src/discover.ts +203 -0
  80. package/src/fix/codemods.ts +76 -0
  81. package/src/fix/diff.ts +64 -0
  82. package/src/fix/edits.ts +126 -0
  83. package/src/fix.ts +215 -0
  84. package/src/gh.ts +214 -0
  85. package/src/glob.ts +206 -0
  86. package/src/graph/build.ts +114 -0
  87. package/src/graph/engine-resolve.ts +0 -0
  88. package/src/graph/graph.ts +126 -0
  89. package/src/graph/imports.ts +359 -0
  90. package/src/graph/resolve.ts +73 -0
  91. package/src/graph/tsconfig.ts +113 -0
  92. package/src/grounding.ts +119 -0
  93. package/src/guidance/index.ts +45 -0
  94. package/src/guidance/types.ts +36 -0
  95. package/src/init.ts +113 -0
  96. package/src/mcp/handlers.ts +388 -0
  97. package/src/mcp/http.ts +260 -0
  98. package/src/mcp/prompts.ts +183 -0
  99. package/src/mcp/protocol.ts +187 -0
  100. package/src/mcp/resources.ts +136 -0
  101. package/src/mcp/server.ts +228 -0
  102. package/src/mcp/stdio.ts +119 -0
  103. package/src/mcp/tools.ts +347 -0
  104. package/src/messages.ts +1011 -0
  105. package/src/name.ts +174 -0
  106. package/src/orchestrate-templates.ts +231 -0
  107. package/src/orchestrate.ts +186 -0
  108. package/src/output.ts +108 -0
  109. package/src/pack.ts +187 -0
  110. package/src/parse/html.ts +258 -0
  111. package/src/parse/jsx-ast.ts +67 -0
  112. package/src/parse/jsx-bridge.ts +247 -0
  113. package/src/parse/jsx.ts +19 -0
  114. package/src/parse/source.ts +75 -0
  115. package/src/prd.ts +406 -0
  116. package/src/project-lock.ts +42 -0
  117. package/src/render.ts +307 -0
  118. package/src/report.ts +399 -0
  119. package/src/rules/colors.ts +125 -0
  120. package/src/rules/cross-registry.ts +264 -0
  121. package/src/rules/cross-rule.ts +83 -0
  122. package/src/rules/forms.ts +590 -0
  123. package/src/rules/frames.ts +33 -0
  124. package/src/rules/headings.ts +227 -0
  125. package/src/rules/images.ts +200 -0
  126. package/src/rules/links.ts +193 -0
  127. package/src/rules/mandatory.ts +173 -0
  128. package/src/rules/multimedia.ts +77 -0
  129. package/src/rules/navigation.ts +190 -0
  130. package/src/rules/presentation.ts +75 -0
  131. package/src/rules/registry.ts +57 -0
  132. package/src/rules/rule.ts +122 -0
  133. package/src/rules/scripts-aria.ts +636 -0
  134. package/src/rules/tables.ts +264 -0
  135. package/src/rules/timing.ts +55 -0
  136. package/src/sample.ts +176 -0
  137. package/src/scan-local.ts +866 -0
  138. package/src/scan.ts +538 -0
  139. package/src/standards/derive.ts +195 -0
  140. package/src/standards/index.ts +31 -0
  141. package/src/standards/pack-rules.ts +111 -0
  142. package/src/standards/pack.ts +81 -0
  143. package/src/standards/registry.ts +100 -0
  144. package/src/standards/types.ts +202 -0
  145. package/src/standards/validate.ts +544 -0
  146. package/src/standards/vocabulary.ts +75 -0
  147. package/src/types.ts +355 -0
  148. package/src/util.ts +32 -0
  149. package/src/vendor/codeindex-engine.d.mts +1009 -0
  150. package/src/vendor/codeindex-engine.mjs +13701 -0
  151. package/src/vendor/engine.meta.json +9 -0
  152. package/src/verify.ts +275 -0
  153. package/src/wcag.ts +128 -0
@@ -0,0 +1,950 @@
1
+ {
2
+ "wcagVersion": "2.2",
3
+ "source": "https://www.w3.org/TR/WCAG22/",
4
+ "criteriaSource": "https://github.com/w3c/wcag",
5
+ "provenance": "Full WCAG 2.x SC universe (all levels incl. AAA, and the removed 4.1.1 Parsing) fetched from raw.githubusercontent.com/w3c/wcag@main on 2026-07-29 via `node scripts/build-standards.mjs --refresh-universe`. Classification: core-AA = ships in src/data/wcag.json (the shipped WCAG 2.2 AA core); out-of-core = WCAG AAA; removed = obsolete (4.1.1).",
6
+ "principles": [
7
+ {
8
+ "number": 1,
9
+ "title": "Perceivable"
10
+ },
11
+ {
12
+ "number": 2,
13
+ "title": "Operable"
14
+ },
15
+ {
16
+ "number": 3,
17
+ "title": "Understandable"
18
+ },
19
+ {
20
+ "number": 4,
21
+ "title": "Robust"
22
+ }
23
+ ],
24
+ "guidelines": [
25
+ {
26
+ "number": "1.1",
27
+ "title": "Text Alternatives"
28
+ },
29
+ {
30
+ "number": "1.2",
31
+ "title": "Time-based Media"
32
+ },
33
+ {
34
+ "number": "1.3",
35
+ "title": "Adaptable"
36
+ },
37
+ {
38
+ "number": "1.4",
39
+ "title": "Distinguishable"
40
+ },
41
+ {
42
+ "number": "2.1",
43
+ "title": "Keyboard Accessible"
44
+ },
45
+ {
46
+ "number": "2.2",
47
+ "title": "Enough Time"
48
+ },
49
+ {
50
+ "number": "2.3",
51
+ "title": "Seizures and Physical Reactions"
52
+ },
53
+ {
54
+ "number": "2.4",
55
+ "title": "Navigable"
56
+ },
57
+ {
58
+ "number": "2.5",
59
+ "title": "Input Modalities"
60
+ },
61
+ {
62
+ "number": "3.1",
63
+ "title": "Readable"
64
+ },
65
+ {
66
+ "number": "3.2",
67
+ "title": "Predictable"
68
+ },
69
+ {
70
+ "number": "3.3",
71
+ "title": "Input Assistance"
72
+ },
73
+ {
74
+ "number": "4.1",
75
+ "title": "Compatible"
76
+ }
77
+ ],
78
+ "criteria": [
79
+ {
80
+ "sc": "1.1.1",
81
+ "slug": "non-text-content",
82
+ "title": "Non-text Content",
83
+ "level": "A",
84
+ "addedIn": "2.0",
85
+ "principle": 1,
86
+ "guideline": "1.1",
87
+ "status": "core-AA"
88
+ },
89
+ {
90
+ "sc": "1.2.1",
91
+ "slug": "audio-only-and-video-only-prerecorded",
92
+ "title": "Audio-only and Video-only (Prerecorded)",
93
+ "level": "A",
94
+ "addedIn": "2.0",
95
+ "principle": 1,
96
+ "guideline": "1.2",
97
+ "status": "core-AA"
98
+ },
99
+ {
100
+ "sc": "1.2.2",
101
+ "slug": "captions-prerecorded",
102
+ "title": "Captions (Prerecorded)",
103
+ "level": "A",
104
+ "addedIn": "2.0",
105
+ "principle": 1,
106
+ "guideline": "1.2",
107
+ "status": "core-AA"
108
+ },
109
+ {
110
+ "sc": "1.2.3",
111
+ "slug": "audio-description-or-media-alternative-prerecorded",
112
+ "title": "Audio Description or Media Alternative (Prerecorded)",
113
+ "level": "A",
114
+ "addedIn": "2.0",
115
+ "principle": 1,
116
+ "guideline": "1.2",
117
+ "status": "core-AA"
118
+ },
119
+ {
120
+ "sc": "1.2.4",
121
+ "slug": "captions-live",
122
+ "title": "Captions (Live)",
123
+ "level": "AA",
124
+ "addedIn": "2.0",
125
+ "principle": 1,
126
+ "guideline": "1.2",
127
+ "status": "core-AA"
128
+ },
129
+ {
130
+ "sc": "1.2.5",
131
+ "slug": "audio-description-prerecorded",
132
+ "title": "Audio Description (Prerecorded)",
133
+ "level": "AA",
134
+ "addedIn": "2.0",
135
+ "principle": 1,
136
+ "guideline": "1.2",
137
+ "status": "core-AA"
138
+ },
139
+ {
140
+ "sc": "1.2.6",
141
+ "slug": "sign-language-prerecorded",
142
+ "title": "Sign Language (Prerecorded)",
143
+ "level": "AAA",
144
+ "addedIn": "2.0",
145
+ "principle": 1,
146
+ "guideline": "1.2",
147
+ "status": "out-of-core"
148
+ },
149
+ {
150
+ "sc": "1.2.7",
151
+ "slug": "extended-audio-description-prerecorded",
152
+ "title": "Extended Audio Description (Prerecorded)",
153
+ "level": "AAA",
154
+ "addedIn": "2.0",
155
+ "principle": 1,
156
+ "guideline": "1.2",
157
+ "status": "out-of-core"
158
+ },
159
+ {
160
+ "sc": "1.2.8",
161
+ "slug": "media-alternative-prerecorded",
162
+ "title": "Media Alternative (Prerecorded)",
163
+ "level": "AAA",
164
+ "addedIn": "2.0",
165
+ "principle": 1,
166
+ "guideline": "1.2",
167
+ "status": "out-of-core"
168
+ },
169
+ {
170
+ "sc": "1.2.9",
171
+ "slug": "audio-only-live",
172
+ "title": "Audio-only (Live)",
173
+ "level": "AAA",
174
+ "addedIn": "2.0",
175
+ "principle": 1,
176
+ "guideline": "1.2",
177
+ "status": "out-of-core"
178
+ },
179
+ {
180
+ "sc": "1.3.1",
181
+ "slug": "info-and-relationships",
182
+ "title": "Info and Relationships",
183
+ "level": "A",
184
+ "addedIn": "2.0",
185
+ "principle": 1,
186
+ "guideline": "1.3",
187
+ "status": "core-AA"
188
+ },
189
+ {
190
+ "sc": "1.3.2",
191
+ "slug": "meaningful-sequence",
192
+ "title": "Meaningful Sequence",
193
+ "level": "A",
194
+ "addedIn": "2.0",
195
+ "principle": 1,
196
+ "guideline": "1.3",
197
+ "status": "core-AA"
198
+ },
199
+ {
200
+ "sc": "1.3.3",
201
+ "slug": "sensory-characteristics",
202
+ "title": "Sensory Characteristics",
203
+ "level": "A",
204
+ "addedIn": "2.0",
205
+ "principle": 1,
206
+ "guideline": "1.3",
207
+ "status": "core-AA"
208
+ },
209
+ {
210
+ "sc": "1.3.4",
211
+ "slug": "orientation",
212
+ "title": "Orientation",
213
+ "level": "AA",
214
+ "addedIn": "2.1",
215
+ "principle": 1,
216
+ "guideline": "1.3",
217
+ "status": "core-AA"
218
+ },
219
+ {
220
+ "sc": "1.3.5",
221
+ "slug": "identify-input-purpose",
222
+ "title": "Identify Input Purpose",
223
+ "level": "AA",
224
+ "addedIn": "2.1",
225
+ "principle": 1,
226
+ "guideline": "1.3",
227
+ "status": "core-AA"
228
+ },
229
+ {
230
+ "sc": "1.3.6",
231
+ "slug": "identify-purpose",
232
+ "title": "Identify Purpose",
233
+ "level": "AAA",
234
+ "addedIn": "2.1",
235
+ "principle": 1,
236
+ "guideline": "1.3",
237
+ "status": "out-of-core"
238
+ },
239
+ {
240
+ "sc": "1.4.1",
241
+ "slug": "use-of-color",
242
+ "title": "Use of Color",
243
+ "level": "A",
244
+ "addedIn": "2.0",
245
+ "principle": 1,
246
+ "guideline": "1.4",
247
+ "status": "core-AA"
248
+ },
249
+ {
250
+ "sc": "1.4.2",
251
+ "slug": "audio-control",
252
+ "title": "Audio Control",
253
+ "level": "A",
254
+ "addedIn": "2.0",
255
+ "principle": 1,
256
+ "guideline": "1.4",
257
+ "status": "core-AA"
258
+ },
259
+ {
260
+ "sc": "1.4.3",
261
+ "slug": "contrast-minimum",
262
+ "title": "Contrast (Minimum)",
263
+ "level": "AA",
264
+ "addedIn": "2.0",
265
+ "principle": 1,
266
+ "guideline": "1.4",
267
+ "status": "core-AA"
268
+ },
269
+ {
270
+ "sc": "1.4.4",
271
+ "slug": "resize-text",
272
+ "title": "Resize Text",
273
+ "level": "AA",
274
+ "addedIn": "2.0",
275
+ "principle": 1,
276
+ "guideline": "1.4",
277
+ "status": "core-AA"
278
+ },
279
+ {
280
+ "sc": "1.4.5",
281
+ "slug": "images-of-text",
282
+ "title": "Images of Text",
283
+ "level": "AA",
284
+ "addedIn": "2.0",
285
+ "principle": 1,
286
+ "guideline": "1.4",
287
+ "status": "core-AA"
288
+ },
289
+ {
290
+ "sc": "1.4.6",
291
+ "slug": "contrast-enhanced",
292
+ "title": "Contrast (Enhanced)",
293
+ "level": "AAA",
294
+ "addedIn": "2.0",
295
+ "principle": 1,
296
+ "guideline": "1.4",
297
+ "status": "out-of-core"
298
+ },
299
+ {
300
+ "sc": "1.4.7",
301
+ "slug": "low-or-no-background-audio",
302
+ "title": "Low or No Background Audio",
303
+ "level": "AAA",
304
+ "addedIn": "2.0",
305
+ "principle": 1,
306
+ "guideline": "1.4",
307
+ "status": "out-of-core"
308
+ },
309
+ {
310
+ "sc": "1.4.8",
311
+ "slug": "visual-presentation",
312
+ "title": "Visual Presentation",
313
+ "level": "AAA",
314
+ "addedIn": "2.0",
315
+ "principle": 1,
316
+ "guideline": "1.4",
317
+ "status": "out-of-core"
318
+ },
319
+ {
320
+ "sc": "1.4.9",
321
+ "slug": "images-of-text-no-exception",
322
+ "title": "Images of Text (No Exception)",
323
+ "level": "AAA",
324
+ "addedIn": "2.0",
325
+ "principle": 1,
326
+ "guideline": "1.4",
327
+ "status": "out-of-core"
328
+ },
329
+ {
330
+ "sc": "1.4.10",
331
+ "slug": "reflow",
332
+ "title": "Reflow",
333
+ "level": "AA",
334
+ "addedIn": "2.1",
335
+ "principle": 1,
336
+ "guideline": "1.4",
337
+ "status": "core-AA"
338
+ },
339
+ {
340
+ "sc": "1.4.11",
341
+ "slug": "non-text-contrast",
342
+ "title": "Non-text Contrast",
343
+ "level": "AA",
344
+ "addedIn": "2.1",
345
+ "principle": 1,
346
+ "guideline": "1.4",
347
+ "status": "core-AA"
348
+ },
349
+ {
350
+ "sc": "1.4.12",
351
+ "slug": "text-spacing",
352
+ "title": "Text Spacing",
353
+ "level": "AA",
354
+ "addedIn": "2.1",
355
+ "principle": 1,
356
+ "guideline": "1.4",
357
+ "status": "core-AA"
358
+ },
359
+ {
360
+ "sc": "1.4.13",
361
+ "slug": "content-on-hover-or-focus",
362
+ "title": "Content on Hover or Focus",
363
+ "level": "AA",
364
+ "addedIn": "2.1",
365
+ "principle": 1,
366
+ "guideline": "1.4",
367
+ "status": "core-AA"
368
+ },
369
+ {
370
+ "sc": "2.1.1",
371
+ "slug": "keyboard",
372
+ "title": "Keyboard",
373
+ "level": "A",
374
+ "addedIn": "2.0",
375
+ "principle": 2,
376
+ "guideline": "2.1",
377
+ "status": "core-AA"
378
+ },
379
+ {
380
+ "sc": "2.1.2",
381
+ "slug": "no-keyboard-trap",
382
+ "title": "No Keyboard Trap",
383
+ "level": "A",
384
+ "addedIn": "2.0",
385
+ "principle": 2,
386
+ "guideline": "2.1",
387
+ "status": "core-AA"
388
+ },
389
+ {
390
+ "sc": "2.1.3",
391
+ "slug": "keyboard-no-exception",
392
+ "title": "Keyboard (No Exception)",
393
+ "level": "AAA",
394
+ "addedIn": "2.0",
395
+ "principle": 2,
396
+ "guideline": "2.1",
397
+ "status": "out-of-core"
398
+ },
399
+ {
400
+ "sc": "2.1.4",
401
+ "slug": "character-key-shortcuts",
402
+ "title": "Character Key Shortcuts",
403
+ "level": "A",
404
+ "addedIn": "2.1",
405
+ "principle": 2,
406
+ "guideline": "2.1",
407
+ "status": "core-AA"
408
+ },
409
+ {
410
+ "sc": "2.2.1",
411
+ "slug": "timing-adjustable",
412
+ "title": "Timing Adjustable",
413
+ "level": "A",
414
+ "addedIn": "2.0",
415
+ "principle": 2,
416
+ "guideline": "2.2",
417
+ "status": "core-AA"
418
+ },
419
+ {
420
+ "sc": "2.2.2",
421
+ "slug": "pause-stop-hide",
422
+ "title": "Pause, Stop, Hide",
423
+ "level": "A",
424
+ "addedIn": "2.0",
425
+ "principle": 2,
426
+ "guideline": "2.2",
427
+ "status": "core-AA"
428
+ },
429
+ {
430
+ "sc": "2.2.3",
431
+ "slug": "no-timing",
432
+ "title": "No Timing",
433
+ "level": "AAA",
434
+ "addedIn": "2.0",
435
+ "principle": 2,
436
+ "guideline": "2.2",
437
+ "status": "out-of-core"
438
+ },
439
+ {
440
+ "sc": "2.2.4",
441
+ "slug": "interruptions",
442
+ "title": "Interruptions",
443
+ "level": "AAA",
444
+ "addedIn": "2.0",
445
+ "principle": 2,
446
+ "guideline": "2.2",
447
+ "status": "out-of-core"
448
+ },
449
+ {
450
+ "sc": "2.2.5",
451
+ "slug": "re-authenticating",
452
+ "title": "Re-authenticating",
453
+ "level": "AAA",
454
+ "addedIn": "2.0",
455
+ "principle": 2,
456
+ "guideline": "2.2",
457
+ "status": "out-of-core"
458
+ },
459
+ {
460
+ "sc": "2.2.6",
461
+ "slug": "timeouts",
462
+ "title": "Timeouts",
463
+ "level": "AAA",
464
+ "addedIn": "2.1",
465
+ "principle": 2,
466
+ "guideline": "2.2",
467
+ "status": "out-of-core"
468
+ },
469
+ {
470
+ "sc": "2.3.1",
471
+ "slug": "three-flashes-or-below-threshold",
472
+ "title": "Three Flashes or Below Threshold",
473
+ "level": "A",
474
+ "addedIn": "2.0",
475
+ "principle": 2,
476
+ "guideline": "2.3",
477
+ "status": "core-AA"
478
+ },
479
+ {
480
+ "sc": "2.3.2",
481
+ "slug": "three-flashes",
482
+ "title": "Three Flashes",
483
+ "level": "AAA",
484
+ "addedIn": "2.0",
485
+ "principle": 2,
486
+ "guideline": "2.3",
487
+ "status": "out-of-core"
488
+ },
489
+ {
490
+ "sc": "2.3.3",
491
+ "slug": "animation-from-interactions",
492
+ "title": "Animation from Interactions",
493
+ "level": "AAA",
494
+ "addedIn": "2.1",
495
+ "principle": 2,
496
+ "guideline": "2.3",
497
+ "status": "out-of-core"
498
+ },
499
+ {
500
+ "sc": "2.4.1",
501
+ "slug": "bypass-blocks",
502
+ "title": "Bypass Blocks",
503
+ "level": "A",
504
+ "addedIn": "2.0",
505
+ "principle": 2,
506
+ "guideline": "2.4",
507
+ "status": "core-AA"
508
+ },
509
+ {
510
+ "sc": "2.4.2",
511
+ "slug": "page-titled",
512
+ "title": "Page Titled",
513
+ "level": "A",
514
+ "addedIn": "2.0",
515
+ "principle": 2,
516
+ "guideline": "2.4",
517
+ "status": "core-AA"
518
+ },
519
+ {
520
+ "sc": "2.4.3",
521
+ "slug": "focus-order",
522
+ "title": "Focus Order",
523
+ "level": "A",
524
+ "addedIn": "2.0",
525
+ "principle": 2,
526
+ "guideline": "2.4",
527
+ "status": "core-AA"
528
+ },
529
+ {
530
+ "sc": "2.4.4",
531
+ "slug": "link-purpose-in-context",
532
+ "title": "Link Purpose (In Context)",
533
+ "level": "A",
534
+ "addedIn": "2.0",
535
+ "principle": 2,
536
+ "guideline": "2.4",
537
+ "status": "core-AA"
538
+ },
539
+ {
540
+ "sc": "2.4.5",
541
+ "slug": "multiple-ways",
542
+ "title": "Multiple Ways",
543
+ "level": "AA",
544
+ "addedIn": "2.0",
545
+ "principle": 2,
546
+ "guideline": "2.4",
547
+ "status": "core-AA"
548
+ },
549
+ {
550
+ "sc": "2.4.6",
551
+ "slug": "headings-and-labels",
552
+ "title": "Headings and Labels",
553
+ "level": "AA",
554
+ "addedIn": "2.0",
555
+ "principle": 2,
556
+ "guideline": "2.4",
557
+ "status": "core-AA"
558
+ },
559
+ {
560
+ "sc": "2.4.7",
561
+ "slug": "focus-visible",
562
+ "title": "Focus Visible",
563
+ "level": "AA",
564
+ "addedIn": "2.0",
565
+ "principle": 2,
566
+ "guideline": "2.4",
567
+ "status": "core-AA"
568
+ },
569
+ {
570
+ "sc": "2.4.8",
571
+ "slug": "location",
572
+ "title": "Location",
573
+ "level": "AAA",
574
+ "addedIn": "2.0",
575
+ "principle": 2,
576
+ "guideline": "2.4",
577
+ "status": "out-of-core"
578
+ },
579
+ {
580
+ "sc": "2.4.9",
581
+ "slug": "link-purpose-link-only",
582
+ "title": "Link Purpose (Link Only)",
583
+ "level": "AAA",
584
+ "addedIn": "2.0",
585
+ "principle": 2,
586
+ "guideline": "2.4",
587
+ "status": "out-of-core"
588
+ },
589
+ {
590
+ "sc": "2.4.10",
591
+ "slug": "section-headings",
592
+ "title": "Section Headings",
593
+ "level": "AAA",
594
+ "addedIn": "2.0",
595
+ "principle": 2,
596
+ "guideline": "2.4",
597
+ "status": "out-of-core"
598
+ },
599
+ {
600
+ "sc": "2.4.11",
601
+ "slug": "focus-not-obscured-minimum",
602
+ "title": "Focus Not Obscured (Minimum)",
603
+ "level": "AA",
604
+ "addedIn": "2.2",
605
+ "principle": 2,
606
+ "guideline": "2.4",
607
+ "status": "core-AA"
608
+ },
609
+ {
610
+ "sc": "2.4.12",
611
+ "slug": "focus-not-obscured-enhanced",
612
+ "title": "Focus Not Obscured (Enhanced)",
613
+ "level": "AAA",
614
+ "addedIn": "2.2",
615
+ "principle": 2,
616
+ "guideline": "2.4",
617
+ "status": "out-of-core"
618
+ },
619
+ {
620
+ "sc": "2.4.13",
621
+ "slug": "focus-appearance",
622
+ "title": "Focus Appearance",
623
+ "level": "AAA",
624
+ "addedIn": "2.2",
625
+ "principle": 2,
626
+ "guideline": "2.4",
627
+ "status": "out-of-core"
628
+ },
629
+ {
630
+ "sc": "2.5.1",
631
+ "slug": "pointer-gestures",
632
+ "title": "Pointer Gestures",
633
+ "level": "A",
634
+ "addedIn": "2.1",
635
+ "principle": 2,
636
+ "guideline": "2.5",
637
+ "status": "core-AA"
638
+ },
639
+ {
640
+ "sc": "2.5.2",
641
+ "slug": "pointer-cancellation",
642
+ "title": "Pointer Cancellation",
643
+ "level": "A",
644
+ "addedIn": "2.1",
645
+ "principle": 2,
646
+ "guideline": "2.5",
647
+ "status": "core-AA"
648
+ },
649
+ {
650
+ "sc": "2.5.3",
651
+ "slug": "label-in-name",
652
+ "title": "Label in Name",
653
+ "level": "A",
654
+ "addedIn": "2.1",
655
+ "principle": 2,
656
+ "guideline": "2.5",
657
+ "status": "core-AA"
658
+ },
659
+ {
660
+ "sc": "2.5.4",
661
+ "slug": "motion-actuation",
662
+ "title": "Motion Actuation",
663
+ "level": "A",
664
+ "addedIn": "2.1",
665
+ "principle": 2,
666
+ "guideline": "2.5",
667
+ "status": "core-AA"
668
+ },
669
+ {
670
+ "sc": "2.5.5",
671
+ "slug": "target-size-enhanced",
672
+ "title": "Target Size (Enhanced)",
673
+ "level": "AAA",
674
+ "addedIn": "2.1",
675
+ "principle": 2,
676
+ "guideline": "2.5",
677
+ "status": "out-of-core"
678
+ },
679
+ {
680
+ "sc": "2.5.6",
681
+ "slug": "concurrent-input-mechanisms",
682
+ "title": "Concurrent Input Mechanisms",
683
+ "level": "AAA",
684
+ "addedIn": "2.1",
685
+ "principle": 2,
686
+ "guideline": "2.5",
687
+ "status": "out-of-core"
688
+ },
689
+ {
690
+ "sc": "2.5.7",
691
+ "slug": "dragging-movements",
692
+ "title": "Dragging Movements",
693
+ "level": "AA",
694
+ "addedIn": "2.2",
695
+ "principle": 2,
696
+ "guideline": "2.5",
697
+ "status": "core-AA"
698
+ },
699
+ {
700
+ "sc": "2.5.8",
701
+ "slug": "target-size-minimum",
702
+ "title": "Target Size (Minimum)",
703
+ "level": "AA",
704
+ "addedIn": "2.2",
705
+ "principle": 2,
706
+ "guideline": "2.5",
707
+ "status": "core-AA"
708
+ },
709
+ {
710
+ "sc": "3.1.1",
711
+ "slug": "language-of-page",
712
+ "title": "Language of Page",
713
+ "level": "A",
714
+ "addedIn": "2.0",
715
+ "principle": 3,
716
+ "guideline": "3.1",
717
+ "status": "core-AA"
718
+ },
719
+ {
720
+ "sc": "3.1.2",
721
+ "slug": "language-of-parts",
722
+ "title": "Language of Parts",
723
+ "level": "AA",
724
+ "addedIn": "2.0",
725
+ "principle": 3,
726
+ "guideline": "3.1",
727
+ "status": "core-AA"
728
+ },
729
+ {
730
+ "sc": "3.1.3",
731
+ "slug": "unusual-words",
732
+ "title": "Unusual Words",
733
+ "level": "AAA",
734
+ "addedIn": "2.0",
735
+ "principle": 3,
736
+ "guideline": "3.1",
737
+ "status": "out-of-core"
738
+ },
739
+ {
740
+ "sc": "3.1.4",
741
+ "slug": "abbreviations",
742
+ "title": "Abbreviations",
743
+ "level": "AAA",
744
+ "addedIn": "2.0",
745
+ "principle": 3,
746
+ "guideline": "3.1",
747
+ "status": "out-of-core"
748
+ },
749
+ {
750
+ "sc": "3.1.5",
751
+ "slug": "reading-level",
752
+ "title": "Reading Level",
753
+ "level": "AAA",
754
+ "addedIn": "2.0",
755
+ "principle": 3,
756
+ "guideline": "3.1",
757
+ "status": "out-of-core"
758
+ },
759
+ {
760
+ "sc": "3.1.6",
761
+ "slug": "pronunciation",
762
+ "title": "Pronunciation",
763
+ "level": "AAA",
764
+ "addedIn": "2.0",
765
+ "principle": 3,
766
+ "guideline": "3.1",
767
+ "status": "out-of-core"
768
+ },
769
+ {
770
+ "sc": "3.2.1",
771
+ "slug": "on-focus",
772
+ "title": "On Focus",
773
+ "level": "A",
774
+ "addedIn": "2.0",
775
+ "principle": 3,
776
+ "guideline": "3.2",
777
+ "status": "core-AA"
778
+ },
779
+ {
780
+ "sc": "3.2.2",
781
+ "slug": "on-input",
782
+ "title": "On Input",
783
+ "level": "A",
784
+ "addedIn": "2.0",
785
+ "principle": 3,
786
+ "guideline": "3.2",
787
+ "status": "core-AA"
788
+ },
789
+ {
790
+ "sc": "3.2.3",
791
+ "slug": "consistent-navigation",
792
+ "title": "Consistent Navigation",
793
+ "level": "AA",
794
+ "addedIn": "2.0",
795
+ "principle": 3,
796
+ "guideline": "3.2",
797
+ "status": "core-AA"
798
+ },
799
+ {
800
+ "sc": "3.2.4",
801
+ "slug": "consistent-identification",
802
+ "title": "Consistent Identification",
803
+ "level": "AA",
804
+ "addedIn": "2.0",
805
+ "principle": 3,
806
+ "guideline": "3.2",
807
+ "status": "core-AA"
808
+ },
809
+ {
810
+ "sc": "3.2.5",
811
+ "slug": "change-on-request",
812
+ "title": "Change on Request",
813
+ "level": "AAA",
814
+ "addedIn": "2.0",
815
+ "principle": 3,
816
+ "guideline": "3.2",
817
+ "status": "out-of-core"
818
+ },
819
+ {
820
+ "sc": "3.2.6",
821
+ "slug": "consistent-help",
822
+ "title": "Consistent Help",
823
+ "level": "A",
824
+ "addedIn": "2.2",
825
+ "principle": 3,
826
+ "guideline": "3.2",
827
+ "status": "core-AA"
828
+ },
829
+ {
830
+ "sc": "3.3.1",
831
+ "slug": "error-identification",
832
+ "title": "Error Identification",
833
+ "level": "A",
834
+ "addedIn": "2.0",
835
+ "principle": 3,
836
+ "guideline": "3.3",
837
+ "status": "core-AA"
838
+ },
839
+ {
840
+ "sc": "3.3.2",
841
+ "slug": "labels-or-instructions",
842
+ "title": "Labels or Instructions",
843
+ "level": "A",
844
+ "addedIn": "2.0",
845
+ "principle": 3,
846
+ "guideline": "3.3",
847
+ "status": "core-AA"
848
+ },
849
+ {
850
+ "sc": "3.3.3",
851
+ "slug": "error-suggestion",
852
+ "title": "Error Suggestion",
853
+ "level": "AA",
854
+ "addedIn": "2.0",
855
+ "principle": 3,
856
+ "guideline": "3.3",
857
+ "status": "core-AA"
858
+ },
859
+ {
860
+ "sc": "3.3.4",
861
+ "slug": "error-prevention-legal-financial-data",
862
+ "title": "Error Prevention (Legal, Financial, Data)",
863
+ "level": "AA",
864
+ "addedIn": "2.0",
865
+ "principle": 3,
866
+ "guideline": "3.3",
867
+ "status": "core-AA"
868
+ },
869
+ {
870
+ "sc": "3.3.5",
871
+ "slug": "help",
872
+ "title": "Help",
873
+ "level": "AAA",
874
+ "addedIn": "2.0",
875
+ "principle": 3,
876
+ "guideline": "3.3",
877
+ "status": "out-of-core"
878
+ },
879
+ {
880
+ "sc": "3.3.6",
881
+ "slug": "error-prevention-all",
882
+ "title": "Error Prevention (All)",
883
+ "level": "AAA",
884
+ "addedIn": "2.0",
885
+ "principle": 3,
886
+ "guideline": "3.3",
887
+ "status": "out-of-core"
888
+ },
889
+ {
890
+ "sc": "3.3.7",
891
+ "slug": "redundant-entry",
892
+ "title": "Redundant Entry",
893
+ "level": "A",
894
+ "addedIn": "2.2",
895
+ "principle": 3,
896
+ "guideline": "3.3",
897
+ "status": "core-AA"
898
+ },
899
+ {
900
+ "sc": "3.3.8",
901
+ "slug": "accessible-authentication-minimum",
902
+ "title": "Accessible Authentication (Minimum)",
903
+ "level": "AA",
904
+ "addedIn": "2.2",
905
+ "principle": 3,
906
+ "guideline": "3.3",
907
+ "status": "core-AA"
908
+ },
909
+ {
910
+ "sc": "3.3.9",
911
+ "slug": "accessible-authentication-enhanced",
912
+ "title": "Accessible Authentication (Enhanced)",
913
+ "level": "AAA",
914
+ "addedIn": "2.2",
915
+ "principle": 3,
916
+ "guideline": "3.3",
917
+ "status": "out-of-core"
918
+ },
919
+ {
920
+ "sc": "4.1.1",
921
+ "slug": "parsing",
922
+ "title": "Parsing (Obsolete and removed)",
923
+ "level": "",
924
+ "addedIn": "2.0",
925
+ "principle": 4,
926
+ "guideline": "4.1",
927
+ "status": "removed"
928
+ },
929
+ {
930
+ "sc": "4.1.2",
931
+ "slug": "name-role-value",
932
+ "title": "Name, Role, Value",
933
+ "level": "A",
934
+ "addedIn": "2.0",
935
+ "principle": 4,
936
+ "guideline": "4.1",
937
+ "status": "core-AA"
938
+ },
939
+ {
940
+ "sc": "4.1.3",
941
+ "slug": "status-messages",
942
+ "title": "Status Messages",
943
+ "level": "AA",
944
+ "addedIn": "2.1",
945
+ "principle": 4,
946
+ "guideline": "4.1",
947
+ "status": "core-AA"
948
+ }
949
+ ]
950
+ }