@verndale/accessibility-standards 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (148) hide show
  1. package/OPERATING.md +5 -0
  2. package/README.md +22 -0
  3. package/bin/accessibility-standards.mjs +32 -0
  4. package/dist/manifest.json +202 -0
  5. package/dist/profiles/ai-orchestration/coverage-manifest.json +202 -0
  6. package/dist/profiles/ai-orchestration/implementation/accessibility.md +329 -0
  7. package/dist/profiles/ai-orchestration/pattern-contracts.json +697 -0
  8. package/dist/profiles/ai-orchestration/patterns/accordion.md +12 -0
  9. package/dist/profiles/ai-orchestration/patterns/alert.md +11 -0
  10. package/dist/profiles/ai-orchestration/patterns/carousel.md +12 -0
  11. package/dist/profiles/ai-orchestration/patterns/combobox.md +11 -0
  12. package/dist/profiles/ai-orchestration/patterns/consequential-submission.md +11 -0
  13. package/dist/profiles/ai-orchestration/patterns/dialog.md +12 -0
  14. package/dist/profiles/ai-orchestration/patterns/disclosure.md +11 -0
  15. package/dist/profiles/ai-orchestration/patterns/dynamic-status.md +11 -0
  16. package/dist/profiles/ai-orchestration/patterns/field.md +11 -0
  17. package/dist/profiles/ai-orchestration/patterns/image.md +11 -0
  18. package/dist/profiles/ai-orchestration/patterns/listbox.md +12 -0
  19. package/dist/profiles/ai-orchestration/patterns/media-player.md +11 -0
  20. package/dist/profiles/ai-orchestration/patterns/menu-button.md +11 -0
  21. package/dist/profiles/ai-orchestration/patterns/pagination.md +11 -0
  22. package/dist/profiles/ai-orchestration/patterns/popover.md +11 -0
  23. package/dist/profiles/ai-orchestration/patterns/progress.md +11 -0
  24. package/dist/profiles/ai-orchestration/patterns/tabs.md +12 -0
  25. package/dist/profiles/ai-orchestration/patterns/tooltip.md +12 -0
  26. package/dist/profiles/ai-orchestration/patterns/validation.md +11 -0
  27. package/dist/profiles/ai-orchestration/review/accessibility.md +67 -0
  28. package/dist/profiles/ai-orchestration/semantics/accessible-name.md +8 -0
  29. package/dist/profiles/ai-orchestration/semantics/alert.md +8 -0
  30. package/dist/profiles/ai-orchestration/semantics/consequential-action.md +8 -0
  31. package/dist/profiles/ai-orchestration/semantics/data-table.md +8 -0
  32. package/dist/profiles/ai-orchestration/semantics/expanded-state.md +8 -0
  33. package/dist/profiles/ai-orchestration/semantics/focus.initial.md +8 -0
  34. package/dist/profiles/ai-orchestration/semantics/focus.return.md +8 -0
  35. package/dist/profiles/ai-orchestration/semantics/focus.visible.md +8 -0
  36. package/dist/profiles/ai-orchestration/semantics/form-error.md +8 -0
  37. package/dist/profiles/ai-orchestration/semantics/form-label.md +8 -0
  38. package/dist/profiles/ai-orchestration/semantics/form-required.md +8 -0
  39. package/dist/profiles/ai-orchestration/semantics/headings.md +8 -0
  40. package/dist/profiles/ai-orchestration/semantics/keyboard.escape.md +8 -0
  41. package/dist/profiles/ai-orchestration/semantics/keyboard.md +8 -0
  42. package/dist/profiles/ai-orchestration/semantics/landmarks.md +8 -0
  43. package/dist/profiles/ai-orchestration/semantics/live-status.md +8 -0
  44. package/dist/profiles/ai-orchestration/semantics/media-alternatives.md +8 -0
  45. package/dist/profiles/ai-orchestration/semantics/motion-control.md +8 -0
  46. package/dist/profiles/ai-orchestration/semantics/name-role-value.md +8 -0
  47. package/dist/profiles/ai-orchestration/semantics/native-dialog.md +8 -0
  48. package/dist/profiles/ai-orchestration/semantics/native-elements.md +8 -0
  49. package/dist/profiles/ai-orchestration/semantics/non-text-alternative.md +8 -0
  50. package/dist/profiles/ai-orchestration/semantics/roles-states-properties.md +8 -0
  51. package/dist/profiles/ai-orchestration/semantics/selected-state.md +8 -0
  52. package/dist/profiles/ai-orchestration/semantics/target-size.md +8 -0
  53. package/dist/profiles/ai-orchestration/semantics.json +289 -0
  54. package/dist/profiles/ai-orchestration/testing/accessibility.md +138 -0
  55. package/dist/profiles/conductor/a11y-semantics.md +152 -0
  56. package/dist/profiles/conductor/accessibility-quality.md +179 -0
  57. package/dist/profiles/conductor/applicability-matrix.json +428 -0
  58. package/dist/profiles/conductor/coverage-manifest.json +202 -0
  59. package/dist/profiles/conductor/pattern-contracts.json +697 -0
  60. package/dist/profiles/conductor/patterns/accordion.json +44 -0
  61. package/dist/profiles/conductor/patterns/alert.json +34 -0
  62. package/dist/profiles/conductor/patterns/carousel.json +45 -0
  63. package/dist/profiles/conductor/patterns/combobox.json +44 -0
  64. package/dist/profiles/conductor/patterns/consequential-submission.json +38 -0
  65. package/dist/profiles/conductor/patterns/dialog.json +47 -0
  66. package/dist/profiles/conductor/patterns/disclosure.json +39 -0
  67. package/dist/profiles/conductor/patterns/dynamic-status.json +36 -0
  68. package/dist/profiles/conductor/patterns/field.json +39 -0
  69. package/dist/profiles/conductor/patterns/image.json +35 -0
  70. package/dist/profiles/conductor/patterns/listbox.json +43 -0
  71. package/dist/profiles/conductor/patterns/media-player.json +45 -0
  72. package/dist/profiles/conductor/patterns/menu-button.json +41 -0
  73. package/dist/profiles/conductor/patterns/pagination.json +39 -0
  74. package/dist/profiles/conductor/patterns/popover.json +40 -0
  75. package/dist/profiles/conductor/patterns/progress.json +37 -0
  76. package/dist/profiles/conductor/patterns/tabs.json +42 -0
  77. package/dist/profiles/conductor/patterns/tooltip.json +37 -0
  78. package/dist/profiles/conductor/patterns/validation.json +42 -0
  79. package/dist/profiles/conductor/semantics.json +289 -0
  80. package/dist/projection-manifest.json +90 -0
  81. package/dist/requirements-to-implementation.md +21 -0
  82. package/lib/build-manifest.mjs +20 -0
  83. package/lib/build.mjs +31 -0
  84. package/lib/compile-applicability.mjs +56 -0
  85. package/lib/digest.mjs +11 -0
  86. package/lib/index.mjs +4 -0
  87. package/lib/load.mjs +40 -0
  88. package/lib/render.mjs +71 -0
  89. package/lib/sync.mjs +94 -0
  90. package/lib/validate.mjs +31 -0
  91. package/package.json +46 -0
  92. package/profiles/ai-orchestration/profile.json +1 -0
  93. package/profiles/ai-orchestration/templates/implementation/README.md +3 -0
  94. package/profiles/ai-orchestration/templates/patterns/README.md +3 -0
  95. package/profiles/ai-orchestration/templates/review/README.md +3 -0
  96. package/profiles/ai-orchestration/templates/semantics/README.md +3 -0
  97. package/profiles/ai-orchestration/templates/testing/README.md +3 -0
  98. package/profiles/conductor/profile.json +1 -0
  99. package/profiles/conductor/templates/applicability/README.md +3 -0
  100. package/profiles/conductor/templates/evidence/README.md +3 -0
  101. package/profiles/conductor/templates/patterns/README.md +3 -0
  102. package/profiles/conductor/templates/semantics/README.md +3 -0
  103. package/schemas/applicability-matrix.schema.json +1 -0
  104. package/schemas/consumer-config.schema.json +1 -0
  105. package/schemas/consumer-routes.schema.json +1 -0
  106. package/schemas/manifest.schema.json +1 -0
  107. package/schemas/pattern.schema.json +1 -0
  108. package/schemas/profile.schema.json +1 -0
  109. package/schemas/projection-manifest.schema.json +1 -0
  110. package/schemas/record.schema.json +1 -0
  111. package/schemas/semantic.schema.json +1 -0
  112. package/src/applicability/facts.yml +1 -0
  113. package/src/applicability/matrix.yml +20 -0
  114. package/src/evidence/proof-routing.yml +1 -0
  115. package/src/foundations/conformance-boundary.yml +1 -0
  116. package/src/foundations/standards-hierarchy.yml +1 -0
  117. package/src/foundations/wcag-2.2.yml +1 -0
  118. package/src/patterns/disclosure/accordion.yml +1 -0
  119. package/src/patterns/disclosure/disclosure.yml +1 -0
  120. package/src/patterns/feedback/alert.yml +1 -0
  121. package/src/patterns/feedback/dynamic-status.yml +1 -0
  122. package/src/patterns/feedback/progress.yml +1 -0
  123. package/src/patterns/forms/consequential-submission.yml +1 -0
  124. package/src/patterns/forms/field.yml +1 -0
  125. package/src/patterns/forms/validation.yml +1 -0
  126. package/src/patterns/media/carousel.yml +1 -0
  127. package/src/patterns/media/image.yml +1 -0
  128. package/src/patterns/media/media-player.yml +1 -0
  129. package/src/patterns/navigation/menu-button.yml +1 -0
  130. package/src/patterns/navigation/pagination.yml +1 -0
  131. package/src/patterns/navigation/tabs.yml +1 -0
  132. package/src/patterns/overlays/dialog.yml +1 -0
  133. package/src/patterns/overlays/popover.yml +1 -0
  134. package/src/patterns/overlays/tooltip.yml +1 -0
  135. package/src/patterns/selection/combobox.yml +1 -0
  136. package/src/patterns/selection/listbox.yml +1 -0
  137. package/src/policies/enhanced-quality.yml +1 -0
  138. package/src/policies/target-size.yml +1 -0
  139. package/src/semantics/accessible-names.yml +1 -0
  140. package/src/semantics/forms.yml +1 -0
  141. package/src/semantics/headings-landmarks.yml +1 -0
  142. package/src/semantics/keyboard-focus.yml +1 -0
  143. package/src/semantics/live-regions.yml +1 -0
  144. package/src/semantics/media.yml +1 -0
  145. package/src/semantics/native-elements.yml +1 -0
  146. package/src/semantics/roles-states-properties.yml +1 -0
  147. package/src/semantics/tables.yml +1 -0
  148. package/src/sources.yml +1 -0
@@ -0,0 +1,11 @@
1
+ <!-- GENERATED by @verndale/accessibility-standards; DO NOT EDIT -->
2
+ # pattern.alert
3
+
4
+ ## pattern.alert
5
+
6
+ Requires: semantics.alert.
7
+
8
+ Behavior:
9
+ - Announce once without moving focus
10
+
11
+ Evidence: unit, human.
@@ -0,0 +1,12 @@
1
+ <!-- GENERATED by @verndale/accessibility-standards; DO NOT EDIT -->
2
+ # pattern.carousel
3
+
4
+ ## pattern.carousel
5
+
6
+ Requires: semantics.accessible-name, semantics.keyboard, semantics.focus.visible, semantics.motion-control, semantics.live-status.
7
+
8
+ Behavior:
9
+ - Pause rotation on interaction
10
+ - Provide named controls and current position
11
+
12
+ Evidence: unit, axe, e2e, human.
@@ -0,0 +1,11 @@
1
+ <!-- GENERATED by @verndale/accessibility-standards; DO NOT EDIT -->
2
+ # pattern.combobox
3
+
4
+ ## pattern.combobox
5
+
6
+ Requires: semantics.accessible-name, semantics.expanded-state, semantics.selected-state, semantics.keyboard, semantics.live-status.
7
+
8
+ Behavior:
9
+ - Keyboard controls popup, option, and input independently
10
+
11
+ Evidence: unit, axe, e2e, human.
@@ -0,0 +1,11 @@
1
+ <!-- GENERATED by @verndale/accessibility-standards; DO NOT EDIT -->
2
+ # pattern.consequential-submission
3
+
4
+ ## pattern.consequential-submission
5
+
6
+ Requires: semantics.consequential-action, semantics.form-error, semantics.keyboard.
7
+
8
+ Behavior:
9
+ - Support review, correction, confirmation, or reversal
10
+
11
+ Evidence: e2e, human.
@@ -0,0 +1,12 @@
1
+ <!-- GENERATED by @verndale/accessibility-standards; DO NOT EDIT -->
2
+ # pattern.dialog
3
+
4
+ ## pattern.dialog
5
+
6
+ Requires: semantics.native-dialog, semantics.accessible-name, semantics.keyboard.escape, semantics.focus.initial, semantics.focus.return.
7
+
8
+ Behavior:
9
+ - Manage initial, contained, and return focus
10
+ - Dismiss topmost dialog with Escape
11
+
12
+ Evidence: unit, axe, e2e, human.
@@ -0,0 +1,11 @@
1
+ <!-- GENERATED by @verndale/accessibility-standards; DO NOT EDIT -->
2
+ # pattern.disclosure
3
+
4
+ ## pattern.disclosure
5
+
6
+ Requires: semantics.native-elements, semantics.accessible-name, semantics.expanded-state, semantics.keyboard.
7
+
8
+ Behavior:
9
+ - Control toggles one region
10
+
11
+ Evidence: unit, axe, e2e.
@@ -0,0 +1,11 @@
1
+ <!-- GENERATED by @verndale/accessibility-standards; DO NOT EDIT -->
2
+ # pattern.dynamic-status
3
+
4
+ ## pattern.dynamic-status
5
+
6
+ Requires: semantics.live-status.
7
+
8
+ Behavior:
9
+ - Announce meaningful changes once
10
+
11
+ Evidence: unit, e2e, human.
@@ -0,0 +1,11 @@
1
+ <!-- GENERATED by @verndale/accessibility-standards; DO NOT EDIT -->
2
+ # pattern.field
3
+
4
+ ## pattern.field
5
+
6
+ Requires: semantics.form-label, semantics.form-required, semantics.focus.visible.
7
+
8
+ Behavior:
9
+ - Expose label, instructions, and requiredness before interaction
10
+
11
+ Evidence: unit, axe, human.
@@ -0,0 +1,11 @@
1
+ <!-- GENERATED by @verndale/accessibility-standards; DO NOT EDIT -->
2
+ # pattern.image
3
+
4
+ ## pattern.image
5
+
6
+ Requires: semantics.non-text-alternative.
7
+
8
+ Behavior:
9
+ - Alternative follows image purpose
10
+
11
+ Evidence: axe, human.
@@ -0,0 +1,12 @@
1
+ <!-- GENERATED by @verndale/accessibility-standards; DO NOT EDIT -->
2
+ # pattern.listbox
3
+
4
+ ## pattern.listbox
5
+
6
+ Requires: semantics.accessible-name, semantics.selected-state, semantics.keyboard, semantics.focus.visible.
7
+
8
+ Behavior:
9
+ - Arrow keys move active option
10
+ - Selection follows declared model
11
+
12
+ Evidence: unit, axe, e2e, human.
@@ -0,0 +1,11 @@
1
+ <!-- GENERATED by @verndale/accessibility-standards; DO NOT EDIT -->
2
+ # pattern.media-player
3
+
4
+ ## pattern.media-player
5
+
6
+ Requires: semantics.media-alternatives, semantics.accessible-name, semantics.keyboard, semantics.focus.visible, semantics.motion-control.
7
+
8
+ Behavior:
9
+ - Provide keyboard-operable named controls and required alternatives
10
+
11
+ Evidence: axe, e2e, human.
@@ -0,0 +1,11 @@
1
+ <!-- GENERATED by @verndale/accessibility-standards; DO NOT EDIT -->
2
+ # pattern.menu-button
3
+
4
+ ## pattern.menu-button
5
+
6
+ Requires: semantics.accessible-name, semantics.expanded-state, semantics.keyboard, semantics.focus.initial, semantics.focus.return.
7
+
8
+ Behavior:
9
+ - Open and navigate menu by keyboard
10
+
11
+ Evidence: unit, e2e, human.
@@ -0,0 +1,11 @@
1
+ <!-- GENERATED by @verndale/accessibility-standards; DO NOT EDIT -->
2
+ # pattern.pagination
3
+
4
+ ## pattern.pagination
5
+
6
+ Requires: semantics.native-elements, semantics.accessible-name, semantics.landmarks, semantics.focus.visible.
7
+
8
+ Behavior:
9
+ - Expose current page and named navigation
10
+
11
+ Evidence: unit, axe, human.
@@ -0,0 +1,11 @@
1
+ <!-- GENERATED by @verndale/accessibility-standards; DO NOT EDIT -->
2
+ # pattern.popover
3
+
4
+ ## pattern.popover
5
+
6
+ Requires: semantics.native-elements, semantics.accessible-name, semantics.keyboard.escape, semantics.focus.return.
7
+
8
+ Behavior:
9
+ - Dismiss without trapping focus
10
+
11
+ Evidence: unit, e2e, human.
@@ -0,0 +1,11 @@
1
+ <!-- GENERATED by @verndale/accessibility-standards; DO NOT EDIT -->
2
+ # pattern.progress
3
+
4
+ ## pattern.progress
5
+
6
+ Requires: semantics.name-role-value, semantics.live-status.
7
+
8
+ Behavior:
9
+ - Expose value and completion changes without announcement noise
10
+
11
+ Evidence: unit, axe, human.
@@ -0,0 +1,12 @@
1
+ <!-- GENERATED by @verndale/accessibility-standards; DO NOT EDIT -->
2
+ # pattern.tabs
3
+
4
+ ## pattern.tabs
5
+
6
+ Requires: semantics.accessible-name, semantics.selected-state, semantics.keyboard, semantics.focus.visible.
7
+
8
+ Behavior:
9
+ - Arrow keys move between tabs
10
+ - Selection and activation follow the documented model
11
+
12
+ Evidence: unit, axe, e2e, human.
@@ -0,0 +1,12 @@
1
+ <!-- GENERATED by @verndale/accessibility-standards; DO NOT EDIT -->
2
+ # pattern.tooltip
3
+
4
+ ## pattern.tooltip
5
+
6
+ Requires: semantics.accessible-name, semantics.keyboard.escape.
7
+
8
+ Behavior:
9
+ - Available on hover and focus
10
+ - Never contains interactive content
11
+
12
+ Evidence: unit, e2e, human.
@@ -0,0 +1,11 @@
1
+ <!-- GENERATED by @verndale/accessibility-standards; DO NOT EDIT -->
2
+ # pattern.validation
3
+
4
+ ## pattern.validation
5
+
6
+ Requires: semantics.form-error, semantics.live-status, semantics.focus.initial.
7
+
8
+ Behavior:
9
+ - Identify, associate, summarize, and focus errors deterministically
10
+
11
+ Evidence: unit, axe, e2e, human.
@@ -0,0 +1,67 @@
1
+ <!-- GENERATED by @verndale/accessibility-standards; DO NOT EDIT -->
2
+ # Accessibility review contract
3
+
4
+ Review in this order: source compatibility, semantic dependencies, pattern behavior, implementation outcomes, test lanes, human evidence.
5
+
6
+ - applicability.authentication-captcha
7
+ - applicability.character-shortcuts
8
+ - applicability.complex-pointer
9
+ - applicability.consequential-submission
10
+ - applicability.consistent-help
11
+ - applicability.data-table-grid
12
+ - applicability.dynamic-status
13
+ - applicability.focus-obstruction
14
+ - applicability.forms
15
+ - applicability.locale-bidi
16
+ - applicability.media
17
+ - applicability.motion-timing
18
+ - applicability.non-text-content
19
+ - applicability.orientation-sensory
20
+ - applicability.overlays
21
+ - applicability.page-context
22
+ - applicability.redundant-entry
23
+ - applicability.target-size
24
+ - pattern.accordion
25
+ - pattern.alert
26
+ - pattern.carousel
27
+ - pattern.combobox
28
+ - pattern.consequential-submission
29
+ - pattern.dialog
30
+ - pattern.disclosure
31
+ - pattern.dynamic-status
32
+ - pattern.field
33
+ - pattern.image
34
+ - pattern.listbox
35
+ - pattern.media-player
36
+ - pattern.menu-button
37
+ - pattern.pagination
38
+ - pattern.popover
39
+ - pattern.progress
40
+ - pattern.tabs
41
+ - pattern.tooltip
42
+ - pattern.validation
43
+ - semantics.accessible-name
44
+ - semantics.alert
45
+ - semantics.consequential-action
46
+ - semantics.data-table
47
+ - semantics.expanded-state
48
+ - semantics.focus.initial
49
+ - semantics.focus.return
50
+ - semantics.focus.visible
51
+ - semantics.form-error
52
+ - semantics.form-label
53
+ - semantics.form-required
54
+ - semantics.headings
55
+ - semantics.keyboard
56
+ - semantics.keyboard.escape
57
+ - semantics.landmarks
58
+ - semantics.live-status
59
+ - semantics.media-alternatives
60
+ - semantics.motion-control
61
+ - semantics.name-role-value
62
+ - semantics.native-dialog
63
+ - semantics.native-elements
64
+ - semantics.non-text-alternative
65
+ - semantics.roles-states-properties
66
+ - semantics.selected-state
67
+ - semantics.target-size
@@ -0,0 +1,8 @@
1
+ <!-- GENERATED by @verndale/accessibility-standards; DO NOT EDIT -->
2
+ # semantics.accessible-name
3
+
4
+ ## semantics.accessible-name
5
+
6
+ Every interactive or meaning-bearing control has a concise programmatic name derived from visible text when available.
7
+
8
+ Proof: unit, axe, human.
@@ -0,0 +1,8 @@
1
+ <!-- GENERATED by @verndale/accessibility-standards; DO NOT EDIT -->
2
+ # semantics.alert
3
+
4
+ ## semantics.alert
5
+
6
+ Use alert semantics only for urgent, time-sensitive messages that require immediate announcement.
7
+
8
+ Proof: unit, human.
@@ -0,0 +1,8 @@
1
+ <!-- GENERATED by @verndale/accessibility-standards; DO NOT EDIT -->
2
+ # semantics.consequential-action
3
+
4
+ ## semantics.consequential-action
5
+
6
+ Legal, financial, destructive, or data-submitting actions support review, confirmation, or reversal as required.
7
+
8
+ Proof: e2e, human.
@@ -0,0 +1,8 @@
1
+ <!-- GENERATED by @verndale/accessibility-standards; DO NOT EDIT -->
2
+ # semantics.data-table
3
+
4
+ ## semantics.data-table
5
+
6
+ Tabular relationships use table markup with associated headers; interactive grids implement their full keyboard model.
7
+
8
+ Proof: axe, e2e, human.
@@ -0,0 +1,8 @@
1
+ <!-- GENERATED by @verndale/accessibility-standards; DO NOT EDIT -->
2
+ # semantics.expanded-state
3
+
4
+ ## semantics.expanded-state
5
+
6
+ Expandable controls expose aria-expanded and identify the controlled region when needed.
7
+
8
+ Proof: unit, axe, e2e.
@@ -0,0 +1,8 @@
1
+ <!-- GENERATED by @verndale/accessibility-standards; DO NOT EDIT -->
2
+ # semantics.focus.initial
3
+
4
+ ## semantics.focus.initial
5
+
6
+ On activation, focus moves to the deterministic target appropriate to the pattern.
7
+
8
+ Proof: unit, e2e.
@@ -0,0 +1,8 @@
1
+ <!-- GENERATED by @verndale/accessibility-standards; DO NOT EDIT -->
2
+ # semantics.focus.return
3
+
4
+ ## semantics.focus.return
5
+
6
+ On dismissal, focus returns to the invoking control or a documented logical successor.
7
+
8
+ Proof: unit, e2e.
@@ -0,0 +1,8 @@
1
+ <!-- GENERATED by @verndale/accessibility-standards; DO NOT EDIT -->
2
+ # semantics.focus.visible
3
+
4
+ ## semantics.focus.visible
5
+
6
+ Keyboard focus is visible, sufficiently contrasted, and not fully obscured.
7
+
8
+ Proof: e2e, human.
@@ -0,0 +1,8 @@
1
+ <!-- GENERATED by @verndale/accessibility-standards; DO NOT EDIT -->
2
+ # semantics.form-error
3
+
4
+ ## semantics.form-error
5
+
6
+ Identify errors in text, associate them with fields, and provide correction guidance.
7
+
8
+ Proof: unit, axe, e2e, human.
@@ -0,0 +1,8 @@
1
+ <!-- GENERATED by @verndale/accessibility-standards; DO NOT EDIT -->
2
+ # semantics.form-label
3
+
4
+ ## semantics.form-label
5
+
6
+ Every form control has a persistent programmatically associated label.
7
+
8
+ Proof: unit, axe.
@@ -0,0 +1,8 @@
1
+ <!-- GENERATED by @verndale/accessibility-standards; DO NOT EDIT -->
2
+ # semantics.form-required
3
+
4
+ ## semantics.form-required
5
+
6
+ Requiredness is communicated visually and programmatically before submission.
7
+
8
+ Proof: unit, axe.
@@ -0,0 +1,8 @@
1
+ <!-- GENERATED by @verndale/accessibility-standards; DO NOT EDIT -->
2
+ # semantics.headings
3
+
4
+ ## semantics.headings
5
+
6
+ Headings describe document structure without choosing levels for visual appearance.
7
+
8
+ Proof: axe, human.
@@ -0,0 +1,8 @@
1
+ <!-- GENERATED by @verndale/accessibility-standards; DO NOT EDIT -->
2
+ # semantics.keyboard.escape
3
+
4
+ ## semantics.keyboard.escape
5
+
6
+ Escape closes the topmost dismissible overlay without activating its trigger.
7
+
8
+ Proof: unit, e2e.
@@ -0,0 +1,8 @@
1
+ <!-- GENERATED by @verndale/accessibility-standards; DO NOT EDIT -->
2
+ # semantics.keyboard
3
+
4
+ ## semantics.keyboard
5
+
6
+ All functionality is operable with a keyboard without traps.
7
+
8
+ Proof: e2e, human.
@@ -0,0 +1,8 @@
1
+ <!-- GENERATED by @verndale/accessibility-standards; DO NOT EDIT -->
2
+ # semantics.landmarks
3
+
4
+ ## semantics.landmarks
5
+
6
+ Use native landmarks and name repeated landmarks only when a name is required to distinguish them.
7
+
8
+ Proof: axe, human.
@@ -0,0 +1,8 @@
1
+ <!-- GENERATED by @verndale/accessibility-standards; DO NOT EDIT -->
2
+ # semantics.live-status
3
+
4
+ ## semantics.live-status
5
+
6
+ Important asynchronous status updates are exposed through a correctly scoped, non-duplicative live region.
7
+
8
+ Proof: unit, e2e, human.
@@ -0,0 +1,8 @@
1
+ <!-- GENERATED by @verndale/accessibility-standards; DO NOT EDIT -->
2
+ # semantics.media-alternatives
3
+
4
+ ## semantics.media-alternatives
5
+
6
+ Prerecorded media provides applicable captions, transcripts, and audio description.
7
+
8
+ Proof: human.
@@ -0,0 +1,8 @@
1
+ <!-- GENERATED by @verndale/accessibility-standards; DO NOT EDIT -->
2
+ # semantics.motion-control
3
+
4
+ ## semantics.motion-control
5
+
6
+ Respect reduced-motion preferences and provide controls for moving or time-limited content where required.
7
+
8
+ Proof: e2e, human.
@@ -0,0 +1,8 @@
1
+ <!-- GENERATED by @verndale/accessibility-standards; DO NOT EDIT -->
2
+ # semantics.name-role-value
3
+
4
+ ## semantics.name-role-value
5
+
6
+ Expose the correct accessible name, role, value, and state through the platform accessibility API.
7
+
8
+ Proof: unit, axe, human.
@@ -0,0 +1,8 @@
1
+ <!-- GENERATED by @verndale/accessibility-standards; DO NOT EDIT -->
2
+ # semantics.native-dialog
3
+
4
+ ## semantics.native-dialog
5
+
6
+ Use dialog semantics with a programmatic name and modal state only when interaction is modal.
7
+
8
+ Proof: axe, e2e, human.
@@ -0,0 +1,8 @@
1
+ <!-- GENERATED by @verndale/accessibility-standards; DO NOT EDIT -->
2
+ # semantics.native-elements
3
+
4
+ ## semantics.native-elements
5
+
6
+ Use the native HTML element whose semantics and behavior match the control before adding ARIA.
7
+
8
+ Proof: axe, human.
@@ -0,0 +1,8 @@
1
+ <!-- GENERATED by @verndale/accessibility-standards; DO NOT EDIT -->
2
+ # semantics.non-text-alternative
3
+
4
+ ## semantics.non-text-alternative
5
+
6
+ Meaningful non-text content has an equivalent alternative and decorative content is ignored by assistive technology.
7
+
8
+ Proof: axe, human.
@@ -0,0 +1,8 @@
1
+ <!-- GENERATED by @verndale/accessibility-standards; DO NOT EDIT -->
2
+ # semantics.roles-states-properties
3
+
4
+ ## semantics.roles-states-properties
5
+
6
+ Apply only valid ARIA roles, states, and properties and keep exposed state synchronized with rendered behavior.
7
+
8
+ Proof: unit, axe, e2e.
@@ -0,0 +1,8 @@
1
+ <!-- GENERATED by @verndale/accessibility-standards; DO NOT EDIT -->
2
+ # semantics.selected-state
3
+
4
+ ## semantics.selected-state
5
+
6
+ Selection widgets expose current selection with the state required by their role.
7
+
8
+ Proof: unit, e2e.
@@ -0,0 +1,8 @@
1
+ <!-- GENERATED by @verndale/accessibility-standards; DO NOT EDIT -->
2
+ # semantics.target-size
3
+
4
+ ## semantics.target-size
5
+
6
+ Pointer targets meet 24 by 24 CSS pixels or a WCAG 2.5.8 exception; 44 by 44 is an enhanced recommendation.
7
+
8
+ Proof: e2e, human.