da.json 32 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776
  1. {
  2. "lang": "da",
  3. "rules": {
  4. "accesskeys": {
  5. "description": "",
  6. "help": "Værdien for attributten 'accesskey' skal være unik"
  7. },
  8. "area-alt": {
  9. "description": "",
  10. "help": "Aktive <area> elementer skal have alternativ tekst"
  11. },
  12. "aria-allowed-attr": {
  13. "description": "",
  14. "help": "Elementer må kun bruge tilladte ARIA-attributter"
  15. },
  16. "aria-allowed-role": {
  17. "description": "",
  18. "help": "ARIA-attributten 'role' skal være passende for elementet"
  19. },
  20. "aria-hidden-body": {
  21. "description": "",
  22. "help": "aria-hidden='true' må ikke bruges på dokumentets <body> element"
  23. },
  24. "aria-hidden-focus": {
  25. "description": "",
  26. "help": "Elementer med ARIA-'hidden' må ikke indeholde fokuserbare elementer"
  27. },
  28. "aria-input-field-name": {
  29. "description": "",
  30. "help": "ARIA-input-felter skal have et tilgængeligt navn"
  31. },
  32. "aria-required-attr": {
  33. "description": "",
  34. "help": "Krævede ARIA-attributter skal være angivet"
  35. },
  36. "aria-required-children": {
  37. "description": "",
  38. "help": "Bestemte ARIA-roller skal indeholde specifikke under-elementer"
  39. },
  40. "aria-required-parent": {
  41. "description": "",
  42. "help": "Bestemte ARIA-roller skal være under-element til specifikke over-elementer"
  43. },
  44. "aria-roledescription": {
  45. "description": "",
  46. "help": "Brug 'aria-roledescription' på elementer med en semantisk rolle"
  47. },
  48. "aria-roles": {
  49. "description": "",
  50. "help": "ARIA-roller skal have en korrekt værdi"
  51. },
  52. "aria-toggle-field-name": {
  53. "description": "",
  54. "help": "ARIA afkrydsningsfelter skal have et tilgængeligt navn"
  55. },
  56. "aria-valid-attr-value": {
  57. "description": "",
  58. "help": "ARIA-attributter skal have en korrekt værdi"
  59. },
  60. "aria-valid-attr": {
  61. "description": "",
  62. "help": "ARIA-attributter skal have et korrekt navn"
  63. },
  64. "audio-caption": {
  65. "description": "",
  66. "help": "<audio> elementer skal have en transskription ('captions track')"
  67. },
  68. "autocomplete-valid": {
  69. "description": "",
  70. "help": "Attributten 'autocomplete' skal benyttes korrekt"
  71. },
  72. "avoid-inline-spacing": {
  73. "description": "",
  74. "help": "Inline tekst-afstande skal være justerbare med brugerdefinerede stylesheets"
  75. },
  76. "blink": {
  77. "description": "",
  78. "help": "Elementet <blink> er udfaset og må ikke bruges"
  79. },
  80. "button-name": {
  81. "description": "",
  82. "help": "Knapper skal have forståelig (dvs. detekterbar) tekst"
  83. },
  84. "bypass": {
  85. "description": "",
  86. "help": "Sider skal have en metode til at springe over gentaget indhold"
  87. },
  88. "color-contrast": {
  89. "description": "",
  90. "help": "Elementer skal have tilstrækkelig farvekontrast"
  91. },
  92. "css-orientation-lock": {
  93. "description": "",
  94. "help": "'CSS Media queries' bør ikke bruges til at låse skærmretningen ('orientation')"
  95. },
  96. "definition-list": {
  97. "description": "",
  98. "help": "<dl> elementer må kun direkte indeholde velsorterede <dt> og <dd> grupper, <script> eller <template> elementer"
  99. },
  100. "dlitem": {
  101. "description": "",
  102. "help": "<dt> og <dd> elementer skal være under-element til et <dl> element"
  103. },
  104. "document-title": {
  105. "description": "",
  106. "help": "Dokumenter skal have et <title> element for at bidrage til nemmere navigation"
  107. },
  108. "duplicate-id-active": {
  109. "description": "",
  110. "help": "'id'-attributten for aktive elementer skal være unik"
  111. },
  112. "duplicate-id-aria": {
  113. "description": "",
  114. "help": "'id'-attributten brugt på ARIA-elementer og -labels skal være unik"
  115. },
  116. "duplicate-id": {
  117. "description": "",
  118. "help": "Værdien for 'id'-attributen skal være unik"
  119. },
  120. "empty-heading": {
  121. "description": "",
  122. "help": "Overskrifter må ikke være tomme"
  123. },
  124. "focus-order-semantics": {
  125. "description": "",
  126. "help": "Elementer i fokus-rækkefølgen bør have en 'role'-attribut, som er passende for det interaktive indhold"
  127. },
  128. "form-field-multiple-labels": {
  129. "description": "",
  130. "help": "Form-feltet bør ikke have flere label-elementer"
  131. },
  132. "frame-tested": {
  133. "description": "",
  134. "help": "Frame-elementer skal være testet med axe-core"
  135. },
  136. "frame-title-unique": {
  137. "description": "",
  138. "help": "Frame-elementer skal have en unik 'title'-attribut"
  139. },
  140. "frame-title": {
  141. "description": "",
  142. "help": "Frame-elementer skal have 'title'-attribut"
  143. },
  144. "heading-order": {
  145. "description": "",
  146. "help": "Overskriftsniveauer bør kun ændres sekventielt"
  147. },
  148. "hidden-content": {
  149. "description": "",
  150. "help": "Skjult indhold på siden kan ikke analyseres"
  151. },
  152. "html-has-lang": {
  153. "description": "",
  154. "help": "<html> elementet skal have en 'lang'-attribut"
  155. },
  156. "html-lang-valid": {
  157. "description": "",
  158. "help": "<html> elementet skal have en korrekt værdi for 'lang'-attributten"
  159. },
  160. "html-xml-lang-mismatch": {
  161. "description": "",
  162. "help": "<html> elementer med 'lang' og 'xml:lang' skal have det samme basesprog"
  163. },
  164. "image-alt": {
  165. "description": "",
  166. "help": "Billeder skal have en alternativ tekst"
  167. },
  168. "image-redundant-alt": {
  169. "description": "",
  170. "help": "Alternativ tekst til billeder (alt-tekst) bør ikke gentages som brødtekst"
  171. },
  172. "input-button-name": {
  173. "description": "",
  174. "help": "Input-knapper skal have en forståelig tekst"
  175. },
  176. "input-image-alt": {
  177. "description": "",
  178. "help": "Billed-knapper skal have en alternativ tekst"
  179. },
  180. "label-content-name-mismatch": {
  181. "description": "",
  182. "help": "Elementers synlige tekst skal være del af deres tilgængelige navn"
  183. },
  184. "label-title-only": {
  185. "description": "",
  186. "help": "Form-elementer bør have en synlig label"
  187. },
  188. "label": {
  189. "description": "",
  190. "help": "Form-elementer skal have labels"
  191. },
  192. "landmark-banner-is-top-level": {
  193. "description": "",
  194. "help": "Et 'banner'-landmark må ikke være indeholdt i et andet landmark"
  195. },
  196. "landmark-complementary-is-top-level": {
  197. "description": "",
  198. "help": "Et 'aside'- eller 'complimentary'-landmark må ikke være indeholdt i et andet landmark"
  199. },
  200. "landmark-contentinfo-is-top-level": {
  201. "description": "",
  202. "help": "Et 'contentinfo'-landmark må ikke være indeholdt i et andet landmark"
  203. },
  204. "landmark-main-is-top-level": {
  205. "description": "",
  206. "help": "Et 'main'-landmark må ikke være indeholdt i et andet landmark"
  207. },
  208. "landmark-no-duplicate-banner": {
  209. "description": "",
  210. "help": "Dokumentet må ikke have mere end ét 'banner'-landmark"
  211. },
  212. "landmark-no-duplicate-contentinfo": {
  213. "description": "",
  214. "help": "Dokumentet må ikke have mere end ét 'contentinfo'-landmark"
  215. },
  216. "landmark-one-main": {
  217. "description": "",
  218. "help": "Dokumentet skal have ét 'main'-landmark"
  219. },
  220. "landmark-unique": {
  221. "description": "",
  222. "help": "Sikrer at landmarks er unikke"
  223. },
  224. "link-in-text-block": {
  225. "description": "",
  226. "help": "Links skal være fremtrædende fra den omkringliggende tekst på en måde, som ikke afhænger af farve"
  227. },
  228. "link-name": {
  229. "description": "",
  230. "help": "Links skal have forståelig (detekterbar) tekst"
  231. },
  232. "list": {
  233. "description": "",
  234. "help": "<ul> og <ol> må kun direkte indeholde <li>, <script> eller <template> elementer"
  235. },
  236. "listitem": {
  237. "description": "",
  238. "help": "<li> elementer skal være indeholdt i et <ul> eller <ol> element"
  239. },
  240. "marquee": {
  241. "description": "",
  242. "help": "<marquee> elementer er udfaset og må ikke bruges"
  243. },
  244. "meta-refresh": {
  245. "description": "",
  246. "help": "Tidsindstillet 'refresh' må ikke bruges"
  247. },
  248. "meta-viewport-large": {
  249. "description": "",
  250. "help": "Brugere bør kunne zoome og skalere tekst op til 500%"
  251. },
  252. "meta-viewport": {
  253. "description": "",
  254. "help": "Zoom og skalering må ikke være slået fra"
  255. },
  256. "object-alt": {
  257. "description": "",
  258. "help": "<object> elementer skal have en alternativ tekst"
  259. },
  260. "p-as-heading": {
  261. "description": "",
  262. "help": "Fremhævelse med fed, kursiv og skriftstørrelse (font-size) må ikke bruges til at style <p> elementer som en overskrift"
  263. },
  264. "page-has-heading-one": {
  265. "description": "",
  266. "help": "Siden skal indeholde en overskrift på øverste niveau"
  267. },
  268. "region": {
  269. "description": "",
  270. "help": "Alt indhold på siden skal være indeholdt i landmarks"
  271. },
  272. "role-img-alt": {
  273. "description": "",
  274. "help": "Elementer med 'role' attributværdien 'img' skal have en alternativ tekst"
  275. },
  276. "scope-attr-valid": {
  277. "description": "",
  278. "help": "'scope'-attributten skal bruges korrekt i tabeller"
  279. },
  280. "scrollable-region-focusable": {
  281. "description": "",
  282. "help": "Sørg for, at en scrollbar region er tilgængeligt via keyboard"
  283. },
  284. "server-side-image-map": {
  285. "description": "",
  286. "help": "Såkaldte 'server-side image-maps' må ikke bruges"
  287. },
  288. "skip-link": {
  289. "description": "",
  290. "help": "Et 'skip-link' skal pege på et eksisterende og fokuserbart element"
  291. },
  292. "tabindex": {
  293. "description": "",
  294. "help": "Elementer bør ikke have et 'tabindex' højere end 0"
  295. },
  296. "table-duplicate-name": {
  297. "description": "",
  298. "help": "Elementet <caption> bør ikke indeholde samme tekst som 'summary'-attributten"
  299. },
  300. "table-fake-caption": {
  301. "description": "",
  302. "help": "Data- eller overskrifts-celler bør ikke bruges til at beskrive indholdet af en data-tabel"
  303. },
  304. "td-has-header": {
  305. "description": "",
  306. "help": "Alle ikke-tomme <td> elementer i en tabel større end 3x3 bør have en tabeloverskrift (<th>)"
  307. },
  308. "td-headers-attr": {
  309. "description": "",
  310. "help": "Alle celler i en tabel, som bruger 'header'-attributten må kun referere til andre celler i samme tabel"
  311. },
  312. "th-has-data-cells": {
  313. "description": "",
  314. "help": "Alle <th> elementer og elementer med 'role=columnheader/rowheader' skal referere til de data-celler, som de beskriver"
  315. },
  316. "valid-lang": {
  317. "description": "",
  318. "help": "'lang'-attributten skal have en korrekt værdi"
  319. },
  320. "video-caption": {
  321. "description": "",
  322. "help": "<video> elementer skal have undertekster ('captions')"
  323. }
  324. },
  325. "checks": {
  326. "abstractrole": {
  327. "pass": "Abstrakte roller er ikke brugt",
  328. "fail": "Abstrakte roller bør ikke bruges"
  329. },
  330. "aria-allowed-attr": {
  331. "pass": "ARIA-attribut er brugt korrekt for den angivede rolle",
  332. "fail": {
  333. "singular": "ARIA-attributterne er ikke tilladt: ${data.values}",
  334. "plural": "ARIA-attribut er ikke tilladt: ${data.values}"
  335. }
  336. },
  337. "aria-allowed-role": {
  338. "pass": "ARIA-rollen er tilladt for det givne element",
  339. "fail": {
  340. "singular": "ARIA-rollerne ${data.values} er ikke tilladt for det givne element",
  341. "plural": "ARIA-rollen ${data.values} er ikke tilladt for det givne element"
  342. },
  343. "incomplete": {
  344. "singular": "ARIA-rollerne ${data.values} skal være fjernet, når elementet er synligt, da de ikke er tilladt for elementet",
  345. "plural": "ARIA-rollen ${data.values} skal være fjernet, når elementet er synligt, da det ikke er tilladt for elementet"
  346. }
  347. },
  348. "aria-hidden-body": {
  349. "pass": "Ingen 'aria-hidden'-attribut er at finde i dokumentets <body> element",
  350. "fail": "'aria-hidden=true' bør ikke bruges på dokumentets <body> element"
  351. },
  352. "aria-roledescription": {
  353. "pass": "'aria-roledescription' bruges på en understøttet semantisk rolle",
  354. "incomplete": "Tjek at 'aria-roledescription' bliver læst op af understøttet skærmlæser",
  355. "fail": "Giv elementet en rolle, som understøtter 'aria-roledescription'"
  356. },
  357. "aria-errormessage": {
  358. "pass": "Bruger en understøttet 'aria-errormessage'-teknik",
  359. "fail": {
  360. "singular": "'aria-errormessage'-værdier ${data.values}` bør bruge en teknik til at annoncere beskeden (fx 'aria-live', 'aria-describedby', 'role=alert', osv.)",
  361. "plural": "'aria-errormessage'-værdi ${data.values}` bør bruge en teknik til at annoncere beskeden (fx 'aria-live', 'aria-describedby', 'role=alert', osv.)"
  362. }
  363. },
  364. "has-widget-role": {
  365. "pass": "Elementet har en 'widget'-rolle.",
  366. "fail": "Elementet har ikke en 'widget'-rolle."
  367. },
  368. "invalidrole": {
  369. "pass": "ARIA-rollen er korrekt",
  370. "fail": "Rollen skal være en af de mulige ARIA-roller"
  371. },
  372. "no-implicit-explicit-label": {
  373. "pass": "Der er uoverensstemmelse mellem <label> og det tilgængelige navn",
  374. "incomplete": "Tjek at <label> elementet ikke behøver være en del af ${data}-feltets navn"
  375. },
  376. "aria-required-attr": {
  377. "pass": "Alle krævede ARIA-attributter er tilstede",
  378. "fail": {
  379. "singular": "Krævet ARIA-attributter er ikke til stede: ${data.values}",
  380. "plural": "Krævet ARIA-attribut er ikke til stede: ${data.values}"
  381. }
  382. },
  383. "aria-required-children": {
  384. "pass": "Krævet ARIA-under-elementer er til stede",
  385. "fail": {
  386. "singular": "Krævet ARIA-under-elementers rolle er ikke til stede: ${data.values}",
  387. "plural": "Krævet ARIA-under-elements rolle er ikke til stede: ${data.values}"
  388. },
  389. "incomplete": {
  390. "singular": "Forventer at ARIA under-elementers rolle bliver tilføjet: ${data.values}",
  391. "plural": "Forventer at ARIA under-elements rolle bliver tilføjet: ${data.values}"
  392. }
  393. },
  394. "aria-required-parent": {
  395. "pass": "Krævet ARIA-over-elements rolle er til stede",
  396. "fail": {
  397. "singular": "Krævet ARIA-over-elementers rolle er ikke til stede: ${data.values}",
  398. "plural": "Krævet ARIA-over-elements rolle er ikke til stede: ${data.values}"
  399. }
  400. },
  401. "aria-unsupported-attr": {
  402. "pass": "ARIA-attribut er understøttet",
  403. "fail": "ARIA-attribut er ikke bredt understøttet i skærmlæsere og tilgængelighedsteknologier: ${data.values}"
  404. },
  405. "unsupportedrole": {
  406. "pass": "ARIA rollen er understøttet",
  407. "fail": "Den brugte rolle er ikke bredt understøttet i skærmlæsere og tilgængelighedsteknologier: ${data.values}"
  408. },
  409. "aria-valid-attr-value": {
  410. "pass": "ARIA-attributværdien er valid",
  411. "fail": {
  412. "singular": "Ikke-korrekt ARIA-attributværdier: ${data.values}",
  413. "plural": "Ikke-korrekt ARIA-attributværdi: ${data.values}"
  414. },
  415. "incomplete": {
  416. "singular": "ARIA-attributternes element 'id' er ikke at finde på siden: ${data.values}",
  417. "plural": "ARIA-attributtens element 'id' er ikke at finde på siden: ${data.values}"
  418. }
  419. },
  420. "aria-valid-attr": {
  421. "pass": {
  422. "singular": "ARIA-attributnavnene er korrekt",
  423. "plural": "ARIA-attributnavnet er korrekt"
  424. },
  425. "fail": {
  426. "singular": "Ikke-korrekt ARIA-attributnavne: ${data.values}",
  427. "plural": "Ikke-korrekt ARIA-attributnavn: ${data.values}"
  428. }
  429. },
  430. "valid-scrollable-semantics": {
  431. "pass": "Elementet har korrekt semantik for et element i fokus-rækkefølgen.",
  432. "fail": "Elementet har ikke korrekt semantik for et element i fokus-rækkefølgen."
  433. },
  434. "color-contrast": {
  435. "pass": "Elementet har stor farvekontrast, den er ${data.contrastRatio}",
  436. "fail": "Elementet har ikke nok farvekontrast, den er ${data.contrastRatio} (forgrundsfarve: ${data.fgColor}, baggrundsfarve: ${data.bgColor}, tekststørrelse: ${data.fontSize}, teksttykkelse: ${data.fontWeight}). Forventet kontrastforhold er ${data.expectedContrastRatio}",
  437. "incomplete": {
  438. "bgImage": "Elementets baggrundsfarve kunne ikke detekteres på grund af et baggrundsbillede",
  439. "bgGradient": "Elementets baggrundsfarve kunne ikke detekteres på grund af en baggrundsgradient",
  440. "imgNode": "Elementets baggrundsfarve kunne ikke detekteres, fordi elementet indeholder et billedelement",
  441. "bgOverlap": "Elementets baggrundsfarve kunne ikke detekteres, fordi det er overlappet af et andet element",
  442. "fgAlpha": "Elementets forgrundsfarve kunne ikke detekteres på grund af dets gennemsigtighed",
  443. "elmPartiallyObscured": "Elementets baggrundsfarve kunne ikke detekteres, fordi det er delvist dækket af et andet element",
  444. "elmPartiallyObscuring": "Elementets baggrundsfarve kunne ikke detekteres, fordi det delvist dækker et andet element",
  445. "outsideViewport": "Elementets baggrundsfarve kunne ikke detekteres, fordi det er udenfor sidens 'viewport'",
  446. "equalRatio": "Elementet har et 1:1-kontrastforhold med baggrunden",
  447. "shortTextContent": "Elementets indhold er for kort til at kunne afgøre, om indholdet ren faktisk ER tekst",
  448. "default": "Kan ikke udregne kontrastforhold"
  449. }
  450. },
  451. "link-in-text-block": {
  452. "pass": "Links kan adskilles fra den omkringliggende tekst på anden måde end med farve",
  453. "fail": "Links bør skille sig ud fra den omkringliggende tekst på anden måde end med farve",
  454. "incomplete": {
  455. "bgContrast": "Elementets kontrastforhold kunne ikke detekteres. Tjek for specifik 'hover'/'focus' styling",
  456. "bgImage": "Elementets kontrastforhold kunne ikke detekteres på grund af et baggrundsbillede",
  457. "bgGradient": "Elementets kontrastforhold kunne ikke detekteres på grund af en baggrundsgradient",
  458. "imgNode": "Elementets kontrastforhold kunne ikke detekteres, fordi elementet indeholder et billedelement",
  459. "bgOverlap": "Elementets kontrastforhold kunne ikke detekteres på grund af overlappende elementer",
  460. "default": "Kan ikke udregne kontrastforhold"
  461. }
  462. },
  463. "autocomplete-appropriate": {
  464. "pass": "'autocomplete'-værdien er brugt på et passende element",
  465. "fail": "'autocomplete'-værdien er ikke passende for denne type input"
  466. },
  467. "autocomplete-valid": {
  468. "pass": "'autocomplete'-attributten er korrekt formateret",
  469. "fail": "'autocomplete'-attributten er forkert formateret"
  470. },
  471. "accesskeys": {
  472. "pass": "'Accesskey' attributværdien er unik",
  473. "fail": "Dokumentet har flere elementer med den samme 'accesskey'-attribut"
  474. },
  475. "focusable-content": {
  476. "pass": "Elementet indeholder fokuserbare elementer",
  477. "fail": "Elementet bør have fokuserbart indhold"
  478. },
  479. "focusable-disabled": {
  480. "pass": "Ingen fokuserbare elementer indeholdt i elementet",
  481. "fail": "Fokuserbart indhold bør slås fra eller fjernes fra sidens DOM"
  482. },
  483. "focusable-element": {
  484. "pass": "Elementet er fokuserbart",
  485. "fail": "Elementet bør være fokuserbart"
  486. },
  487. "focusable-no-name": {
  488. "pass": "Elementet er ikke i sidens tabulerings-rækkefølge ('tab order') eller har tilgængelig tekst",
  489. "fail": "Elementet er i sidens tabulerings-rækkefølge ('tab order') og har ikke tilgængelig tekst"
  490. },
  491. "focusable-not-tabbable": {
  492. "pass": "Ingen fokuserbare elementer indeholdt i element",
  493. "fail": "Fokuserbart indhold bør have tabindex='-1' eller fjernes fra sidens DOM"
  494. },
  495. "landmark-is-top-level": {
  496. "pass": "${data.role} landmark er på det øverste niveau.",
  497. "fail": "${data.role} landmark er indhold i et andet landmark."
  498. },
  499. "page-has-heading-one": {
  500. "pass": "Siden har mindst én overskrift på niveau 1",
  501. "fail": "Siden skal have mindst én overskrift på niveau 1"
  502. },
  503. "page-has-main": {
  504. "pass": "Dokumentet har mindst ét 'main'-landmark",
  505. "fail": "Dokumentet har ikke et 'main'-landmark"
  506. },
  507. "page-no-duplicate-banner": {
  508. "pass": "Dokumentet har ikke mere end ét 'banner'-landmark",
  509. "fail": "Dokumentet har mere end ét 'banner-'landmark"
  510. },
  511. "page-no-duplicate-contentinfo": {
  512. "pass": "Dokumentet har ikke mere end ét 'contentinfo'-landmark",
  513. "fail": "Dokumentet har mere end ét 'contentinfo'-landmark"
  514. },
  515. "page-no-duplicate-main": {
  516. "pass": "Dokumentet har ikke mere end ét 'main'-landmark",
  517. "fail": "Dokumentet har mere end ét 'main'-landmark"
  518. },
  519. "tabindex": {
  520. "pass": "Elementet har ikke et 'tabindex' større end 0",
  521. "fail": "Elementet har et 'tabindex' større end 0"
  522. },
  523. "alt-space-value": {
  524. "pass": "Elementet har en alt-attribut med valid værdi",
  525. "fail": "Elementet har en alt-attribut, som kun indeholder et mellemrum, hvilket ikke ignoreres af alle skærmlæsere"
  526. },
  527. "duplicate-img-label": {
  528. "pass": "Elementet duplikerer ikke den eksisterende tekst fra <img> elementets alt-tekst",
  529. "fail": "Elementet indeholder et <img> element med alt-tekst, som duplikerer den eksisterende tekst"
  530. },
  531. "explicit-label": {
  532. "pass": "Form-elementet har en eksplicit <label>",
  533. "fail": "Form-elementet har ikke en eksplicit <label>"
  534. },
  535. "help-same-as-label": {
  536. "pass": "Hjælpeteksten ('title' eller 'aria-describedby') duplikerer ikke label-teksten",
  537. "fail": "Hjælpeteksten ('title' eller 'aria-describedby') er den samme som label-teksten"
  538. },
  539. "hidden-explicit-label": {
  540. "pass": "Form-elementet har en synlig og eksplicit <label>",
  541. "fail": "Form-elementet har en eksplicit <label>, som er skjult"
  542. },
  543. "implicit-label": {
  544. "pass": "Form-elementet har en implicit (indeholdt i en) <label>",
  545. "fail": "Form-elementet har ikke en implicit (indeholdt i en) <label>"
  546. },
  547. "label-content-name-mismatch": {
  548. "pass": "Elementet indeholder synlig tekst som del af dets tilgængelige navn",
  549. "fail": "Tekst i elementet er ikke inkluderet i det tilgængelige navn"
  550. },
  551. "multiple-label": {
  552. "pass": "Form-feltet har ikke flere label-elementer",
  553. "incomplete": "Flere label-elementer er ikke bredt understøttet i tilgængelighedsteknologier. Sørg for, at det første label-element indeholder alle de nødvendige informationer."
  554. },
  555. "title-only": {
  556. "pass": "Form-elementet bruger ikke udelukkende 'title'-attributten som label",
  557. "fail": "Kun 'title'-attributten er brugt som label for form-elementet"
  558. },
  559. "landmark-is-unique": {
  560. "pass": "Landmarks skal have en unik rolle eller 'role'/'label'/'title'-attribut-kombination (som tilgængeligt navn)",
  561. "fail": "Et landmark skal have en unik 'aria-label', 'aria-labelledby', eller 'title' for at gøre landmarks adskillelige"
  562. },
  563. "has-lang": {
  564. "pass": "<html> elementet har en 'lang'-attribut",
  565. "fail": "<html> elementet har ikke en 'lang'-attribut"
  566. },
  567. "valid-lang": {
  568. "pass": "'lang'-attributtens værdi er inkluderet i listen over godkendte sprog",
  569. "fail": "'lang'-attributtens værdi er ikke inkluderet i listen over godkendte sprog"
  570. },
  571. "xml-lang-mismatch": {
  572. "pass": "Attributterne 'lang' og 'xml:lang' har samme basissprog",
  573. "fail": "Attributterne 'lang' og 'xml:lang' har ikke samme basissprog"
  574. },
  575. "dlitem": {
  576. "pass": "Beskrivelsesliste-elementet har et <dl>-over-element",
  577. "fail": "Beskrivelsesliste-elementet har ikke et <dl>-over-element"
  578. },
  579. "listitem": {
  580. "pass": "Elementet i listen har et <ul>, <ol> eller 'role=\"list\"'-over-element",
  581. "fail": "Elementet i listen har ikke et <ul>, <ol> eller 'role=\"list\"'-over-element"
  582. },
  583. "only-dlitems": {
  584. "pass": "Elementet i listen har kun direkte under-elementer, som er tilladt i <dt> eller <dd> elementer",
  585. "fail": "Elementet i listen har direkte under-elementer, som ikke er tilladt inde i <dt> eller <dd> elementer"
  586. },
  587. "only-listitems": {
  588. "pass": "Elementet i listen har kun direkte under-elementer, som er tilladt i <li> elementer",
  589. "fail": "Elementet i listen har direkte under-elementer, som ikke er tilladt inde i <li> elementer"
  590. },
  591. "structured-dlitems": {
  592. "pass": "Det ikke-tomme element har både <dt> og <dd> elementer",
  593. "fail": "Det ikke-tomme element har ikke mindst ét <dt> element efterfulgt af mindst ét <dd> element"
  594. },
  595. "caption": {
  596. "pass": "Multimedia-elementet har et track med undertekster",
  597. "incomplete": "Tjek at undertekster er tilgængelige for elementet"
  598. },
  599. "frame-tested": {
  600. "pass": "Denne <iframe> blev testet af axe-core",
  601. "fail": "Denne <iframe> kunne ikke testes af axe-core",
  602. "incomplete": "Denne <iframe> er endnu ikke blevet testet af axe-core"
  603. },
  604. "css-orientation-lock": {
  605. "pass": "Skærmen kan styres, og sidens skærmretning er ikke låst med med 'css-orientation-lock'",
  606. "fail": "Skærmretningen ('css-orientation-lock') er låst, hvilket gør sidevisning svær at styre på skærmen",
  607. "incomplete": "Det kan ikke detekteres om skærmretning er låst (med 'css-orientation-lock')"
  608. },
  609. "meta-viewport-large": {
  610. "pass": "<meta>-tagget begrænser ikke høj zoom på mobile enheder",
  611. "fail": "<meta>-tagget begrænser zoom på mobile enheder"
  612. },
  613. "meta-viewport": {
  614. "pass": "<meta>-tagget slår ikke zoom fra på mobile enheder",
  615. "fail": "${data} på <meta>-tagget slår zoom fra på mobile enheder"
  616. },
  617. "header-present": {
  618. "pass": "Siden har en overskrift (header)",
  619. "fail": "Siden har ikke en overskrift (header)"
  620. },
  621. "heading-order": {
  622. "pass": "Rækkefølgen af overskiftsniveauer er korrekt",
  623. "fail": "Rækkefølgen af overskiftsniveauer er ikke korrekt"
  624. },
  625. "internal-link-present": {
  626. "pass": "Passende 'skip link' fundet",
  627. "fail": "Intet passende 'skip link' fundet"
  628. },
  629. "landmark": {
  630. "pass": "Siden har en 'landmark' region",
  631. "fail": "Siden har ikke en 'landmark' region"
  632. },
  633. "meta-refresh": {
  634. "pass": "<meta>-tagget genindlæser ikke siden med det samme",
  635. "fail": "<meta>-tagget genindlæser siden med det samme"
  636. },
  637. "p-as-heading": {
  638. "pass": "<p> elementer er ikke stylet som en overskrift",
  639. "fail": "Overskrifts-elementer (<h1>, <h2>, osv.) bør bruges i stedet for stylet <p> elementer"
  640. },
  641. "region": {
  642. "pass": "Al indhold på siden er lagt ind under landmarks",
  643. "fail": "Dele af sidens indhold er ikke lagt under et landmark"
  644. },
  645. "skip-link": {
  646. "pass": "Det element, som 'skip link' refererer til, eksisterer",
  647. "incomplete": "Det element, som 'skip link' refererer til, bør blive synligt ved aktivering",
  648. "fail": "Manglende 'skip link' 'target'-attribut"
  649. },
  650. "unique-frame-title": {
  651. "pass": "Elementets 'title'-attribut er unik",
  652. "fail": "Elementets 'title'-attribut er ikke unik"
  653. },
  654. "duplicate-id-active": {
  655. "pass": "Dokumentet har ingen aktive elementer, der deler den samme 'id'-attribut",
  656. "fail": "Dokumentet har aktive elementer, der deler den samme 'id'-attribut: ${data}"
  657. },
  658. "duplicate-id-aria": {
  659. "pass": "Dokumentet har ingen elementer refereret med ARIA eller labels, der deler den samme 'id'-attribut",
  660. "fail": "Dokumentet har flere elementer refereret med ARIA med den samme 'id'-attribut: ${data}"
  661. },
  662. "duplicate-id": {
  663. "pass": "Dokumentet har ingen statiske elementer, der deler den samme 'id'-attribut",
  664. "fail": "Dokumentet har flere statiske elementer med den samme 'id'-attribut"
  665. },
  666. "aria-label": {
  667. "pass": "'aria-label'-attribut er til stede og er ikke tom",
  668. "fail": "'aria-label'-attribut eksisterer ikke eller er tom"
  669. },
  670. "aria-labelledby": {
  671. "pass": "'aria-labelledby'-attribut eksisterer og refererer elementer, der er synlige for skærmlæsere",
  672. "fail": "'aria-labelledby'-attribut eksisterer ikke, eller refererer elementer, som ikke eksisterer - eller refererer til elementer, der er tomme"
  673. },
  674. "avoid-inline-spacing": {
  675. "pass": "Ingen inline styling med '!important', som påvirker tekst-mellemrums-afstand er specificeret",
  676. "fail": {
  677. "singular": "Fjern '!important' fra inline stylings ${data.values}, da overskrivning af dette, ikke er understøttet i de fleste browsere",
  678. "plural": "Fjern '!important' fra inline styling ${data.values}, da overskrivning af dette, ikke er understøttet i de fleste browsere"
  679. }
  680. },
  681. "button-has-visible-text": {
  682. "pass": "Elementet har indre tekst, som er synlig for skærmlæsere",
  683. "fail": "Elementet har ingen indre tekst, som er synlig for skærmlæsere"
  684. },
  685. "doc-has-title": {
  686. "pass": "Dokumentet har et <title> element, der ikke er tomt",
  687. "fail": "Dokumentet mangler et <title> element med indhold"
  688. },
  689. "exists": {
  690. "pass": "Elementet eksisterer ikke",
  691. "fail": "Elementet eksisterer"
  692. },
  693. "has-alt": {
  694. "pass": "Elementet har en 'alt'-attribut",
  695. "fail": "Elementet har ikke en 'alt'-attribut"
  696. },
  697. "has-visible-text": {
  698. "pass": "Elementet har tekst, der er synligt for skærmlæsere",
  699. "fail": "Elementet har ikke tekst, der er synligt for skærmlæsere"
  700. },
  701. "is-on-screen": {
  702. "pass": "Elementet er ikke synligt",
  703. "fail": "Elementet er synligt"
  704. },
  705. "non-empty-alt": {
  706. "pass": "Elementet har 'alt'-attribut med indhold",
  707. "fail": "Elementet har ingen 'alt'-attribut, eller 'alt'-attributten er tom"
  708. },
  709. "non-empty-if-present": {
  710. "pass": {
  711. "default": "Elementet har ikke en 'value'-attribut",
  712. "has-label": "Elementet har en 'værdi'-attribut med indhold"
  713. },
  714. "fail": "Elementet har en 'value'-attribut, og 'værdi'-attributten er tom"
  715. },
  716. "non-empty-title": {
  717. "pass": "Elementet har en 'title'-attribut",
  718. "fail": "Elementet har ingen 'title'-attribut, eller 'title'-attributten er tom"
  719. },
  720. "non-empty-value": {
  721. "pass": "Elementet har 'value'-attribut med indhold",
  722. "fail": "Elementet har ingen 'value'-attribut, eller 'value'-attributten er tom"
  723. },
  724. "role-none": {
  725. "pass": "Elementets standard semantik blev overskrevet med attributten 'role=\"none\"'",
  726. "fail": "Elementets standard semantik blev ikke overskrevet med attributten 'role=\"none\"'"
  727. },
  728. "role-presentation": {
  729. "pass": "Elementets standard semantik blev overskrevet med attributten 'role=\"presentation\"'",
  730. "fail": "Elementets standard semantik blev ikke overskrevet med attributten 'role=\"presentation\"'"
  731. },
  732. "caption-faked": {
  733. "pass": "Den første række i tabellen er ikke brugt som en beskrivelse ('caption')",
  734. "fail": "Det første element i tabellen bør være en beskrivelse (<caption>) i stedet for en celle"
  735. },
  736. "html5-scope": {
  737. "pass": "'Scope'-attributten bør kun bruges på tabellens header-elementer (<th>)",
  738. "fail": "'Scope'-attributten bør kun bruges på tabellens header-elementer (<th>)"
  739. },
  740. "same-caption-summary": {
  741. "pass": "Indholdet af 'summary'-attributten og <caption> elementet er ikke identisk",
  742. "fail": "Indholdet af 'summary'-attributten og <caption> elementet er identisk"
  743. },
  744. "scope-value": {
  745. "pass": "'scope'-attributten bruges korrekt",
  746. "fail": "Værdien af 'scope'-attributten må kun være 'row' eller 'col'"
  747. },
  748. "td-has-header": {
  749. "pass": "Alle data-celler med indhold har en tabel-header",
  750. "fail": "Nogle data-celler med indhold har ikke tabel-headers"
  751. },
  752. "td-headers-attr": {
  753. "pass": "Header-attributten bruges kun til at referere til andre celler i den samme tabel",
  754. "fail": "Header-attributten bruges ikke kun til at referere til andre celler i den samme tabel"
  755. },
  756. "th-has-data-cells": {
  757. "pass": "Alle tabellens header-celler refererer til data-celler",
  758. "fail": "Ikke alle tabellens header-celler refererer til data-celler",
  759. "incomplete": "Nogle af tabellens data-celler mangler eller er tomme"
  760. },
  761. "hidden-content": {
  762. "pass": "Alt indhold på siden er blevet analyseret.",
  763. "fail": "Der var problemer med at analysere dele af indholdet på denne side.",
  764. "incomplete": "Der er skjult indhold på siden, som ikke blev analyseret. Du skal gøre dette indhold synligt for at kunne analysere det."
  765. }
  766. },
  767. "failureSummaries": {
  768. "any": {
  769. "failureMessage": "Ret en af følgende:{{~it:value}}\n {{=value.split('\\n').join('\\n ')}}{{~}}"
  770. },
  771. "none": {
  772. "failureMessage": "Ret alle de følgende:{{~it:value}}\n {{=value.split('\\n').join('\\n ')}}{{~}}"
  773. }
  774. },
  775. "incompleteFallbackMessage": "axe kunne ikke give en årsag. Tid til at finde dit udviklingsværktøj frem!"
  776. }