@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.
- package/OPERATING.md +3 -1
- package/README.md +4 -0
- package/bin/accessibility-standards.mjs +1 -1
- package/dist/manifest.json +159 -101
- package/dist/profiles/ai-orchestration/coverage-manifest.json +724 -68
- package/dist/profiles/ai-orchestration/implementation/accessibility.md +825 -10
- package/dist/profiles/ai-orchestration/pattern-contracts.json +1015 -343
- package/dist/profiles/ai-orchestration/patterns/accordion.md +14 -0
- package/dist/profiles/ai-orchestration/patterns/alert.md +14 -0
- package/dist/profiles/ai-orchestration/patterns/carousel.md +14 -0
- package/dist/profiles/ai-orchestration/patterns/checkbox.md +27 -0
- package/dist/profiles/ai-orchestration/patterns/combobox.md +14 -0
- package/dist/profiles/ai-orchestration/patterns/consequential-submission.md +15 -1
- package/dist/profiles/ai-orchestration/patterns/dialog.md +14 -0
- package/dist/profiles/ai-orchestration/patterns/disclosure.md +14 -0
- package/dist/profiles/ai-orchestration/patterns/dynamic-status.md +14 -0
- package/dist/profiles/ai-orchestration/patterns/field.md +15 -0
- package/dist/profiles/ai-orchestration/patterns/image.md +14 -0
- package/dist/profiles/ai-orchestration/patterns/listbox.md +14 -0
- package/dist/profiles/ai-orchestration/patterns/media-player.md +17 -0
- package/dist/profiles/ai-orchestration/patterns/menu-button.md +14 -0
- package/dist/profiles/ai-orchestration/patterns/menu.md +30 -0
- package/dist/profiles/ai-orchestration/patterns/pagination.md +14 -0
- package/dist/profiles/ai-orchestration/patterns/popover.md +15 -0
- package/dist/profiles/ai-orchestration/patterns/progress.md +15 -0
- package/dist/profiles/ai-orchestration/patterns/radio-group.md +27 -0
- package/dist/profiles/ai-orchestration/patterns/slider.md +31 -0
- package/dist/profiles/ai-orchestration/patterns/spinbutton.md +28 -0
- package/dist/profiles/ai-orchestration/patterns/tabs.md +14 -0
- package/dist/profiles/ai-orchestration/patterns/tooltip.md +14 -0
- package/dist/profiles/ai-orchestration/patterns/tree-view.md +31 -0
- package/dist/profiles/ai-orchestration/patterns/validation.md +15 -0
- package/dist/profiles/ai-orchestration/review/accessibility.md +21 -6
- package/dist/profiles/ai-orchestration/semantics/accessible-authentication.md +13 -0
- package/dist/profiles/ai-orchestration/semantics/accessible-name.md +8 -1
- package/dist/profiles/ai-orchestration/semantics/alert.md +7 -0
- package/dist/profiles/ai-orchestration/semantics/consequential-action.md +6 -1
- package/dist/profiles/ai-orchestration/semantics/consistent-help.md +13 -0
- package/dist/profiles/ai-orchestration/semantics/data-table.md +7 -1
- package/dist/profiles/ai-orchestration/semantics/dragging-alternative.md +13 -0
- package/dist/profiles/ai-orchestration/semantics/expanded-state.md +6 -0
- package/dist/profiles/ai-orchestration/semantics/focus.initial.md +4 -0
- package/dist/profiles/ai-orchestration/semantics/focus.return.md +4 -0
- package/dist/profiles/ai-orchestration/semantics/focus.visible.md +8 -1
- package/dist/profiles/ai-orchestration/semantics/form-error.md +8 -1
- package/dist/profiles/ai-orchestration/semantics/form-label.md +7 -0
- package/dist/profiles/ai-orchestration/semantics/form-required.md +7 -0
- package/dist/profiles/ai-orchestration/semantics/headings.md +7 -0
- package/dist/profiles/ai-orchestration/semantics/keyboard.escape.md +4 -0
- package/dist/profiles/ai-orchestration/semantics/keyboard.md +7 -0
- package/dist/profiles/ai-orchestration/semantics/landmarks.md +6 -0
- package/dist/profiles/ai-orchestration/semantics/live-status.md +7 -1
- package/dist/profiles/ai-orchestration/semantics/media-alternatives.md +11 -0
- package/dist/profiles/ai-orchestration/semantics/motion-control.md +8 -1
- package/dist/profiles/ai-orchestration/semantics/name-role-value.md +6 -1
- package/dist/profiles/ai-orchestration/semantics/native-dialog.md +7 -0
- package/dist/profiles/ai-orchestration/semantics/native-elements.md +5 -0
- package/dist/profiles/ai-orchestration/semantics/non-text-alternative.md +5 -0
- package/dist/profiles/ai-orchestration/semantics/redundant-entry.md +13 -0
- package/dist/profiles/ai-orchestration/semantics/roles-states-properties.md +6 -0
- package/dist/profiles/ai-orchestration/semantics/selected-state.md +6 -0
- package/dist/profiles/ai-orchestration/semantics/target-size.md +6 -1
- package/dist/profiles/ai-orchestration/semantics.json +843 -100
- package/dist/profiles/ai-orchestration/testing/accessibility.md +33 -3
- package/dist/profiles/ai-orchestration/ui-design-brain-bindings.json +836 -0
- package/dist/profiles/conductor/a11y-semantics.md +270 -10
- package/dist/profiles/conductor/accessibility-quality.md +557 -1
- package/dist/profiles/conductor/applicability-matrix.json +270 -230
- package/dist/profiles/conductor/coverage-manifest.json +724 -68
- package/dist/profiles/conductor/pattern-contracts.json +1015 -343
- package/dist/profiles/conductor/patterns/accordion.json +42 -24
- package/dist/profiles/conductor/patterns/alert.json +36 -18
- package/dist/profiles/conductor/patterns/carousel.json +43 -25
- package/dist/profiles/conductor/patterns/checkbox.json +67 -0
- package/dist/profiles/conductor/patterns/combobox.json +44 -26
- package/dist/profiles/conductor/patterns/consequential-submission.json +41 -22
- package/dist/profiles/conductor/patterns/dialog.json +44 -26
- package/dist/profiles/conductor/patterns/disclosure.json +40 -22
- package/dist/profiles/conductor/patterns/dynamic-status.json +38 -19
- package/dist/profiles/conductor/patterns/field.json +58 -22
- package/dist/profiles/conductor/patterns/image.json +48 -19
- package/dist/profiles/conductor/patterns/listbox.json +42 -24
- package/dist/profiles/conductor/patterns/media-player.json +76 -26
- package/dist/profiles/conductor/patterns/menu-button.json +41 -23
- package/dist/profiles/conductor/patterns/menu.json +78 -0
- package/dist/profiles/conductor/patterns/pagination.json +41 -22
- package/dist/profiles/conductor/patterns/popover.json +49 -23
- package/dist/profiles/conductor/patterns/progress.json +45 -20
- package/dist/profiles/conductor/patterns/radio-group.json +69 -0
- package/dist/profiles/conductor/patterns/slider.json +84 -0
- package/dist/profiles/conductor/patterns/spinbutton.json +74 -0
- package/dist/profiles/conductor/patterns/tabs.json +41 -23
- package/dist/profiles/conductor/patterns/tooltip.json +38 -20
- package/dist/profiles/conductor/patterns/tree-view.json +77 -0
- package/dist/profiles/conductor/patterns/validation.json +59 -23
- package/dist/profiles/conductor/semantics.json +843 -100
- package/dist/profiles/conductor/ui-design-brain-bindings.json +836 -0
- package/dist/projection-manifest.json +123 -82
- package/dist/requirements-to-implementation.md +8 -0
- package/lib/build-manifest.mjs +12 -6
- package/lib/build.mjs +21 -7
- package/lib/compile-applicability.mjs +131 -10
- package/lib/coverage.mjs +20 -0
- package/lib/digest.mjs +8 -0
- package/lib/index.mjs +1 -1
- package/lib/load.mjs +44 -1
- package/lib/provenance.mjs +51 -0
- package/lib/render.mjs +115 -31
- package/lib/sync.mjs +242 -28
- package/lib/validate.mjs +557 -24
- package/package.json +27 -10
- package/profiles/ai-orchestration/profile.json +1 -1
- package/profiles/ai-orchestration/templates/patterns/README.md +1 -1
- package/profiles/ai-orchestration/templates/review/README.md +1 -1
- package/profiles/ai-orchestration/templates/semantics/README.md +1 -1
- package/profiles/ai-orchestration/templates/testing/README.md +1 -1
- package/profiles/conductor/profile.json +1 -1
- package/profiles/conductor/templates/evidence/README.md +1 -1
- package/profiles/conductor/templates/patterns/README.md +1 -1
- package/profiles/conductor/templates/semantics/README.md +1 -1
- package/schemas/consumer-config.schema.json +1 -1
- package/schemas/contract.schema.json +1 -0
- package/schemas/manifest.schema.json +1 -1
- package/schemas/pattern.schema.json +98 -1
- package/schemas/profile.schema.json +1 -1
- package/schemas/projection-manifest.schema.json +84 -1
- package/schemas/semantic.schema.json +26 -1
- package/schemas/standards-reference.schema.json +105 -0
- package/schemas/ui-design-brain-bindings.schema.json +86 -0
- package/schemas/wcag-coverage.schema.json +93 -0
- package/src/applicability/facts.yml +27 -1
- package/src/applicability/matrix.yml +8 -9
- package/src/applicability/ui-design-brain-bindings.yml +196 -0
- package/src/contract.yml +1 -0
- package/src/coverage/wcag-2.2.yml +68 -0
- package/src/patterns/disclosure/accordion.yml +1 -1
- package/src/patterns/disclosure/disclosure.yml +1 -1
- package/src/patterns/feedback/alert.yml +1 -1
- package/src/patterns/feedback/dynamic-status.yml +1 -1
- package/src/patterns/feedback/progress.yml +1 -1
- package/src/patterns/forms/consequential-submission.yml +1 -1
- package/src/patterns/forms/field.yml +1 -1
- package/src/patterns/forms/spinbutton.yml +1 -0
- package/src/patterns/forms/validation.yml +1 -1
- package/src/patterns/media/carousel.yml +1 -1
- package/src/patterns/media/image.yml +1 -1
- package/src/patterns/media/media-player.yml +1 -1
- package/src/patterns/navigation/menu-button.yml +1 -1
- package/src/patterns/navigation/menu.yml +1 -0
- package/src/patterns/navigation/pagination.yml +1 -1
- package/src/patterns/navigation/tabs.yml +1 -1
- package/src/patterns/navigation/tree-view.yml +1 -0
- package/src/patterns/overlays/dialog.yml +1 -1
- package/src/patterns/overlays/popover.yml +1 -1
- package/src/patterns/overlays/tooltip.yml +1 -1
- package/src/patterns/selection/checkbox.yml +1 -0
- package/src/patterns/selection/combobox.yml +1 -1
- package/src/patterns/selection/listbox.yml +1 -1
- package/src/patterns/selection/radio-group.yml +1 -0
- package/src/patterns/selection/slider.yml +1 -0
- package/src/semantics/accessible-names.yml +1 -1
- package/src/semantics/forms.yml +1 -1
- package/src/semantics/headings-landmarks.yml +1 -1
- package/src/semantics/keyboard-focus.yml +1 -1
- package/src/semantics/live-regions.yml +1 -1
- package/src/semantics/media.yml +1 -1
- package/src/semantics/native-elements.yml +1 -1
- package/src/semantics/roles-states-properties.yml +1 -1
- package/src/semantics/tables.yml +1 -1
- package/src/semantics/wcag-2.2.yml +1 -0
- package/src/sources.yml +1 -1
|
@@ -1,39 +1,58 @@
|
|
|
1
1
|
{
|
|
2
2
|
"_generated": "GENERATED by @verndale/accessibility-standards; DO NOT EDIT",
|
|
3
|
-
"
|
|
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
|
+
},
|
|
4
11
|
"pattern": {
|
|
5
|
-
"id": "pattern.pagination",
|
|
6
|
-
"version": "1.0.0",
|
|
7
|
-
"title": "Pagination",
|
|
8
|
-
"kind": "pattern",
|
|
9
|
-
"requires": [
|
|
10
|
-
"semantics.native-elements",
|
|
11
|
-
"semantics.accessible-name",
|
|
12
|
-
"semantics.landmarks",
|
|
13
|
-
"semantics.focus.visible"
|
|
14
|
-
],
|
|
15
12
|
"activation": {
|
|
16
|
-
"
|
|
17
|
-
|
|
13
|
+
"contains": {
|
|
14
|
+
"fact": "component.accessibility_pattern_ids",
|
|
15
|
+
"value": "pattern.pagination"
|
|
16
|
+
}
|
|
18
17
|
},
|
|
19
|
-
"scope": "Paged result navigation",
|
|
20
18
|
"behavior": [
|
|
21
19
|
"Expose current page and named navigation"
|
|
22
20
|
],
|
|
23
|
-
"
|
|
24
|
-
"
|
|
21
|
+
"evidence_routes": [
|
|
22
|
+
"unit",
|
|
23
|
+
"axe",
|
|
24
|
+
"human"
|
|
25
25
|
],
|
|
26
26
|
"functional_spec_bindings": [
|
|
27
27
|
"states",
|
|
28
28
|
"navigation"
|
|
29
29
|
],
|
|
30
|
+
"id": "pattern.pagination",
|
|
30
31
|
"implementation_outcomes": [
|
|
31
32
|
"pagination-current-page"
|
|
32
33
|
],
|
|
33
|
-
"
|
|
34
|
-
|
|
35
|
-
"
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
34
|
+
"kind": "pattern",
|
|
35
|
+
"product_decisions": [
|
|
36
|
+
"url_behavior"
|
|
37
|
+
],
|
|
38
|
+
"requires": [
|
|
39
|
+
"semantics.native-elements",
|
|
40
|
+
"semantics.accessible-name",
|
|
41
|
+
"semantics.landmarks",
|
|
42
|
+
"semantics.focus.visible"
|
|
43
|
+
],
|
|
44
|
+
"scope": "Paged result navigation",
|
|
45
|
+
"standards_refs": [
|
|
46
|
+
{
|
|
47
|
+
"authority": "wcag-2.2",
|
|
48
|
+
"identifier": "2.4.4",
|
|
49
|
+
"level": "A",
|
|
50
|
+
"normative": true,
|
|
51
|
+
"url": "https://www.w3.org/TR/WCAG22/#link-purpose-in-context"
|
|
52
|
+
}
|
|
53
|
+
],
|
|
54
|
+
"title": "Pagination",
|
|
55
|
+
"version": "1.0.0"
|
|
56
|
+
},
|
|
57
|
+
"schema_version": 3
|
|
39
58
|
}
|
|
@@ -1,40 +1,66 @@
|
|
|
1
1
|
{
|
|
2
2
|
"_generated": "GENERATED by @verndale/accessibility-standards; DO NOT EDIT",
|
|
3
|
-
"
|
|
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
|
+
},
|
|
4
11
|
"pattern": {
|
|
5
|
-
"id": "pattern.popover",
|
|
6
|
-
"version": "1.0.0",
|
|
7
|
-
"title": "Popover",
|
|
8
|
-
"kind": "pattern",
|
|
9
|
-
"requires": [
|
|
10
|
-
"semantics.native-elements",
|
|
11
|
-
"semantics.accessible-name",
|
|
12
|
-
"semantics.keyboard.escape",
|
|
13
|
-
"semantics.focus.return"
|
|
14
|
-
],
|
|
15
12
|
"activation": {
|
|
16
|
-
"
|
|
17
|
-
|
|
13
|
+
"contains": {
|
|
14
|
+
"fact": "component.accessibility_pattern_ids",
|
|
15
|
+
"value": "pattern.popover"
|
|
16
|
+
}
|
|
18
17
|
},
|
|
19
|
-
"scope": "Non-modal transient surface",
|
|
20
18
|
"behavior": [
|
|
21
19
|
"Dismiss without trapping focus"
|
|
22
20
|
],
|
|
23
|
-
"
|
|
24
|
-
"
|
|
25
|
-
"
|
|
21
|
+
"evidence_routes": [
|
|
22
|
+
"unit",
|
|
23
|
+
"e2e",
|
|
24
|
+
"human"
|
|
26
25
|
],
|
|
27
26
|
"functional_spec_bindings": [
|
|
28
27
|
"behavior",
|
|
29
28
|
"focus"
|
|
30
29
|
],
|
|
30
|
+
"id": "pattern.popover",
|
|
31
31
|
"implementation_outcomes": [
|
|
32
32
|
"popover-dismissal"
|
|
33
33
|
],
|
|
34
|
-
"
|
|
35
|
-
|
|
36
|
-
"
|
|
37
|
-
"
|
|
38
|
-
]
|
|
39
|
-
|
|
34
|
+
"kind": "pattern",
|
|
35
|
+
"product_decisions": [
|
|
36
|
+
"dismissal",
|
|
37
|
+
"focus_entry"
|
|
38
|
+
],
|
|
39
|
+
"requires": [
|
|
40
|
+
"semantics.native-elements",
|
|
41
|
+
"semantics.accessible-name",
|
|
42
|
+
"semantics.keyboard.escape",
|
|
43
|
+
"semantics.focus.return"
|
|
44
|
+
],
|
|
45
|
+
"scope": "Non-modal transient surface",
|
|
46
|
+
"standards_refs": [
|
|
47
|
+
{
|
|
48
|
+
"authority": "wcag-2.2",
|
|
49
|
+
"identifier": "2.1.1",
|
|
50
|
+
"level": "A",
|
|
51
|
+
"normative": true,
|
|
52
|
+
"url": "https://www.w3.org/TR/WCAG22/#keyboard"
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
"authority": "wcag-2.2",
|
|
56
|
+
"identifier": "2.4.3",
|
|
57
|
+
"level": "A",
|
|
58
|
+
"normative": true,
|
|
59
|
+
"url": "https://www.w3.org/TR/WCAG22/#focus-order"
|
|
60
|
+
}
|
|
61
|
+
],
|
|
62
|
+
"title": "Popover",
|
|
63
|
+
"version": "1.0.0"
|
|
64
|
+
},
|
|
65
|
+
"schema_version": 3
|
|
40
66
|
}
|
|
@@ -1,37 +1,62 @@
|
|
|
1
1
|
{
|
|
2
2
|
"_generated": "GENERATED by @verndale/accessibility-standards; DO NOT EDIT",
|
|
3
|
-
"
|
|
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
|
+
},
|
|
4
11
|
"pattern": {
|
|
5
|
-
"id": "pattern.progress",
|
|
6
|
-
"version": "1.0.0",
|
|
7
|
-
"title": "Progress",
|
|
8
|
-
"kind": "pattern",
|
|
9
|
-
"requires": [
|
|
10
|
-
"semantics.name-role-value",
|
|
11
|
-
"semantics.live-status"
|
|
12
|
-
],
|
|
13
12
|
"activation": {
|
|
14
|
-
"
|
|
15
|
-
|
|
13
|
+
"contains": {
|
|
14
|
+
"fact": "component.accessibility_pattern_ids",
|
|
15
|
+
"value": "pattern.progress"
|
|
16
|
+
}
|
|
16
17
|
},
|
|
17
|
-
"scope": "Determinate or indeterminate progress",
|
|
18
18
|
"behavior": [
|
|
19
19
|
"Expose value and completion changes without announcement noise"
|
|
20
20
|
],
|
|
21
|
-
"
|
|
22
|
-
"
|
|
21
|
+
"evidence_routes": [
|
|
22
|
+
"unit",
|
|
23
|
+
"axe",
|
|
24
|
+
"human"
|
|
23
25
|
],
|
|
24
26
|
"functional_spec_bindings": [
|
|
25
27
|
"states",
|
|
26
28
|
"messaging"
|
|
27
29
|
],
|
|
30
|
+
"id": "pattern.progress",
|
|
28
31
|
"implementation_outcomes": [
|
|
29
32
|
"progress-value"
|
|
30
33
|
],
|
|
31
|
-
"
|
|
32
|
-
|
|
33
|
-
"
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
34
|
+
"kind": "pattern",
|
|
35
|
+
"product_decisions": [
|
|
36
|
+
"determinate"
|
|
37
|
+
],
|
|
38
|
+
"requires": [
|
|
39
|
+
"semantics.name-role-value",
|
|
40
|
+
"semantics.live-status"
|
|
41
|
+
],
|
|
42
|
+
"scope": "Determinate or indeterminate progress",
|
|
43
|
+
"standards_refs": [
|
|
44
|
+
{
|
|
45
|
+
"authority": "wai-aria-1.2",
|
|
46
|
+
"identifier": "progressbar",
|
|
47
|
+
"normative": true,
|
|
48
|
+
"url": "https://www.w3.org/TR/wai-aria-1.2/#progressbar"
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
"authority": "wcag-2.2",
|
|
52
|
+
"identifier": "4.1.2",
|
|
53
|
+
"level": "A",
|
|
54
|
+
"normative": true,
|
|
55
|
+
"url": "https://www.w3.org/TR/WCAG22/#name-role-value"
|
|
56
|
+
}
|
|
57
|
+
],
|
|
58
|
+
"title": "Progress",
|
|
59
|
+
"version": "1.0.0"
|
|
60
|
+
},
|
|
61
|
+
"schema_version": 3
|
|
37
62
|
}
|
|
@@ -0,0 +1,69 @@
|
|
|
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.radio-group"
|
|
16
|
+
}
|
|
17
|
+
},
|
|
18
|
+
"behavior": [
|
|
19
|
+
"Use native grouped radio inputs when they provide the required behavior; otherwise expose a named radiogroup containing named radio controls with exactly one checked item when selected",
|
|
20
|
+
"Use one tab stop for group entry, focusing the checked radio or the first radio when none is checked",
|
|
21
|
+
"Outside a toolbar, Space selects the focused radio and arrow keys move focus and selection with wrapping; inside a toolbar, toolbar navigation moves focus without changing selection, while Space or optionally Enter checks the focused radio"
|
|
22
|
+
],
|
|
23
|
+
"evidence_routes": [
|
|
24
|
+
"unit",
|
|
25
|
+
"axe",
|
|
26
|
+
"e2e",
|
|
27
|
+
"human"
|
|
28
|
+
],
|
|
29
|
+
"functional_spec_bindings": [
|
|
30
|
+
"fields",
|
|
31
|
+
"states",
|
|
32
|
+
"keyboard",
|
|
33
|
+
"focus"
|
|
34
|
+
],
|
|
35
|
+
"id": "pattern.radio-group",
|
|
36
|
+
"implementation_outcomes": [
|
|
37
|
+
"radio-group-keyboard-model",
|
|
38
|
+
"radio-group-labeling",
|
|
39
|
+
"radio-group-selection-model"
|
|
40
|
+
],
|
|
41
|
+
"kind": "pattern",
|
|
42
|
+
"product_decisions": [
|
|
43
|
+
"initial_selection",
|
|
44
|
+
"native_or_custom",
|
|
45
|
+
"toolbar_context",
|
|
46
|
+
"wrap_navigation"
|
|
47
|
+
],
|
|
48
|
+
"requires": [
|
|
49
|
+
"semantics.accessible-name",
|
|
50
|
+
"semantics.focus.visible",
|
|
51
|
+
"semantics.form-label",
|
|
52
|
+
"semantics.keyboard",
|
|
53
|
+
"semantics.native-elements",
|
|
54
|
+
"semantics.roles-states-properties"
|
|
55
|
+
],
|
|
56
|
+
"scope": "Mutually exclusive choices presented as a radio group",
|
|
57
|
+
"standards_refs": [
|
|
58
|
+
{
|
|
59
|
+
"authority": "aria-apg",
|
|
60
|
+
"identifier": "radio",
|
|
61
|
+
"normative": false,
|
|
62
|
+
"url": "https://www.w3.org/WAI/ARIA/apg/patterns/radio/"
|
|
63
|
+
}
|
|
64
|
+
],
|
|
65
|
+
"title": "Radio group",
|
|
66
|
+
"version": "1.0.0"
|
|
67
|
+
},
|
|
68
|
+
"schema_version": 3
|
|
69
|
+
}
|
|
@@ -0,0 +1,84 @@
|
|
|
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.slider"
|
|
16
|
+
}
|
|
17
|
+
},
|
|
18
|
+
"behavior": [
|
|
19
|
+
"Use a native input[type=range] for a single-thumb slider when it supplies the required range, step, orientation, labeling, and value presentation; use a custom slider only when native behavior cannot satisfy the declared interaction",
|
|
20
|
+
"Expose every focusable thumb as a distinct named slider with synchronized current, minimum, maximum, orientation, and user-friendly value text when the numeric value is insufficient",
|
|
21
|
+
"Right and Up increase by one step while Left and Down decrease by one step unless a documented orientation and value presentation makes reversal more intuitive; Home and End move to range bounds, and optional Page Up and Page Down apply the declared larger step",
|
|
22
|
+
"Provide an equivalent single-pointer method for every drag operation that does not require dragging, such as track activation or an adjacent value input",
|
|
23
|
+
"Keep every thumb in a constant tab order for multi-thumb sliders and update dependent thumb bounds whenever another thumb changes them",
|
|
24
|
+
"Verify operation with touch-based assistive technology on target devices before production use"
|
|
25
|
+
],
|
|
26
|
+
"evidence_routes": [
|
|
27
|
+
"unit",
|
|
28
|
+
"axe",
|
|
29
|
+
"e2e",
|
|
30
|
+
"human"
|
|
31
|
+
],
|
|
32
|
+
"functional_spec_bindings": [
|
|
33
|
+
"fields",
|
|
34
|
+
"states",
|
|
35
|
+
"keyboard",
|
|
36
|
+
"controls"
|
|
37
|
+
],
|
|
38
|
+
"id": "pattern.slider",
|
|
39
|
+
"implementation_outcomes": [
|
|
40
|
+
"slider-keyboard-model",
|
|
41
|
+
"slider-native-control-selection",
|
|
42
|
+
"slider-range-state",
|
|
43
|
+
"slider-touch-at-compatibility"
|
|
44
|
+
],
|
|
45
|
+
"kind": "pattern",
|
|
46
|
+
"product_decisions": [
|
|
47
|
+
"direction_mapping",
|
|
48
|
+
"large_step",
|
|
49
|
+
"native_or_custom",
|
|
50
|
+
"orientation",
|
|
51
|
+
"single_or_multi_thumb",
|
|
52
|
+
"step",
|
|
53
|
+
"thumb_constraints",
|
|
54
|
+
"value_text"
|
|
55
|
+
],
|
|
56
|
+
"requires": [
|
|
57
|
+
"semantics.accessible-name",
|
|
58
|
+
"semantics.dragging-alternative",
|
|
59
|
+
"semantics.focus.visible",
|
|
60
|
+
"semantics.keyboard",
|
|
61
|
+
"semantics.name-role-value",
|
|
62
|
+
"semantics.native-elements",
|
|
63
|
+
"semantics.roles-states-properties"
|
|
64
|
+
],
|
|
65
|
+
"scope": "Single-thumb or multi-thumb bounded range input",
|
|
66
|
+
"standards_refs": [
|
|
67
|
+
{
|
|
68
|
+
"authority": "aria-apg",
|
|
69
|
+
"identifier": "slider",
|
|
70
|
+
"normative": false,
|
|
71
|
+
"url": "https://www.w3.org/WAI/ARIA/apg/patterns/slider/"
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
"authority": "aria-apg",
|
|
75
|
+
"identifier": "slider-multithumb",
|
|
76
|
+
"normative": false,
|
|
77
|
+
"url": "https://www.w3.org/WAI/ARIA/apg/patterns/slider-multithumb/"
|
|
78
|
+
}
|
|
79
|
+
],
|
|
80
|
+
"title": "Slider",
|
|
81
|
+
"version": "1.0.0"
|
|
82
|
+
},
|
|
83
|
+
"schema_version": 3
|
|
84
|
+
}
|
|
@@ -0,0 +1,74 @@
|
|
|
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.spinbutton"
|
|
16
|
+
}
|
|
17
|
+
},
|
|
18
|
+
"behavior": [
|
|
19
|
+
"Use a native number input when it supplies the required range, step, editing, labeling, and validation behavior; otherwise expose a named spinbutton with synchronized current, minimum, maximum, user-friendly value text, and invalid state when a value is outside the allowed range",
|
|
20
|
+
"Keep focus on the spinbutton while Up and Down change its value, Home and End apply known bounds, and optional Page Up and Page Down apply the declared larger step",
|
|
21
|
+
"Treat the editable decision as permission for direct text entry, not as whether the spinbutton is adjustable; when direct editing is disabled, the declared increment and decrement controls still change the value and the spinbutton is not exposed as read-only",
|
|
22
|
+
"When direct editing is allowed, preserve platform text editing commands and do not intercept keys needed to enter, navigate, select, or modify text"
|
|
23
|
+
],
|
|
24
|
+
"evidence_routes": [
|
|
25
|
+
"unit",
|
|
26
|
+
"axe",
|
|
27
|
+
"e2e",
|
|
28
|
+
"human"
|
|
29
|
+
],
|
|
30
|
+
"functional_spec_bindings": [
|
|
31
|
+
"fields",
|
|
32
|
+
"states",
|
|
33
|
+
"keyboard",
|
|
34
|
+
"validation"
|
|
35
|
+
],
|
|
36
|
+
"id": "pattern.spinbutton",
|
|
37
|
+
"implementation_outcomes": [
|
|
38
|
+
"spinbutton-keyboard-model",
|
|
39
|
+
"spinbutton-native-control-selection",
|
|
40
|
+
"spinbutton-range-state",
|
|
41
|
+
"spinbutton-validation"
|
|
42
|
+
],
|
|
43
|
+
"kind": "pattern",
|
|
44
|
+
"product_decisions": [
|
|
45
|
+
"editable",
|
|
46
|
+
"large_step",
|
|
47
|
+
"native_or_custom",
|
|
48
|
+
"range_bounds",
|
|
49
|
+
"step",
|
|
50
|
+
"value_text"
|
|
51
|
+
],
|
|
52
|
+
"requires": [
|
|
53
|
+
"semantics.accessible-name",
|
|
54
|
+
"semantics.focus.visible",
|
|
55
|
+
"semantics.form-label",
|
|
56
|
+
"semantics.keyboard",
|
|
57
|
+
"semantics.name-role-value",
|
|
58
|
+
"semantics.native-elements",
|
|
59
|
+
"semantics.roles-states-properties"
|
|
60
|
+
],
|
|
61
|
+
"scope": "Value input constrained to a discrete set or range, with optional direct text editing",
|
|
62
|
+
"standards_refs": [
|
|
63
|
+
{
|
|
64
|
+
"authority": "aria-apg",
|
|
65
|
+
"identifier": "spinbutton",
|
|
66
|
+
"normative": false,
|
|
67
|
+
"url": "https://www.w3.org/WAI/ARIA/apg/patterns/spinbutton/"
|
|
68
|
+
}
|
|
69
|
+
],
|
|
70
|
+
"title": "Spinbutton",
|
|
71
|
+
"version": "1.0.0"
|
|
72
|
+
},
|
|
73
|
+
"schema_version": 3
|
|
74
|
+
}
|
|
@@ -1,42 +1,60 @@
|
|
|
1
1
|
{
|
|
2
2
|
"_generated": "GENERATED by @verndale/accessibility-standards; DO NOT EDIT",
|
|
3
|
-
"
|
|
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
|
+
},
|
|
4
11
|
"pattern": {
|
|
5
|
-
"id": "pattern.tabs",
|
|
6
|
-
"version": "1.0.0",
|
|
7
|
-
"title": "Tabs",
|
|
8
|
-
"kind": "pattern",
|
|
9
|
-
"requires": [
|
|
10
|
-
"semantics.accessible-name",
|
|
11
|
-
"semantics.selected-state",
|
|
12
|
-
"semantics.keyboard",
|
|
13
|
-
"semantics.focus.visible"
|
|
14
|
-
],
|
|
15
12
|
"activation": {
|
|
16
|
-
"
|
|
17
|
-
|
|
13
|
+
"contains": {
|
|
14
|
+
"fact": "component.accessibility_pattern_ids",
|
|
15
|
+
"value": "pattern.tabs"
|
|
16
|
+
}
|
|
18
17
|
},
|
|
19
|
-
"scope": "Tabbed interfaces",
|
|
20
18
|
"behavior": [
|
|
21
19
|
"Arrow keys move between tabs",
|
|
22
20
|
"Selection and activation follow the documented model"
|
|
23
21
|
],
|
|
24
|
-
"
|
|
25
|
-
"
|
|
22
|
+
"evidence_routes": [
|
|
23
|
+
"unit",
|
|
24
|
+
"axe",
|
|
25
|
+
"e2e",
|
|
26
|
+
"human"
|
|
26
27
|
],
|
|
27
28
|
"functional_spec_bindings": [
|
|
28
29
|
"behavior",
|
|
29
30
|
"states",
|
|
30
31
|
"keyboard"
|
|
31
32
|
],
|
|
33
|
+
"id": "pattern.tabs",
|
|
32
34
|
"implementation_outcomes": [
|
|
33
35
|
"tabs-keyboard-model"
|
|
34
36
|
],
|
|
35
|
-
"
|
|
36
|
-
|
|
37
|
-
"
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
37
|
+
"kind": "pattern",
|
|
38
|
+
"product_decisions": [
|
|
39
|
+
"automatic_or_manual_activation"
|
|
40
|
+
],
|
|
41
|
+
"requires": [
|
|
42
|
+
"semantics.accessible-name",
|
|
43
|
+
"semantics.selected-state",
|
|
44
|
+
"semantics.keyboard",
|
|
45
|
+
"semantics.focus.visible"
|
|
46
|
+
],
|
|
47
|
+
"scope": "Tabbed interfaces",
|
|
48
|
+
"standards_refs": [
|
|
49
|
+
{
|
|
50
|
+
"authority": "aria-apg",
|
|
51
|
+
"identifier": "tabs",
|
|
52
|
+
"normative": false,
|
|
53
|
+
"url": "https://www.w3.org/WAI/ARIA/apg/patterns/tabs/"
|
|
54
|
+
}
|
|
55
|
+
],
|
|
56
|
+
"title": "Tabs",
|
|
57
|
+
"version": "1.0.0"
|
|
58
|
+
},
|
|
59
|
+
"schema_version": 3
|
|
42
60
|
}
|
|
@@ -1,37 +1,55 @@
|
|
|
1
1
|
{
|
|
2
2
|
"_generated": "GENERATED by @verndale/accessibility-standards; DO NOT EDIT",
|
|
3
|
-
"
|
|
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
|
+
},
|
|
4
11
|
"pattern": {
|
|
5
|
-
"id": "pattern.tooltip",
|
|
6
|
-
"version": "1.0.0",
|
|
7
|
-
"title": "Tooltip",
|
|
8
|
-
"kind": "pattern",
|
|
9
|
-
"requires": [
|
|
10
|
-
"semantics.accessible-name",
|
|
11
|
-
"semantics.keyboard.escape"
|
|
12
|
-
],
|
|
13
12
|
"activation": {
|
|
14
|
-
"
|
|
15
|
-
|
|
13
|
+
"contains": {
|
|
14
|
+
"fact": "component.accessibility_pattern_ids",
|
|
15
|
+
"value": "pattern.tooltip"
|
|
16
|
+
}
|
|
16
17
|
},
|
|
17
|
-
"scope": "Supplementary description",
|
|
18
18
|
"behavior": [
|
|
19
19
|
"Available on hover and focus",
|
|
20
20
|
"Never contains interactive content"
|
|
21
21
|
],
|
|
22
|
-
"
|
|
23
|
-
"
|
|
22
|
+
"evidence_routes": [
|
|
23
|
+
"unit",
|
|
24
|
+
"e2e",
|
|
25
|
+
"human"
|
|
24
26
|
],
|
|
25
27
|
"functional_spec_bindings": [
|
|
26
28
|
"behavior"
|
|
27
29
|
],
|
|
30
|
+
"id": "pattern.tooltip",
|
|
28
31
|
"implementation_outcomes": [
|
|
29
32
|
"tooltip-description"
|
|
30
33
|
],
|
|
31
|
-
"
|
|
32
|
-
|
|
33
|
-
"
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
34
|
+
"kind": "pattern",
|
|
35
|
+
"product_decisions": [
|
|
36
|
+
"delay"
|
|
37
|
+
],
|
|
38
|
+
"requires": [
|
|
39
|
+
"semantics.accessible-name",
|
|
40
|
+
"semantics.keyboard.escape"
|
|
41
|
+
],
|
|
42
|
+
"scope": "Supplementary description",
|
|
43
|
+
"standards_refs": [
|
|
44
|
+
{
|
|
45
|
+
"authority": "aria-apg",
|
|
46
|
+
"identifier": "tooltip",
|
|
47
|
+
"normative": false,
|
|
48
|
+
"url": "https://www.w3.org/WAI/ARIA/apg/patterns/tooltip/"
|
|
49
|
+
}
|
|
50
|
+
],
|
|
51
|
+
"title": "Tooltip",
|
|
52
|
+
"version": "1.0.0"
|
|
53
|
+
},
|
|
54
|
+
"schema_version": 3
|
|
37
55
|
}
|