govuk_publishing_components 41.1.0 → 41.1.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (35) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/stylesheets/component_guide/application.scss +6 -0
  3. data/app/assets/stylesheets/govuk_publishing_components/components/_cards.scss +13 -1
  4. data/app/assets/stylesheets/govuk_publishing_components/components/_inverse-header.scss +12 -0
  5. data/app/assets/stylesheets/govuk_publishing_components/components/_layout-footer.scss +8 -0
  6. data/app/assets/stylesheets/govuk_publishing_components/components/_layout-header.scss +22 -0
  7. data/app/assets/stylesheets/govuk_publishing_components/components/_layout-super-navigation-header.scss +12 -6
  8. data/app/assets/stylesheets/govuk_publishing_components/components/_step-by-step-nav-header.scss +14 -1
  9. data/app/assets/stylesheets/govuk_publishing_components/components/_step-by-step-nav-related.scss +24 -0
  10. data/app/assets/stylesheets/govuk_publishing_components/components/_table.scss +32 -0
  11. data/app/assets/stylesheets/govuk_publishing_components/components/_tabs.scss +32 -0
  12. data/app/assets/stylesheets/govuk_publishing_components/components/govspeak/_attachment.scss +25 -0
  13. data/app/assets/stylesheets/govuk_publishing_components/components/govspeak/_button.scss +17 -0
  14. data/app/assets/stylesheets/govuk_publishing_components/components/govspeak/_highlight-answer.scss +11 -0
  15. data/app/assets/stylesheets/govuk_publishing_components/components/govspeak/_media-player.scss +6 -0
  16. data/app/views/govuk_publishing_components/components/_attachment.html.erb +2 -0
  17. data/app/views/govuk_publishing_components/components/_cards.html.erb +6 -1
  18. data/app/views/govuk_publishing_components/components/_layout_header.html.erb +4 -4
  19. data/app/views/govuk_publishing_components/components/_layout_super_navigation_header.html.erb +1 -1
  20. data/app/views/govuk_publishing_components/components/_table.html.erb +1 -1
  21. data/app/views/govuk_publishing_components/components/attachment/_thumbnail_external.html.erb +3 -0
  22. data/app/views/govuk_publishing_components/components/docs/cards.yml +14 -34
  23. data/app/views/govuk_publishing_components/components/layout_header/_navigation_items.html.erb +1 -1
  24. data/app/views/govuk_publishing_components/components/layout_header/_search.html.erb +1 -1
  25. data/lib/govuk_publishing_components/presenters/attachment_helper.rb +4 -0
  26. data/lib/govuk_publishing_components/version.rb +1 -1
  27. data/node_modules/axe-core/axe.d.ts +18 -5
  28. data/node_modules/axe-core/axe.js +757 -716
  29. data/node_modules/axe-core/axe.min.js +2 -2
  30. data/node_modules/axe-core/locales/_template.json +101 -96
  31. data/node_modules/axe-core/locales/de.json +12 -5
  32. data/node_modules/axe-core/locales/ja.json +15 -7
  33. data/node_modules/axe-core/package.json +14 -10
  34. data/node_modules/axe-core/sri-history.json +4 -0
  35. metadata +3 -2
@@ -2,19 +2,19 @@
2
2
  "lang": "xyz",
3
3
  "rules": {
4
4
  "accesskeys": {
5
- "description": "Ensures every accesskey attribute value is unique",
5
+ "description": "Ensure every accesskey attribute value is unique",
6
6
  "help": "accesskey attribute value should be unique"
7
7
  },
8
8
  "area-alt": {
9
- "description": "Ensures <area> elements of image maps have alternate text",
9
+ "description": "Ensure <area> elements of image maps have alternate text",
10
10
  "help": "Active <area> elements must have alternate text"
11
11
  },
12
12
  "aria-allowed-attr": {
13
- "description": "Ensures an element's role supports its ARIA attributes",
13
+ "description": "Ensure an element's role supports its ARIA attributes",
14
14
  "help": "Elements must only use supported ARIA attributes"
15
15
  },
16
16
  "aria-allowed-role": {
17
- "description": "Ensures role attribute has an appropriate value for the element",
17
+ "description": "Ensure role attribute has an appropriate value for the element",
18
18
  "help": "ARIA role should be appropriate for the element"
19
19
  },
20
20
  "aria-braille-equivalent": {
@@ -22,55 +22,55 @@
22
22
  "help": "aria-braille attributes must have a non-braille equivalent"
23
23
  },
24
24
  "aria-command-name": {
25
- "description": "Ensures every ARIA button, link and menuitem has an accessible name",
25
+ "description": "Ensure every ARIA button, link and menuitem has an accessible name",
26
26
  "help": "ARIA commands must have an accessible name"
27
27
  },
28
28
  "aria-conditional-attr": {
29
- "description": "Ensures ARIA attributes are used as described in the specification of the element's role",
29
+ "description": "Ensure ARIA attributes are used as described in the specification of the element's role",
30
30
  "help": "ARIA attributes must be used as specified for the element's role"
31
31
  },
32
32
  "aria-deprecated-role": {
33
- "description": "Ensures elements do not use deprecated roles",
33
+ "description": "Ensure elements do not use deprecated roles",
34
34
  "help": "Deprecated ARIA roles must not be used"
35
35
  },
36
36
  "aria-dialog-name": {
37
- "description": "Ensures every ARIA dialog and alertdialog node has an accessible name",
37
+ "description": "Ensure every ARIA dialog and alertdialog node has an accessible name",
38
38
  "help": "ARIA dialog and alertdialog nodes should have an accessible name"
39
39
  },
40
40
  "aria-hidden-body": {
41
- "description": "Ensures aria-hidden=\"true\" is not present on the document body.",
41
+ "description": "Ensure aria-hidden=\"true\" is not present on the document body.",
42
42
  "help": "aria-hidden=\"true\" must not be present on the document body"
43
43
  },
44
44
  "aria-hidden-focus": {
45
- "description": "Ensures aria-hidden elements are not focusable nor contain focusable elements",
45
+ "description": "Ensure aria-hidden elements are not focusable nor contain focusable elements",
46
46
  "help": "ARIA hidden element must not be focusable or contain focusable elements"
47
47
  },
48
48
  "aria-input-field-name": {
49
- "description": "Ensures every ARIA input field has an accessible name",
49
+ "description": "Ensure every ARIA input field has an accessible name",
50
50
  "help": "ARIA input fields must have an accessible name"
51
51
  },
52
52
  "aria-meter-name": {
53
- "description": "Ensures every ARIA meter node has an accessible name",
53
+ "description": "Ensure every ARIA meter node has an accessible name",
54
54
  "help": "ARIA meter nodes must have an accessible name"
55
55
  },
56
56
  "aria-progressbar-name": {
57
- "description": "Ensures every ARIA progressbar node has an accessible name",
57
+ "description": "Ensure every ARIA progressbar node has an accessible name",
58
58
  "help": "ARIA progressbar nodes must have an accessible name"
59
59
  },
60
60
  "aria-prohibited-attr": {
61
- "description": "Ensures ARIA attributes are not prohibited for an element's role",
61
+ "description": "Ensure ARIA attributes are not prohibited for an element's role",
62
62
  "help": "Elements must only use permitted ARIA attributes"
63
63
  },
64
64
  "aria-required-attr": {
65
- "description": "Ensures elements with ARIA roles have all required ARIA attributes",
65
+ "description": "Ensure elements with ARIA roles have all required ARIA attributes",
66
66
  "help": "Required ARIA attributes must be provided"
67
67
  },
68
68
  "aria-required-children": {
69
- "description": "Ensures elements with an ARIA role that require child roles contain them",
69
+ "description": "Ensure elements with an ARIA role that require child roles contain them",
70
70
  "help": "Certain ARIA roles must contain particular children"
71
71
  },
72
72
  "aria-required-parent": {
73
- "description": "Ensures elements with an ARIA role that require parent roles are contained by them",
73
+ "description": "Ensure elements with an ARIA role that require parent roles are contained by them",
74
74
  "help": "Certain ARIA roles must be contained by particular parents"
75
75
  },
76
76
  "aria-roledescription": {
@@ -78,35 +78,35 @@
78
78
  "help": "aria-roledescription must be on elements with a semantic role"
79
79
  },
80
80
  "aria-roles": {
81
- "description": "Ensures all elements with a role attribute use a valid value",
81
+ "description": "Ensure all elements with a role attribute use a valid value",
82
82
  "help": "ARIA roles used must conform to valid values"
83
83
  },
84
84
  "aria-text": {
85
- "description": "Ensures role=\"text\" is used on elements with no focusable descendants",
85
+ "description": "Ensure role=\"text\" is used on elements with no focusable descendants",
86
86
  "help": "\"role=text\" should have no focusable descendants"
87
87
  },
88
88
  "aria-toggle-field-name": {
89
- "description": "Ensures every ARIA toggle field has an accessible name",
89
+ "description": "Ensure every ARIA toggle field has an accessible name",
90
90
  "help": "ARIA toggle fields must have an accessible name"
91
91
  },
92
92
  "aria-tooltip-name": {
93
- "description": "Ensures every ARIA tooltip node has an accessible name",
93
+ "description": "Ensure every ARIA tooltip node has an accessible name",
94
94
  "help": "ARIA tooltip nodes must have an accessible name"
95
95
  },
96
96
  "aria-treeitem-name": {
97
- "description": "Ensures every ARIA treeitem node has an accessible name",
97
+ "description": "Ensure every ARIA treeitem node has an accessible name",
98
98
  "help": "ARIA treeitem nodes should have an accessible name"
99
99
  },
100
100
  "aria-valid-attr-value": {
101
- "description": "Ensures all ARIA attributes have valid values",
101
+ "description": "Ensure all ARIA attributes have valid values",
102
102
  "help": "ARIA attributes must conform to valid values"
103
103
  },
104
104
  "aria-valid-attr": {
105
- "description": "Ensures attributes that begin with aria- are valid ARIA attributes",
105
+ "description": "Ensure attributes that begin with aria- are valid ARIA attributes",
106
106
  "help": "ARIA attributes must conform to valid names"
107
107
  },
108
108
  "audio-caption": {
109
- "description": "Ensures <audio> elements have captions",
109
+ "description": "Ensure <audio> elements have captions",
110
110
  "help": "<audio> elements must have a captions track"
111
111
  },
112
112
  "autocomplete-valid": {
@@ -118,87 +118,87 @@
118
118
  "help": "Inline text spacing must be adjustable with custom stylesheets"
119
119
  },
120
120
  "blink": {
121
- "description": "Ensures <blink> elements are not used",
121
+ "description": "Ensure <blink> elements are not used",
122
122
  "help": "<blink> elements are deprecated and must not be used"
123
123
  },
124
124
  "button-name": {
125
- "description": "Ensures buttons have discernible text",
125
+ "description": "Ensure buttons have discernible text",
126
126
  "help": "Buttons must have discernible text"
127
127
  },
128
128
  "bypass": {
129
- "description": "Ensures each page has at least one mechanism for a user to bypass navigation and jump straight to the content",
129
+ "description": "Ensure each page has at least one mechanism for a user to bypass navigation and jump straight to the content",
130
130
  "help": "Page must have means to bypass repeated blocks"
131
131
  },
132
132
  "color-contrast-enhanced": {
133
- "description": "Ensures the contrast between foreground and background colors meets WCAG 2 AAA enhanced contrast ratio thresholds",
133
+ "description": "Ensure the contrast between foreground and background colors meets WCAG 2 AAA enhanced contrast ratio thresholds",
134
134
  "help": "Elements must meet enhanced color contrast ratio thresholds"
135
135
  },
136
136
  "color-contrast": {
137
- "description": "Ensures the contrast between foreground and background colors meets WCAG 2 AA minimum contrast ratio thresholds",
137
+ "description": "Ensure the contrast between foreground and background colors meets WCAG 2 AA minimum contrast ratio thresholds",
138
138
  "help": "Elements must meet minimum color contrast ratio thresholds"
139
139
  },
140
140
  "css-orientation-lock": {
141
- "description": "Ensures content is not locked to any specific display orientation, and the content is operable in all display orientations",
141
+ "description": "Ensure content is not locked to any specific display orientation, and the content is operable in all display orientations",
142
142
  "help": "CSS Media queries must not lock display orientation"
143
143
  },
144
144
  "definition-list": {
145
- "description": "Ensures <dl> elements are structured correctly",
145
+ "description": "Ensure <dl> elements are structured correctly",
146
146
  "help": "<dl> elements must only directly contain properly-ordered <dt> and <dd> groups, <script>, <template> or <div> elements"
147
147
  },
148
148
  "dlitem": {
149
- "description": "Ensures <dt> and <dd> elements are contained by a <dl>",
149
+ "description": "Ensure <dt> and <dd> elements are contained by a <dl>",
150
150
  "help": "<dt> and <dd> elements must be contained by a <dl>"
151
151
  },
152
152
  "document-title": {
153
- "description": "Ensures each HTML document contains a non-empty <title> element",
153
+ "description": "Ensure each HTML document contains a non-empty <title> element",
154
154
  "help": "Documents must have <title> element to aid in navigation"
155
155
  },
156
156
  "duplicate-id-active": {
157
- "description": "Ensures every id attribute value of active elements is unique",
157
+ "description": "Ensure every id attribute value of active elements is unique",
158
158
  "help": "IDs of active elements must be unique"
159
159
  },
160
160
  "duplicate-id-aria": {
161
- "description": "Ensures every id attribute value used in ARIA and in labels is unique",
161
+ "description": "Ensure every id attribute value used in ARIA and in labels is unique",
162
162
  "help": "IDs used in ARIA and labels must be unique"
163
163
  },
164
164
  "duplicate-id": {
165
- "description": "Ensures every id attribute value is unique",
165
+ "description": "Ensure every id attribute value is unique",
166
166
  "help": "id attribute value must be unique"
167
167
  },
168
168
  "empty-heading": {
169
- "description": "Ensures headings have discernible text",
169
+ "description": "Ensure headings have discernible text",
170
170
  "help": "Headings should not be empty"
171
171
  },
172
172
  "empty-table-header": {
173
- "description": "Ensures table headers have discernible text",
173
+ "description": "Ensure table headers have discernible text",
174
174
  "help": "Table header text should not be empty"
175
175
  },
176
176
  "focus-order-semantics": {
177
- "description": "Ensures elements in the focus order have a role appropriate for interactive content",
177
+ "description": "Ensure elements in the focus order have a role appropriate for interactive content",
178
178
  "help": "Elements in the focus order should have an appropriate role"
179
179
  },
180
180
  "form-field-multiple-labels": {
181
- "description": "Ensures form field does not have multiple label elements",
181
+ "description": "Ensure form field does not have multiple label elements",
182
182
  "help": "Form field must not have multiple label elements"
183
183
  },
184
184
  "frame-focusable-content": {
185
- "description": "Ensures <frame> and <iframe> elements with focusable content do not have tabindex=-1",
185
+ "description": "Ensure <frame> and <iframe> elements with focusable content do not have tabindex=-1",
186
186
  "help": "Frames with focusable content must not have tabindex=-1"
187
187
  },
188
188
  "frame-tested": {
189
- "description": "Ensures <iframe> and <frame> elements contain the axe-core script",
189
+ "description": "Ensure <iframe> and <frame> elements contain the axe-core script",
190
190
  "help": "Frames should be tested with axe-core"
191
191
  },
192
192
  "frame-title-unique": {
193
- "description": "Ensures <iframe> and <frame> elements contain a unique title attribute",
193
+ "description": "Ensure <iframe> and <frame> elements contain a unique title attribute",
194
194
  "help": "Frames must have a unique title attribute"
195
195
  },
196
196
  "frame-title": {
197
- "description": "Ensures <iframe> and <frame> elements have an accessible name",
197
+ "description": "Ensure <iframe> and <frame> elements have an accessible name",
198
198
  "help": "Frames must have an accessible name"
199
199
  },
200
200
  "heading-order": {
201
- "description": "Ensures the order of headings is semantically correct",
201
+ "description": "Ensure the order of headings is semantically correct",
202
202
  "help": "Heading levels should only increase by one"
203
203
  },
204
204
  "hidden-content": {
@@ -206,11 +206,11 @@
206
206
  "help": "Hidden content on the page should be analyzed"
207
207
  },
208
208
  "html-has-lang": {
209
- "description": "Ensures every HTML document has a lang attribute",
209
+ "description": "Ensure every HTML document has a lang attribute",
210
210
  "help": "<html> element must have a lang attribute"
211
211
  },
212
212
  "html-lang-valid": {
213
- "description": "Ensures the lang attribute of the <html> element has a valid value",
213
+ "description": "Ensure the lang attribute of the <html> element has a valid value",
214
214
  "help": "<html> element must have a valid value for the lang attribute"
215
215
  },
216
216
  "html-xml-lang-mismatch": {
@@ -222,7 +222,7 @@
222
222
  "help": "Links with the same name must have a similar purpose"
223
223
  },
224
224
  "image-alt": {
225
- "description": "Ensures <img> elements have alternate text or a role of none or presentation",
225
+ "description": "Ensure <img> elements have alternate text or a role of none or presentation",
226
226
  "help": "Images must have alternate text"
227
227
  },
228
228
  "image-redundant-alt": {
@@ -230,107 +230,107 @@
230
230
  "help": "Alternative text of images should not be repeated as text"
231
231
  },
232
232
  "input-button-name": {
233
- "description": "Ensures input buttons have discernible text",
233
+ "description": "Ensure input buttons have discernible text",
234
234
  "help": "Input buttons must have discernible text"
235
235
  },
236
236
  "input-image-alt": {
237
- "description": "Ensures <input type=\"image\"> elements have alternate text",
237
+ "description": "Ensure <input type=\"image\"> elements have alternate text",
238
238
  "help": "Image buttons must have alternate text"
239
239
  },
240
240
  "label-content-name-mismatch": {
241
- "description": "Ensures that elements labelled through their content must have their visible text as part of their accessible name",
241
+ "description": "Ensure that elements labelled through their content must have their visible text as part of their accessible name",
242
242
  "help": "Elements must have their visible text as part of their accessible name"
243
243
  },
244
244
  "label-title-only": {
245
- "description": "Ensures that every form element has a visible label and is not solely labeled using hidden labels, or the title or aria-describedby attributes",
245
+ "description": "Ensure that every form element has a visible label and is not solely labeled using hidden labels, or the title or aria-describedby attributes",
246
246
  "help": "Form elements should have a visible label"
247
247
  },
248
248
  "label": {
249
- "description": "Ensures every form element has a label",
249
+ "description": "Ensure every form element has a label",
250
250
  "help": "Form elements must have labels"
251
251
  },
252
252
  "landmark-banner-is-top-level": {
253
- "description": "Ensures the banner landmark is at top level",
253
+ "description": "Ensure the banner landmark is at top level",
254
254
  "help": "Banner landmark should not be contained in another landmark"
255
255
  },
256
256
  "landmark-complementary-is-top-level": {
257
- "description": "Ensures the complementary landmark or aside is at top level",
257
+ "description": "Ensure the complementary landmark or aside is at top level",
258
258
  "help": "Aside should not be contained in another landmark"
259
259
  },
260
260
  "landmark-contentinfo-is-top-level": {
261
- "description": "Ensures the contentinfo landmark is at top level",
261
+ "description": "Ensure the contentinfo landmark is at top level",
262
262
  "help": "Contentinfo landmark should not be contained in another landmark"
263
263
  },
264
264
  "landmark-main-is-top-level": {
265
- "description": "Ensures the main landmark is at top level",
265
+ "description": "Ensure the main landmark is at top level",
266
266
  "help": "Main landmark should not be contained in another landmark"
267
267
  },
268
268
  "landmark-no-duplicate-banner": {
269
- "description": "Ensures the document has at most one banner landmark",
269
+ "description": "Ensure the document has at most one banner landmark",
270
270
  "help": "Document should not have more than one banner landmark"
271
271
  },
272
272
  "landmark-no-duplicate-contentinfo": {
273
- "description": "Ensures the document has at most one contentinfo landmark",
273
+ "description": "Ensure the document has at most one contentinfo landmark",
274
274
  "help": "Document should not have more than one contentinfo landmark"
275
275
  },
276
276
  "landmark-no-duplicate-main": {
277
- "description": "Ensures the document has at most one main landmark",
277
+ "description": "Ensure the document has at most one main landmark",
278
278
  "help": "Document should not have more than one main landmark"
279
279
  },
280
280
  "landmark-one-main": {
281
- "description": "Ensures the document has a main landmark",
281
+ "description": "Ensure the document has a main landmark",
282
282
  "help": "Document should have one main landmark"
283
283
  },
284
284
  "landmark-unique": {
285
- "help": "Ensures landmarks are unique",
286
- "description": "Landmarks should have a unique role or role/label/title (i.e. accessible name) combination"
285
+ "description": "Ensure landmarks are unique",
286
+ "help": "Landmarks should have a unique role or role/label/title (i.e. accessible name) combination"
287
287
  },
288
288
  "link-in-text-block": {
289
289
  "description": "Ensure links are distinguished from surrounding text in a way that does not rely on color",
290
290
  "help": "Links must be distinguishable without relying on color"
291
291
  },
292
292
  "link-name": {
293
- "description": "Ensures links have discernible text",
293
+ "description": "Ensure links have discernible text",
294
294
  "help": "Links must have discernible text"
295
295
  },
296
296
  "list": {
297
- "description": "Ensures that lists are structured correctly",
297
+ "description": "Ensure that lists are structured correctly",
298
298
  "help": "<ul> and <ol> must only directly contain <li>, <script> or <template> elements"
299
299
  },
300
300
  "listitem": {
301
- "description": "Ensures <li> elements are used semantically",
301
+ "description": "Ensure <li> elements are used semantically",
302
302
  "help": "<li> elements must be contained in a <ul> or <ol>"
303
303
  },
304
304
  "marquee": {
305
- "description": "Ensures <marquee> elements are not used",
305
+ "description": "Ensure <marquee> elements are not used",
306
306
  "help": "<marquee> elements are deprecated and must not be used"
307
307
  },
308
308
  "meta-refresh-no-exceptions": {
309
- "description": "Ensures <meta http-equiv=\"refresh\"> is not used for delayed refresh",
309
+ "description": "Ensure <meta http-equiv=\"refresh\"> is not used for delayed refresh",
310
310
  "help": "Delayed refresh must not be used"
311
311
  },
312
312
  "meta-refresh": {
313
- "description": "Ensures <meta http-equiv=\"refresh\"> is not used for delayed refresh",
313
+ "description": "Ensure <meta http-equiv=\"refresh\"> is not used for delayed refresh",
314
314
  "help": "Delayed refresh under 20 hours must not be used"
315
315
  },
316
316
  "meta-viewport-large": {
317
- "description": "Ensures <meta name=\"viewport\"> can scale a significant amount",
317
+ "description": "Ensure <meta name=\"viewport\"> can scale a significant amount",
318
318
  "help": "Users should be able to zoom and scale the text up to 500%"
319
319
  },
320
320
  "meta-viewport": {
321
- "description": "Ensures <meta name=\"viewport\"> does not disable text scaling and zooming",
321
+ "description": "Ensure <meta name=\"viewport\"> does not disable text scaling and zooming",
322
322
  "help": "Zooming and scaling must not be disabled"
323
323
  },
324
324
  "nested-interactive": {
325
- "description": "Ensures interactive controls are not nested as they are not always announced by screen readers or can cause focus problems for assistive technologies",
325
+ "description": "Ensure interactive controls are not nested as they are not always announced by screen readers or can cause focus problems for assistive technologies",
326
326
  "help": "Interactive controls must not be nested"
327
327
  },
328
328
  "no-autoplay-audio": {
329
- "description": "Ensures <video> or <audio> elements do not autoplay audio for more than 3 seconds without a control mechanism to stop or mute the audio",
329
+ "description": "Ensure <video> or <audio> elements do not autoplay audio for more than 3 seconds without a control mechanism to stop or mute the audio",
330
330
  "help": "<video> or <audio> elements must not play automatically"
331
331
  },
332
332
  "object-alt": {
333
- "description": "Ensures <object> elements have alternate text",
333
+ "description": "Ensure <object> elements have alternate text",
334
334
  "help": "<object> elements must have alternate text"
335
335
  },
336
336
  "p-as-heading": {
@@ -346,15 +346,15 @@
346
346
  "help": "Ensure elements marked as presentational are consistently ignored"
347
347
  },
348
348
  "region": {
349
- "description": "Ensures all page content is contained by landmarks",
349
+ "description": "Ensure all page content is contained by landmarks",
350
350
  "help": "All page content should be contained by landmarks"
351
351
  },
352
352
  "role-img-alt": {
353
- "description": "Ensures [role=\"img\"] elements have alternate text",
353
+ "description": "Ensure [role=\"img\"] elements have alternate text",
354
354
  "help": "[role=\"img\"] elements must have an alternative text"
355
355
  },
356
356
  "scope-attr-valid": {
357
- "description": "Ensures the scope attribute is used correctly on tables",
357
+ "description": "Ensure the scope attribute is used correctly on tables",
358
358
  "help": "scope attribute should be used correctly"
359
359
  },
360
360
  "scrollable-region-focusable": {
@@ -362,35 +362,39 @@
362
362
  "help": "Scrollable region must have keyboard access"
363
363
  },
364
364
  "select-name": {
365
- "description": "Ensures select element has an accessible name",
365
+ "description": "Ensure select element has an accessible name",
366
366
  "help": "Select element must have an accessible name"
367
367
  },
368
368
  "server-side-image-map": {
369
- "description": "Ensures that server-side image maps are not used",
369
+ "description": "Ensure that server-side image maps are not used",
370
370
  "help": "Server-side image maps must not be used"
371
371
  },
372
372
  "skip-link": {
373
373
  "description": "Ensure all skip links have a focusable target",
374
374
  "help": "The skip-link target should exist and be focusable"
375
375
  },
376
+ "summary-name": {
377
+ "description": "Ensure summary elements have discernible text",
378
+ "help": "Summary elements must have discernible text"
379
+ },
376
380
  "svg-img-alt": {
377
- "description": "Ensures <svg> elements with an img, graphics-document or graphics-symbol role have an accessible text",
381
+ "description": "Ensure <svg> elements with an img, graphics-document or graphics-symbol role have an accessible text",
378
382
  "help": "<svg> elements with an img role must have an alternative text"
379
383
  },
380
384
  "tabindex": {
381
- "description": "Ensures tabindex attribute values are not greater than 0",
385
+ "description": "Ensure tabindex attribute values are not greater than 0",
382
386
  "help": "Elements should not have tabindex greater than zero"
383
387
  },
384
388
  "table-duplicate-name": {
385
389
  "description": "Ensure the <caption> element does not contain the same text as the summary attribute",
386
- "help": "tables should not have the same summary and caption"
390
+ "help": "Tables should not have the same summary and caption"
387
391
  },
388
392
  "table-fake-caption": {
389
393
  "description": "Ensure that tables with a caption use the <caption> element.",
390
394
  "help": "Data or header cells must not be used to give caption to a data table."
391
395
  },
392
396
  "target-size": {
393
- "description": "Ensure touch target have sufficient size and space",
397
+ "description": "Ensure touch targets have sufficient size and space",
394
398
  "help": "All touch targets must be 24px large, or leave sufficient space"
395
399
  },
396
400
  "td-has-header": {
@@ -406,11 +410,11 @@
406
410
  "help": "Table headers in a data table must refer to data cells"
407
411
  },
408
412
  "valid-lang": {
409
- "description": "Ensures lang attributes have valid values",
413
+ "description": "Ensure lang attributes have valid values",
410
414
  "help": "lang attribute must have a valid value"
411
415
  },
412
416
  "video-caption": {
413
- "description": "Ensures <video> elements have captions",
417
+ "description": "Ensure <video> elements have captions",
414
418
  "help": "<video> elements must have captions"
415
419
  }
416
420
  },
@@ -461,9 +465,9 @@
461
465
  "hidden": "aria-errormessage value `${data.values}` cannot reference a hidden element"
462
466
  },
463
467
  "incomplete": {
464
- "singular": "ensure aria-errormessage value `${data.values}` references an existing element",
465
- "plural": "ensure aria-errormessage values `${data.values}` reference existing elements",
466
- "idrefs": "unable to determine if aria-errormessage element exists on the page: ${data.values}"
468
+ "singular": "Ensure aria-errormessage value `${data.values}` references an existing element",
469
+ "plural": "Ensure aria-errormessage values `${data.values}` reference existing elements",
470
+ "idrefs": "Unable to determine if aria-errormessage element exists on the page: ${data.values}"
467
471
  }
468
472
  },
469
473
  "aria-hidden-body": {
@@ -678,12 +682,13 @@
678
682
  }
679
683
  },
680
684
  "autocomplete-appropriate": {
681
- "pass": "the autocomplete value is on an appropriate element",
682
- "fail": "the autocomplete value is inappropriate for this type of input"
685
+ "pass": "The autocomplete value is on an appropriate element",
686
+ "fail": "The autocomplete value is inappropriate for this type of input"
683
687
  },
684
688
  "autocomplete-valid": {
685
689
  "pass": "the autocomplete attribute is correctly formatted",
686
- "fail": "the autocomplete attribute is incorrectly formatted"
690
+ "fail": "the autocomplete attribute is incorrectly formatted",
691
+ "incomplete": "the autocomplete attribute has a non-standard value. Check whether any standard value could be used instead."
687
692
  },
688
693
  "accesskeys": {
689
694
  "pass": "Accesskey attribute value is unique",
@@ -961,7 +966,7 @@
961
966
  "aria-labelledby": {
962
967
  "pass": "aria-labelledby attribute exists and references elements that are visible to screen readers",
963
968
  "fail": "aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty",
964
- "incomplete": "ensure aria-labelledby references an existing element"
969
+ "incomplete": "Ensure aria-labelledby references an existing element"
965
970
  },
966
971
  "avoid-inline-spacing": {
967
972
  "pass": "No inline styles with '!important' that affect text spacing has been specified",
@@ -1044,7 +1049,7 @@
1044
1049
  }
1045
1050
  },
1046
1051
  "presentational-role": {
1047
- "pass": "Element's default semantics were overriden with role=\"${data.role}\"",
1052
+ "pass": "Element's default semantics were overridden with role=\"${data.role}\"",
1048
1053
  "fail": {
1049
1054
  "default": "Element's default semantics were not overridden with role=\"none\" or role=\"presentation\"",
1050
1055
  "globalAria": "Element's role is not presentational because it has a global ARIA attribute",
@@ -1054,11 +1059,11 @@
1054
1059
  }
1055
1060
  },
1056
1061
  "role-none": {
1057
- "pass": "Element's default semantics were overriden with role=\"none\"",
1062
+ "pass": "Element's default semantics were overridden with role=\"none\"",
1058
1063
  "fail": "Element's default semantics were not overridden with role=\"none\""
1059
1064
  },
1060
1065
  "role-presentation": {
1061
- "pass": "Element's default semantics were overriden with role=\"presentation\"",
1066
+ "pass": "Element's default semantics were overridden with role=\"presentation\"",
1062
1067
  "fail": "Element's default semantics were not overridden with role=\"presentation\""
1063
1068
  },
1064
1069
  "svg-non-empty-title": {
@@ -282,8 +282,8 @@
282
282
  "help": "Seite muss eine main landmark enthalten."
283
283
  },
284
284
  "landmark-unique": {
285
- "help": "Stellt sicher, dass landmarks einzigartig sind.",
286
- "description": "Landmarks müssen eine einzigartige role oder role/label/title Kombination (bzw. zugänglicher Name / accessible name) besitzen."
285
+ "description": "Stellt sicher, dass landmarks einzigartig sind.",
286
+ "help": "Landmarks müssen eine einzigartige role oder role/label/title Kombination (bzw. zugänglicher Name / accessible name) besitzen."
287
287
  },
288
288
  "link-in-text-block": {
289
289
  "description": "Stellt sicher, dass Links vom umgebenden Text nicht allein durch die Farbe unterschieden werden können.",
@@ -373,6 +373,10 @@
373
373
  "description": "Stellt sicher, dass alle Skip-Links ein fokussierbares Ziel enthalten.",
374
374
  "help": "Das Ziel eines Skip-Links sollte existieren und fokussierbar sein."
375
375
  },
376
+ "summary-name": {
377
+ "description": "Stellt sicher, dass die summary-Elemente einen erkennbaren Text haben",
378
+ "help": "summary-Elemente müssen einen erkennbaren Text haben"
379
+ },
376
380
  "svg-img-alt": {
377
381
  "description": "Stellt sicher, dass <svg> Elemente mit einer img, graphics-document oder graphics-symbol Rolle einen zugänglichen Namen (accessible name) besitzen.",
378
382
  "help": "<svg> Elemente mit einer img Rolle sollten einen Alternativtext besitzen."
@@ -538,7 +542,8 @@
538
542
  "noIdShadow": "ARIA-Attribut Element-ID existiert nicht auf der Seite oder ist ein Nachkomme (descendant) eines anderen Schatten-DOM-tree: ${data.needsReview}",
539
543
  "ariaCurrent": "Folgendes ARIA Attributwert ist ungültig und wird wie \"aria-current=true\" gesehen: ${data.needsReview}",
540
544
  "idrefs": "Es konnte nicht festgestellt werden, ob das ARIA-Attribut element ID auf der Seite existiert: ${data.needsReview}",
541
- "empty": "ARIA-Attributwert wird ignoriert, wenn leer: ${data.needsReview}"
545
+ "empty": "ARIA-Attributwert wird ignoriert, wenn leer: ${data.needsReview}",
546
+ "controlsWithinPopup": "Bei der Verwendung von aria-haspopup konnte nicht festgestellt werden, ob die von aria-controls referenzierte ID auf der Seite existiert: ${data.needsReview}"
542
547
  }
543
548
  },
544
549
  "aria-valid-attr": {
@@ -682,7 +687,8 @@
682
687
  },
683
688
  "autocomplete-valid": {
684
689
  "pass": "Der Wert des autocomplete Attributes ist korrekt formatiert.",
685
- "fail": "Der Wert des autocomplete Attributes ist inkorrekt formatiert."
690
+ "fail": "Der Wert des autocomplete Attributes ist inkorrekt formatiert.",
691
+ "incomplete": "Der Wert des autocomplete Attributes hat einen Nicht-Standardwert. Prüfe, ob stattdessen ein Standardwert verwendet werden kann."
686
692
  },
687
693
  "accesskeys": {
688
694
  "pass": "Alle accesskey-Attribute sind einzigartig.",
@@ -872,7 +878,8 @@
872
878
  "fail": "Das Ziel hat nicht genügend Abstand zu seinen nächsten Nachbarn. Der sichere klickbare Bereich hat einen Durchmesser von ${data.closestOffset}px statt mindestens ${data.minOffset}px.",
873
879
  "incomplete": {
874
880
  "default": "Element mit negativem Tabindex hat nicht genügend Abstand zu seinen nächsten Nachbarn. Der sichere klickbare Bereich hat einen Durchmesser von ${data.closestOffset}px statt mindestens ${data.minOffset}px. Ist dies ein Ziel?",
875
- "nonTabbableNeighbor": "Das Ziel hat nicht genügend Abstand zu seinen nächsten Nachbarn. Der sichere klickbare Bereich hat einen Durchmesser von ${data.closestOffset}px statt mindestens ${data.minOffset}px. Ist der Nachbar ein Ziel?"
881
+ "nonTabbableNeighbor": "Das Ziel hat nicht genügend Abstand zu seinen nächsten Nachbarn. Der sichere klickbare Bereich hat einen Durchmesser von ${data.closestOffset}px statt mindestens ${data.minOffset}px. Ist der Nachbar ein Ziel?",
882
+ "tooManyRects": "Die Zielgröße konnte nicht ermittelt werden, da zu viele überlappende Elemente vorhanden sind."
876
883
  }
877
884
  },
878
885
  "target-size": {