govuk_publishing_components 31.2.0 → 32.1.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 (90) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/images/govuk_publishing_components/action-link-arrow--blue.svg +8 -2
  3. data/app/assets/javascripts/component_guide/accessibility-test.js +0 -1
  4. data/app/assets/javascripts/govuk_publishing_components/analytics/track-click.js +1 -1
  5. data/app/assets/javascripts/govuk_publishing_components/analytics-ga4/ga4-ecommerce-tracker.js +10 -5
  6. data/app/assets/javascripts/govuk_publishing_components/analytics-ga4/ga4-event-tracker.js +2 -2
  7. data/app/assets/javascripts/govuk_publishing_components/analytics-ga4/ga4-page-views.js +10 -3
  8. data/app/assets/javascripts/govuk_publishing_components/components/layout-super-navigation-header.js +13 -4
  9. data/app/assets/stylesheets/govuk_publishing_components/components/_share-links.scss +0 -6
  10. data/app/views/govuk_publishing_components/components/_layout_super_navigation_header.html.erb +25 -1
  11. data/app/views/govuk_publishing_components/components/_share_links.html.erb +7 -2
  12. data/app/views/govuk_publishing_components/components/feedback/_problem_form.html.erb +19 -12
  13. data/app/views/govuk_publishing_components/components/feedback/_survey_signup_form.html.erb +10 -2
  14. data/app/views/govuk_publishing_components/components/feedback/_yes_no_banner.html.erb +1 -2
  15. data/config/locales/ar.yml +4 -1
  16. data/config/locales/az.yml +4 -1
  17. data/config/locales/be.yml +4 -1
  18. data/config/locales/bg.yml +4 -1
  19. data/config/locales/bn.yml +4 -1
  20. data/config/locales/cs.yml +4 -1
  21. data/config/locales/cy.yml +4 -1
  22. data/config/locales/da.yml +4 -1
  23. data/config/locales/de.yml +4 -1
  24. data/config/locales/dr.yml +4 -1
  25. data/config/locales/el.yml +4 -1
  26. data/config/locales/en.yml +20 -17
  27. data/config/locales/es-419.yml +4 -1
  28. data/config/locales/es.yml +4 -1
  29. data/config/locales/et.yml +4 -1
  30. data/config/locales/fa.yml +4 -1
  31. data/config/locales/fi.yml +4 -1
  32. data/config/locales/fr.yml +4 -1
  33. data/config/locales/gd.yml +4 -1
  34. data/config/locales/gu.yml +4 -1
  35. data/config/locales/he.yml +4 -1
  36. data/config/locales/hi.yml +4 -1
  37. data/config/locales/hr.yml +4 -1
  38. data/config/locales/hu.yml +4 -1
  39. data/config/locales/hy.yml +4 -1
  40. data/config/locales/id.yml +4 -1
  41. data/config/locales/is.yml +4 -1
  42. data/config/locales/it.yml +4 -1
  43. data/config/locales/ja.yml +4 -1
  44. data/config/locales/ka.yml +4 -1
  45. data/config/locales/kk.yml +4 -1
  46. data/config/locales/ko.yml +4 -1
  47. data/config/locales/lt.yml +4 -1
  48. data/config/locales/lv.yml +4 -1
  49. data/config/locales/ms.yml +4 -1
  50. data/config/locales/mt.yml +4 -1
  51. data/config/locales/nl.yml +4 -1
  52. data/config/locales/no.yml +4 -1
  53. data/config/locales/pa-pk.yml +4 -1
  54. data/config/locales/pa.yml +4 -1
  55. data/config/locales/pl.yml +4 -1
  56. data/config/locales/ps.yml +4 -1
  57. data/config/locales/pt.yml +4 -1
  58. data/config/locales/ro.yml +4 -1
  59. data/config/locales/ru.yml +4 -1
  60. data/config/locales/si.yml +4 -1
  61. data/config/locales/sk.yml +4 -1
  62. data/config/locales/sl.yml +4 -1
  63. data/config/locales/so.yml +4 -1
  64. data/config/locales/sq.yml +4 -1
  65. data/config/locales/sr.yml +4 -1
  66. data/config/locales/sv.yml +4 -1
  67. data/config/locales/sw.yml +4 -1
  68. data/config/locales/ta.yml +4 -1
  69. data/config/locales/th.yml +4 -1
  70. data/config/locales/tk.yml +4 -1
  71. data/config/locales/tr.yml +4 -1
  72. data/config/locales/uk.yml +4 -1
  73. data/config/locales/ur.yml +4 -1
  74. data/config/locales/uz.yml +4 -1
  75. data/config/locales/vi.yml +4 -1
  76. data/config/locales/zh-hk.yml +4 -1
  77. data/config/locales/zh-tw.yml +4 -1
  78. data/config/locales/zh.yml +4 -1
  79. data/lib/govuk_publishing_components/version.rb +1 -1
  80. data/node_modules/axe-core/README.md +7 -6
  81. data/node_modules/axe-core/axe.d.ts +1 -0
  82. data/node_modules/axe-core/axe.js +8910 -7200
  83. data/node_modules/axe-core/axe.min.js +2 -2
  84. data/node_modules/axe-core/locales/_template.json +1067 -0
  85. data/node_modules/axe-core/locales/fr.json +1 -1
  86. data/node_modules/axe-core/locales/he.json +1015 -0
  87. data/node_modules/axe-core/locales/no_NB.json +797 -0
  88. data/node_modules/axe-core/package.json +57 -59
  89. data/node_modules/axe-core/sri-history.json +8 -0
  90. metadata +6 -3
@@ -0,0 +1,797 @@
1
+ {
2
+ "lang": "nb-no",
3
+ "rules": {
4
+ "accesskeys": {
5
+ "description": "",
6
+ "help": "Verdien for hver 'accesskey' attributt skal være unik"
7
+ },
8
+ "area-alt": {
9
+ "description": "",
10
+ "help": "Aktive <area> elementer skal ha alternativ tekst"
11
+ },
12
+ "aria-allowed-attr": {
13
+ "description": "",
14
+ "help": "Elementer må kun bruke tillate ARIA-attributter"
15
+ },
16
+ "aria-allowed-role": {
17
+ "description": "",
18
+ "help": "ARIA-attributtet 'role' skal være passende for elementet"
19
+ },
20
+ "aria-hidden-body": {
21
+ "description": "",
22
+ "help": "aria-hidden='true' skal ikke brukes på dokumentets <body> element"
23
+ },
24
+ "aria-hidden-focus": {
25
+ "description": "",
26
+ "help": "Elementer med ARIA-'hidden' skal ikke inneholde fokuserbare elementer"
27
+ },
28
+ "aria-input-field-name": {
29
+ "description": "",
30
+ "help": "ARIA-input-felter skal ha et tilgjengelig navn"
31
+ },
32
+ "aria-required-attr": {
33
+ "description": "",
34
+ "help": "Alle påkrevde ARIA-attributter skal være angitt i henhold til elementets rolle"
35
+ },
36
+ "aria-required-children": {
37
+ "description": "",
38
+ "help": "Bestemte ARIA-roller skal inneholde spesifikke under-elementer"
39
+ },
40
+ "aria-required-parent": {
41
+ "description": "",
42
+ "help": "Bestemte ARIA-roller skal være under-element til spesifikke over-elementer"
43
+ },
44
+ "aria-roledescription": {
45
+ "description": "",
46
+ "help": "Bruk 'aria-roledescription' på elementer med en semantisk rolle"
47
+ },
48
+ "aria-roles": {
49
+ "description": "",
50
+ "help": "ARIA-roller skal ha en korrekt verdi"
51
+ },
52
+ "aria-toggle-field-name": {
53
+ "description": "",
54
+ "help": "ARIA avkrysningsboks skal ha et tilgjengelig navn"
55
+ },
56
+ "aria-valid-attr-value": {
57
+ "description": "",
58
+ "help": "ARIA-attributter skal ha en gyldig verdi"
59
+ },
60
+ "aria-valid-attr": {
61
+ "description": "",
62
+ "help": "ARIA-attributter skal ha et gyldig navn"
63
+ },
64
+ "audio-caption": {
65
+ "description": "",
66
+ "help": "<audio> elementer skal ha en transkripsjon ('captions track')"
67
+ },
68
+ "autocomplete-valid": {
69
+ "description": "",
70
+ "help": "Attributtet 'autocomplete' skal benyttes korrekt"
71
+ },
72
+ "avoid-inline-spacing": {
73
+ "description": "",
74
+ "help": "Inline tekst-avstand skal være justerbare med brukerdefinerte stylesheets"
75
+ },
76
+ "blink": {
77
+ "description": "",
78
+ "help": "Elementet <blink> er utfaset og skal ikke brukes"
79
+ },
80
+ "button-name": {
81
+ "description": "",
82
+ "help": "Knapper skal ha forståelig (dvs. detekterbar) tekst"
83
+ },
84
+ "bypass": {
85
+ "description": "",
86
+ "help": "Sider skal ha en metode for å hoppe over navigasjon og komme direkte til innholdet"
87
+ },
88
+ "color-contrast": {
89
+ "description": "",
90
+ "help": "Elementer skal ha tilstrekkelig fargekontrast"
91
+ },
92
+ "color-contrast-enhanced": {
93
+ "description": "",
94
+ "help": "Elementer skal ha tilstrekkelig fargekontrast"
95
+ },
96
+ "css-orientation-lock": {
97
+ "description": "",
98
+ "help": "'CSS Media queries' skal ikke brukes til å låse skjermretningen ('orientation')"
99
+ },
100
+ "definition-list": {
101
+ "description": "",
102
+ "help": "<dl> elementer skal kun direkte inneholde velsorterte <dt> og <dd> grupper, <script> eller <template> elementer"
103
+ },
104
+ "dlitem": {
105
+ "description": "",
106
+ "help": "<dt> og <dd> elementer skal være under-element til et <dl> element"
107
+ },
108
+ "document-title": {
109
+ "description": "",
110
+ "help": "Dokumenter skal ha et <title> element med en verdi som ikke er tom"
111
+ },
112
+ "duplicate-id-active": {
113
+ "description": "",
114
+ "help": "'id'-attributtet for aktive elementer skal være unik"
115
+ },
116
+ "duplicate-id-aria": {
117
+ "description": "",
118
+ "help": "'id'-attributtet brukt på ARIA-elementer og -labels skal være unikt"
119
+ },
120
+ "duplicate-id": {
121
+ "description": "",
122
+ "help": "Verdien for 'id'-attributtet skal være unik"
123
+ },
124
+ "empty-heading": {
125
+ "description": "",
126
+ "help": "Overskrifter skal ikke være tomme"
127
+ },
128
+ "focus-order-semantics": {
129
+ "description": "",
130
+ "help": "Elementer i fokus-rekkefølgen skal ha en 'role'-attributt, som er passende for det interaktive innholdet"
131
+ },
132
+ "form-field-multiple-labels": {
133
+ "description": "",
134
+ "help": "Form-feltet skal ikke ha flere label-elementer"
135
+ },
136
+ "frame-tested": {
137
+ "description": "",
138
+ "help": "Frame-elementer skal være testet med axe-core"
139
+ },
140
+ "frame-title-unique": {
141
+ "description": "",
142
+ "help": "Frame-elementer skal ha en unik 'title'-attributt"
143
+ },
144
+ "frame-title": {
145
+ "description": "",
146
+ "help": "Frame-elementer skal ha 'title'-attributt"
147
+ },
148
+ "heading-order": {
149
+ "description": "",
150
+ "help": "Rekkefølgen for overksriftsnivåer skal være semtantisk korrekt"
151
+ },
152
+ "hidden-content": {
153
+ "description": "",
154
+ "help": "Skjult innhold på siden kunne ikke analyseres"
155
+ },
156
+ "html-has-lang": {
157
+ "description": "",
158
+ "help": "<html> elementet skal ha en 'lang'-attributt"
159
+ },
160
+ "html-lang-valid": {
161
+ "description": "",
162
+ "help": "<html> elementet skal ha en gyldig verdi for 'lang'-attributtet"
163
+ },
164
+ "html-xml-lang-mismatch": {
165
+ "description": "",
166
+ "help": "<html> elementer med 'lang' og 'xml:lang' skal ha samme språk / dialekt"
167
+ },
168
+ "image-alt": {
169
+ "description": "",
170
+ "help": "Bilder skal ha en alternativ tekst"
171
+ },
172
+ "image-redundant-alt": {
173
+ "description": "",
174
+ "help": "Alternativ tekst til bilder (alt-tekst) skal ikke gjentas som tekst"
175
+ },
176
+ "input-button-name": {
177
+ "description": "",
178
+ "help": "Input-knapper skal ha en forståelig tekst"
179
+ },
180
+ "input-image-alt": {
181
+ "description": "",
182
+ "help": "Bilde-knapper skal ha en alternativ tekst"
183
+ },
184
+ "label-content-name-mismatch": {
185
+ "description": "",
186
+ "help": "Elementer sin synlige tekst skal være del av deres tilgjengelige navn"
187
+ },
188
+ "label-title-only": {
189
+ "description": "",
190
+ "help": "Skjemaalement skal ha en synlig ledetekst"
191
+ },
192
+ "label": {
193
+ "description": "",
194
+ "help": "Alle skjemaelement skal ha en tilknyttet ledetekst eller instruksjon"
195
+ },
196
+ "landmark-banner-is-top-level": {
197
+ "description": "",
198
+ "help": "Et 'banner'-landemerke skal ikke være inne i et annet landemerke"
199
+ },
200
+ "landmark-complementary-is-top-level": {
201
+ "description": "",
202
+ "help": "Et 'aside'- eller 'complimentary'-landemerke skal ikke være inne i et annet landemerke"
203
+ },
204
+ "landmark-contentinfo-is-top-level": {
205
+ "description": "",
206
+ "help": "Et 'contentinfo'-landemerke skal ikke være inne i et annet landemerke"
207
+ },
208
+ "landmark-main-is-top-level": {
209
+ "description": "",
210
+ "help": "Et 'main'-landemerke skal ikke være inne i et annet landemerke"
211
+ },
212
+ "landmark-no-duplicate-banner": {
213
+ "description": "",
214
+ "help": "Dokumentet skal ikke ha mer enn ett 'banner'-landemerke"
215
+ },
216
+ "landmark-no-duplicate-contentinfo": {
217
+ "description": "",
218
+ "help": "Dokumentet skal ikke ha mer enn ett 'contentinfo'-landemerke"
219
+ },
220
+ "landmark-one-main": {
221
+ "description": "",
222
+ "help": "Dokumentet skal ha ett 'main'-landemerke"
223
+ },
224
+ "landmark-unique": {
225
+ "description": "",
226
+ "help": "Sikre at landemerker er unike"
227
+ },
228
+ "link-in-text-block": {
229
+ "description": "",
230
+ "help": "Lenker skal være fremtredende fra den omkringliggende teksten på en måte som ikke avhenger av farge"
231
+ },
232
+ "link-name": {
233
+ "description": "",
234
+ "help": "Lenker skal ha forståelig (detekterbar) tekst"
235
+ },
236
+ "list": {
237
+ "description": "",
238
+ "help": "<ul> og <ol> skal kun direkte inneholde <li>, <script> eller <template> elementer"
239
+ },
240
+ "listitem": {
241
+ "description": "",
242
+ "help": "<li> elementer skal være inne i et <ul> eller <ol> element"
243
+ },
244
+ "marquee": {
245
+ "description": "",
246
+ "help": "<marquee> elementer er utfaset og skal ikke brukes"
247
+ },
248
+ "meta-refresh": {
249
+ "description": "",
250
+ "help": "Tidsinnstilt 'refresh' skal ikke brukes"
251
+ },
252
+ "meta-viewport-large": {
253
+ "description": "",
254
+ "help": "Brukere skal kunne zoome og skalere tekst opp til 500%"
255
+ },
256
+ "meta-viewport": {
257
+ "description": "",
258
+ "help": "Zoom og skalering skal ikke være slått av"
259
+ },
260
+ "object-alt": {
261
+ "description": "",
262
+ "help": "<object> elementer skal ha en alternativ tekst"
263
+ },
264
+ "p-as-heading": {
265
+ "description": "",
266
+ "help": "Fremhevelse med fet, kursiv og skriftstørrelse (font-size) skal ikke brukes til å 'style' <p> elementer som en overskrift"
267
+ },
268
+ "page-has-heading-one": {
269
+ "description": "",
270
+ "help": "Siden skal inneholde en overskrift på øverste nivå"
271
+ },
272
+ "region": {
273
+ "description": "",
274
+ "help": "Alt innholdet på siden skal være inne i landemerker"
275
+ },
276
+ "role-img-alt": {
277
+ "description": "",
278
+ "help": "Elementer med 'role' attributtverdien 'img' skal ha en alternativ tekst"
279
+ },
280
+ "scope-attr-valid": {
281
+ "description": "",
282
+ "help": "'scope'-attributtet skal brukes korrekt i tabeller"
283
+ },
284
+ "scrollable-region-focusable": {
285
+ "description": "",
286
+ "help": "Sørg for at en scrollbar region er tilgjengelig via tastatur"
287
+ },
288
+ "server-side-image-map": {
289
+ "description": "",
290
+ "help": "Såkalte 'server-side image-maps' skal ikke brukes"
291
+ },
292
+ "skip-link": {
293
+ "description": "",
294
+ "help": "En 'skip-link' skal peke på et eksisterende og fokuserbart element"
295
+ },
296
+ "tabindex": {
297
+ "description": "",
298
+ "help": "Elementer skal ikke ha et 'tabindex' høyere enn 0"
299
+ },
300
+ "table-duplicate-name": {
301
+ "description": "",
302
+ "help": "Elementet <caption> skal ikke inneholde samme tekst som 'summary'-attributtet"
303
+ },
304
+ "table-fake-caption": {
305
+ "description": "",
306
+ "help": "Data- eller overskrifts-celler skal ikke brukes til å beskrive innholdet av en data-tabell"
307
+ },
308
+ "td-has-header": {
309
+ "description": "",
310
+ "help": "Alle ikke-tomme <td> elementer i en tabel større enn 3x3 skal ha en tabelloverskrift (<th>)"
311
+ },
312
+ "td-headers-attr": {
313
+ "description": "",
314
+ "help": "Alle celler i en tabel, som bruker 'header'-attributtet skal kun referere til andre celler i samme tabel"
315
+ },
316
+ "th-has-data-cells": {
317
+ "description": "",
318
+ "help": "Alle <th> elementer og elementer med 'role=columnheader/rowheader' skal referere til de data-celler, som de beskriver"
319
+ },
320
+ "valid-lang": {
321
+ "description": "",
322
+ "help": "'lang'-attributtet skal ha en gyldig verdi"
323
+ },
324
+ "video-caption": {
325
+ "description": "",
326
+ "help": "<video> elementer skal ha undertekster ('captions')"
327
+ }
328
+ },
329
+ "checks": {
330
+ "abstractrole": {
331
+ "pass": "Abstrakte roller er ikke brukt",
332
+ "fail": "Abstrakte roller skal ikke brukes"
333
+ },
334
+ "aria-allowed-attr": {
335
+ "pass": "ARIA-attributt er brukt korrekt for den angitte rolle",
336
+ "fail": {
337
+ "singular": "ARIA-attributtet er ikke tillatt: ${data.values}",
338
+ "plural": "ARIA-attributtene er ikke tillatt: ${data.values}"
339
+ }
340
+ },
341
+ "aria-allowed-role": {
342
+ "pass": "ARIA-rollen er tillatt for det gitte element",
343
+ "fail": {
344
+ "singular": "ARIA-rollen ${data.values} er ikke tillatt for det gitte element",
345
+ "plural": "ARIA-rollene ${data.values} er ikke tillatt for det gitte element"
346
+ },
347
+ "incomplete": {
348
+ "singular": "ARIA-rollen ${data.values} skal være fjernet når elementet er synlig, da de ikke er tillatt for elementet",
349
+ "plural": "ARIA-rollene ${data.values} skal være fjernet når elementet er synlig, da det ikke er tillatt for elementet"
350
+ }
351
+ },
352
+ "aria-hidden-body": {
353
+ "pass": "Kunne ikke finne noen 'aria-hidden'-attributt i dokumentets <body> element",
354
+ "fail": "'aria-hidden=true' skal ikke brukes på dokumentets <body> element"
355
+ },
356
+ "aria-roledescription": {
357
+ "pass": "'aria-roledescription' brukes på en understøttet semantisk rolle",
358
+ "incomplete": "Sjekk at 'aria-roledescription' blir lest opp av understøttet skjermleser",
359
+ "fail": "Gi elementet en rolle som understøtter 'aria-roledescription'"
360
+ },
361
+ "aria-errormessage": {
362
+ "pass": "Bruker en understøttet 'aria-errormessage'-metode",
363
+ "fail": {
364
+ "singular": "'aria-errormessage'-verdi ${data.values}` skal bruke en metode for å annonsere beskeden (f.eks. 'aria-live', 'aria-describedby', 'role=alert', osv.)",
365
+ "plural": "'aria-errormessage'-verdier ${data.values}` skal bruke en metode for å annonsere beskeden (f.eks. 'aria-live', 'aria-describedby', 'role=alert', osv.)"
366
+ }
367
+ },
368
+ "has-widget-role": {
369
+ "pass": "Elementet har en 'widget'-rolle.",
370
+ "fail": "Elementet har ikke en 'widget'-rolle."
371
+ },
372
+ "invalidrole": {
373
+ "pass": "ARIA-rollen er korrekt",
374
+ "fail": "Rollen skal være en av de mulige ARIA-roller"
375
+ },
376
+ "no-implicit-explicit-label": {
377
+ "pass": "Det er uoverensstemmelse mellom <label> og det tilgjengelige navnet",
378
+ "incomplete": "Sjekk at <label> elementet ikke behøver å være en del av ${data}-feltets navn"
379
+ },
380
+ "aria-required-attr": {
381
+ "pass": "Alle påkrevde ARIA-attributter er tilstede",
382
+ "fail": {
383
+ "singular": "Påkrevd ARIA-attributt er ikke til stede: ${data.values}",
384
+ "plural": "Påkrevde ARIA-attributter er ikke til stede: ${data.values}"
385
+ }
386
+ },
387
+ "aria-required-children": {
388
+ "pass": "Påkrevde ARIA-under-elementer er til stede",
389
+ "fail": {
390
+ "singular": "Påkrevd ARIA-under-element sin rolle er ikke til stede: ${data.values}",
391
+ "plural": "Påkrevde ARIA-under-elementer sine roller er ikke til stede: ${data.values}"
392
+ },
393
+ "incomplete": {
394
+ "singular": "Forventer at ARIA under-element sin rolle blir lagt til: ${data.values}",
395
+ "plural": "Forventer at ARIA under-elementer sine roller blir lagt til: ${data.values}"
396
+ }
397
+ },
398
+ "aria-required-parent": {
399
+ "pass": "Påkrevde ARIA-over-elements rolle er til stede",
400
+ "fail": {
401
+ "singular": "Påkrevd ARIA-over-element sin rolle er ikke til stede: ${data.values}",
402
+ "plural": "Påkrevde ARIA-over-elementer sine roller er ikke til stede: ${data.values}"
403
+ }
404
+ },
405
+ "aria-unsupported-attr": {
406
+ "pass": "ARIA-attributt er understøttet",
407
+ "fail": "ARIA-attributt er ikke bredt understøttet i skjermlesere og tilgjengelighetsteknologier: ${data.values}"
408
+ },
409
+ "unsupportedrole": {
410
+ "pass": "ARIA rollen er understøttet",
411
+ "fail": "Den brukte rolle er ikke bredt understøttet i skjermlesere og tilgjengelighetsteknologier: ${data.values}"
412
+ },
413
+ "aria-valid-attr-value": {
414
+ "pass": "ARIA-attributverdien er gyldig",
415
+ "fail": {
416
+ "singular": "Ugyldig ARIA-attributtverdi: ${data.values}",
417
+ "plural": "Ugyldige ARIA-attributtverdier: ${data.values}"
418
+ },
419
+ "incomplete": {
420
+ "singular": "Kunne ikke finne ARIA-attributtet sitt element 'id' på siden: ${data.values}",
421
+ "plural": "Kunne ikke finne ARIA-attributtene sine element 'id' på siden: ${data.values}"
422
+ }
423
+ },
424
+ "aria-valid-attr": {
425
+ "pass": {
426
+ "singular": "ARIA-attributnavnet er korrekt",
427
+ "plural": "ARIA-attributnavnene er korrekt"
428
+ },
429
+ "fail": {
430
+ "singular": "Ugyldig ARIA-attributtnavn: ${data.values}",
431
+ "plural": "Ugyldige ARIA-attributtnavn: ${data.values}"
432
+ }
433
+ },
434
+ "valid-scrollable-semantics": {
435
+ "pass": "Elementet har korrekt semantikk for et element i fokus-rekkefølgen.",
436
+ "fail": "Elementet har ikke korrekt semantikk for et element i fokus-rekkefølgen."
437
+ },
438
+ "color-contrast": {
439
+ "pass": "Elementet har tilstrekkelig fargekontrast. Den er ${data.contrastRatio}",
440
+ "fail": "Elementet har ikke god nok fargekontrast. Den er ${data.contrastRatio} (forgrunnsfarge: ${data.fgColor}, bakgrunnsfarge: ${data.bgColor}, tekststørrelse: ${data.fontSize}, teksttykkelse: ${data.fontWeight}). Forventet kontrastforhold er ${data.expectedContrastRatio}",
441
+ "incomplete": {
442
+ "bgImage": "Elementets bakgrunnsfarge kunne ikke detekteres på grunn av et bakgrunnsbildet",
443
+ "bgGradient": "Elementets bakgrunnsfarge kunne ikke detekteres på grunn av en bakgrunnsgradient",
444
+ "imgNode": "Elementets bakgrunnsfarge kunne ikke detekteres, fordi elementet inneholder et bildeelement",
445
+ "bgOverlap": "Elementets bakgrunnsfarge kunne ikke detekteres, fordi det er overlappet av et annet element",
446
+ "fgAlpha": "Elementets forgrunnsfarge kunne ikke detekteres på grunn av dets gjennomsiktighet",
447
+ "elmPartiallyObscured": "Elementets bakgrunnsfarge kunne ikke detekteres, fordi det er delvist dekket av et annet element",
448
+ "elmPartiallyObscuring": "Elementets bakgrunnsfarge kunne ikke detekteres, fordi det delvist dekker et annet element",
449
+ "outsideViewport": "Elementets bakgrunnsfarge kunne ikke detekteres, fordi det er utenfor sidens 'viewport'",
450
+ "equalRatio": "Elementet har et 1:1-kontrastforhold med bakgrunnen",
451
+ "shortTextContent": "Elementets innhold er for kort til å kunne avgjøre om innholdet faktisk er tekst",
452
+ "default": "Kan ikke regne ut kontrastforhold"
453
+ }
454
+ },
455
+ "color-contrast-enhanced": {
456
+ "pass": "Elementet har tilstrekkelig fargekontrast, den er ${data.contrastRatio}",
457
+ "fail": "Elementet har ikke god nok fargekontrast, den er ${data.contrastRatio} (forgrunnsfarge: ${data.fgColor}, bakgrunnsfarge: ${data.bgColor}, tekststørrelse: ${data.fontSize}, teksttykkelse: ${data.fontWeight}). Forventet kontrastforhold er ${data.expectedContrastRatio}",
458
+ "incomplete": {
459
+ "bgImage": "Elementets bakgrunnsfarge kunne ikke detekteres på grunn av et bakgrunnsbilde",
460
+ "bgGradient": "Elementets bakgrunnsfarge kunne ikke detekteres på grunn av en bakgrunnsgradient",
461
+ "imgNode": "Elementets bakgrunnsfarge kunne ikke detekteres, fordi elementet inneholder et bildeelement",
462
+ "bgOverlap": "Elementets bakgrunnsfarge kunne ikke detekteres, fordi det er overlappet av et annet element",
463
+ "fgAlpha": "Elementets forgrunnsfarge kunne ikke detekteres på grunn av dets gjennomsiktighet",
464
+ "elmPartiallyObscured": "Elementets bakgrunnsfarge kunne ikke detekteres, fordi det er delvist dekket av et annet element",
465
+ "elmPartiallyObscuring": "Elementets bakgrunnsfarge kunne ikke detekteres, fordi det delvist dekker et annet element",
466
+ "outsideViewport": "Elementets bakgrunnsfarge kunne ikke detekteres, fordi det er utenfor sidens 'viewport'",
467
+ "equalRatio": "Elementet har et 1:1-kontrastforhold med bakgrunnen",
468
+ "shortTextContent": "Elementets innhold er for kort til å kunne avgjøre om innholdet faktisk er tekst",
469
+ "default": "Kan ikke regne ut kontrastforhold"
470
+ }
471
+ },
472
+ "link-in-text-block": {
473
+ "pass": "Lenker kan adskilles fra den omkringliggende tekst på annen måte enn med farge",
474
+ "fail": "Lenker må skille seg ut fra den omkringliggende tekst på annen måte enn med farge",
475
+ "incomplete": {
476
+ "bgContrast": "Elementets kontrastforhold kunne ikke detekteres. Sjekk for spesifikk 'hover'/'focus' styling",
477
+ "bgImage": "Elementets kontrastforhold kunne ikke detekteres på grunn av et bakgrunnsbilde",
478
+ "bgGradient": "Elementets kontrastforhold kunne ikke detekteres på grunn av en bakgrunnsgradient",
479
+ "imgNode": "Elementets kontrastforhold kunne ikke detekteres, fordi elementet inneholder et bildeelement",
480
+ "bgOverlap": "Elementets kontrastforhold kunne ikke detekteres på grunn av overlappende elementer",
481
+ "default": "Kan ikke regne ut kontrastforhold"
482
+ }
483
+ },
484
+ "autocomplete-appropriate": {
485
+ "pass": "'autocomplete'-verdien er brukt på et passende element",
486
+ "fail": "'autocomplete'-verdien er ikke passende for denne type input"
487
+ },
488
+ "autocomplete-valid": {
489
+ "pass": "'autocomplete'-attributtet er korrekt formatert",
490
+ "fail": "'autocomplete'-attributtet er ikke formatert korrekt"
491
+ },
492
+ "accesskeys": {
493
+ "pass": "'Accesskey' attributtverdien er unik",
494
+ "fail": "Dokumentet har flere elementer med den samme 'accesskey'-attributtet"
495
+ },
496
+ "focusable-content": {
497
+ "pass": "Elementet inneholder fokuserbare elementer",
498
+ "fail": "Elementet skal ha fokuserbart innhold"
499
+ },
500
+ "focusable-disabled": {
501
+ "pass": "Ingen fokuserbare elementer inne i elementet",
502
+ "fail": "Fokuserbart innhold skal slås av eller fjernes fra sidens DOM"
503
+ },
504
+ "focusable-element": {
505
+ "pass": "Elementet er fokuserbart",
506
+ "fail": "Elementet skal være fokuserbart"
507
+ },
508
+ "focusable-no-name": {
509
+ "pass": "Elementet er ikke i sidens tabulerings-rekkefølge ('tab order') eller har tilgjengelig tekst",
510
+ "fail": "Elementet er i sidens tabulerings-rekkefølge ('tab order') og har ikke tilgjengelig tekst"
511
+ },
512
+ "focusable-not-tabbable": {
513
+ "pass": "Ingen fokuserbare elementer inne i element",
514
+ "fail": "Fokuserbart innholdet skal ha tabindex='-1' eller fjernes fra sidens DOM"
515
+ },
516
+ "landmark-is-top-level": {
517
+ "pass": "${data.role} landemerke er på det øverste nivå.",
518
+ "fail": "${data.role} landemerke er innholdet i et annet landemerke."
519
+ },
520
+ "page-has-heading-one": {
521
+ "pass": "Siden har minst én overskrift på nivå 1",
522
+ "fail": "Siden skal ha minst én overskrift på nivå 1"
523
+ },
524
+ "page-has-main": {
525
+ "pass": "Dokumentet har minst ét 'main'-landemerke",
526
+ "fail": "Dokumentet har ikke et 'main'-landemerke"
527
+ },
528
+ "page-no-duplicate-banner": {
529
+ "pass": "Dokumentet har ikke mer enn ett 'banner'-landemerke",
530
+ "fail": "Dokumentet har mer enn ett 'banner-'landemerke"
531
+ },
532
+ "page-no-duplicate-contentinfo": {
533
+ "pass": "Dokumentet har ikke mer enn ett 'contentinfo'-landemerke",
534
+ "fail": "Dokumentet har mer enn ett 'contentinfo'-landemerke"
535
+ },
536
+ "page-no-duplicate-main": {
537
+ "pass": "Dokumentet har ikke mer enn ett 'main'-landemerke",
538
+ "fail": "Dokumentet har mer enn ett 'main'-landemerke"
539
+ },
540
+ "tabindex": {
541
+ "pass": "Elementet har ikke en 'tabindex' som er større enn 0",
542
+ "fail": "Elementet har en 'tabindex' som er større enn 0"
543
+ },
544
+ "alt-space-value": {
545
+ "pass": "Elementet har en alt-attributt med gyldig verdi",
546
+ "fail": "Elementet har en alt-attributt som kun inneholder et mellomrom, som ikke ignoreres av alle skjermlesere"
547
+ },
548
+ "duplicate-img-label": {
549
+ "pass": "Elementet duplisere ikke den eksisterende tekst fra <img> elementets alt-tekst",
550
+ "fail": "Elementet inneholder et <img> element med alt-tekst, som duplisere den eksisterende tekst"
551
+ },
552
+ "explicit-label": {
553
+ "pass": "Form-elementet har en eksplisitt <label>",
554
+ "fail": "Form-elementet har ikke en eksplisitt <label>"
555
+ },
556
+ "help-same-as-label": {
557
+ "pass": "Hjelpeteksten ('title' eller 'aria-describedby') duplisere ikke label-teksten",
558
+ "fail": "Hjelpeteksten ('title' eller 'aria-describedby') er den samme som label-teksten"
559
+ },
560
+ "hidden-explicit-label": {
561
+ "pass": "Form-elementet har en synlig og eksplisitt <label>",
562
+ "fail": "Form-elementet har en eksplisitt <label>, som er skjult"
563
+ },
564
+ "implicit-label": {
565
+ "pass": "Form-elementet har en implisitt (inne i en) <label>",
566
+ "fail": "Form-elementet har ikke en implisitt (inne i en) <label>"
567
+ },
568
+ "label-content-name-mismatch": {
569
+ "pass": "Elementet inneholder synlig tekst som del av dets tilgjengelige navn",
570
+ "fail": "Tekst i elementet er ikke inkluderet i det tilgjengelige navn"
571
+ },
572
+ "multiple-label": {
573
+ "pass": "Form-feltet har ikke flere label-elementer",
574
+ "incomplete": "Flere label-elementer er ikke bredt understøttet i tilgjengelighetsteknologier. Sørg for at det første label-element inneholder all nødvendige informasjon."
575
+ },
576
+ "title-only": {
577
+ "pass": "Form-elementet bruker ikke utelukkende 'title'-attributtet som label",
578
+ "fail": "Kun 'title'-attributtet er brukt som label for form-elementet"
579
+ },
580
+ "landmark-is-unique": {
581
+ "pass": "Landemerker skal ha en unik rolle eller 'role'/'label'/'title'-attributtkombinasjon (som tilgjengelig navn)",
582
+ "fail": "Et landemerke skal ha en unik 'aria-label', 'aria-labelledby', eller 'title' for å gjøre landemerker atskillelige"
583
+ },
584
+ "has-lang": {
585
+ "pass": "<html> elementet har en 'lang'-attributt",
586
+ "fail": "<html> elementet har ikke en 'lang'-attributt"
587
+ },
588
+ "valid-lang": {
589
+ "pass": "'lang'-attributtet sin verdi er inkluderet i listen over godkjente språk",
590
+ "fail": "'lang'-attributtet sin verdi er ikke inkluderet i listen over gyldige språk"
591
+ },
592
+ "xml-lang-mismatch": {
593
+ "pass": "Attributtene 'lang' og 'xml:lang' har samme språk / dialekt",
594
+ "fail": "Attributtene 'lang' og 'xml:lang' har ikke samme språk / dialekt"
595
+ },
596
+ "dlitem": {
597
+ "pass": "Beskrivelsesliste-elementet har et <dl>-over-element",
598
+ "fail": "Beskrivelsesliste-elementet har ikke et <dl>-over-element"
599
+ },
600
+ "listitem": {
601
+ "pass": "Elementet i listen har et <ul>, <ol> eller 'role=\"list\"'-over-element",
602
+ "fail": "Elementet i listen har ikke et <ul>, <ol> eller 'role=\"list\"'-over-element"
603
+ },
604
+ "only-dlitems": {
605
+ "pass": "Elementet i listen har kun direkte under-elementer, som er tillatt i <dt> eller <dd> elementer",
606
+ "fail": "Elementet i listen har direkte under-elementer, som ikke er tillatt inde i <dt> eller <dd> elementer"
607
+ },
608
+ "only-listitems": {
609
+ "pass": "Elementet i listen har kun direkte under-elementer, som er tillatt i <li> elementer",
610
+ "fail": "Elementet i listen har direkte under-elementer, som ikke er tillatt inne i <li> elementer"
611
+ },
612
+ "structured-dlitems": {
613
+ "pass": "Det ikke-tomme elementet har både <dt> og <dd> elementer",
614
+ "fail": "Det ikke-tomme elementet mangler minst ett <dt> element etterfulgt av minst ett <dd> element"
615
+ },
616
+ "caption": {
617
+ "pass": "Multimedia-elementet har et track med undertekster",
618
+ "incomplete": "Sjekk at undertekster er tilgjengelige for elementet"
619
+ },
620
+ "frame-tested": {
621
+ "pass": "Denne <iframe> ble testet av axe-core",
622
+ "fail": "Denne <iframe> kunne ikke testes av axe-core",
623
+ "incomplete": "Denne <iframe> er enda ikke testet av axe-core"
624
+ },
625
+ "css-orientation-lock": {
626
+ "pass": "Skjermen kan styres, og sidens skjermretning er ikke låst med med 'css-orientation-lock'",
627
+ "fail": "Skjermretningen ('css-orientation-lock') er låst, hvilket gjør sidevisning vanskelig å styre på skjermen",
628
+ "incomplete": "Det kan ikke detekteres om skjermretning er låst (med 'css-orientation-lock')"
629
+ },
630
+ "meta-viewport-large": {
631
+ "pass": "<meta>-tagget begrenser ikke høy zoom på mobile enheter",
632
+ "fail": "<meta>-tagget begrenser zoom på mobile enheter"
633
+ },
634
+ "meta-viewport": {
635
+ "pass": "<meta>-tagget slår ikke zoom av på mobile enheter",
636
+ "fail": "${data} på <meta>-tagget slår zoom av på mobile enheter"
637
+ },
638
+ "header-present": {
639
+ "pass": "Siden har en overskrift (header)",
640
+ "fail": "Siden har ikke en overskrift (header)"
641
+ },
642
+ "heading-order": {
643
+ "pass": "Rekkefølgen av overskiftsnivåer er korrekt",
644
+ "fail": "Rekkefølgen av overskiftsnivåer er ikke korrekt"
645
+ },
646
+ "internal-link-present": {
647
+ "pass": "Passende 'skip link' funnet",
648
+ "fail": "Ingen passende 'skip link' funnet"
649
+ },
650
+ "landmark": {
651
+ "pass": "Siden har en 'landemerke' region",
652
+ "fail": "Siden har ikke en 'landemerke' region"
653
+ },
654
+ "meta-refresh": {
655
+ "pass": "<meta>-tagget oppdaterer ikke siden med det samme",
656
+ "fail": "<meta>-tagget oppdaterer siden med det samme"
657
+ },
658
+ "p-as-heading": {
659
+ "pass": "<p> elementer er ikke stylet som en overskrift",
660
+ "fail": "Overskrifts-elementer (<h1>, <h2>, osv.) skal brukes i stedet for stylet <p> elementer"
661
+ },
662
+ "region": {
663
+ "pass": "Alt innholdet på siden er lagt inn under landemerker",
664
+ "fail": "Deler av sidens innholdet er ikke lagt inn under et landemerke"
665
+ },
666
+ "skip-link": {
667
+ "pass": "Elementet som 'skip link' refererer til, eksisterer",
668
+ "incomplete": "Element som 'skip link' refererer til, skal bli synlig ved aktivering",
669
+ "fail": "Manglende 'skip link' 'target'-attributt"
670
+ },
671
+ "unique-frame-title": {
672
+ "pass": "Elementets 'title'-attributt er unik",
673
+ "fail": "Elementets 'title'-attributt er ikke unik"
674
+ },
675
+ "duplicate-id-active": {
676
+ "pass": "Dokumentet har ingen aktive elementer som deler den samme 'id'-attributt",
677
+ "fail": "Dokumentet har aktive elementer som deler den samme 'id'-attributten: ${data}"
678
+ },
679
+ "duplicate-id-aria": {
680
+ "pass": "Dokumentet har ingen elementer referert med ARIA eller labels, som deler den samme 'id'-attributten",
681
+ "fail": "Dokumentet har flere elementer referert med ARIA med den samme 'id'-attributten: ${data}"
682
+ },
683
+ "duplicate-id": {
684
+ "pass": "Dokumentet har ingen statiske elementer som deler den samme 'id'-attributtet",
685
+ "fail": "Dokumentet har flere statiske elementer med den samme 'id'-attributtet"
686
+ },
687
+ "aria-label": {
688
+ "pass": "'aria-label'-attributt er til stede og er ikke tomt",
689
+ "fail": "'aria-label'-attributt eksisterer ikke eller er tomt"
690
+ },
691
+ "aria-labelledby": {
692
+ "pass": "'aria-labelledby'-attributt eksisterer og refererer elementer som er synlige for skjermlesere",
693
+ "fail": "'aria-labelledby'-attributt eksisterer ikke, eller refererer elementer, som ikke eksisterer - eller refererer til elementer, som er tomme"
694
+ },
695
+ "avoid-inline-spacing": {
696
+ "pass": "Ingen inline styling med '!important', som påvirker tekst-mellomrom-avstand er spesifisert",
697
+ "fail": {
698
+ "singular": "Fjern '!important' fra inline stylings ${data.values}, da overskrivning av dette ikke er understøttet i de fleste nettlesere",
699
+ "plural": "Fjern '!important' fra inline styling ${data.values}, da overskrivning av dette ikke er understøttet i de fleste nettlesere"
700
+ }
701
+ },
702
+ "button-has-visible-text": {
703
+ "pass": "Elementet har indre tekst, som er synlig for skjermlesere",
704
+ "fail": "Elementet har ingen indre tekst, som er synlig for skjermlesere"
705
+ },
706
+ "doc-has-title": {
707
+ "pass": "Dokumentet har et <title> element som ikke er tomt",
708
+ "fail": "Dokumentet mangler et <title> element med innhold"
709
+ },
710
+ "exists": {
711
+ "pass": "Elementet eksisterer ikke",
712
+ "fail": "Elementet eksisterer"
713
+ },
714
+ "has-alt": {
715
+ "pass": "Elementet har en 'alt'-attributt",
716
+ "fail": "Elementet har ikke en 'alt'-attributt"
717
+ },
718
+ "has-visible-text": {
719
+ "pass": "Elementet har tekst som er synlig for skjermlesere",
720
+ "fail": "Elementet har ikke tekst som er synlig for skjermlesere"
721
+ },
722
+ "is-on-screen": {
723
+ "pass": "Elementet er ikke synlig",
724
+ "fail": "Elementet er synlig"
725
+ },
726
+ "non-empty-alt": {
727
+ "pass": "Elementet har 'alt'-attributt med innhold",
728
+ "fail": "Elementet har ingen 'alt'-attributt, eller 'alt'-attributtet er tomt"
729
+ },
730
+ "non-empty-if-present": {
731
+ "pass": {
732
+ "default": "Elementet har ikke en 'value'-attributt",
733
+ "has-label": "Elementet har en 'verdi'-attributt med innhold"
734
+ },
735
+ "fail": "Elementet har en 'value'-attributt, og 'verdi'-attributtet er tomt"
736
+ },
737
+ "non-empty-title": {
738
+ "pass": "Elementet har en 'title'-attributt",
739
+ "fail": "Elementet har ingen 'title'-attributt, eller 'title'-attributtet er tomt"
740
+ },
741
+ "non-empty-value": {
742
+ "pass": "Elementet har 'value'-attributt med innholdet",
743
+ "fail": "Elementet har ingen 'value'-attributt, eller 'value'-attributtet er tomt"
744
+ },
745
+ "role-none": {
746
+ "pass": "Elementets standard semantikk ble overskrevet med attributtet 'role=\"none\"'",
747
+ "fail": "Elementets standard semantikk ble ikke overskrevet med attributtet 'role=\"none\"'"
748
+ },
749
+ "role-presentation": {
750
+ "pass": "Elementets standard semantikk ble overskrevet med attributtet 'role=\"presentation\"'",
751
+ "fail": "Elementets standard semantikk ble ikke overskrevet med attributtet 'role=\"presentation\"'"
752
+ },
753
+ "caption-faked": {
754
+ "pass": "Den første raden i tabellen er ikke brukt som en beskrivelse ('caption')",
755
+ "fail": "Det første elementet i tabellen skal være en beskrivelse (<caption>) i stedet for en celle"
756
+ },
757
+ "html5-scope": {
758
+ "pass": "'Scope'-attributtet skal kun brukes på tabellens header-elementer (<th>)",
759
+ "fail": "'Scope'-attributtet skal kun brukes på tabellens header-elementer (<th>)"
760
+ },
761
+ "same-caption-summary": {
762
+ "pass": "innholdet av 'summary'-attributtet og <caption> elementet er ikke identisk",
763
+ "fail": "innholdet av 'summary'-attributtet og <caption> elementet er identisk"
764
+ },
765
+ "scope-value": {
766
+ "pass": "'scope'-attributtet brukes korrekt",
767
+ "fail": "Verdien av 'scope'-attributtet skal kun være 'row' eller 'col'"
768
+ },
769
+ "td-has-header": {
770
+ "pass": "Alle data-celler med innhold har en tabell-header",
771
+ "fail": "Noen data-celler med innhold har ikke tabell-headers"
772
+ },
773
+ "td-headers-attr": {
774
+ "pass": "Header-attributtet brukes kun til å referere til andre celler i den samme tabel",
775
+ "fail": "Header-attributtet brukes ikke kun til å referere til andre celler i den samme tabel"
776
+ },
777
+ "th-has-data-cells": {
778
+ "pass": "Alle tabellens header-celler refererer til data-celler",
779
+ "fail": "Ikke alle tabellens header-celler refererer til data-celler",
780
+ "incomplete": "Noen av tabellens data-celler mangler eller er tomme"
781
+ },
782
+ "hidden-content": {
783
+ "pass": "Alt innholdet på siden er blitt analyseret.",
784
+ "fail": "Der var problemer med å analysere deler av innholdet på denne side.",
785
+ "incomplete": "Der er skjult innhold på siden som ikke ble analyseret. Du må gjøre dette innholdet synlig for å kunne analysere det."
786
+ }
787
+ },
788
+ "failureSummaries": {
789
+ "any": {
790
+ "failureMessage": "Rett en av følgende: {{~it:value}}\n {{=value.split('\\n').join('\\n ')}}{{~}}"
791
+ },
792
+ "none": {
793
+ "failureMessage": "Rett alle de følgende: {{~it:value}}\n {{=value.split('\\n').join('\\n ')}}{{~}}"
794
+ }
795
+ },
796
+ "incompleteFallbackMessage": "axe kunne ikke finne årsaken. Tid for å finne frem utviklerverktøyet(element inspector)!"
797
+ }