@verndale/accessibility-standards 1.0.0 → 2.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.
Files changed (124) hide show
  1. package/OPERATING.md +2 -0
  2. package/README.md +4 -0
  3. package/bin/accessibility-standards.mjs +1 -1
  4. package/dist/manifest.json +39 -21
  5. package/dist/profiles/ai-orchestration/coverage-manifest.json +109 -2
  6. package/dist/profiles/ai-orchestration/implementation/accessibility.md +334 -0
  7. package/dist/profiles/ai-orchestration/pattern-contracts.json +125 -39
  8. package/dist/profiles/ai-orchestration/patterns/accordion.md +9 -0
  9. package/dist/profiles/ai-orchestration/patterns/alert.md +9 -0
  10. package/dist/profiles/ai-orchestration/patterns/carousel.md +9 -0
  11. package/dist/profiles/ai-orchestration/patterns/combobox.md +9 -0
  12. package/dist/profiles/ai-orchestration/patterns/consequential-submission.md +9 -0
  13. package/dist/profiles/ai-orchestration/patterns/dialog.md +9 -0
  14. package/dist/profiles/ai-orchestration/patterns/disclosure.md +9 -0
  15. package/dist/profiles/ai-orchestration/patterns/dynamic-status.md +9 -0
  16. package/dist/profiles/ai-orchestration/patterns/field.md +9 -0
  17. package/dist/profiles/ai-orchestration/patterns/image.md +9 -0
  18. package/dist/profiles/ai-orchestration/patterns/listbox.md +9 -0
  19. package/dist/profiles/ai-orchestration/patterns/media-player.md +9 -0
  20. package/dist/profiles/ai-orchestration/patterns/menu-button.md +9 -0
  21. package/dist/profiles/ai-orchestration/patterns/pagination.md +9 -0
  22. package/dist/profiles/ai-orchestration/patterns/popover.md +9 -0
  23. package/dist/profiles/ai-orchestration/patterns/progress.md +9 -0
  24. package/dist/profiles/ai-orchestration/patterns/tabs.md +9 -0
  25. package/dist/profiles/ai-orchestration/patterns/tooltip.md +9 -0
  26. package/dist/profiles/ai-orchestration/patterns/validation.md +9 -0
  27. package/dist/profiles/ai-orchestration/review/accessibility.md +8 -1
  28. package/dist/profiles/ai-orchestration/semantics/accessible-name.md +1 -0
  29. package/dist/profiles/ai-orchestration/semantics/alert.md +1 -0
  30. package/dist/profiles/ai-orchestration/semantics/consequential-action.md +1 -0
  31. package/dist/profiles/ai-orchestration/semantics/data-table.md +1 -0
  32. package/dist/profiles/ai-orchestration/semantics/expanded-state.md +1 -0
  33. package/dist/profiles/ai-orchestration/semantics/focus.initial.md +1 -0
  34. package/dist/profiles/ai-orchestration/semantics/focus.return.md +1 -0
  35. package/dist/profiles/ai-orchestration/semantics/focus.visible.md +1 -0
  36. package/dist/profiles/ai-orchestration/semantics/form-error.md +1 -0
  37. package/dist/profiles/ai-orchestration/semantics/form-label.md +1 -0
  38. package/dist/profiles/ai-orchestration/semantics/form-required.md +1 -0
  39. package/dist/profiles/ai-orchestration/semantics/headings.md +1 -0
  40. package/dist/profiles/ai-orchestration/semantics/keyboard.escape.md +1 -0
  41. package/dist/profiles/ai-orchestration/semantics/keyboard.md +1 -0
  42. package/dist/profiles/ai-orchestration/semantics/landmarks.md +1 -0
  43. package/dist/profiles/ai-orchestration/semantics/live-status.md +1 -0
  44. package/dist/profiles/ai-orchestration/semantics/media-alternatives.md +1 -0
  45. package/dist/profiles/ai-orchestration/semantics/motion-control.md +1 -0
  46. package/dist/profiles/ai-orchestration/semantics/name-role-value.md +1 -0
  47. package/dist/profiles/ai-orchestration/semantics/native-dialog.md +1 -0
  48. package/dist/profiles/ai-orchestration/semantics/native-elements.md +1 -0
  49. package/dist/profiles/ai-orchestration/semantics/non-text-alternative.md +1 -0
  50. package/dist/profiles/ai-orchestration/semantics/roles-states-properties.md +1 -0
  51. package/dist/profiles/ai-orchestration/semantics/selected-state.md +1 -0
  52. package/dist/profiles/ai-orchestration/semantics/target-size.md +1 -0
  53. package/dist/profiles/ai-orchestration/semantics.json +48 -1
  54. package/dist/profiles/ai-orchestration/testing/accessibility.md +1 -1
  55. package/dist/profiles/ai-orchestration/ui-design-brain-bindings.json +856 -0
  56. package/dist/profiles/conductor/a11y-semantics.md +22 -1
  57. package/dist/profiles/conductor/accessibility-quality.md +314 -0
  58. package/dist/profiles/conductor/applicability-matrix.json +111 -28
  59. package/dist/profiles/conductor/coverage-manifest.json +109 -2
  60. package/dist/profiles/conductor/pattern-contracts.json +125 -39
  61. package/dist/profiles/conductor/patterns/accordion.json +13 -3
  62. package/dist/profiles/conductor/patterns/alert.json +13 -3
  63. package/dist/profiles/conductor/patterns/carousel.json +13 -3
  64. package/dist/profiles/conductor/patterns/combobox.json +13 -3
  65. package/dist/profiles/conductor/patterns/consequential-submission.json +13 -3
  66. package/dist/profiles/conductor/patterns/dialog.json +13 -3
  67. package/dist/profiles/conductor/patterns/disclosure.json +13 -3
  68. package/dist/profiles/conductor/patterns/dynamic-status.json +13 -3
  69. package/dist/profiles/conductor/patterns/field.json +23 -3
  70. package/dist/profiles/conductor/patterns/image.json +23 -3
  71. package/dist/profiles/conductor/patterns/listbox.json +13 -3
  72. package/dist/profiles/conductor/patterns/media-player.json +23 -3
  73. package/dist/profiles/conductor/patterns/menu-button.json +13 -3
  74. package/dist/profiles/conductor/patterns/pagination.json +13 -3
  75. package/dist/profiles/conductor/patterns/popover.json +13 -3
  76. package/dist/profiles/conductor/patterns/progress.json +13 -3
  77. package/dist/profiles/conductor/patterns/tabs.json +13 -3
  78. package/dist/profiles/conductor/patterns/tooltip.json +13 -3
  79. package/dist/profiles/conductor/patterns/validation.json +23 -3
  80. package/dist/profiles/conductor/semantics.json +48 -1
  81. package/dist/profiles/conductor/ui-design-brain-bindings.json +856 -0
  82. package/dist/projection-manifest.json +103 -78
  83. package/dist/requirements-to-implementation.md +2 -0
  84. package/lib/build-manifest.mjs +12 -6
  85. package/lib/build.mjs +19 -5
  86. package/lib/compile-applicability.mjs +131 -10
  87. package/lib/coverage.mjs +20 -0
  88. package/lib/index.mjs +1 -1
  89. package/lib/load.mjs +31 -1
  90. package/lib/provenance.mjs +49 -0
  91. package/lib/render.mjs +69 -29
  92. package/lib/sync.mjs +240 -26
  93. package/lib/validate.mjs +255 -24
  94. package/package.json +24 -11
  95. package/profiles/ai-orchestration/profile.json +1 -1
  96. package/profiles/conductor/profile.json +1 -1
  97. package/schemas/consumer-config.schema.json +1 -1
  98. package/schemas/contract.schema.json +1 -0
  99. package/schemas/manifest.schema.json +1 -1
  100. package/schemas/projection-manifest.schema.json +84 -1
  101. package/schemas/ui-design-brain-bindings.schema.json +86 -0
  102. package/src/applicability/facts.yml +29 -1
  103. package/src/applicability/matrix.yml +3 -2
  104. package/src/applicability/ui-design-brain-bindings.yml +210 -0
  105. package/src/contract.yml +1 -0
  106. package/src/patterns/disclosure/accordion.yml +1 -1
  107. package/src/patterns/disclosure/disclosure.yml +1 -1
  108. package/src/patterns/feedback/alert.yml +1 -1
  109. package/src/patterns/feedback/dynamic-status.yml +1 -1
  110. package/src/patterns/feedback/progress.yml +1 -1
  111. package/src/patterns/forms/consequential-submission.yml +1 -1
  112. package/src/patterns/forms/field.yml +1 -1
  113. package/src/patterns/forms/validation.yml +1 -1
  114. package/src/patterns/media/carousel.yml +1 -1
  115. package/src/patterns/media/image.yml +1 -1
  116. package/src/patterns/media/media-player.yml +1 -1
  117. package/src/patterns/navigation/menu-button.yml +1 -1
  118. package/src/patterns/navigation/pagination.yml +1 -1
  119. package/src/patterns/navigation/tabs.yml +1 -1
  120. package/src/patterns/overlays/dialog.yml +1 -1
  121. package/src/patterns/overlays/popover.yml +1 -1
  122. package/src/patterns/overlays/tooltip.yml +1 -1
  123. package/src/patterns/selection/combobox.yml +1 -1
  124. package/src/patterns/selection/listbox.yml +1 -1
@@ -1,6 +1,14 @@
1
1
  {
2
2
  "_generated": "GENERATED by @verndale/accessibility-standards; DO NOT EDIT",
3
- "schema_version": 1,
3
+ "_provenance": {
4
+ "package": "@verndale/accessibility-standards@2.0.0",
5
+ "profile": "conductor",
6
+ "profile_version": "2.0.0",
7
+ "profile_digest": "4840ac3a4910f8dc3a850df266a141e0e4df94ca3c8935ae4531c56f6be91e65",
8
+ "schema_version": 2,
9
+ "source_digest": "e4bf4272751c21e417ddd3e6c52308bf804fab097629ba843964532e7f97d9f0"
10
+ },
11
+ "schema_version": 2,
4
12
  "trigger_states": [
5
13
  "unobserved",
6
14
  "not_applicable",
@@ -25,9 +33,25 @@
25
33
  "content.has_media": {
26
34
  "type": "boolean"
27
35
  },
36
+ "component.ui_pattern_ids": {
37
+ "type": "array",
38
+ "items": "string",
39
+ "source": "ui-design-brain"
40
+ },
41
+ "component.accessibility_pattern_ids": {
42
+ "type": "array",
43
+ "items": "string",
44
+ "derived": true
45
+ },
46
+ "component.command_menu_trigger": {
47
+ "type": "boolean"
48
+ },
28
49
  "component.has_form_fields": {
29
50
  "type": "boolean"
30
51
  },
52
+ "component.has_validation": {
53
+ "type": "boolean"
54
+ },
31
55
  "component.submission_consequence": {
32
56
  "type": "array",
33
57
  "items": "string"
@@ -35,7 +59,13 @@
35
59
  "component.has_dynamic_status": {
36
60
  "type": "boolean"
37
61
  },
38
- "component.pattern": {
62
+ "component.message_urgency": {
63
+ "type": "string"
64
+ },
65
+ "component.overlay_model": {
66
+ "type": "string"
67
+ },
68
+ "component.selection_model": {
39
69
  "type": "string"
40
70
  },
41
71
  "interaction.has_motion_or_timing": {
@@ -140,15 +170,34 @@
140
170
  }
141
171
  },
142
172
  "outcomes": [
143
- "pattern.field",
173
+ "pattern.field"
174
+ ],
175
+ "evidence": [
176
+ "unit",
177
+ "axe"
178
+ ],
179
+ "order": 3,
180
+ "trigger_state": "unobserved",
181
+ "resolution_state": "needs_input"
182
+ },
183
+ {
184
+ "id": "applicability.validation",
185
+ "when": {
186
+ "equals": {
187
+ "fact": "component.has_validation",
188
+ "value": true
189
+ }
190
+ },
191
+ "outcomes": [
144
192
  "pattern.validation"
145
193
  ],
146
194
  "evidence": [
147
195
  "unit",
148
196
  "axe",
149
- "e2e"
197
+ "e2e",
198
+ "human"
150
199
  ],
151
- "order": 3,
200
+ "order": 4,
152
201
  "trigger_state": "unobserved",
153
202
  "resolution_state": "needs_input"
154
203
  },
@@ -167,7 +216,7 @@
167
216
  "e2e",
168
217
  "human"
169
218
  ],
170
- "order": 4,
219
+ "order": 5,
171
220
  "trigger_state": "unobserved",
172
221
  "resolution_state": "needs_input"
173
222
  },
@@ -187,21 +236,33 @@
187
236
  "e2e",
188
237
  "human"
189
238
  ],
190
- "order": 5,
239
+ "order": 6,
191
240
  "trigger_state": "unobserved",
192
241
  "resolution_state": "needs_input"
193
242
  },
194
243
  {
195
244
  "id": "applicability.overlays",
196
245
  "when": {
197
- "contains": {
198
- "fact": "component.pattern",
199
- "value": [
200
- "dialog",
201
- "popover",
202
- "tooltip"
203
- ]
204
- }
246
+ "any": [
247
+ {
248
+ "contains": {
249
+ "fact": "component.ui_pattern_ids",
250
+ "value": "modal"
251
+ }
252
+ },
253
+ {
254
+ "contains": {
255
+ "fact": "component.ui_pattern_ids",
256
+ "value": "popover"
257
+ }
258
+ },
259
+ {
260
+ "contains": {
261
+ "fact": "component.ui_pattern_ids",
262
+ "value": "tooltip"
263
+ }
264
+ }
265
+ ]
205
266
  },
206
267
  "outcomes": [
207
268
  "semantics.keyboard.escape",
@@ -210,7 +271,7 @@
210
271
  "evidence": [
211
272
  "e2e"
212
273
  ],
213
- "order": 6,
274
+ "order": 7,
214
275
  "trigger_state": "unobserved",
215
276
  "resolution_state": "needs_input"
216
277
  },
@@ -229,7 +290,7 @@
229
290
  "e2e",
230
291
  "human"
231
292
  ],
232
- "order": 7,
293
+ "order": 8,
233
294
  "trigger_state": "unobserved",
234
295
  "resolution_state": "needs_input"
235
296
  },
@@ -248,7 +309,7 @@
248
309
  "e2e",
249
310
  "human"
250
311
  ],
251
- "order": 8,
312
+ "order": 9,
252
313
  "trigger_state": "unobserved",
253
314
  "resolution_state": "needs_input"
254
315
  },
@@ -267,7 +328,7 @@
267
328
  "unit",
268
329
  "e2e"
269
330
  ],
270
- "order": 9,
331
+ "order": 10,
271
332
  "trigger_state": "unobserved",
272
333
  "resolution_state": "needs_input"
273
334
  },
@@ -285,7 +346,7 @@
285
346
  "evidence": [
286
347
  "human"
287
348
  ],
288
- "order": 10,
349
+ "order": 11,
289
350
  "trigger_state": "unobserved",
290
351
  "resolution_state": "needs_input"
291
352
  },
@@ -304,7 +365,7 @@
304
365
  "e2e",
305
366
  "human"
306
367
  ],
307
- "order": 11,
368
+ "order": 12,
308
369
  "trigger_state": "unobserved",
309
370
  "resolution_state": "needs_input"
310
371
  },
@@ -323,7 +384,7 @@
323
384
  "e2e",
324
385
  "human"
325
386
  ],
326
- "order": 12,
387
+ "order": 13,
327
388
  "trigger_state": "unobserved",
328
389
  "resolution_state": "needs_input"
329
390
  },
@@ -344,7 +405,7 @@
344
405
  "e2e",
345
406
  "human"
346
407
  ],
347
- "order": 13,
408
+ "order": 14,
348
409
  "trigger_state": "unobserved",
349
410
  "resolution_state": "needs_input"
350
411
  },
@@ -363,7 +424,7 @@
363
424
  "e2e",
364
425
  "human"
365
426
  ],
366
- "order": 14,
427
+ "order": 15,
367
428
  "trigger_state": "unobserved",
368
429
  "resolution_state": "needs_input"
369
430
  },
@@ -381,7 +442,7 @@
381
442
  "evidence": [
382
443
  "human"
383
444
  ],
384
- "order": 15,
445
+ "order": 16,
385
446
  "trigger_state": "unobserved",
386
447
  "resolution_state": "needs_input"
387
448
  },
@@ -400,7 +461,7 @@
400
461
  "unit",
401
462
  "human"
402
463
  ],
403
- "order": 16,
464
+ "order": 17,
404
465
  "trigger_state": "unobserved",
405
466
  "resolution_state": "needs_input"
406
467
  },
@@ -420,9 +481,31 @@
420
481
  "e2e",
421
482
  "human"
422
483
  ],
423
- "order": 17,
484
+ "order": 18,
424
485
  "trigger_state": "unobserved",
425
486
  "resolution_state": "needs_input"
426
487
  }
427
- ]
488
+ ],
489
+ "evidence": {
490
+ "version": 1,
491
+ "proof_kinds": {
492
+ "unit": {
493
+ "purpose": "semantic state and deterministic resolver behavior",
494
+ "required_capability": "unit"
495
+ },
496
+ "axe": {
497
+ "purpose": "automated rule evidence",
498
+ "required_capability": "axe"
499
+ },
500
+ "e2e": {
501
+ "purpose": "keyboard, focus, and integrated behavior",
502
+ "required_capability": "e2e"
503
+ },
504
+ "human": {
505
+ "purpose": "judgment, assistive technology, content, and visual evidence",
506
+ "required_capability": "human"
507
+ }
508
+ },
509
+ "rule": "Tool availability changes the evidence route, never requirement applicability. A missing required capability is a blocker."
510
+ }
428
511
  }
@@ -1,6 +1,14 @@
1
1
  {
2
2
  "_generated": "GENERATED by @verndale/accessibility-standards; DO NOT EDIT",
3
- "schema_version": 1,
3
+ "_provenance": {
4
+ "package": "@verndale/accessibility-standards@2.0.0",
5
+ "profile": "conductor",
6
+ "profile_version": "2.0.0",
7
+ "profile_digest": "4840ac3a4910f8dc3a850df266a141e0e4df94ca3c8935ae4531c56f6be91e65",
8
+ "schema_version": 2,
9
+ "source_digest": "e4bf4272751c21e417ddd3e6c52308bf804fab097629ba843964532e7f97d9f0"
10
+ },
11
+ "schema_version": 2,
4
12
  "projected_ids": [
5
13
  "applicability.authentication-captcha",
6
14
  "applicability.character-shortcuts",
@@ -20,6 +28,10 @@
20
28
  "applicability.page-context",
21
29
  "applicability.redundant-entry",
22
30
  "applicability.target-size",
31
+ "applicability.validation",
32
+ "foundation.conformance-boundary",
33
+ "foundation.standards-hierarchy",
34
+ "foundation.wcag-2.2",
23
35
  "pattern.accordion",
24
36
  "pattern.alert",
25
37
  "pattern.carousel",
@@ -39,6 +51,8 @@
39
51
  "pattern.tabs",
40
52
  "pattern.tooltip",
41
53
  "pattern.validation",
54
+ "policy.enhanced-quality",
55
+ "policy.target-size",
42
56
  "semantics.accessible-name",
43
57
  "semantics.alert",
44
58
  "semantics.consequential-action",
@@ -65,6 +79,100 @@
65
79
  "semantics.selected-state",
66
80
  "semantics.target-size"
67
81
  ],
82
+ "ui_pattern_ids": [
83
+ "accordion",
84
+ "alert",
85
+ "avatar",
86
+ "badge",
87
+ "breadcrumbs",
88
+ "button",
89
+ "button-group",
90
+ "card",
91
+ "carousel",
92
+ "checkbox",
93
+ "color-picker",
94
+ "combobox",
95
+ "comparison-table",
96
+ "context-menu",
97
+ "date-input",
98
+ "datepicker",
99
+ "drawer",
100
+ "dropdown-menu",
101
+ "empty-state",
102
+ "error-message",
103
+ "eyebrow",
104
+ "fieldset",
105
+ "file",
106
+ "file-upload",
107
+ "filter",
108
+ "footer",
109
+ "form",
110
+ "header",
111
+ "heading",
112
+ "helper-text",
113
+ "hero",
114
+ "icon",
115
+ "image",
116
+ "in-page-navigation",
117
+ "label",
118
+ "link",
119
+ "list",
120
+ "logo-bar",
121
+ "marquee",
122
+ "masthead",
123
+ "media-object",
124
+ "mega-menu",
125
+ "modal",
126
+ "navigation",
127
+ "number-input",
128
+ "pagination",
129
+ "popover",
130
+ "progress-bar",
131
+ "progress-indicator",
132
+ "quote",
133
+ "radio-button",
134
+ "rating",
135
+ "rich-text",
136
+ "rich-text-editor",
137
+ "search-input",
138
+ "search-overlay",
139
+ "section-header",
140
+ "segmented-control",
141
+ "select",
142
+ "separator",
143
+ "sidebar",
144
+ "skeleton",
145
+ "skip-link",
146
+ "slider",
147
+ "spinner",
148
+ "stack",
149
+ "stat",
150
+ "stepper",
151
+ "table",
152
+ "tabs",
153
+ "text-input",
154
+ "textarea",
155
+ "toast",
156
+ "toggle",
157
+ "tooltip",
158
+ "tree-view",
159
+ "utility-bar",
160
+ "video",
161
+ "visually-hidden",
162
+ "wizard"
163
+ ],
164
+ "ui_design_brain": {
165
+ "package": "@verndale/ui-design-brain",
166
+ "package_version": "1.16.0",
167
+ "catalog_authority_version": "1.15.1",
168
+ "repository": "https://github.com/verndale/ui-design-brain",
169
+ "manifest_path": "skills/ui-design-brain/catalog-manifest.json",
170
+ "source_digest": "sha256:1eda596fe341786b5ada25742b6487bc06685fff17cbd582bc1b58302097e3ff",
171
+ "manifest_digest": "sha256:63a0bc8d9537d6d4c0aef8fd8a539bf4a9181a50d0761bd63eae6fe59b4eddc9",
172
+ "pattern_count": 80,
173
+ "tracking_issue": "https://github.com/verndale/ui-design-brain/issues/47",
174
+ "binding_digest": "3873c25694439e1ab07858aa84aecfa1be3467043559d0c94906c19e1025da64"
175
+ },
68
176
  "lane_coverage": {
69
177
  "axe": [
70
178
  "pattern.accordion",
@@ -102,7 +210,6 @@
102
210
  "pattern.dialog",
103
211
  "pattern.disclosure",
104
212
  "pattern.dynamic-status",
105
- "pattern.field",
106
213
  "pattern.listbox",
107
214
  "pattern.media-player",
108
215
  "pattern.menu-button",