@surea11y/core 1.3.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.
Files changed (163) hide show
  1. package/CHANGELOG.md +46 -2
  2. package/README.md +109 -35
  3. package/bin/surea11y-core.js +20 -0
  4. package/docs/API_STABILITY.md +26 -0
  5. package/docs/CI_INTEGRATIONS.md +7 -7
  6. package/docs/ENGINE_OPTIONS.md +1 -1
  7. package/docs/I18N.md +12 -9
  8. package/docs/INTEGRATION.md +1 -1
  9. package/docs/LIMITATIONS.md +1 -1
  10. package/docs/REPORT.md +1 -1
  11. package/package.json +50 -16
  12. package/src/baseline.js +0 -0
  13. package/src/checks/automatic/area-alt-present.js +4 -6
  14. package/src/checks/automatic/aria-allowed-attr.js +15 -51
  15. package/src/checks/automatic/aria-allowed-role.js +2 -0
  16. package/src/checks/automatic/aria-braille-equivalent.js +2 -0
  17. package/src/checks/automatic/aria-conditional-attr.js +8 -7
  18. package/src/checks/automatic/aria-deprecated-role.js +4 -3
  19. package/src/checks/automatic/aria-hidden-body.js +6 -4
  20. package/src/checks/automatic/aria-hidden-focus.js +12 -13
  21. package/src/checks/automatic/aria-prohibited-attr.js +98 -105
  22. package/src/checks/automatic/aria-prohibited-children.js +56 -87
  23. package/src/checks/automatic/aria-required-attr.js +6 -7
  24. package/src/checks/automatic/aria-required-children.js +7 -10
  25. package/src/checks/automatic/aria-required-parent.js +20 -25
  26. package/src/checks/automatic/aria-role-name-present.js +2 -0
  27. package/src/checks/automatic/aria-roles-valid.js +2 -0
  28. package/src/checks/automatic/aria-valid-attr-value.js +18 -15
  29. package/src/checks/automatic/aria-valid-attr.js +2 -0
  30. package/src/checks/automatic/autocomplete-valid.js +2 -0
  31. package/src/checks/automatic/avoid-inline-spacing.js +3 -2
  32. package/src/checks/automatic/binary-control-name-present.js +2 -0
  33. package/src/checks/automatic/button-name-present.js +7 -7
  34. package/src/checks/automatic/bypass-blocks-present.js +9 -7
  35. package/src/checks/automatic/canvas-text-alternative-present.js +2 -0
  36. package/src/checks/automatic/combobox-name-present.js +2 -0
  37. package/src/checks/automatic/contrast-computable.js +2 -0
  38. package/src/checks/automatic/contrast-enhanced.js +2 -0
  39. package/src/checks/automatic/contrast-minimum.js +2 -0
  40. package/src/checks/automatic/css-orientation-lock.js +21 -27
  41. package/src/checks/automatic/definition-list-children-valid.js +6 -6
  42. package/src/checks/automatic/deprecated-elements-not-used.js +4 -2
  43. package/src/checks/automatic/dialog-name-present.js +10 -10
  44. package/src/checks/automatic/dlitem-parent-valid.js +2 -0
  45. package/src/checks/automatic/duplicate-id-aria.js +4 -3
  46. package/src/checks/automatic/embed-text-alternative-present.js +2 -0
  47. package/src/checks/automatic/form-control-programmatic-label-present.js +2 -0
  48. package/src/checks/automatic/form-control-single-label.js +6 -7
  49. package/src/checks/automatic/html-xml-lang-mismatch.js +2 -0
  50. package/src/checks/automatic/iframe-focusable-content.js +246 -18
  51. package/src/checks/automatic/iframe-name-present.js +2 -0
  52. package/src/checks/automatic/iframe-title-unique.js +3 -1
  53. package/src/checks/automatic/img-alt-present.js +7 -9
  54. package/src/checks/automatic/input-image-alt-present.js +4 -6
  55. package/src/checks/automatic/label-in-name.js +15 -19
  56. package/src/checks/automatic/language-page-present.js +2 -0
  57. package/src/checks/automatic/link-in-text-block.js +2 -0
  58. package/src/checks/automatic/link-name-present.js +2 -0
  59. package/src/checks/automatic/list-children-valid.js +14 -24
  60. package/src/checks/automatic/listbox-name-present.js +2 -0
  61. package/src/checks/automatic/listitem-parent-valid.js +30 -7
  62. package/src/checks/automatic/menuitem-name-present.js +2 -0
  63. package/src/checks/automatic/meta-refresh-no-exceptions.js +4 -4
  64. package/src/checks/automatic/meta-refresh-timing-absent.js +2 -0
  65. package/src/checks/automatic/meta-viewport-zoom-enabled.js +2 -0
  66. package/src/checks/automatic/meter-name-present.js +4 -3
  67. package/src/checks/automatic/nested-interactive-controls-absent.js +27 -5
  68. package/src/checks/automatic/object-text-alternative-present.js +2 -0
  69. package/src/checks/automatic/option-name-present.js +2 -0
  70. package/src/checks/automatic/page-title-present.js +2 -0
  71. package/src/checks/automatic/progressbar-name-present.js +8 -10
  72. package/src/checks/automatic/role-img-alt-present.js +4 -4
  73. package/src/checks/automatic/searchbox-name-present.js +2 -0
  74. package/src/checks/automatic/server-side-image-map-absent.js +4 -3
  75. package/src/checks/automatic/slider-name-present.js +2 -0
  76. package/src/checks/automatic/spinbutton-name-present.js +2 -0
  77. package/src/checks/automatic/summary-name-present.js +2 -0
  78. package/src/checks/automatic/svg-image-text-alternative-present.js +2 -0
  79. package/src/checks/automatic/svg-text-alternative-present.js +17 -5
  80. package/src/checks/automatic/tab-name-present.js +2 -0
  81. package/src/checks/automatic/table-headers-attr-valid.js +3 -2
  82. package/src/checks/automatic/table-th-has-data-cells.js +2 -0
  83. package/src/checks/automatic/target-size-minimum.js +5 -0
  84. package/src/checks/automatic/td-has-header.js +24 -1
  85. package/src/checks/automatic/textbox-name-present.js +2 -0
  86. package/src/checks/automatic/tooltip-name-present.js +2 -0
  87. package/src/checks/automatic/treeitem-name-present.js +2 -0
  88. package/src/checks/automatic/valid-lang.js +2 -0
  89. package/src/checks/automatic/video-poster-text-alternative-present.js +2 -0
  90. package/src/checks/manual/accesskeys-manual.js +3 -1
  91. package/src/checks/manual/area-alt-decorative-manual.js +2 -0
  92. package/src/checks/manual/area-alt-quality-manual.js +2 -0
  93. package/src/checks/manual/aria-checked-state-mismatch-manual.js +14 -23
  94. package/src/checks/manual/aria-text-manual.js +6 -5
  95. package/src/checks/manual/canvas-text-alternative-quality-manual.js +2 -0
  96. package/src/checks/manual/css-hidden-focus.js +184 -9
  97. package/src/checks/manual/embed-text-alternative-quality-manual.js +18 -13
  98. package/src/checks/manual/empty-heading-manual.js +17 -17
  99. package/src/checks/manual/empty-table-header-manual.js +52 -25
  100. package/src/checks/manual/focus-order-semantics-manual.js +16 -4
  101. package/src/checks/manual/form-control-programmatic-label-quality-manual.js +2 -0
  102. package/src/checks/manual/heading-order-manual.js +28 -1
  103. package/src/checks/manual/identical-links-same-purpose-manual.js +2 -0
  104. package/src/checks/manual/image-redundant-alt-manual.js +21 -1
  105. package/src/checks/manual/img-alt-decorative-manual.js +2 -0
  106. package/src/checks/manual/img-alt-quality-manual.js +2 -0
  107. package/src/checks/manual/input-image-alt-decorative-manual.js +2 -0
  108. package/src/checks/manual/input-image-alt-quality-manual.js +2 -0
  109. package/src/checks/manual/label-title-only-manual.js +29 -22
  110. package/src/checks/manual/landmark-banner-is-top-level-manual.js +54 -47
  111. package/src/checks/manual/landmark-contentinfo-is-top-level-manual.js +42 -26
  112. package/src/checks/manual/landmark-main-is-top-level-manual.js +41 -24
  113. package/src/checks/manual/landmark-no-duplicate-banner-manual.js +16 -23
  114. package/src/checks/manual/landmark-no-duplicate-contentinfo-manual.js +14 -21
  115. package/src/checks/manual/landmark-no-duplicate-main-manual.js +10 -13
  116. package/src/checks/manual/landmark-one-main-manual.js +12 -23
  117. package/src/checks/manual/landmark-unique-manual.js +37 -52
  118. package/src/checks/manual/link-name-quality-manual.js +2 -0
  119. package/src/checks/manual/media-transcript-present-manual.js +2 -0
  120. package/src/checks/manual/meta-viewport-large-manual.js +3 -1
  121. package/src/checks/manual/mouse-only-event-handlers-manual.js +2 -0
  122. package/src/checks/manual/no-autoplay-audio-manual.js +2 -0
  123. package/src/checks/manual/object-text-alternative-quality-manual.js +2 -0
  124. package/src/checks/manual/p-as-heading-manual.js +2 -0
  125. package/src/checks/manual/page-has-heading-one-manual.js +12 -11
  126. package/src/checks/manual/page-title-patterns-manual.js +2 -0
  127. package/src/checks/manual/presentation-role-conflict-manual.js +51 -37
  128. package/src/checks/manual/region-manual.js +27 -36
  129. package/src/checks/manual/scope-attr-valid-manual.js +3 -1
  130. package/src/checks/manual/scrollable-region-focusable-manual.js +2 -0
  131. package/src/checks/manual/skip-link-manual.js +7 -6
  132. package/src/checks/manual/svg-text-alternative-quality-manual.js +2 -0
  133. package/src/checks/manual/tabindex-manual.js +3 -1
  134. package/src/checks/manual/table-duplicate-name-manual.js +5 -4
  135. package/src/checks/manual/table-fake-caption-manual.js +24 -3
  136. package/src/checks/manual/video-caption-manual.js +2 -0
  137. package/src/checks/manual-review.js +2 -0
  138. package/src/core.js +6772 -2158
  139. package/src/index.js +2 -0
  140. package/src/report.js +51 -9
  141. package/src/sarif.js +18 -3
  142. package/surea11y.browser.js +2731 -999
  143. package/bin/core.js +0 -473
  144. package/docs/CLI.md +0 -128
  145. package/src/catalogs/composites.wcag.js +0 -454
  146. package/src/checks/rules-and-tags.full.csv +0 -19
  147. package/src/checks/rules-and-tags.full.json +0 -259
  148. package/src/core/aria-helpers.js +0 -1211
  149. package/src/core/contrast-helpers.js +0 -1302
  150. package/src/core/dom-helpers.js +0 -4493
  151. package/src/core/dom-runner.js +0 -787
  152. package/src/core/frame-messaging.js +0 -261
  153. package/src/core/frame-scan.js +0 -190
  154. package/src/core/rollup-composites.js +0 -127
  155. package/src/core/rule-meta.js +0 -176
  156. package/src/coverage/wcag-facets.js +0 -1079
  157. package/src/coverage/wcag-version-map.js +0 -84
  158. package/src/i18n/en.js +0 -1228
  159. package/src/i18n/fr.js +0 -1185
  160. package/src/policy/contracts.js +0 -18
  161. package/src/policy/resolvePolicy.js +0 -59
  162. package/src/policy/schemas/engine-options.schema.json +0 -103
  163. package/src/policy/schemas/policy-contract.schema.json +0 -40
@@ -1,259 +0,0 @@
1
- [
2
- {
3
- "file": "area-alt-decorative-manual.js",
4
- "ruleId": "area-alt-decorative",
5
- "title": "<area> with alt=\\",
6
- "tags": [
7
- "wcag2a",
8
- "wcag111",
9
- "nontext",
10
- "images",
11
- "imagemap",
12
- "manual",
13
- "atomic"
14
- ],
15
- "type": "manual"
16
- },
17
- {
18
- "file": "area-alt-present.js",
19
- "ruleId": "area-alt-present",
20
- "title": "&lt;area&gt; must have an alt attribute",
21
- "tags": [
22
- "wcag2a",
23
- "wcag111",
24
- "nontext",
25
- "images",
26
- "imagemap",
27
- "atomic",
28
- "automatic"
29
- ],
30
- "type": "automatic"
31
- },
32
- {
33
- "file": "area-alt-quality-manual.js",
34
- "ruleId": "area-alt-quality",
35
- "title": "<area> alt text must be appropriate (manual review)",
36
- "tags": [
37
- "wcag2a",
38
- "wcag111",
39
- "nontext",
40
- "images",
41
- "imagemap",
42
- "manual",
43
- "atomic"
44
- ],
45
- "type": "manual"
46
- },
47
- {
48
- "file": "canvas-text-alternative-present.js",
49
- "ruleId": "canvas-text-alternative-present",
50
- "title": "<canvas> must provide a text alternative",
51
- "tags": [
52
- "wcag2a",
53
- "wcag111",
54
- "nontext",
55
- "canvas",
56
- "atomic",
57
- "automatic"
58
- ],
59
- "type": "automatic"
60
- },
61
- {
62
- "file": "canvas-text-alternative-quality-manual.js",
63
- "ruleId": "canvas-text-alternative-quality",
64
- "title": "<canvas> text alternative must be appropriate (manual review)",
65
- "tags": [
66
- "wcag2a",
67
- "wcag111",
68
- "nontext",
69
- "canvas",
70
- "manual",
71
- "atomic"
72
- ],
73
- "type": "manual"
74
- },
75
- {
76
- "file": "embed-text-alternative-present.js",
77
- "ruleId": "embed-text-alternative-present",
78
- "title": "<embed> must provide a text alternative",
79
- "tags": [
80
- "wcag2a",
81
- "wcag111",
82
- "nontext",
83
- "embed",
84
- "atomic",
85
- "automatic"
86
- ],
87
- "type": "automatic"
88
- },
89
- {
90
- "file": "embed-text-alternative-quality-manual.js",
91
- "ruleId": "embed-text-alternative-quality",
92
- "title": "<embed> text alternative must be appropriate (manual review)",
93
- "tags": [
94
- "wcag2a",
95
- "wcag111",
96
- "nontext",
97
- "embed",
98
- "manual",
99
- "atomic"
100
- ],
101
- "type": "manual"
102
- },
103
- {
104
- "file": "img-alt-decorative-manual.js",
105
- "ruleId": "img-alt-decorative",
106
- "title": "<img> with alt=\\",
107
- "tags": [
108
- "wcag2a",
109
- "wcag111",
110
- "nontext",
111
- "images",
112
- "manual",
113
- "atomic"
114
- ],
115
- "type": "manual"
116
- },
117
- {
118
- "file": "img-alt-present.js",
119
- "ruleId": "img-alt-present",
120
- "title": "<img> must have an alt attribute",
121
- "tags": [
122
- "wcag2a",
123
- "wcag111",
124
- "nontext",
125
- "images",
126
- "atomic",
127
- "automatic"
128
- ],
129
- "type": "automatic"
130
- },
131
- {
132
- "file": "img-alt-quality-manual.js",
133
- "ruleId": "img-alt-quality",
134
- "title": "<img> alt text must be appropriate (manual review)",
135
- "tags": [
136
- "wcag2a",
137
- "wcag111",
138
- "nontext",
139
- "images",
140
- "manual",
141
- "atomic"
142
- ],
143
- "type": "manual"
144
- },
145
- {
146
- "file": "input-image-alt-decorative-manual.js",
147
- "ruleId": "input-image-alt-decorative",
148
- "title": "<input type=\\",
149
- "tags": [
150
- "wcag2a",
151
- "wcag111",
152
- "forms",
153
- "images",
154
- "manual",
155
- "atomic"
156
- ],
157
- "type": "manual"
158
- },
159
- {
160
- "file": "input-image-alt-present.js",
161
- "ruleId": "input-image-alt-present",
162
- "title": "<input type=",
163
- "tags": [
164
- "wcag2a",
165
- "wcag111",
166
- "nontext",
167
- "images",
168
- "atomic",
169
- "automatic"
170
- ],
171
- "type": "automatic"
172
- },
173
- {
174
- "file": "input-image-alt-quality-manual.js",
175
- "ruleId": "input-image-alt-quality",
176
- "title": "<input type=\\",
177
- "tags": [
178
- "wcag2a",
179
- "wcag111",
180
- "forms",
181
- "images",
182
- "manual",
183
- "atomic"
184
- ],
185
- "type": "manual"
186
- },
187
- {
188
- "file": "object-text-alternative-present.js",
189
- "ruleId": "object-text-alternative-present",
190
- "title": "<object> must provide a text alternative",
191
- "tags": [
192
- "wcag2a",
193
- "wcag111",
194
- "nontext",
195
- "object",
196
- "atomic",
197
- "automatic"
198
- ],
199
- "type": "automatic"
200
- },
201
- {
202
- "file": "object-text-alternative-quality-manual.js",
203
- "ruleId": "object-text-alternative-quality",
204
- "title": "<object> text alternative must be appropriate (manual review)",
205
- "tags": [
206
- "wcag2a",
207
- "wcag111",
208
- "nontext",
209
- "object",
210
- "manual",
211
- "atomic"
212
- ],
213
- "type": "manual"
214
- },
215
- {
216
- "file": "svg-image-text-alternative-present.js",
217
- "ruleId": "svg-image-text-alternative-present",
218
- "title": "SVG <image> must have a text alternative",
219
- "tags": [
220
- "wcag2a",
221
- "wcag111",
222
- "nontext",
223
- "svg",
224
- "image",
225
- "atomic",
226
- "automatic"
227
- ],
228
- "type": "automatic"
229
- },
230
- {
231
- "file": "svg-text-alternative-present.js",
232
- "ruleId": "svg-text-alternative-present",
233
- "title": "<svg> must provide a text alternative",
234
- "tags": [
235
- "wcag2a",
236
- "wcag111",
237
- "svg",
238
- "nontext",
239
- "images",
240
- "atomic",
241
- "automatic"
242
- ],
243
- "type": "automatic"
244
- },
245
- {
246
- "file": "video-poster-text-alternative-present.js",
247
- "ruleId": "video-poster-text-alternative-present",
248
- "title": "<video> poster must have a text alternative",
249
- "tags": [
250
- "wcag2a",
251
- "wcag111",
252
- "media",
253
- "video",
254
- "atomic",
255
- "automatic"
256
- ],
257
- "type": "automatic"
258
- }
259
- ]