@verndale/accessibility-standards 1.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 (171) hide show
  1. package/OPERATING.md +3 -1
  2. package/README.md +4 -0
  3. package/bin/accessibility-standards.mjs +1 -1
  4. package/dist/manifest.json +159 -101
  5. package/dist/profiles/ai-orchestration/coverage-manifest.json +724 -68
  6. package/dist/profiles/ai-orchestration/implementation/accessibility.md +825 -10
  7. package/dist/profiles/ai-orchestration/pattern-contracts.json +1015 -343
  8. package/dist/profiles/ai-orchestration/patterns/accordion.md +14 -0
  9. package/dist/profiles/ai-orchestration/patterns/alert.md +14 -0
  10. package/dist/profiles/ai-orchestration/patterns/carousel.md +14 -0
  11. package/dist/profiles/ai-orchestration/patterns/checkbox.md +27 -0
  12. package/dist/profiles/ai-orchestration/patterns/combobox.md +14 -0
  13. package/dist/profiles/ai-orchestration/patterns/consequential-submission.md +15 -1
  14. package/dist/profiles/ai-orchestration/patterns/dialog.md +14 -0
  15. package/dist/profiles/ai-orchestration/patterns/disclosure.md +14 -0
  16. package/dist/profiles/ai-orchestration/patterns/dynamic-status.md +14 -0
  17. package/dist/profiles/ai-orchestration/patterns/field.md +15 -0
  18. package/dist/profiles/ai-orchestration/patterns/image.md +14 -0
  19. package/dist/profiles/ai-orchestration/patterns/listbox.md +14 -0
  20. package/dist/profiles/ai-orchestration/patterns/media-player.md +17 -0
  21. package/dist/profiles/ai-orchestration/patterns/menu-button.md +14 -0
  22. package/dist/profiles/ai-orchestration/patterns/menu.md +30 -0
  23. package/dist/profiles/ai-orchestration/patterns/pagination.md +14 -0
  24. package/dist/profiles/ai-orchestration/patterns/popover.md +15 -0
  25. package/dist/profiles/ai-orchestration/patterns/progress.md +15 -0
  26. package/dist/profiles/ai-orchestration/patterns/radio-group.md +27 -0
  27. package/dist/profiles/ai-orchestration/patterns/slider.md +31 -0
  28. package/dist/profiles/ai-orchestration/patterns/spinbutton.md +28 -0
  29. package/dist/profiles/ai-orchestration/patterns/tabs.md +14 -0
  30. package/dist/profiles/ai-orchestration/patterns/tooltip.md +14 -0
  31. package/dist/profiles/ai-orchestration/patterns/tree-view.md +31 -0
  32. package/dist/profiles/ai-orchestration/patterns/validation.md +15 -0
  33. package/dist/profiles/ai-orchestration/review/accessibility.md +21 -6
  34. package/dist/profiles/ai-orchestration/semantics/accessible-authentication.md +13 -0
  35. package/dist/profiles/ai-orchestration/semantics/accessible-name.md +8 -1
  36. package/dist/profiles/ai-orchestration/semantics/alert.md +7 -0
  37. package/dist/profiles/ai-orchestration/semantics/consequential-action.md +6 -1
  38. package/dist/profiles/ai-orchestration/semantics/consistent-help.md +13 -0
  39. package/dist/profiles/ai-orchestration/semantics/data-table.md +7 -1
  40. package/dist/profiles/ai-orchestration/semantics/dragging-alternative.md +13 -0
  41. package/dist/profiles/ai-orchestration/semantics/expanded-state.md +6 -0
  42. package/dist/profiles/ai-orchestration/semantics/focus.initial.md +4 -0
  43. package/dist/profiles/ai-orchestration/semantics/focus.return.md +4 -0
  44. package/dist/profiles/ai-orchestration/semantics/focus.visible.md +8 -1
  45. package/dist/profiles/ai-orchestration/semantics/form-error.md +8 -1
  46. package/dist/profiles/ai-orchestration/semantics/form-label.md +7 -0
  47. package/dist/profiles/ai-orchestration/semantics/form-required.md +7 -0
  48. package/dist/profiles/ai-orchestration/semantics/headings.md +7 -0
  49. package/dist/profiles/ai-orchestration/semantics/keyboard.escape.md +4 -0
  50. package/dist/profiles/ai-orchestration/semantics/keyboard.md +7 -0
  51. package/dist/profiles/ai-orchestration/semantics/landmarks.md +6 -0
  52. package/dist/profiles/ai-orchestration/semantics/live-status.md +7 -1
  53. package/dist/profiles/ai-orchestration/semantics/media-alternatives.md +11 -0
  54. package/dist/profiles/ai-orchestration/semantics/motion-control.md +8 -1
  55. package/dist/profiles/ai-orchestration/semantics/name-role-value.md +6 -1
  56. package/dist/profiles/ai-orchestration/semantics/native-dialog.md +7 -0
  57. package/dist/profiles/ai-orchestration/semantics/native-elements.md +5 -0
  58. package/dist/profiles/ai-orchestration/semantics/non-text-alternative.md +5 -0
  59. package/dist/profiles/ai-orchestration/semantics/redundant-entry.md +13 -0
  60. package/dist/profiles/ai-orchestration/semantics/roles-states-properties.md +6 -0
  61. package/dist/profiles/ai-orchestration/semantics/selected-state.md +6 -0
  62. package/dist/profiles/ai-orchestration/semantics/target-size.md +6 -1
  63. package/dist/profiles/ai-orchestration/semantics.json +843 -100
  64. package/dist/profiles/ai-orchestration/testing/accessibility.md +33 -3
  65. package/dist/profiles/ai-orchestration/ui-design-brain-bindings.json +836 -0
  66. package/dist/profiles/conductor/a11y-semantics.md +270 -10
  67. package/dist/profiles/conductor/accessibility-quality.md +557 -1
  68. package/dist/profiles/conductor/applicability-matrix.json +270 -230
  69. package/dist/profiles/conductor/coverage-manifest.json +724 -68
  70. package/dist/profiles/conductor/pattern-contracts.json +1015 -343
  71. package/dist/profiles/conductor/patterns/accordion.json +42 -24
  72. package/dist/profiles/conductor/patterns/alert.json +36 -18
  73. package/dist/profiles/conductor/patterns/carousel.json +43 -25
  74. package/dist/profiles/conductor/patterns/checkbox.json +67 -0
  75. package/dist/profiles/conductor/patterns/combobox.json +44 -26
  76. package/dist/profiles/conductor/patterns/consequential-submission.json +41 -22
  77. package/dist/profiles/conductor/patterns/dialog.json +44 -26
  78. package/dist/profiles/conductor/patterns/disclosure.json +40 -22
  79. package/dist/profiles/conductor/patterns/dynamic-status.json +38 -19
  80. package/dist/profiles/conductor/patterns/field.json +58 -22
  81. package/dist/profiles/conductor/patterns/image.json +48 -19
  82. package/dist/profiles/conductor/patterns/listbox.json +42 -24
  83. package/dist/profiles/conductor/patterns/media-player.json +76 -26
  84. package/dist/profiles/conductor/patterns/menu-button.json +41 -23
  85. package/dist/profiles/conductor/patterns/menu.json +78 -0
  86. package/dist/profiles/conductor/patterns/pagination.json +41 -22
  87. package/dist/profiles/conductor/patterns/popover.json +49 -23
  88. package/dist/profiles/conductor/patterns/progress.json +45 -20
  89. package/dist/profiles/conductor/patterns/radio-group.json +69 -0
  90. package/dist/profiles/conductor/patterns/slider.json +84 -0
  91. package/dist/profiles/conductor/patterns/spinbutton.json +74 -0
  92. package/dist/profiles/conductor/patterns/tabs.json +41 -23
  93. package/dist/profiles/conductor/patterns/tooltip.json +38 -20
  94. package/dist/profiles/conductor/patterns/tree-view.json +77 -0
  95. package/dist/profiles/conductor/patterns/validation.json +59 -23
  96. package/dist/profiles/conductor/semantics.json +843 -100
  97. package/dist/profiles/conductor/ui-design-brain-bindings.json +836 -0
  98. package/dist/projection-manifest.json +123 -82
  99. package/dist/requirements-to-implementation.md +8 -0
  100. package/lib/build-manifest.mjs +12 -6
  101. package/lib/build.mjs +21 -7
  102. package/lib/compile-applicability.mjs +131 -10
  103. package/lib/coverage.mjs +20 -0
  104. package/lib/digest.mjs +8 -0
  105. package/lib/index.mjs +1 -1
  106. package/lib/load.mjs +44 -1
  107. package/lib/provenance.mjs +51 -0
  108. package/lib/render.mjs +115 -31
  109. package/lib/sync.mjs +242 -28
  110. package/lib/validate.mjs +557 -24
  111. package/package.json +27 -10
  112. package/profiles/ai-orchestration/profile.json +1 -1
  113. package/profiles/ai-orchestration/templates/patterns/README.md +1 -1
  114. package/profiles/ai-orchestration/templates/review/README.md +1 -1
  115. package/profiles/ai-orchestration/templates/semantics/README.md +1 -1
  116. package/profiles/ai-orchestration/templates/testing/README.md +1 -1
  117. package/profiles/conductor/profile.json +1 -1
  118. package/profiles/conductor/templates/evidence/README.md +1 -1
  119. package/profiles/conductor/templates/patterns/README.md +1 -1
  120. package/profiles/conductor/templates/semantics/README.md +1 -1
  121. package/schemas/consumer-config.schema.json +1 -1
  122. package/schemas/contract.schema.json +1 -0
  123. package/schemas/manifest.schema.json +1 -1
  124. package/schemas/pattern.schema.json +98 -1
  125. package/schemas/profile.schema.json +1 -1
  126. package/schemas/projection-manifest.schema.json +84 -1
  127. package/schemas/semantic.schema.json +26 -1
  128. package/schemas/standards-reference.schema.json +105 -0
  129. package/schemas/ui-design-brain-bindings.schema.json +86 -0
  130. package/schemas/wcag-coverage.schema.json +93 -0
  131. package/src/applicability/facts.yml +27 -1
  132. package/src/applicability/matrix.yml +8 -9
  133. package/src/applicability/ui-design-brain-bindings.yml +196 -0
  134. package/src/contract.yml +1 -0
  135. package/src/coverage/wcag-2.2.yml +68 -0
  136. package/src/patterns/disclosure/accordion.yml +1 -1
  137. package/src/patterns/disclosure/disclosure.yml +1 -1
  138. package/src/patterns/feedback/alert.yml +1 -1
  139. package/src/patterns/feedback/dynamic-status.yml +1 -1
  140. package/src/patterns/feedback/progress.yml +1 -1
  141. package/src/patterns/forms/consequential-submission.yml +1 -1
  142. package/src/patterns/forms/field.yml +1 -1
  143. package/src/patterns/forms/spinbutton.yml +1 -0
  144. package/src/patterns/forms/validation.yml +1 -1
  145. package/src/patterns/media/carousel.yml +1 -1
  146. package/src/patterns/media/image.yml +1 -1
  147. package/src/patterns/media/media-player.yml +1 -1
  148. package/src/patterns/navigation/menu-button.yml +1 -1
  149. package/src/patterns/navigation/menu.yml +1 -0
  150. package/src/patterns/navigation/pagination.yml +1 -1
  151. package/src/patterns/navigation/tabs.yml +1 -1
  152. package/src/patterns/navigation/tree-view.yml +1 -0
  153. package/src/patterns/overlays/dialog.yml +1 -1
  154. package/src/patterns/overlays/popover.yml +1 -1
  155. package/src/patterns/overlays/tooltip.yml +1 -1
  156. package/src/patterns/selection/checkbox.yml +1 -0
  157. package/src/patterns/selection/combobox.yml +1 -1
  158. package/src/patterns/selection/listbox.yml +1 -1
  159. package/src/patterns/selection/radio-group.yml +1 -0
  160. package/src/patterns/selection/slider.yml +1 -0
  161. package/src/semantics/accessible-names.yml +1 -1
  162. package/src/semantics/forms.yml +1 -1
  163. package/src/semantics/headings-landmarks.yml +1 -1
  164. package/src/semantics/keyboard-focus.yml +1 -1
  165. package/src/semantics/live-regions.yml +1 -1
  166. package/src/semantics/media.yml +1 -1
  167. package/src/semantics/native-elements.yml +1 -1
  168. package/src/semantics/roles-states-properties.yml +1 -1
  169. package/src/semantics/tables.yml +1 -1
  170. package/src/semantics/wcag-2.2.yml +1 -0
  171. package/src/sources.yml +1 -1
@@ -1,59 +1,84 @@
1
1
  {
2
2
  "_generated": "GENERATED by @verndale/accessibility-standards; DO NOT EDIT",
3
- "schema_version": 1,
4
- "trigger_states": [
5
- "unobserved",
6
- "not_applicable",
7
- "candidate",
8
- "applicable"
9
- ],
10
- "resolution_states": [
11
- "skipped",
12
- "needs_confirmation",
13
- "needs_input",
14
- "resolved",
15
- "deferred",
16
- "conflict"
17
- ],
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
+ "evidence": {
12
+ "proof_kinds": {
13
+ "axe": {
14
+ "purpose": "automated rule evidence",
15
+ "required_capability": "axe"
16
+ },
17
+ "e2e": {
18
+ "purpose": "keyboard, focus, and integrated behavior",
19
+ "required_capability": "e2e"
20
+ },
21
+ "human": {
22
+ "purpose": "judgment, assistive technology, content, and visual evidence",
23
+ "required_capability": "human"
24
+ },
25
+ "unit": {
26
+ "purpose": "semantic state and deterministic resolver behavior",
27
+ "required_capability": "unit"
28
+ }
29
+ },
30
+ "rule": "Tool availability changes the evidence route, never requirement applicability. A missing required capability is a blocker.",
31
+ "version": 1
32
+ },
18
33
  "facts": {
34
+ "artifact.has_repeated_help_across_page_set": {
35
+ "type": "boolean"
36
+ },
19
37
  "artifact.page_context": {
20
38
  "type": "boolean"
21
39
  },
22
- "content.has_non_text": {
40
+ "component.accessibility_pattern_ids": {
41
+ "derived": true,
42
+ "items": "string",
43
+ "type": "array"
44
+ },
45
+ "component.command_menu_trigger": {
23
46
  "type": "boolean"
24
47
  },
25
- "content.has_media": {
48
+ "component.has_data_table": {
26
49
  "type": "boolean"
27
50
  },
28
- "component.has_form_fields": {
51
+ "component.has_dynamic_status": {
29
52
  "type": "boolean"
30
53
  },
31
- "component.submission_consequence": {
32
- "type": "array",
33
- "items": "string"
54
+ "component.has_form_fields": {
55
+ "type": "boolean"
34
56
  },
35
- "component.has_dynamic_status": {
57
+ "component.has_validation": {
36
58
  "type": "boolean"
37
59
  },
38
- "component.pattern": {
60
+ "component.message_urgency": {
39
61
  "type": "string"
40
62
  },
41
- "interaction.has_motion_or_timing": {
42
- "type": "boolean"
63
+ "component.overlay_model": {
64
+ "type": "string"
43
65
  },
44
- "interaction.has_complex_pointer": {
45
- "type": "boolean"
66
+ "component.selection_model": {
67
+ "type": "string"
46
68
  },
47
- "interaction.has_character_shortcuts": {
48
- "type": "boolean"
69
+ "component.submission_consequence": {
70
+ "items": "string",
71
+ "type": "array"
49
72
  },
50
- "content.uses_orientation_or_sensory_cues": {
51
- "type": "boolean"
73
+ "component.ui_pattern_ids": {
74
+ "items": "string",
75
+ "source": "ui-design-brain",
76
+ "type": "array"
52
77
  },
53
- "interaction.has_pointer_targets": {
78
+ "content.has_media": {
54
79
  "type": "boolean"
55
80
  },
56
- "interaction.can_obscure_focus": {
81
+ "content.has_non_text": {
57
82
  "type": "boolean"
58
83
  },
59
84
  "flow.has_authentication": {
@@ -62,367 +87,382 @@
62
87
  "flow.repeats_entry": {
63
88
  "type": "boolean"
64
89
  },
65
- "artifact.has_help": {
90
+ "interaction.can_obscure_focus": {
91
+ "type": "boolean"
92
+ },
93
+ "interaction.has_complex_pointer": {
66
94
  "type": "boolean"
67
95
  },
68
- "content.has_locale_or_bidi": {
96
+ "interaction.has_dragging": {
69
97
  "type": "boolean"
70
98
  },
71
- "component.has_data_table_or_grid": {
99
+ "interaction.has_motion_or_timing": {
100
+ "type": "boolean"
101
+ },
102
+ "interaction.has_pointer_targets": {
72
103
  "type": "boolean"
73
104
  }
74
105
  },
106
+ "resolution_states": [
107
+ "skipped",
108
+ "needs_confirmation",
109
+ "needs_input",
110
+ "resolved",
111
+ "deferred",
112
+ "conflict"
113
+ ],
75
114
  "rows": [
76
115
  {
77
- "id": "applicability.page-context",
78
- "when": {
79
- "equals": {
80
- "fact": "artifact.page_context",
81
- "value": true
82
- }
83
- },
84
- "outcomes": [
85
- "semantics.headings",
86
- "semantics.landmarks"
87
- ],
88
116
  "evidence": [
89
117
  "axe",
90
118
  "human"
91
119
  ],
120
+ "id": "applicability.page-context",
92
121
  "order": 0,
122
+ "outcomes": [
123
+ "semantics.headings",
124
+ "semantics.landmarks"
125
+ ],
126
+ "resolution_state": "needs_input",
93
127
  "trigger_state": "unobserved",
94
- "resolution_state": "needs_input"
95
- },
96
- {
97
- "id": "applicability.non-text-content",
98
128
  "when": {
99
129
  "equals": {
100
- "fact": "content.has_non_text",
130
+ "fact": "artifact.page_context",
101
131
  "value": true
102
132
  }
103
- },
104
- "outcomes": [
105
- "pattern.image"
106
- ],
133
+ }
134
+ },
135
+ {
107
136
  "evidence": [
108
137
  "axe",
109
138
  "human"
110
139
  ],
140
+ "id": "applicability.non-text-content",
111
141
  "order": 1,
142
+ "outcomes": [
143
+ "pattern.image"
144
+ ],
145
+ "resolution_state": "needs_input",
112
146
  "trigger_state": "unobserved",
113
- "resolution_state": "needs_input"
114
- },
115
- {
116
- "id": "applicability.media",
117
147
  "when": {
118
148
  "equals": {
119
- "fact": "content.has_media",
149
+ "fact": "content.has_non_text",
120
150
  "value": true
121
151
  }
122
- },
123
- "outcomes": [
124
- "pattern.media-player"
125
- ],
152
+ }
153
+ },
154
+ {
126
155
  "evidence": [
127
156
  "e2e",
128
157
  "human"
129
158
  ],
159
+ "id": "applicability.media",
130
160
  "order": 2,
161
+ "outcomes": [
162
+ "pattern.media-player"
163
+ ],
164
+ "resolution_state": "needs_input",
131
165
  "trigger_state": "unobserved",
132
- "resolution_state": "needs_input"
133
- },
134
- {
135
- "id": "applicability.forms",
136
166
  "when": {
137
167
  "equals": {
138
- "fact": "component.has_form_fields",
168
+ "fact": "content.has_media",
139
169
  "value": true
140
170
  }
141
- },
142
- "outcomes": [
143
- "pattern.field",
144
- "pattern.validation"
145
- ],
171
+ }
172
+ },
173
+ {
146
174
  "evidence": [
147
175
  "unit",
148
- "axe",
149
- "e2e"
176
+ "axe"
150
177
  ],
178
+ "id": "applicability.forms",
151
179
  "order": 3,
180
+ "outcomes": [
181
+ "pattern.field"
182
+ ],
183
+ "resolution_state": "needs_input",
152
184
  "trigger_state": "unobserved",
153
- "resolution_state": "needs_input"
154
- },
155
- {
156
- "id": "applicability.consequential-submission",
157
185
  "when": {
158
- "contains": {
159
- "fact": "component.submission_consequence",
160
- "value": "consequential"
186
+ "equals": {
187
+ "fact": "component.has_form_fields",
188
+ "value": true
161
189
  }
162
- },
163
- "outcomes": [
164
- "pattern.consequential-submission"
165
- ],
190
+ }
191
+ },
192
+ {
166
193
  "evidence": [
194
+ "unit",
195
+ "axe",
167
196
  "e2e",
168
197
  "human"
169
198
  ],
199
+ "id": "applicability.validation",
170
200
  "order": 4,
201
+ "outcomes": [
202
+ "pattern.validation"
203
+ ],
204
+ "resolution_state": "needs_input",
171
205
  "trigger_state": "unobserved",
172
- "resolution_state": "needs_input"
173
- },
174
- {
175
- "id": "applicability.dynamic-status",
176
206
  "when": {
177
207
  "equals": {
178
- "fact": "component.has_dynamic_status",
208
+ "fact": "component.has_validation",
179
209
  "value": true
180
210
  }
181
- },
182
- "outcomes": [
183
- "pattern.dynamic-status"
184
- ],
211
+ }
212
+ },
213
+ {
185
214
  "evidence": [
186
- "unit",
187
215
  "e2e",
188
216
  "human"
189
217
  ],
218
+ "id": "applicability.consequential-submission",
190
219
  "order": 5,
220
+ "outcomes": [
221
+ "pattern.consequential-submission"
222
+ ],
223
+ "resolution_state": "needs_input",
191
224
  "trigger_state": "unobserved",
192
- "resolution_state": "needs_input"
193
- },
194
- {
195
- "id": "applicability.overlays",
196
225
  "when": {
197
226
  "contains": {
198
- "fact": "component.pattern",
199
- "value": [
200
- "dialog",
201
- "popover",
202
- "tooltip"
203
- ]
227
+ "fact": "component.submission_consequence",
228
+ "value": "consequential"
204
229
  }
205
- },
206
- "outcomes": [
207
- "semantics.keyboard.escape",
208
- "semantics.focus.return"
209
- ],
230
+ }
231
+ },
232
+ {
210
233
  "evidence": [
211
- "e2e"
234
+ "unit",
235
+ "e2e",
236
+ "human"
212
237
  ],
238
+ "id": "applicability.dynamic-status",
213
239
  "order": 6,
240
+ "outcomes": [
241
+ "pattern.dynamic-status"
242
+ ],
243
+ "resolution_state": "needs_input",
214
244
  "trigger_state": "unobserved",
215
- "resolution_state": "needs_input"
216
- },
217
- {
218
- "id": "applicability.motion-timing",
219
245
  "when": {
220
246
  "equals": {
221
- "fact": "interaction.has_motion_or_timing",
247
+ "fact": "component.has_dynamic_status",
222
248
  "value": true
223
249
  }
224
- },
225
- "outcomes": [
226
- "semantics.motion-control"
227
- ],
250
+ }
251
+ },
252
+ {
228
253
  "evidence": [
229
- "e2e",
230
- "human"
254
+ "e2e"
231
255
  ],
256
+ "id": "applicability.overlays",
232
257
  "order": 7,
258
+ "outcomes": [
259
+ "semantics.keyboard.escape",
260
+ "semantics.focus.return"
261
+ ],
262
+ "resolution_state": "needs_input",
233
263
  "trigger_state": "unobserved",
234
- "resolution_state": "needs_input"
264
+ "when": {
265
+ "any": [
266
+ {
267
+ "contains": {
268
+ "fact": "component.ui_pattern_ids",
269
+ "value": "modal"
270
+ }
271
+ },
272
+ {
273
+ "contains": {
274
+ "fact": "component.ui_pattern_ids",
275
+ "value": "popover"
276
+ }
277
+ },
278
+ {
279
+ "contains": {
280
+ "fact": "component.ui_pattern_ids",
281
+ "value": "tooltip"
282
+ }
283
+ }
284
+ ]
285
+ }
235
286
  },
236
287
  {
237
- "id": "applicability.complex-pointer",
238
- "when": {
239
- "equals": {
240
- "fact": "interaction.has_complex_pointer",
241
- "value": true
242
- }
243
- },
244
- "outcomes": [
245
- "semantics.keyboard"
246
- ],
247
288
  "evidence": [
248
289
  "e2e",
249
290
  "human"
250
291
  ],
292
+ "id": "applicability.motion-timing",
251
293
  "order": 8,
294
+ "outcomes": [
295
+ "semantics.motion-control"
296
+ ],
297
+ "resolution_state": "needs_input",
252
298
  "trigger_state": "unobserved",
253
- "resolution_state": "needs_input"
254
- },
255
- {
256
- "id": "applicability.character-shortcuts",
257
299
  "when": {
258
300
  "equals": {
259
- "fact": "interaction.has_character_shortcuts",
301
+ "fact": "interaction.has_motion_or_timing",
260
302
  "value": true
261
303
  }
262
- },
263
- "outcomes": [
264
- "semantics.keyboard"
265
- ],
304
+ }
305
+ },
306
+ {
266
307
  "evidence": [
267
- "unit",
268
- "e2e"
308
+ "e2e",
309
+ "human"
269
310
  ],
311
+ "id": "applicability.complex-pointer",
270
312
  "order": 9,
313
+ "outcomes": [
314
+ "semantics.keyboard"
315
+ ],
316
+ "resolution_state": "needs_input",
271
317
  "trigger_state": "unobserved",
272
- "resolution_state": "needs_input"
273
- },
274
- {
275
- "id": "applicability.orientation-sensory",
276
318
  "when": {
277
319
  "equals": {
278
- "fact": "content.uses_orientation_or_sensory_cues",
320
+ "fact": "interaction.has_complex_pointer",
279
321
  "value": true
280
322
  }
281
- },
282
- "outcomes": [
283
- "semantics.name-role-value"
284
- ],
323
+ }
324
+ },
325
+ {
285
326
  "evidence": [
327
+ "e2e",
286
328
  "human"
287
329
  ],
330
+ "id": "applicability.dragging-alternative",
288
331
  "order": 10,
332
+ "outcomes": [
333
+ "semantics.dragging-alternative"
334
+ ],
335
+ "resolution_state": "needs_input",
289
336
  "trigger_state": "unobserved",
290
- "resolution_state": "needs_input"
291
- },
292
- {
293
- "id": "applicability.target-size",
294
337
  "when": {
295
338
  "equals": {
296
- "fact": "interaction.has_pointer_targets",
339
+ "fact": "interaction.has_dragging",
297
340
  "value": true
298
341
  }
299
- },
300
- "outcomes": [
301
- "semantics.target-size"
302
- ],
342
+ }
343
+ },
344
+ {
303
345
  "evidence": [
304
346
  "e2e",
305
347
  "human"
306
348
  ],
349
+ "id": "applicability.target-size",
307
350
  "order": 11,
351
+ "outcomes": [
352
+ "semantics.target-size"
353
+ ],
354
+ "resolution_state": "needs_input",
308
355
  "trigger_state": "unobserved",
309
- "resolution_state": "needs_input"
310
- },
311
- {
312
- "id": "applicability.focus-obstruction",
313
356
  "when": {
314
357
  "equals": {
315
- "fact": "interaction.can_obscure_focus",
358
+ "fact": "interaction.has_pointer_targets",
316
359
  "value": true
317
360
  }
318
- },
319
- "outcomes": [
320
- "semantics.focus.visible"
321
- ],
361
+ }
362
+ },
363
+ {
322
364
  "evidence": [
323
365
  "e2e",
324
366
  "human"
325
367
  ],
368
+ "id": "applicability.focus-obstruction",
326
369
  "order": 12,
370
+ "outcomes": [
371
+ "semantics.focus.visible"
372
+ ],
373
+ "resolution_state": "needs_input",
327
374
  "trigger_state": "unobserved",
328
- "resolution_state": "needs_input"
329
- },
330
- {
331
- "id": "applicability.authentication-captcha",
332
375
  "when": {
333
376
  "equals": {
334
- "fact": "flow.has_authentication",
377
+ "fact": "interaction.can_obscure_focus",
335
378
  "value": true
336
379
  }
337
- },
338
- "outcomes": [
339
- "semantics.form-label",
340
- "semantics.form-error"
341
- ],
380
+ }
381
+ },
382
+ {
342
383
  "evidence": [
343
- "axe",
344
384
  "e2e",
345
385
  "human"
346
386
  ],
387
+ "id": "applicability.accessible-authentication",
347
388
  "order": 13,
389
+ "outcomes": [
390
+ "semantics.accessible-authentication"
391
+ ],
392
+ "resolution_state": "needs_input",
348
393
  "trigger_state": "unobserved",
349
- "resolution_state": "needs_input"
350
- },
351
- {
352
- "id": "applicability.redundant-entry",
353
394
  "when": {
354
395
  "equals": {
355
- "fact": "flow.repeats_entry",
396
+ "fact": "flow.has_authentication",
356
397
  "value": true
357
398
  }
358
- },
359
- "outcomes": [
360
- "semantics.form-label"
361
- ],
399
+ }
400
+ },
401
+ {
362
402
  "evidence": [
363
403
  "e2e",
364
404
  "human"
365
405
  ],
406
+ "id": "applicability.redundant-entry",
366
407
  "order": 14,
408
+ "outcomes": [
409
+ "semantics.form-label",
410
+ "semantics.redundant-entry"
411
+ ],
412
+ "resolution_state": "needs_input",
367
413
  "trigger_state": "unobserved",
368
- "resolution_state": "needs_input"
369
- },
370
- {
371
- "id": "applicability.consistent-help",
372
414
  "when": {
373
415
  "equals": {
374
- "fact": "artifact.has_help",
416
+ "fact": "flow.repeats_entry",
375
417
  "value": true
376
418
  }
377
- },
378
- "outcomes": [
379
- "semantics.landmarks"
380
- ],
419
+ }
420
+ },
421
+ {
381
422
  "evidence": [
423
+ "e2e",
382
424
  "human"
383
425
  ],
426
+ "id": "applicability.consistent-help",
384
427
  "order": 15,
428
+ "outcomes": [
429
+ "semantics.consistent-help"
430
+ ],
431
+ "resolution_state": "needs_input",
385
432
  "trigger_state": "unobserved",
386
- "resolution_state": "needs_input"
387
- },
388
- {
389
- "id": "applicability.locale-bidi",
390
433
  "when": {
391
434
  "equals": {
392
- "fact": "content.has_locale_or_bidi",
435
+ "fact": "artifact.has_repeated_help_across_page_set",
393
436
  "value": true
394
437
  }
395
- },
396
- "outcomes": [
397
- "semantics.native-elements"
398
- ],
438
+ }
439
+ },
440
+ {
399
441
  "evidence": [
400
- "unit",
442
+ "axe",
443
+ "e2e",
401
444
  "human"
402
445
  ],
446
+ "id": "applicability.data-table",
403
447
  "order": 16,
448
+ "outcomes": [
449
+ "semantics.data-table"
450
+ ],
451
+ "resolution_state": "needs_input",
404
452
  "trigger_state": "unobserved",
405
- "resolution_state": "needs_input"
406
- },
407
- {
408
- "id": "applicability.data-table-grid",
409
453
  "when": {
410
454
  "equals": {
411
- "fact": "component.has_data_table_or_grid",
455
+ "fact": "component.has_data_table",
412
456
  "value": true
413
457
  }
414
- },
415
- "outcomes": [
416
- "semantics.data-table"
417
- ],
418
- "evidence": [
419
- "axe",
420
- "e2e",
421
- "human"
422
- ],
423
- "order": 17,
424
- "trigger_state": "unobserved",
425
- "resolution_state": "needs_input"
458
+ }
426
459
  }
460
+ ],
461
+ "schema_version": 3,
462
+ "trigger_states": [
463
+ "unobserved",
464
+ "not_applicable",
465
+ "candidate",
466
+ "applicable"
427
467
  ]
428
468
  }