@surea11y/core 1.2.0 → 1.4.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/CHANGELOG.md +81 -7
- package/LICENSE +373 -21
- package/README.md +175 -35
- package/bin/surea11y-core.js +20 -0
- package/docs/API_STABILITY.md +27 -1
- package/docs/BINDING_AUTHORS_GUIDE.md +9 -9
- package/docs/CI_INTEGRATIONS.md +103 -0
- package/docs/ENGINE_OPTIONS.md +2 -0
- package/docs/I18N.md +12 -9
- package/docs/INTEGRATION.md +19 -1
- package/docs/LIMITATIONS.md +1 -1
- package/docs/OUTPUT_SCHEMA.md +1 -1
- package/docs/REPORT.md +1 -1
- package/docs/RULE_CATALOG.md +1 -1
- package/docs/SARIF.md +59 -0
- package/package.json +63 -18
- package/src/baseline.js +0 -0
- package/src/checks/automatic/area-alt-present.js +63 -31
- package/src/checks/automatic/aria-allowed-attr.js +204 -80
- package/src/checks/automatic/aria-allowed-role.js +23 -7
- package/src/checks/automatic/aria-braille-equivalent.js +34 -10
- package/src/checks/automatic/aria-conditional-attr.js +32 -14
- package/src/checks/automatic/aria-deprecated-role.js +26 -11
- package/src/checks/automatic/aria-hidden-body.js +48 -23
- package/src/checks/automatic/aria-hidden-focus.js +420 -66
- package/src/checks/automatic/aria-prohibited-attr.js +327 -60
- package/src/checks/automatic/aria-prohibited-children.js +111 -103
- package/src/checks/automatic/aria-required-attr.js +29 -15
- package/src/checks/automatic/aria-required-children.js +44 -24
- package/src/checks/automatic/aria-required-parent.js +64 -35
- package/src/checks/automatic/aria-role-name-present.js +49 -21
- package/src/checks/automatic/aria-roles-valid.js +24 -12
- package/src/checks/automatic/aria-valid-attr-value.js +46 -22
- package/src/checks/automatic/aria-valid-attr.js +19 -5
- package/src/checks/automatic/autocomplete-valid.js +76 -16
- package/src/checks/automatic/avoid-inline-spacing.js +23 -8
- package/src/checks/automatic/binary-control-name-present.js +62 -50
- package/src/checks/automatic/button-name-present.js +54 -24
- package/src/checks/automatic/bypass-blocks-present.js +51 -32
- package/src/checks/automatic/canvas-text-alternative-present.js +59 -26
- package/src/checks/automatic/combobox-name-present.js +40 -45
- package/src/checks/automatic/contrast-computable.js +363 -341
- package/src/checks/automatic/contrast-enhanced.js +489 -466
- package/src/checks/automatic/contrast-minimum.js +488 -465
- package/src/checks/automatic/css-orientation-lock.js +51 -35
- package/src/checks/automatic/definition-list-children-valid.js +46 -25
- package/src/checks/automatic/deprecated-elements-not-used.js +25 -9
- package/src/checks/automatic/dialog-name-present.js +47 -85
- package/src/checks/automatic/dlitem-parent-valid.js +25 -8
- package/src/checks/automatic/duplicate-id-aria.js +28 -9
- package/src/checks/automatic/embed-text-alternative-present.js +88 -35
- package/src/checks/automatic/form-control-programmatic-label-present.js +81 -196
- package/src/checks/automatic/form-control-single-label.js +50 -14
- package/src/checks/automatic/html-xml-lang-mismatch.js +36 -18
- package/src/checks/automatic/iframe-focusable-content.js +265 -22
- package/src/checks/automatic/iframe-name-present.js +33 -9
- package/src/checks/automatic/iframe-title-unique.js +32 -9
- package/src/checks/automatic/img-alt-present.js +54 -52
- package/src/checks/automatic/input-image-alt-present.js +141 -112
- package/src/checks/automatic/label-in-name.js +65 -41
- package/src/checks/automatic/language-page-present.js +111 -109
- package/src/checks/automatic/link-in-text-block.js +61 -19
- package/src/checks/automatic/link-name-present.js +47 -14
- package/src/checks/automatic/list-children-valid.js +40 -33
- package/src/checks/automatic/listbox-name-present.js +41 -19
- package/src/checks/automatic/listitem-parent-valid.js +48 -13
- package/src/checks/automatic/menuitem-name-present.js +41 -61
- package/src/checks/automatic/meta-refresh-no-exceptions.js +32 -11
- package/src/checks/automatic/meta-refresh-timing-absent.js +22 -6
- package/src/checks/automatic/meta-viewport-zoom-enabled.js +26 -7
- package/src/checks/automatic/meter-name-present.js +40 -36
- package/src/checks/automatic/nested-interactive-controls-absent.js +58 -15
- package/src/checks/automatic/object-text-alternative-present.js +93 -39
- package/src/checks/automatic/option-name-present.js +40 -21
- package/src/checks/automatic/page-title-present.js +19 -6
- package/src/checks/automatic/progressbar-name-present.js +49 -44
- package/src/checks/automatic/role-img-alt-present.js +211 -159
- package/src/checks/automatic/searchbox-name-present.js +41 -19
- package/src/checks/automatic/server-side-image-map-absent.js +27 -11
- package/src/checks/automatic/slider-name-present.js +42 -47
- package/src/checks/automatic/spinbutton-name-present.js +41 -19
- package/src/checks/automatic/summary-name-present.js +39 -17
- package/src/checks/automatic/svg-image-text-alternative-present.js +116 -47
- package/src/checks/automatic/svg-text-alternative-present.js +262 -230
- package/src/checks/automatic/tab-name-present.js +39 -60
- package/src/checks/automatic/table-headers-attr-valid.js +27 -10
- package/src/checks/automatic/table-th-has-data-cells.js +24 -8
- package/src/checks/automatic/target-size-minimum.js +123 -48
- package/src/checks/automatic/td-has-header.js +53 -12
- package/src/checks/automatic/textbox-name-present.js +41 -19
- package/src/checks/automatic/tooltip-name-present.js +39 -18
- package/src/checks/automatic/treeitem-name-present.js +40 -21
- package/src/checks/automatic/valid-lang.js +22 -6
- package/src/checks/automatic/video-poster-text-alternative-present.js +81 -36
- package/src/checks/manual/accesskeys-manual.js +17 -6
- package/src/checks/manual/area-alt-decorative-manual.js +194 -193
- package/src/checks/manual/area-alt-quality-manual.js +184 -141
- package/src/checks/manual/aria-checked-state-mismatch-manual.js +48 -34
- package/src/checks/manual/aria-text-manual.js +20 -11
- package/src/checks/manual/canvas-text-alternative-quality-manual.js +151 -114
- package/src/checks/manual/css-hidden-focus.js +375 -169
- package/src/checks/manual/embed-text-alternative-quality-manual.js +178 -162
- package/src/checks/manual/empty-heading-manual.js +41 -24
- package/src/checks/manual/empty-table-header-manual.js +69 -31
- package/src/checks/manual/focus-order-semantics-manual.js +60 -13
- package/src/checks/manual/form-control-programmatic-label-quality-manual.js +209 -246
- package/src/checks/manual/heading-order-manual.js +50 -8
- package/src/checks/manual/identical-links-same-purpose-manual.js +36 -12
- package/src/checks/manual/image-redundant-alt-manual.js +38 -8
- package/src/checks/manual/img-alt-decorative-manual.js +133 -96
- package/src/checks/manual/img-alt-quality-manual.js +178 -127
- package/src/checks/manual/input-image-alt-decorative-manual.js +127 -92
- package/src/checks/manual/input-image-alt-quality-manual.js +127 -92
- package/src/checks/manual/label-title-only-manual.js +44 -28
- package/src/checks/manual/landmark-banner-is-top-level-manual.js +95 -38
- package/src/checks/manual/landmark-contentinfo-is-top-level-manual.js +85 -32
- package/src/checks/manual/landmark-main-is-top-level-manual.js +69 -27
- package/src/checks/manual/landmark-no-duplicate-banner-manual.js +45 -33
- package/src/checks/manual/landmark-no-duplicate-contentinfo-manual.js +43 -31
- package/src/checks/manual/landmark-no-duplicate-main-manual.js +27 -21
- package/src/checks/manual/landmark-one-main-manual.js +38 -43
- package/src/checks/manual/landmark-unique-manual.js +78 -67
- package/src/checks/manual/link-name-quality-manual.js +45 -12
- package/src/checks/manual/media-transcript-present-manual.js +37 -22
- package/src/checks/manual/meta-viewport-large-manual.js +19 -6
- package/src/checks/manual/mouse-only-event-handlers-manual.js +40 -11
- package/src/checks/manual/no-autoplay-audio-manual.js +22 -6
- package/src/checks/manual/object-text-alternative-quality-manual.js +177 -154
- package/src/checks/manual/p-as-heading-manual.js +24 -7
- package/src/checks/manual/page-has-heading-one-manual.js +42 -32
- package/src/checks/manual/page-title-patterns-manual.js +80 -50
- package/src/checks/manual/presentation-role-conflict-manual.js +101 -47
- package/src/checks/manual/region-manual.js +244 -60
- package/src/checks/manual/scope-attr-valid-manual.js +13 -4
- package/src/checks/manual/scrollable-region-focusable-manual.js +39 -11
- package/src/checks/manual/skip-link-manual.js +42 -18
- package/src/checks/manual/svg-text-alternative-quality-manual.js +208 -165
- package/src/checks/manual/tabindex-manual.js +13 -4
- package/src/checks/manual/table-duplicate-name-manual.js +22 -11
- package/src/checks/manual/table-fake-caption-manual.js +48 -10
- package/src/checks/manual/video-caption-manual.js +17 -4
- package/src/checks/manual-review.js +58 -12
- package/src/core.js +41705 -29650
- package/src/index.js +2 -0
- package/src/report.js +109 -47
- package/src/sarif.js +190 -0
- package/surea11y.browser.js +37774 -0
- package/bin/core.js +0 -348
- package/docs/CLI.md +0 -75
- package/src/catalogs/composites.wcag.js +0 -490
- package/src/checks/rules-and-tags.full.csv +0 -19
- package/src/checks/rules-and-tags.full.json +0 -259
- package/src/core/aria-helpers.js +0 -970
- package/src/core/contrast-helpers.js +0 -1147
- package/src/core/dom-helpers.js +0 -4235
- package/src/core/dom-runner.js +0 -671
- package/src/core/frame-messaging.js +0 -210
- package/src/core/frame-scan.js +0 -178
- package/src/core/rollup-composites.js +0 -135
- package/src/core/rule-meta.js +0 -159
- package/src/coverage/wcag-facets.js +0 -1079
- package/src/coverage/wcag-version-map.js +0 -84
- package/src/i18n/en.js +0 -923
- package/src/i18n/fr.js +0 -844
- package/src/policy/contracts.js +0 -18
- package/src/policy/resolvePolicy.js +0 -55
- package/src/policy/schemas/engine-options.schema.json +0 -103
- package/src/policy/schemas/policy-contract.schema.json +0 -40
|
@@ -1,490 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Composite rules catalog (human-facing).
|
|
5
|
-
*
|
|
6
|
-
* A composite rule groups existing atomic checks (checks) by listing their ids in `checksIds`.
|
|
7
|
-
*
|
|
8
|
-
* For now, composites are grouped per WCAG Success Criterion (SC).
|
|
9
|
-
*/
|
|
10
|
-
module.exports = [
|
|
11
|
-
{
|
|
12
|
-
id: 'wcag-1.1.1-non-text-content',
|
|
13
|
-
checksIds: [
|
|
14
|
-
'area-alt-present',
|
|
15
|
-
'img-alt-decorative',
|
|
16
|
-
'img-alt-quality',
|
|
17
|
-
'area-alt-decorative',
|
|
18
|
-
'area-alt-quality',
|
|
19
|
-
'canvas-text-alternative-quality',
|
|
20
|
-
'canvas-text-alternative-present',
|
|
21
|
-
'embed-text-alternative-present',
|
|
22
|
-
'img-alt-present',
|
|
23
|
-
'input-image-alt-present',
|
|
24
|
-
'object-text-alternative-present',
|
|
25
|
-
'role-img-text-alternative-present',
|
|
26
|
-
'svg-image-text-alternative-present',
|
|
27
|
-
'svg-text-alternative-present',
|
|
28
|
-
'video-poster-text-alternative-present',
|
|
29
|
-
'embed-text-alternative-quality',
|
|
30
|
-
'input-image-alt-decorative',
|
|
31
|
-
'input-image-alt-quality',
|
|
32
|
-
'object-text-alternative-quality',
|
|
33
|
-
'svg-text-alternative-quality',
|
|
34
|
-
'meter-name-present',
|
|
35
|
-
'progressbar-name-present'
|
|
36
|
-
],
|
|
37
|
-
meta: {
|
|
38
|
-
title: 'Non-text content: text alternatives',
|
|
39
|
-
description: 'Rollup of checks ensuring non-text content has an appropriate text alternative.',
|
|
40
|
-
wcagSc: ['1.1.1'],
|
|
41
|
-
level: 'A'
|
|
42
|
-
}
|
|
43
|
-
},
|
|
44
|
-
|
|
45
|
-
{
|
|
46
|
-
id: 'wcag-1.2.1-audio-only-video-only-prerecorded',
|
|
47
|
-
checksIds: [
|
|
48
|
-
'media-alternative-transcript-evidence'
|
|
49
|
-
],
|
|
50
|
-
meta: {
|
|
51
|
-
title: 'Audio-only and video-only (prerecorded): transcript',
|
|
52
|
-
description: 'Rollup of checks for transcript availability for prerecorded audio-only/video-only media.',
|
|
53
|
-
wcagSc: ['1.2.1'],
|
|
54
|
-
level: 'A'
|
|
55
|
-
}
|
|
56
|
-
},
|
|
57
|
-
|
|
58
|
-
{
|
|
59
|
-
id: 'wcag-1.2.2-captions-prerecorded',
|
|
60
|
-
checksIds: [
|
|
61
|
-
'video-caption'
|
|
62
|
-
],
|
|
63
|
-
meta: {
|
|
64
|
-
title: 'Captions (Prerecorded)',
|
|
65
|
-
description: 'Rollup of checks for captions-track evidence on prerecorded video.',
|
|
66
|
-
wcagSc: ['1.2.2'],
|
|
67
|
-
level: 'A'
|
|
68
|
-
}
|
|
69
|
-
},
|
|
70
|
-
|
|
71
|
-
{
|
|
72
|
-
id: 'wcag-1.3.1-info-and-relationships',
|
|
73
|
-
checksIds: [
|
|
74
|
-
'table-headers-attr-valid',
|
|
75
|
-
'table-th-has-data-cells',
|
|
76
|
-
'aria-hidden-body',
|
|
77
|
-
'list-children-valid',
|
|
78
|
-
'listitem-parent-valid',
|
|
79
|
-
'definition-list-children-valid',
|
|
80
|
-
'dlitem-parent-valid',
|
|
81
|
-
'form-control-programmatic-label-present',
|
|
82
|
-
'p-as-heading',
|
|
83
|
-
'table-fake-caption',
|
|
84
|
-
'td-has-header'
|
|
85
|
-
],
|
|
86
|
-
meta: {
|
|
87
|
-
title: 'Info and Relationships',
|
|
88
|
-
description: 'Rollup of checks ensuring information, structure, and relationships conveyed through presentation are programmatically determinable.',
|
|
89
|
-
wcagSc: ['1.3.1'],
|
|
90
|
-
level: 'A'
|
|
91
|
-
}
|
|
92
|
-
},
|
|
93
|
-
|
|
94
|
-
{
|
|
95
|
-
id: 'wcag-1.4.1-use-of-color',
|
|
96
|
-
checksIds: [
|
|
97
|
-
'link-in-text-block'
|
|
98
|
-
],
|
|
99
|
-
meta: {
|
|
100
|
-
title: 'Use of Color',
|
|
101
|
-
description: 'Rollup of checks ensuring color is not used as the only visual means of conveying information.',
|
|
102
|
-
wcagSc: ['1.4.1'],
|
|
103
|
-
level: 'A'
|
|
104
|
-
}
|
|
105
|
-
},
|
|
106
|
-
|
|
107
|
-
{
|
|
108
|
-
id: 'wcag-1.4.2-audio-control',
|
|
109
|
-
checksIds: [
|
|
110
|
-
'no-autoplay-audio'
|
|
111
|
-
],
|
|
112
|
-
meta: {
|
|
113
|
-
title: 'Audio Control',
|
|
114
|
-
description: 'Rollup of checks for a pause/stop or volume-control mechanism on autoplaying audio.',
|
|
115
|
-
wcagSc: ['1.4.2'],
|
|
116
|
-
level: 'A'
|
|
117
|
-
}
|
|
118
|
-
},
|
|
119
|
-
|
|
120
|
-
{
|
|
121
|
-
id: 'wcag-1.4.3-contrast-minimum',
|
|
122
|
-
checksIds: [
|
|
123
|
-
'contrast-computable',
|
|
124
|
-
'contrast-minimum'
|
|
125
|
-
],
|
|
126
|
-
meta: {
|
|
127
|
-
title: 'Contrast: minimum',
|
|
128
|
-
description: 'Rollup of checks for minimum text contrast.',
|
|
129
|
-
wcagSc: ['1.4.3'],
|
|
130
|
-
level: 'AA'
|
|
131
|
-
}
|
|
132
|
-
},
|
|
133
|
-
|
|
134
|
-
{
|
|
135
|
-
id: 'wcag-1.4.6-contrast-enhanced',
|
|
136
|
-
checksIds: [
|
|
137
|
-
'contrast-computable',
|
|
138
|
-
'contrast-enhanced'
|
|
139
|
-
],
|
|
140
|
-
meta: {
|
|
141
|
-
title: 'Contrast: enhanced',
|
|
142
|
-
description: 'Rollup of checks for enhanced text contrast.',
|
|
143
|
-
wcagSc: ['1.4.6'],
|
|
144
|
-
level: 'AAA'
|
|
145
|
-
}
|
|
146
|
-
},
|
|
147
|
-
|
|
148
|
-
{
|
|
149
|
-
id: 'wcag-2.1.1-keyboard',
|
|
150
|
-
checksIds: [
|
|
151
|
-
'manual-review',
|
|
152
|
-
'iframe-focusable-content',
|
|
153
|
-
'server-side-image-map-absent',
|
|
154
|
-
'scrollable-region-focusable',
|
|
155
|
-
'mouse-only-event-handlers'
|
|
156
|
-
],
|
|
157
|
-
meta: {
|
|
158
|
-
title: 'Keyboard',
|
|
159
|
-
description: 'Rollup of checks ensuring functionality is operable through a keyboard interface.',
|
|
160
|
-
wcagSc: ['2.1.1'],
|
|
161
|
-
level: 'A'
|
|
162
|
-
}
|
|
163
|
-
},
|
|
164
|
-
|
|
165
|
-
{
|
|
166
|
-
id: 'wcag-2.1.3-keyboard-no-exception',
|
|
167
|
-
checksIds: [
|
|
168
|
-
'scrollable-region-focusable'
|
|
169
|
-
],
|
|
170
|
-
meta: {
|
|
171
|
-
title: 'Keyboard (No Exception)',
|
|
172
|
-
description: 'Rollup of checks ensuring functionality is operable through a keyboard interface with no exceptions (AAA).',
|
|
173
|
-
wcagSc: ['2.1.3'],
|
|
174
|
-
level: 'AAA'
|
|
175
|
-
}
|
|
176
|
-
},
|
|
177
|
-
|
|
178
|
-
{
|
|
179
|
-
id: 'wcag-2.2.2-pause-stop-hide',
|
|
180
|
-
checksIds: [
|
|
181
|
-
'deprecated-elements-not-used'
|
|
182
|
-
],
|
|
183
|
-
meta: {
|
|
184
|
-
title: 'Pause, Stop, Hide',
|
|
185
|
-
description: 'Rollup of checks ensuring moving, blinking, or auto-scrolling content can be paused, stopped, or hidden.',
|
|
186
|
-
wcagSc: ['2.2.2'],
|
|
187
|
-
level: 'A'
|
|
188
|
-
}
|
|
189
|
-
},
|
|
190
|
-
|
|
191
|
-
{
|
|
192
|
-
id: 'wcag-2.4.1-bypass-blocks',
|
|
193
|
-
checksIds: [
|
|
194
|
-
'bypass-blocks-present'
|
|
195
|
-
],
|
|
196
|
-
meta: {
|
|
197
|
-
title: 'Bypass Blocks',
|
|
198
|
-
description: 'Rollup of checks ensuring the page provides a way to bypass repeated blocks of content.',
|
|
199
|
-
wcagSc: ['2.4.1'],
|
|
200
|
-
level: 'A'
|
|
201
|
-
}
|
|
202
|
-
},
|
|
203
|
-
|
|
204
|
-
{
|
|
205
|
-
id: 'wcag-2.4.2-page-titled',
|
|
206
|
-
checksIds: [
|
|
207
|
-
'page-title-patterns',
|
|
208
|
-
'page-title-present'
|
|
209
|
-
],
|
|
210
|
-
meta: {
|
|
211
|
-
title: 'Page titled',
|
|
212
|
-
description: 'Rollup of checks ensuring documents have a meaningful page title.',
|
|
213
|
-
wcagSc: ['2.4.2'],
|
|
214
|
-
level: 'A'
|
|
215
|
-
}
|
|
216
|
-
},
|
|
217
|
-
|
|
218
|
-
{
|
|
219
|
-
id: 'wcag-2.4.3-focus-order',
|
|
220
|
-
checksIds: [
|
|
221
|
-
'manual-review'
|
|
222
|
-
],
|
|
223
|
-
meta: {
|
|
224
|
-
title: 'Focus order',
|
|
225
|
-
description: 'Rollup of checks ensuring focus moves through content in a meaningful order.',
|
|
226
|
-
wcagSc: ['2.4.3'],
|
|
227
|
-
level: 'A'
|
|
228
|
-
}
|
|
229
|
-
},
|
|
230
|
-
|
|
231
|
-
{
|
|
232
|
-
id: 'wcag-2.4.4-link-purpose-in-context',
|
|
233
|
-
checksIds: [
|
|
234
|
-
'link-name-quality'
|
|
235
|
-
],
|
|
236
|
-
meta: {
|
|
237
|
-
title: 'Link Purpose (In Context)',
|
|
238
|
-
description: 'Rollup of checks flagging links whose text alone is a known non-descriptive/generic phrase.',
|
|
239
|
-
wcagSc: ['2.4.4'],
|
|
240
|
-
level: 'A'
|
|
241
|
-
}
|
|
242
|
-
},
|
|
243
|
-
|
|
244
|
-
{
|
|
245
|
-
id: 'wcag-2.4.7-focus-visible',
|
|
246
|
-
checksIds: [
|
|
247
|
-
'aria-hidden-focus',
|
|
248
|
-
'css-hidden-focus',
|
|
249
|
-
'manual-review'
|
|
250
|
-
],
|
|
251
|
-
meta: {
|
|
252
|
-
title: 'Focus visible',
|
|
253
|
-
description: 'Rollup of checks ensuring keyboard focus is not hidden and remains perceivable.',
|
|
254
|
-
wcagSc: ['2.4.7'],
|
|
255
|
-
level: 'AA'
|
|
256
|
-
}
|
|
257
|
-
},
|
|
258
|
-
|
|
259
|
-
{
|
|
260
|
-
id: 'wcag-2.4.9-link-purpose-link-only',
|
|
261
|
-
checksIds: [
|
|
262
|
-
'identical-links-same-purpose'
|
|
263
|
-
],
|
|
264
|
-
meta: {
|
|
265
|
-
title: 'Link Purpose (Link Only)',
|
|
266
|
-
description: 'Rollup of checks ensuring links with the same accessible name serve the same purpose (AAA).',
|
|
267
|
-
wcagSc: ['2.4.9'],
|
|
268
|
-
level: 'AAA'
|
|
269
|
-
}
|
|
270
|
-
},
|
|
271
|
-
{
|
|
272
|
-
id: 'wcag-2.5.3-label-in-name',
|
|
273
|
-
checksIds: [
|
|
274
|
-
'label-in-name'
|
|
275
|
-
],
|
|
276
|
-
meta: {
|
|
277
|
-
title: 'Label in name',
|
|
278
|
-
description: 'Rollup of checks ensuring that when a control has a visible text label, the accessible name contains that visible label text.',
|
|
279
|
-
wcagSc: ['2.5.3'],
|
|
280
|
-
level: 'A'
|
|
281
|
-
}
|
|
282
|
-
},
|
|
283
|
-
{
|
|
284
|
-
id: 'wcag-2.5.8-target-size-minimum',
|
|
285
|
-
checksIds: [
|
|
286
|
-
'target-size-minimum'
|
|
287
|
-
],
|
|
288
|
-
meta: {
|
|
289
|
-
title: 'Target size: minimum',
|
|
290
|
-
description: 'Rollup of checks ensuring pointer targets meet minimum size requirements.',
|
|
291
|
-
wcagSc: ['2.5.8'],
|
|
292
|
-
level: 'AA'
|
|
293
|
-
}
|
|
294
|
-
},
|
|
295
|
-
|
|
296
|
-
{
|
|
297
|
-
id: 'wcag-3.1.1-language-of-page',
|
|
298
|
-
checksIds: [
|
|
299
|
-
'html-lang-attr-present',
|
|
300
|
-
'html-xml-lang-mismatch'
|
|
301
|
-
],
|
|
302
|
-
meta: {
|
|
303
|
-
title: 'Language of page',
|
|
304
|
-
description: 'Rollup of checks ensuring the page language is specified.',
|
|
305
|
-
wcagSc: ['3.1.1'],
|
|
306
|
-
level: 'A'
|
|
307
|
-
}
|
|
308
|
-
},
|
|
309
|
-
|
|
310
|
-
{
|
|
311
|
-
id: 'wcag-3.1.2-language-of-parts',
|
|
312
|
-
checksIds: [
|
|
313
|
-
'valid-lang'
|
|
314
|
-
],
|
|
315
|
-
meta: {
|
|
316
|
-
title: 'Language of Parts',
|
|
317
|
-
description: 'Rollup of checks ensuring elements whose language differs from the page default declare it correctly.',
|
|
318
|
-
wcagSc: ['3.1.2'],
|
|
319
|
-
level: 'AA'
|
|
320
|
-
}
|
|
321
|
-
},
|
|
322
|
-
|
|
323
|
-
{
|
|
324
|
-
id: 'wcag-1.3.4-orientation',
|
|
325
|
-
checksIds: [
|
|
326
|
-
'css-orientation-lock'
|
|
327
|
-
],
|
|
328
|
-
meta: {
|
|
329
|
-
title: 'Orientation',
|
|
330
|
-
description: 'Rollup of checks ensuring content does not restrict its view to a single display orientation.',
|
|
331
|
-
wcagSc: ['1.3.4'],
|
|
332
|
-
level: 'AA'
|
|
333
|
-
}
|
|
334
|
-
},
|
|
335
|
-
|
|
336
|
-
{
|
|
337
|
-
id: 'wcag-1.3.5-identify-input-purpose',
|
|
338
|
-
checksIds: [
|
|
339
|
-
'autocomplete-valid'
|
|
340
|
-
],
|
|
341
|
-
meta: {
|
|
342
|
-
title: 'Identify Input Purpose',
|
|
343
|
-
description: 'Rollup of checks ensuring the autocomplete attribute correctly identifies input purpose.',
|
|
344
|
-
wcagSc: ['1.3.5'],
|
|
345
|
-
level: 'AA'
|
|
346
|
-
}
|
|
347
|
-
},
|
|
348
|
-
|
|
349
|
-
{
|
|
350
|
-
id: 'wcag-1.4.12-text-spacing',
|
|
351
|
-
checksIds: [
|
|
352
|
-
'avoid-inline-spacing'
|
|
353
|
-
],
|
|
354
|
-
meta: {
|
|
355
|
-
title: 'Text Spacing',
|
|
356
|
-
description: 'Rollup of checks ensuring inline styles do not block user text-spacing overrides.',
|
|
357
|
-
wcagSc: ['1.4.12'],
|
|
358
|
-
level: 'AA'
|
|
359
|
-
}
|
|
360
|
-
},
|
|
361
|
-
|
|
362
|
-
{
|
|
363
|
-
id: 'wcag-2.2.4-interruptions',
|
|
364
|
-
checksIds: [
|
|
365
|
-
'meta-refresh-no-exceptions'
|
|
366
|
-
],
|
|
367
|
-
meta: {
|
|
368
|
-
title: 'Interruptions',
|
|
369
|
-
description: 'Rollup of checks ensuring automatic context changes only happen at the user\'s request (AAA).',
|
|
370
|
-
wcagSc: ['2.2.4'],
|
|
371
|
-
level: 'AAA'
|
|
372
|
-
}
|
|
373
|
-
},
|
|
374
|
-
|
|
375
|
-
{
|
|
376
|
-
id: 'wcag-3.2.5-change-on-request',
|
|
377
|
-
checksIds: [
|
|
378
|
-
'meta-refresh-no-exceptions'
|
|
379
|
-
],
|
|
380
|
-
meta: {
|
|
381
|
-
title: 'Change on Request',
|
|
382
|
-
description: 'Rollup of checks ensuring context changes only happen at the user\'s request (AAA).',
|
|
383
|
-
wcagSc: ['3.2.5'],
|
|
384
|
-
level: 'AAA'
|
|
385
|
-
}
|
|
386
|
-
},
|
|
387
|
-
|
|
388
|
-
{
|
|
389
|
-
id: 'wcag-4.1.2-name',
|
|
390
|
-
checksIds: [
|
|
391
|
-
'aria-role-name-present',
|
|
392
|
-
'binary-control-name-present',
|
|
393
|
-
'button-name-present',
|
|
394
|
-
'combobox-name-present',
|
|
395
|
-
'dialog-name-present',
|
|
396
|
-
'form-control-programmatic-label-present',
|
|
397
|
-
'iframe-name-present',
|
|
398
|
-
'iframe-title-unique',
|
|
399
|
-
'link-name-present',
|
|
400
|
-
'listbox-name-present',
|
|
401
|
-
'menuitem-name-present',
|
|
402
|
-
'option-name-present',
|
|
403
|
-
'searchbox-name-present',
|
|
404
|
-
'slider-name-present',
|
|
405
|
-
'spinbutton-name-present',
|
|
406
|
-
'tab-name-present',
|
|
407
|
-
'textbox-name-present',
|
|
408
|
-
'treeitem-name-present',
|
|
409
|
-
'aria-hidden-focus',
|
|
410
|
-
'aria-hidden-body',
|
|
411
|
-
'form-control-programmatic-label-quality',
|
|
412
|
-
'summary-name-present',
|
|
413
|
-
'tooltip-name-present'
|
|
414
|
-
],
|
|
415
|
-
meta: {
|
|
416
|
-
title: 'Name, role, value: accessible name',
|
|
417
|
-
description: 'Rollup of checks that common interactive elements expose a non-empty accessible name.',
|
|
418
|
-
wcagSc: ['4.1.2'],
|
|
419
|
-
level: 'A'
|
|
420
|
-
}
|
|
421
|
-
},
|
|
422
|
-
|
|
423
|
-
{
|
|
424
|
-
id: 'wcag-4.1.2-aria-validity',
|
|
425
|
-
checksIds: [
|
|
426
|
-
'aria-roles-valid',
|
|
427
|
-
'aria-deprecated-role',
|
|
428
|
-
'aria-valid-attr',
|
|
429
|
-
'aria-valid-attr-value',
|
|
430
|
-
'aria-allowed-attr',
|
|
431
|
-
'aria-prohibited-attr',
|
|
432
|
-
'aria-required-attr',
|
|
433
|
-
'aria-allowed-role',
|
|
434
|
-
'aria-required-children',
|
|
435
|
-
'aria-prohibited-children',
|
|
436
|
-
'aria-required-parent',
|
|
437
|
-
'duplicate-id-aria',
|
|
438
|
-
'nested-interactive-controls-absent',
|
|
439
|
-
'aria-braille-equivalent',
|
|
440
|
-
'aria-conditional-attr',
|
|
441
|
-
'aria-checked-state-mismatch'
|
|
442
|
-
],
|
|
443
|
-
meta: {
|
|
444
|
-
title: 'Name, role, value: ARIA validity',
|
|
445
|
-
description: 'Rollup of checks that ARIA role and attribute usage conforms to the WAI-ARIA specification (valid roles, valid attributes, valid values, required attributes/relationships, unique ARIA-referenced ids).',
|
|
446
|
-
wcagSc: ['4.1.2'],
|
|
447
|
-
level: 'A'
|
|
448
|
-
}
|
|
449
|
-
},
|
|
450
|
-
|
|
451
|
-
{
|
|
452
|
-
id: 'wcag-1.4.4-resize-text',
|
|
453
|
-
checksIds: [
|
|
454
|
-
'meta-viewport-zoom-enabled'
|
|
455
|
-
],
|
|
456
|
-
meta: {
|
|
457
|
-
title: 'Resize Text',
|
|
458
|
-
description: 'Rollup of checks ensuring the viewport meta tag does not prevent users from zooming text up to 200%.',
|
|
459
|
-
wcagSc: ['1.4.4'],
|
|
460
|
-
level: 'AA'
|
|
461
|
-
}
|
|
462
|
-
},
|
|
463
|
-
|
|
464
|
-
{
|
|
465
|
-
id: 'wcag-2.2.1-timing-adjustable',
|
|
466
|
-
checksIds: [
|
|
467
|
-
'meta-refresh-timing-absent'
|
|
468
|
-
],
|
|
469
|
-
meta: {
|
|
470
|
-
title: 'Timing Adjustable',
|
|
471
|
-
description: 'Rollup of checks ensuring the page does not impose a timed refresh the user cannot control.',
|
|
472
|
-
wcagSc: ['2.2.1'],
|
|
473
|
-
level: 'A'
|
|
474
|
-
}
|
|
475
|
-
},
|
|
476
|
-
|
|
477
|
-
{
|
|
478
|
-
id: 'wcag-3.3.2-labels-or-instructions',
|
|
479
|
-
checksIds: [
|
|
480
|
-
'form-control-single-label',
|
|
481
|
-
'form-control-programmatic-label-present'
|
|
482
|
-
],
|
|
483
|
-
meta: {
|
|
484
|
-
title: 'Labels or Instructions',
|
|
485
|
-
description: 'Rollup of checks ensuring form controls have unambiguous labeling.',
|
|
486
|
-
wcagSc: ['3.3.2'],
|
|
487
|
-
level: 'A'
|
|
488
|
-
}
|
|
489
|
-
}
|
|
490
|
-
];
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
ruleId,type,title,tags,file
|
|
2
|
-
area-alt-decorative,manual,<area> with alt=\,wcag2a wcag111 nontext images imagemap manual atomic,area-alt-decorative-manual.js
|
|
3
|
-
area-alt-present,automatic,<area> must have an alt attribute,wcag2a wcag111 nontext images imagemap atomic automatic,area-alt-present.js
|
|
4
|
-
area-alt-quality,manual,<area> alt text must be appropriate (manual review),wcag2a wcag111 nontext images imagemap manual atomic,area-alt-quality-manual.js
|
|
5
|
-
canvas-text-alternative-present,automatic,<canvas> must provide a text alternative,wcag2a wcag111 nontext canvas atomic automatic,canvas-text-alternative-present.js
|
|
6
|
-
canvas-text-alternative-quality,manual,<canvas> text alternative must be appropriate (manual review),wcag2a wcag111 nontext canvas manual atomic,canvas-text-alternative-quality-manual.js
|
|
7
|
-
embed-text-alternative-present,automatic,<embed> must provide a text alternative,wcag2a wcag111 nontext embed atomic automatic,embed-text-alternative-present.js
|
|
8
|
-
embed-text-alternative-quality,manual,<embed> text alternative must be appropriate (manual review),wcag2a wcag111 nontext embed manual atomic,embed-text-alternative-quality-manual.js
|
|
9
|
-
img-alt-decorative,manual,<img> with alt=\,wcag2a wcag111 nontext images manual atomic,img-alt-decorative-manual.js
|
|
10
|
-
img-alt-present,automatic,<img> must have an alt attribute,wcag2a wcag111 nontext images atomic automatic,img-alt-present.js
|
|
11
|
-
img-alt-quality,manual,<img> alt text must be appropriate (manual review),wcag2a wcag111 nontext images manual atomic,img-alt-quality-manual.js
|
|
12
|
-
input-image-alt-decorative,manual,<input type=\,wcag2a wcag111 forms images manual atomic,input-image-alt-decorative-manual.js
|
|
13
|
-
input-image-alt-present,automatic,<input type=,wcag2a wcag111 nontext images atomic automatic,input-image-alt-present.js
|
|
14
|
-
input-image-alt-quality,manual,<input type=\,wcag2a wcag111 forms images manual atomic,input-image-alt-quality-manual.js
|
|
15
|
-
object-text-alternative-present,automatic,<object> must provide a text alternative,wcag2a wcag111 nontext object atomic automatic,object-text-alternative-present.js
|
|
16
|
-
object-text-alternative-quality,manual,<object> text alternative must be appropriate (manual review),wcag2a wcag111 nontext object manual atomic,object-text-alternative-quality-manual.js
|
|
17
|
-
svg-image-text-alternative-present,automatic,SVG <image> must have a text alternative,wcag2a wcag111 nontext svg image atomic automatic,svg-image-text-alternative-present.js
|
|
18
|
-
svg-text-alternative-present,automatic,<svg> must provide a text alternative,wcag2a wcag111 svg nontext images atomic automatic,svg-text-alternative-present.js
|
|
19
|
-
video-poster-text-alternative-present,automatic,<video> poster must have a text alternative,wcag2a wcag111 media video atomic automatic,video-poster-text-alternative-present.js
|