@verndale/accessibility-standards 2.0.0 → 3.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 (165) hide show
  1. package/OPERATING.md +1 -1
  2. package/README.md +1 -1
  3. package/dist/manifest.json +156 -116
  4. package/dist/profiles/ai-orchestration/coverage-manifest.json +702 -153
  5. package/dist/profiles/ai-orchestration/implementation/accessibility.md +523 -42
  6. package/dist/profiles/ai-orchestration/pattern-contracts.json +892 -306
  7. package/dist/profiles/ai-orchestration/patterns/accordion.md +6 -1
  8. package/dist/profiles/ai-orchestration/patterns/alert.md +6 -1
  9. package/dist/profiles/ai-orchestration/patterns/carousel.md +6 -1
  10. package/dist/profiles/ai-orchestration/patterns/checkbox.md +27 -0
  11. package/dist/profiles/ai-orchestration/patterns/combobox.md +6 -1
  12. package/dist/profiles/ai-orchestration/patterns/consequential-submission.md +8 -3
  13. package/dist/profiles/ai-orchestration/patterns/dialog.md +6 -1
  14. package/dist/profiles/ai-orchestration/patterns/disclosure.md +6 -1
  15. package/dist/profiles/ai-orchestration/patterns/dynamic-status.md +6 -1
  16. package/dist/profiles/ai-orchestration/patterns/field.md +7 -1
  17. package/dist/profiles/ai-orchestration/patterns/image.md +6 -1
  18. package/dist/profiles/ai-orchestration/patterns/listbox.md +6 -1
  19. package/dist/profiles/ai-orchestration/patterns/media-player.md +9 -1
  20. package/dist/profiles/ai-orchestration/patterns/menu-button.md +6 -1
  21. package/dist/profiles/ai-orchestration/patterns/menu.md +30 -0
  22. package/dist/profiles/ai-orchestration/patterns/pagination.md +6 -1
  23. package/dist/profiles/ai-orchestration/patterns/popover.md +7 -1
  24. package/dist/profiles/ai-orchestration/patterns/progress.md +7 -1
  25. package/dist/profiles/ai-orchestration/patterns/radio-group.md +27 -0
  26. package/dist/profiles/ai-orchestration/patterns/slider.md +31 -0
  27. package/dist/profiles/ai-orchestration/patterns/spinbutton.md +28 -0
  28. package/dist/profiles/ai-orchestration/patterns/tabs.md +6 -1
  29. package/dist/profiles/ai-orchestration/patterns/tooltip.md +6 -1
  30. package/dist/profiles/ai-orchestration/patterns/tree-view.md +31 -0
  31. package/dist/profiles/ai-orchestration/patterns/validation.md +7 -1
  32. package/dist/profiles/ai-orchestration/review/accessibility.md +14 -6
  33. package/dist/profiles/ai-orchestration/semantics/accessible-authentication.md +13 -0
  34. package/dist/profiles/ai-orchestration/semantics/accessible-name.md +8 -2
  35. package/dist/profiles/ai-orchestration/semantics/alert.md +7 -1
  36. package/dist/profiles/ai-orchestration/semantics/consequential-action.md +6 -2
  37. package/dist/profiles/ai-orchestration/semantics/consistent-help.md +13 -0
  38. package/dist/profiles/ai-orchestration/semantics/data-table.md +7 -2
  39. package/dist/profiles/ai-orchestration/semantics/dragging-alternative.md +13 -0
  40. package/dist/profiles/ai-orchestration/semantics/expanded-state.md +6 -1
  41. package/dist/profiles/ai-orchestration/semantics/focus.initial.md +4 -1
  42. package/dist/profiles/ai-orchestration/semantics/focus.return.md +4 -1
  43. package/dist/profiles/ai-orchestration/semantics/focus.visible.md +8 -2
  44. package/dist/profiles/ai-orchestration/semantics/form-error.md +8 -2
  45. package/dist/profiles/ai-orchestration/semantics/form-label.md +7 -1
  46. package/dist/profiles/ai-orchestration/semantics/form-required.md +7 -1
  47. package/dist/profiles/ai-orchestration/semantics/headings.md +7 -1
  48. package/dist/profiles/ai-orchestration/semantics/keyboard.escape.md +4 -1
  49. package/dist/profiles/ai-orchestration/semantics/keyboard.md +7 -1
  50. package/dist/profiles/ai-orchestration/semantics/landmarks.md +6 -1
  51. package/dist/profiles/ai-orchestration/semantics/live-status.md +7 -2
  52. package/dist/profiles/ai-orchestration/semantics/media-alternatives.md +11 -1
  53. package/dist/profiles/ai-orchestration/semantics/motion-control.md +8 -2
  54. package/dist/profiles/ai-orchestration/semantics/name-role-value.md +6 -2
  55. package/dist/profiles/ai-orchestration/semantics/native-dialog.md +7 -1
  56. package/dist/profiles/ai-orchestration/semantics/native-elements.md +5 -1
  57. package/dist/profiles/ai-orchestration/semantics/non-text-alternative.md +5 -1
  58. package/dist/profiles/ai-orchestration/semantics/redundant-entry.md +13 -0
  59. package/dist/profiles/ai-orchestration/semantics/roles-states-properties.md +6 -1
  60. package/dist/profiles/ai-orchestration/semantics/selected-state.md +6 -1
  61. package/dist/profiles/ai-orchestration/semantics/target-size.md +6 -2
  62. package/dist/profiles/ai-orchestration/semantics.json +826 -130
  63. package/dist/profiles/ai-orchestration/testing/accessibility.md +33 -3
  64. package/dist/profiles/ai-orchestration/ui-design-brain-bindings.json +287 -307
  65. package/dist/profiles/conductor/a11y-semantics.md +249 -10
  66. package/dist/profiles/conductor/accessibility-quality.md +275 -33
  67. package/dist/profiles/conductor/applicability-matrix.json +226 -269
  68. package/dist/profiles/conductor/coverage-manifest.json +702 -153
  69. package/dist/profiles/conductor/pattern-contracts.json +892 -306
  70. package/dist/profiles/conductor/patterns/accordion.json +35 -27
  71. package/dist/profiles/conductor/patterns/alert.json +29 -21
  72. package/dist/profiles/conductor/patterns/carousel.json +36 -28
  73. package/dist/profiles/conductor/patterns/checkbox.json +67 -0
  74. package/dist/profiles/conductor/patterns/combobox.json +37 -29
  75. package/dist/profiles/conductor/patterns/consequential-submission.json +34 -25
  76. package/dist/profiles/conductor/patterns/dialog.json +37 -29
  77. package/dist/profiles/conductor/patterns/disclosure.json +33 -25
  78. package/dist/profiles/conductor/patterns/dynamic-status.json +31 -22
  79. package/dist/profiles/conductor/patterns/field.json +41 -25
  80. package/dist/profiles/conductor/patterns/image.json +31 -22
  81. package/dist/profiles/conductor/patterns/listbox.json +35 -27
  82. package/dist/profiles/conductor/patterns/media-player.json +59 -29
  83. package/dist/profiles/conductor/patterns/menu-button.json +34 -26
  84. package/dist/profiles/conductor/patterns/menu.json +78 -0
  85. package/dist/profiles/conductor/patterns/pagination.json +34 -25
  86. package/dist/profiles/conductor/patterns/popover.json +42 -26
  87. package/dist/profiles/conductor/patterns/progress.json +38 -23
  88. package/dist/profiles/conductor/patterns/radio-group.json +69 -0
  89. package/dist/profiles/conductor/patterns/slider.json +84 -0
  90. package/dist/profiles/conductor/patterns/spinbutton.json +74 -0
  91. package/dist/profiles/conductor/patterns/tabs.json +34 -26
  92. package/dist/profiles/conductor/patterns/tooltip.json +31 -23
  93. package/dist/profiles/conductor/patterns/tree-view.json +77 -0
  94. package/dist/profiles/conductor/patterns/validation.json +42 -26
  95. package/dist/profiles/conductor/semantics.json +826 -130
  96. package/dist/profiles/conductor/ui-design-brain-bindings.json +287 -307
  97. package/dist/projection-manifest.json +120 -104
  98. package/dist/requirements-to-implementation.md +7 -1
  99. package/lib/build.mjs +3 -3
  100. package/lib/digest.mjs +8 -0
  101. package/lib/load.mjs +13 -0
  102. package/lib/provenance.mjs +2 -0
  103. package/lib/render.mjs +51 -7
  104. package/lib/sync.mjs +2 -2
  105. package/lib/validate.mjs +335 -33
  106. package/package.json +6 -2
  107. package/profiles/ai-orchestration/profile.json +1 -1
  108. package/profiles/ai-orchestration/templates/patterns/README.md +1 -1
  109. package/profiles/ai-orchestration/templates/review/README.md +1 -1
  110. package/profiles/ai-orchestration/templates/semantics/README.md +1 -1
  111. package/profiles/ai-orchestration/templates/testing/README.md +1 -1
  112. package/profiles/conductor/profile.json +1 -1
  113. package/profiles/conductor/templates/evidence/README.md +1 -1
  114. package/profiles/conductor/templates/patterns/README.md +1 -1
  115. package/profiles/conductor/templates/semantics/README.md +1 -1
  116. package/schemas/consumer-config.schema.json +1 -1
  117. package/schemas/contract.schema.json +1 -1
  118. package/schemas/manifest.schema.json +1 -1
  119. package/schemas/pattern.schema.json +98 -1
  120. package/schemas/profile.schema.json +1 -1
  121. package/schemas/projection-manifest.schema.json +6 -6
  122. package/schemas/semantic.schema.json +26 -1
  123. package/schemas/standards-reference.schema.json +105 -0
  124. package/schemas/wcag-coverage.schema.json +93 -0
  125. package/src/applicability/facts.yml +3 -5
  126. package/src/applicability/matrix.yml +5 -7
  127. package/src/applicability/ui-design-brain-bindings.yml +8 -22
  128. package/src/contract.yml +1 -1
  129. package/src/coverage/wcag-2.2.yml +68 -0
  130. package/src/patterns/disclosure/accordion.yml +1 -1
  131. package/src/patterns/disclosure/disclosure.yml +1 -1
  132. package/src/patterns/feedback/alert.yml +1 -1
  133. package/src/patterns/feedback/dynamic-status.yml +1 -1
  134. package/src/patterns/feedback/progress.yml +1 -1
  135. package/src/patterns/forms/consequential-submission.yml +1 -1
  136. package/src/patterns/forms/field.yml +1 -1
  137. package/src/patterns/forms/spinbutton.yml +1 -0
  138. package/src/patterns/forms/validation.yml +1 -1
  139. package/src/patterns/media/carousel.yml +1 -1
  140. package/src/patterns/media/image.yml +1 -1
  141. package/src/patterns/media/media-player.yml +1 -1
  142. package/src/patterns/navigation/menu-button.yml +1 -1
  143. package/src/patterns/navigation/menu.yml +1 -0
  144. package/src/patterns/navigation/pagination.yml +1 -1
  145. package/src/patterns/navigation/tabs.yml +1 -1
  146. package/src/patterns/navigation/tree-view.yml +1 -0
  147. package/src/patterns/overlays/dialog.yml +1 -1
  148. package/src/patterns/overlays/popover.yml +1 -1
  149. package/src/patterns/overlays/tooltip.yml +1 -1
  150. package/src/patterns/selection/checkbox.yml +1 -0
  151. package/src/patterns/selection/combobox.yml +1 -1
  152. package/src/patterns/selection/listbox.yml +1 -1
  153. package/src/patterns/selection/radio-group.yml +1 -0
  154. package/src/patterns/selection/slider.yml +1 -0
  155. package/src/semantics/accessible-names.yml +1 -1
  156. package/src/semantics/forms.yml +1 -1
  157. package/src/semantics/headings-landmarks.yml +1 -1
  158. package/src/semantics/keyboard-focus.yml +1 -1
  159. package/src/semantics/live-regions.yml +1 -1
  160. package/src/semantics/media.yml +1 -1
  161. package/src/semantics/native-elements.yml +1 -1
  162. package/src/semantics/roles-states-properties.yml +1 -1
  163. package/src/semantics/tables.yml +1 -1
  164. package/src/semantics/wcag-2.2.yml +1 -0
  165. package/src/sources.yml +1 -1
@@ -1,54 +1,62 @@
1
1
  {
2
2
  "_generated": "GENERATED by @verndale/accessibility-standards; DO NOT EDIT",
3
3
  "_provenance": {
4
- "package": "@verndale/accessibility-standards@2.0.0",
4
+ "package": "@verndale/accessibility-standards@3.0.0",
5
5
  "profile": "conductor",
6
- "profile_version": "2.0.0",
7
- "profile_digest": "4840ac3a4910f8dc3a850df266a141e0e4df94ca3c8935ae4531c56f6be91e65",
8
- "schema_version": 2,
9
- "source_digest": "e4bf4272751c21e417ddd3e6c52308bf804fab097629ba843964532e7f97d9f0"
6
+ "profile_digest": "beadcb5fe8151303b3e3241de4fee0ece3be9ff2f4dbdb3a6f93a363b0a2d491",
7
+ "profile_version": "3.0.0",
8
+ "schema_version": 3,
9
+ "source_digest": "708ac82783bfb5ebcce31e4dada15d8580863f5e37b32d1807adf61e415ed5af"
10
10
  },
11
- "schema_version": 2,
12
11
  "pattern": {
13
- "id": "pattern.accordion",
14
- "version": "1.0.0",
15
- "title": "Accordion",
16
- "kind": "pattern",
17
- "requires": [
18
- "semantics.native-elements",
19
- "semantics.accessible-name",
20
- "semantics.expanded-state",
21
- "semantics.keyboard",
22
- "semantics.focus.visible"
23
- ],
24
12
  "activation": {
25
13
  "contains": {
26
14
  "fact": "component.accessibility_pattern_ids",
27
15
  "value": "pattern.accordion"
28
16
  }
29
17
  },
30
- "scope": "Grouped disclosure sections",
31
18
  "behavior": [
32
19
  "Toggle only the controlled panel",
33
20
  "Preserve DOM and focus order"
34
21
  ],
35
- "product_decisions": [
36
- "single_or_multiple_open"
22
+ "evidence_routes": [
23
+ "unit",
24
+ "axe",
25
+ "e2e",
26
+ "human"
37
27
  ],
38
28
  "functional_spec_bindings": [
39
29
  "behavior",
40
30
  "states",
41
31
  "keyboard"
42
32
  ],
33
+ "id": "pattern.accordion",
43
34
  "implementation_outcomes": [
44
35
  "accordion-control",
45
36
  "accordion-panel"
46
37
  ],
47
- "evidence_routes": [
48
- "unit",
49
- "axe",
50
- "e2e",
51
- "human"
52
- ]
53
- }
38
+ "kind": "pattern",
39
+ "product_decisions": [
40
+ "single_or_multiple_open"
41
+ ],
42
+ "requires": [
43
+ "semantics.native-elements",
44
+ "semantics.accessible-name",
45
+ "semantics.expanded-state",
46
+ "semantics.keyboard",
47
+ "semantics.focus.visible"
48
+ ],
49
+ "scope": "Grouped disclosure sections",
50
+ "standards_refs": [
51
+ {
52
+ "authority": "aria-apg",
53
+ "identifier": "accordion",
54
+ "normative": false,
55
+ "url": "https://www.w3.org/WAI/ARIA/apg/patterns/accordion/"
56
+ }
57
+ ],
58
+ "title": "Accordion",
59
+ "version": "1.0.0"
60
+ },
61
+ "schema_version": 3
54
62
  }
@@ -1,44 +1,52 @@
1
1
  {
2
2
  "_generated": "GENERATED by @verndale/accessibility-standards; DO NOT EDIT",
3
3
  "_provenance": {
4
- "package": "@verndale/accessibility-standards@2.0.0",
4
+ "package": "@verndale/accessibility-standards@3.0.0",
5
5
  "profile": "conductor",
6
- "profile_version": "2.0.0",
7
- "profile_digest": "4840ac3a4910f8dc3a850df266a141e0e4df94ca3c8935ae4531c56f6be91e65",
8
- "schema_version": 2,
9
- "source_digest": "e4bf4272751c21e417ddd3e6c52308bf804fab097629ba843964532e7f97d9f0"
6
+ "profile_digest": "beadcb5fe8151303b3e3241de4fee0ece3be9ff2f4dbdb3a6f93a363b0a2d491",
7
+ "profile_version": "3.0.0",
8
+ "schema_version": 3,
9
+ "source_digest": "708ac82783bfb5ebcce31e4dada15d8580863f5e37b32d1807adf61e415ed5af"
10
10
  },
11
- "schema_version": 2,
12
11
  "pattern": {
13
- "id": "pattern.alert",
14
- "version": "1.0.0",
15
- "title": "Alert",
16
- "kind": "pattern",
17
- "requires": [
18
- "semantics.alert"
19
- ],
20
12
  "activation": {
21
13
  "contains": {
22
14
  "fact": "component.accessibility_pattern_ids",
23
15
  "value": "pattern.alert"
24
16
  }
25
17
  },
26
- "scope": "Urgent message",
27
18
  "behavior": [
28
19
  "Announce once without moving focus"
29
20
  ],
30
- "product_decisions": [
31
- "urgency"
21
+ "evidence_routes": [
22
+ "unit",
23
+ "human"
32
24
  ],
33
25
  "functional_spec_bindings": [
34
26
  "messaging"
35
27
  ],
28
+ "id": "pattern.alert",
36
29
  "implementation_outcomes": [
37
30
  "alert-announcement"
38
31
  ],
39
- "evidence_routes": [
40
- "unit",
41
- "human"
42
- ]
43
- }
32
+ "kind": "pattern",
33
+ "product_decisions": [
34
+ "urgency"
35
+ ],
36
+ "requires": [
37
+ "semantics.alert"
38
+ ],
39
+ "scope": "Urgent message",
40
+ "standards_refs": [
41
+ {
42
+ "authority": "aria-apg",
43
+ "identifier": "alert",
44
+ "normative": false,
45
+ "url": "https://www.w3.org/WAI/ARIA/apg/patterns/alert/"
46
+ }
47
+ ],
48
+ "title": "Alert",
49
+ "version": "1.0.0"
50
+ },
51
+ "schema_version": 3
44
52
  }
@@ -1,55 +1,63 @@
1
1
  {
2
2
  "_generated": "GENERATED by @verndale/accessibility-standards; DO NOT EDIT",
3
3
  "_provenance": {
4
- "package": "@verndale/accessibility-standards@2.0.0",
4
+ "package": "@verndale/accessibility-standards@3.0.0",
5
5
  "profile": "conductor",
6
- "profile_version": "2.0.0",
7
- "profile_digest": "4840ac3a4910f8dc3a850df266a141e0e4df94ca3c8935ae4531c56f6be91e65",
8
- "schema_version": 2,
9
- "source_digest": "e4bf4272751c21e417ddd3e6c52308bf804fab097629ba843964532e7f97d9f0"
6
+ "profile_digest": "beadcb5fe8151303b3e3241de4fee0ece3be9ff2f4dbdb3a6f93a363b0a2d491",
7
+ "profile_version": "3.0.0",
8
+ "schema_version": 3,
9
+ "source_digest": "708ac82783bfb5ebcce31e4dada15d8580863f5e37b32d1807adf61e415ed5af"
10
10
  },
11
- "schema_version": 2,
12
11
  "pattern": {
13
- "id": "pattern.carousel",
14
- "version": "1.0.0",
15
- "title": "Carousel",
16
- "kind": "pattern",
17
- "requires": [
18
- "semantics.accessible-name",
19
- "semantics.keyboard",
20
- "semantics.focus.visible",
21
- "semantics.motion-control",
22
- "semantics.live-status"
23
- ],
24
12
  "activation": {
25
13
  "contains": {
26
14
  "fact": "component.accessibility_pattern_ids",
27
15
  "value": "pattern.carousel"
28
16
  }
29
17
  },
30
- "scope": "Rotating content set",
31
18
  "behavior": [
32
19
  "Pause rotation on interaction",
33
20
  "Provide named controls and current position"
34
21
  ],
35
- "product_decisions": [
36
- "auto_rotation",
37
- "looping"
22
+ "evidence_routes": [
23
+ "unit",
24
+ "axe",
25
+ "e2e",
26
+ "human"
38
27
  ],
39
28
  "functional_spec_bindings": [
40
29
  "behavior",
41
30
  "states",
42
31
  "controls"
43
32
  ],
33
+ "id": "pattern.carousel",
44
34
  "implementation_outcomes": [
45
35
  "carousel-controls",
46
36
  "carousel-rotation"
47
37
  ],
48
- "evidence_routes": [
49
- "unit",
50
- "axe",
51
- "e2e",
52
- "human"
53
- ]
54
- }
38
+ "kind": "pattern",
39
+ "product_decisions": [
40
+ "auto_rotation",
41
+ "looping"
42
+ ],
43
+ "requires": [
44
+ "semantics.accessible-name",
45
+ "semantics.keyboard",
46
+ "semantics.focus.visible",
47
+ "semantics.motion-control",
48
+ "semantics.live-status"
49
+ ],
50
+ "scope": "Rotating content set",
51
+ "standards_refs": [
52
+ {
53
+ "authority": "aria-apg",
54
+ "identifier": "carousel",
55
+ "normative": false,
56
+ "url": "https://www.w3.org/WAI/ARIA/apg/patterns/carousel/"
57
+ }
58
+ ],
59
+ "title": "Carousel",
60
+ "version": "1.0.0"
61
+ },
62
+ "schema_version": 3
55
63
  }
@@ -0,0 +1,67 @@
1
+ {
2
+ "_generated": "GENERATED by @verndale/accessibility-standards; DO NOT EDIT",
3
+ "_provenance": {
4
+ "package": "@verndale/accessibility-standards@3.0.0",
5
+ "profile": "conductor",
6
+ "profile_digest": "beadcb5fe8151303b3e3241de4fee0ece3be9ff2f4dbdb3a6f93a363b0a2d491",
7
+ "profile_version": "3.0.0",
8
+ "schema_version": 3,
9
+ "source_digest": "708ac82783bfb5ebcce31e4dada15d8580863f5e37b32d1807adf61e415ed5af"
10
+ },
11
+ "pattern": {
12
+ "activation": {
13
+ "contains": {
14
+ "fact": "component.accessibility_pattern_ids",
15
+ "value": "pattern.checkbox"
16
+ }
17
+ },
18
+ "behavior": [
19
+ "Use a native checkbox when it provides the required behavior; otherwise expose checkbox semantics and synchronize checked, unchecked, or mixed state",
20
+ "Space toggles the focused checkbox without changing unrelated controls",
21
+ "Associate logical groups and any relevant descriptions with programmatic group labels"
22
+ ],
23
+ "evidence_routes": [
24
+ "unit",
25
+ "axe",
26
+ "e2e",
27
+ "human"
28
+ ],
29
+ "functional_spec_bindings": [
30
+ "fields",
31
+ "states",
32
+ "keyboard"
33
+ ],
34
+ "id": "pattern.checkbox",
35
+ "implementation_outcomes": [
36
+ "checkbox-group-semantics",
37
+ "checkbox-state-machine"
38
+ ],
39
+ "kind": "pattern",
40
+ "product_decisions": [
41
+ "dual_or_tri_state",
42
+ "group_labeling",
43
+ "mixed_state_cycle"
44
+ ],
45
+ "requires": [
46
+ "semantics.accessible-name",
47
+ "semantics.focus.visible",
48
+ "semantics.form-label",
49
+ "semantics.keyboard",
50
+ "semantics.name-role-value",
51
+ "semantics.native-elements",
52
+ "semantics.roles-states-properties"
53
+ ],
54
+ "scope": "Standalone, grouped, dual-state, or tri-state checkboxes",
55
+ "standards_refs": [
56
+ {
57
+ "authority": "aria-apg",
58
+ "identifier": "checkbox",
59
+ "normative": false,
60
+ "url": "https://www.w3.org/WAI/ARIA/apg/patterns/checkbox/"
61
+ }
62
+ ],
63
+ "title": "Checkbox",
64
+ "version": "1.0.0"
65
+ },
66
+ "schema_version": 3
67
+ }
@@ -1,54 +1,62 @@
1
1
  {
2
2
  "_generated": "GENERATED by @verndale/accessibility-standards; DO NOT EDIT",
3
3
  "_provenance": {
4
- "package": "@verndale/accessibility-standards@2.0.0",
4
+ "package": "@verndale/accessibility-standards@3.0.0",
5
5
  "profile": "conductor",
6
- "profile_version": "2.0.0",
7
- "profile_digest": "4840ac3a4910f8dc3a850df266a141e0e4df94ca3c8935ae4531c56f6be91e65",
8
- "schema_version": 2,
9
- "source_digest": "e4bf4272751c21e417ddd3e6c52308bf804fab097629ba843964532e7f97d9f0"
6
+ "profile_digest": "beadcb5fe8151303b3e3241de4fee0ece3be9ff2f4dbdb3a6f93a363b0a2d491",
7
+ "profile_version": "3.0.0",
8
+ "schema_version": 3,
9
+ "source_digest": "708ac82783bfb5ebcce31e4dada15d8580863f5e37b32d1807adf61e415ed5af"
10
10
  },
11
- "schema_version": 2,
12
11
  "pattern": {
13
- "id": "pattern.combobox",
14
- "version": "1.0.0",
15
- "title": "Combobox",
16
- "kind": "pattern",
17
- "requires": [
18
- "semantics.accessible-name",
19
- "semantics.expanded-state",
20
- "semantics.selected-state",
21
- "semantics.keyboard",
22
- "semantics.live-status"
23
- ],
24
12
  "activation": {
25
13
  "contains": {
26
14
  "fact": "component.accessibility_pattern_ids",
27
15
  "value": "pattern.combobox"
28
16
  }
29
17
  },
30
- "scope": "Input with selectable popup",
31
18
  "behavior": [
32
19
  "Keyboard controls popup, option, and input independently"
33
20
  ],
34
- "product_decisions": [
35
- "editable",
36
- "autocomplete",
37
- "selection_commit"
21
+ "evidence_routes": [
22
+ "unit",
23
+ "axe",
24
+ "e2e",
25
+ "human"
38
26
  ],
39
27
  "functional_spec_bindings": [
40
28
  "behavior",
41
29
  "states",
42
30
  "keyboard"
43
31
  ],
32
+ "id": "pattern.combobox",
44
33
  "implementation_outcomes": [
45
34
  "combobox-state-machine"
46
35
  ],
47
- "evidence_routes": [
48
- "unit",
49
- "axe",
50
- "e2e",
51
- "human"
52
- ]
53
- }
36
+ "kind": "pattern",
37
+ "product_decisions": [
38
+ "editable",
39
+ "autocomplete",
40
+ "selection_commit"
41
+ ],
42
+ "requires": [
43
+ "semantics.accessible-name",
44
+ "semantics.expanded-state",
45
+ "semantics.selected-state",
46
+ "semantics.keyboard",
47
+ "semantics.live-status"
48
+ ],
49
+ "scope": "Input with selectable popup",
50
+ "standards_refs": [
51
+ {
52
+ "authority": "aria-apg",
53
+ "identifier": "combobox",
54
+ "normative": false,
55
+ "url": "https://www.w3.org/WAI/ARIA/apg/patterns/combobox/"
56
+ }
57
+ ],
58
+ "title": "Combobox",
59
+ "version": "1.0.0"
60
+ },
61
+ "schema_version": 3
54
62
  }
@@ -1,48 +1,57 @@
1
1
  {
2
2
  "_generated": "GENERATED by @verndale/accessibility-standards; DO NOT EDIT",
3
3
  "_provenance": {
4
- "package": "@verndale/accessibility-standards@2.0.0",
4
+ "package": "@verndale/accessibility-standards@3.0.0",
5
5
  "profile": "conductor",
6
- "profile_version": "2.0.0",
7
- "profile_digest": "4840ac3a4910f8dc3a850df266a141e0e4df94ca3c8935ae4531c56f6be91e65",
8
- "schema_version": 2,
9
- "source_digest": "e4bf4272751c21e417ddd3e6c52308bf804fab097629ba843964532e7f97d9f0"
6
+ "profile_digest": "beadcb5fe8151303b3e3241de4fee0ece3be9ff2f4dbdb3a6f93a363b0a2d491",
7
+ "profile_version": "3.0.0",
8
+ "schema_version": 3,
9
+ "source_digest": "708ac82783bfb5ebcce31e4dada15d8580863f5e37b32d1807adf61e415ed5af"
10
10
  },
11
- "schema_version": 2,
12
11
  "pattern": {
13
- "id": "pattern.consequential-submission",
14
- "version": "1.0.0",
15
- "title": "Consequential submission",
16
- "kind": "pattern",
17
- "requires": [
18
- "semantics.consequential-action",
19
- "semantics.form-error",
20
- "semantics.keyboard"
21
- ],
22
12
  "activation": {
23
13
  "contains": {
24
14
  "fact": "component.submission_consequence",
25
15
  "value": "consequential"
26
16
  }
27
17
  },
28
- "scope": "Legal, financial, destructive, or irreversible submission",
29
18
  "behavior": [
30
- "Support review, correction, confirmation, or reversal"
19
+ "Provide at least one declared safeguard: make the submission reversible; check user-entered data for errors and let the user correct them; or let the user review, confirm, and correct information before finalizing"
31
20
  ],
32
- "product_decisions": [
33
- "safeguard",
34
- "reversal_window"
21
+ "evidence_routes": [
22
+ "e2e",
23
+ "human"
35
24
  ],
36
25
  "functional_spec_bindings": [
37
26
  "submission",
38
27
  "confirmation"
39
28
  ],
29
+ "id": "pattern.consequential-submission",
40
30
  "implementation_outcomes": [
41
31
  "submission-safeguard"
42
32
  ],
43
- "evidence_routes": [
44
- "e2e",
45
- "human"
46
- ]
47
- }
33
+ "kind": "pattern",
34
+ "product_decisions": [
35
+ "safeguard",
36
+ "reversal_window"
37
+ ],
38
+ "requires": [
39
+ "semantics.consequential-action",
40
+ "semantics.form-error",
41
+ "semantics.keyboard"
42
+ ],
43
+ "scope": "Legal commitments, financial transactions, stored user-controllable data changes, or user test-response submissions",
44
+ "standards_refs": [
45
+ {
46
+ "authority": "wcag-2.2",
47
+ "identifier": "3.3.4",
48
+ "level": "AA",
49
+ "normative": true,
50
+ "url": "https://www.w3.org/TR/WCAG22/#error-prevention-legal-financial-data"
51
+ }
52
+ ],
53
+ "title": "Consequential submission",
54
+ "version": "1.0.0"
55
+ },
56
+ "schema_version": 3
48
57
  }
@@ -1,41 +1,29 @@
1
1
  {
2
2
  "_generated": "GENERATED by @verndale/accessibility-standards; DO NOT EDIT",
3
3
  "_provenance": {
4
- "package": "@verndale/accessibility-standards@2.0.0",
4
+ "package": "@verndale/accessibility-standards@3.0.0",
5
5
  "profile": "conductor",
6
- "profile_version": "2.0.0",
7
- "profile_digest": "4840ac3a4910f8dc3a850df266a141e0e4df94ca3c8935ae4531c56f6be91e65",
8
- "schema_version": 2,
9
- "source_digest": "e4bf4272751c21e417ddd3e6c52308bf804fab097629ba843964532e7f97d9f0"
6
+ "profile_digest": "beadcb5fe8151303b3e3241de4fee0ece3be9ff2f4dbdb3a6f93a363b0a2d491",
7
+ "profile_version": "3.0.0",
8
+ "schema_version": 3,
9
+ "source_digest": "708ac82783bfb5ebcce31e4dada15d8580863f5e37b32d1807adf61e415ed5af"
10
10
  },
11
- "schema_version": 2,
12
11
  "pattern": {
13
- "id": "pattern.dialog",
14
- "version": "1.0.0",
15
- "title": "Dialog",
16
- "kind": "pattern",
17
- "requires": [
18
- "semantics.native-dialog",
19
- "semantics.accessible-name",
20
- "semantics.keyboard.escape",
21
- "semantics.focus.initial",
22
- "semantics.focus.return"
23
- ],
24
12
  "activation": {
25
13
  "contains": {
26
14
  "fact": "component.accessibility_pattern_ids",
27
15
  "value": "pattern.dialog"
28
16
  }
29
17
  },
30
- "scope": "Modal and non-modal dialogs",
31
18
  "behavior": [
32
19
  "Manage initial, contained, and return focus",
33
20
  "Dismiss topmost dialog with Escape"
34
21
  ],
35
- "product_decisions": [
36
- "modal",
37
- "initial_focus",
38
- "dismissal"
22
+ "evidence_routes": [
23
+ "unit",
24
+ "axe",
25
+ "e2e",
26
+ "human"
39
27
  ],
40
28
  "functional_spec_bindings": [
41
29
  "behavior",
@@ -43,15 +31,35 @@
43
31
  "focus",
44
32
  "keyboard"
45
33
  ],
34
+ "id": "pattern.dialog",
46
35
  "implementation_outcomes": [
47
36
  "dialog-semantics",
48
37
  "dialog-focus-lifecycle"
49
38
  ],
50
- "evidence_routes": [
51
- "unit",
52
- "axe",
53
- "e2e",
54
- "human"
55
- ]
56
- }
39
+ "kind": "pattern",
40
+ "product_decisions": [
41
+ "modal",
42
+ "initial_focus",
43
+ "dismissal"
44
+ ],
45
+ "requires": [
46
+ "semantics.native-dialog",
47
+ "semantics.accessible-name",
48
+ "semantics.keyboard.escape",
49
+ "semantics.focus.initial",
50
+ "semantics.focus.return"
51
+ ],
52
+ "scope": "Modal and non-modal dialogs",
53
+ "standards_refs": [
54
+ {
55
+ "authority": "aria-apg",
56
+ "identifier": "dialog-modal",
57
+ "normative": false,
58
+ "url": "https://www.w3.org/WAI/ARIA/apg/patterns/dialog-modal/"
59
+ }
60
+ ],
61
+ "title": "Dialog",
62
+ "version": "1.0.0"
63
+ },
64
+ "schema_version": 3
57
65
  }