el.json 92 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069
  1. {
  2. "lang": "el",
  3. "rules": {
  4. "accesskeys": {
  5. "description": "Διασφαλίζει ότι η τιμή κάθε χαρακτηριστικού accesskey είναι μοναδική",
  6. "help": "η τιμή κάθε χαρακτηριστικού accesskey πρέπει να είναι μοναδική"
  7. },
  8. "area-alt": {
  9. "description": "Διασφαλίζει ότι τα στοιχεία <area> των χαρτών εικόνας έχουν εναλλακτικό κείμενο",
  10. "help": "Τα ενεργά στοιχεία <area> πρέπει να έχουν εναλλακτικό κείμενο"
  11. },
  12. "aria-allowed-attr": {
  13. "description": "Διασφαλίζει ότι o ρόλος του στοιχείου υποστηρίζει τα χαρακτηριστικά ARIA",
  14. "help": "Τα στοιχεία πρέπει να χρησιμοποιούν μόνο υποστηριζόμενα χαρακτηριστικά ARIA"
  15. },
  16. "aria-allowed-role": {
  17. "description": "Διασφαλίζει ότι το χαρακτηριστικό role έχει την κατάλληλη τιμή για το στοιχείο",
  18. "help": "Ο ρόλος ARIA θα πρέπει να είναι κατάλληλος για το στοιχείο"
  19. },
  20. "aria-command-name": {
  21. "description": "Διασφαλίζει ότι κάθε button, link ή menuitem ARIA έχει ένα προσβάσιμο όνομα",
  22. "help": "Οι εντολές ARIA πρέπει να έχουν ένα προσβάσιμο όνομα"
  23. },
  24. "aria-dialog-name": {
  25. "description": "Διασφαλίζει ότι κάθε ARIA σε κόμβο διαλόγου ή διαλόγου ειδοποίησης έχει ένα προσβάσιμο όνομα",
  26. "help": "Οι ARIA κόμβοι διαλόγου καί διαλόγου ειδοποίησης πρέπει να έχουν ένα προσβάσιμο όνομα"
  27. },
  28. "aria-hidden-body": {
  29. "description": "Διασφαλίζει ότι το aria-hidden='true' δεν υπάρχει στο σώμα (body) του εγγράφου.",
  30. "help": "Το aria-hidden='true' δεν πρέπει να υπάρχει στο σώμα (body) του εγγράφου."
  31. },
  32. "aria-hidden-focus": {
  33. "description": "Διασφαλίζει ότι τα κρυφά στοιχεία aria δεν είναι εστιάσιμα ούτε περιέχουν στοιχεία που μπορούν να εστιαστούν",
  34. "help": "Το κρυφό στοιχείο ARIA δεν πρέπει να έχει δυνατότητα εστίασης ή να περιέχει στοιχεία με δυνατότητα εστίασης"
  35. },
  36. "aria-input-field-name": {
  37. "description": "Διασφαλίζει ότι κάθε πεδίο εισαγωγής ARIA έχει ένα προσβάσιμο όνομα",
  38. "help": "Τα πεδία εισαγωγής ARIA πρέπει να έχουν προσβάσιμο όνομα"
  39. },
  40. "aria-meter-name": {
  41. "description": "Διασφαλίζει ότι κάθε κόμβος μετρητή ARIA έχει ένα προσβάσιμο όνομα",
  42. "help": "Οι κόμβοι μετρητών ARIA πρέπει να έχουν προσβάσιμο όνομα"
  43. },
  44. "aria-progressbar-name": {
  45. "description": "Διασφαλίζει ότι κάθε κόμβος γραμμής προόδου ARIA έχει ένα προσβάσιμο όνομα",
  46. "help": "Οι κόμβοι γραμμής προόδου ARIA πρέπει να έχουν ένα προσβάσιμο όνομα"
  47. },
  48. "aria-required-attr": {
  49. "description": "Διασφαλίζει ότι τα στοιχεία με ρόλους ARIA έχουν όλα τα απαιτούμενα χαρακτηριστικά ARIA",
  50. "help": "Πρέπει να παρέχονται τα απαιτούμενα χαρακτηριστικά ARIA"
  51. },
  52. "aria-required-children": {
  53. "description": "Διασφαλίζει ότι τα στοιχεία με ρόλο ARIA που απαιτούν θυγατρικούς ρόλους περιέχουν τα στοιχεία",
  54. "help": "Ορισμένοι ρόλοι ARIA πρέπει να περιέχουν συγκεκριμένα παιδιά"
  55. },
  56. "aria-required-parent": {
  57. "description": "Διασφαλίζει ότι τα στοιχεία με ρόλο ARIA που απαιτούν γονικούς ρόλους περιέχονται σε αυτά",
  58. "help": "Συγκεκριμένοι ρόλοι ARIA πρέπει να περιέχονται από συγκεκριμένους γονείς"
  59. },
  60. "aria-roledescription": {
  61. "description": "Διασφαλίζει ότι το aria-roledescription χρησιμοποιείται μόνο σε στοιχεία με έμμεσο ή ρητό ρόλο",
  62. "help": "Το aria-roledescription πρέπει να είναι σε στοιχεία με σημασιολογικό ρόλο"
  63. },
  64. "aria-roles": {
  65. "description": "Διασφαλίζει ότι όλα τα στοιχεία με χαρακτηριστικό ρόλου χρησιμοποιούν μια έγκυρη τιμή",
  66. "help": "Οι ρόλοι ARIA που χρησιμοποιούνται πρέπει να συμμορφώνονται με έγκυρες τιμές"
  67. },
  68. "aria-text": {
  69. "description": "Διασφαλίζει ότι το \"role=text\" χρησιμοποιείται σε στοιχεία χωρίς δυνατότητα εστίασης",
  70. "help": "Το \"role=text\" δεν πρέπει να έχει εστιάσιμους απογόνους"
  71. },
  72. "aria-toggle-field-name": {
  73. "description": "Διασφαλίζει ότι κάθε πεδίο εναλλαγής ARIA έχει ένα προσβάσιμο όνομα",
  74. "help": "Τα πεδία εναλλαγής ARIA πρέπει να έχουν προσβάσιμο όνομα"
  75. },
  76. "aria-tooltip-name": {
  77. "description": "Διασφαλίζει ότι κάθε κόμβος tooltip ARIA έχει ένα προσβάσιμο όνομα",
  78. "help": "Οι κόμβοι tooltip ARIA πρέπει να έχουν προσβάσιμο όνομα"
  79. },
  80. "aria-treeitem-name": {
  81. "description": "Διασφαλίζει ότι κάθε κόμβος treeitem ARIA έχει ένα προσβάσιμο όνομα",
  82. "help": "Οι κόμβοι treeitem ARIA θα πρέπει να έχουν ένα προσβάσιμο όνομα"
  83. },
  84. "aria-valid-attr-value": {
  85. "description": "Διασφαλίζει ότι όλα τα χαρακτηριστικά ARIA έχουν έγκυρες τιμές",
  86. "help": "Τα χαρακτηριστικά ARIA πρέπει να είναι σύμφωνα με έγκυρες τιμές"
  87. },
  88. "aria-valid-attr": {
  89. "description": "Διασφαλίζει ότι τα χαρακτηριστικά που ξεκινούν με aria- είναι έγκυρα χαρακτηριστικά ARIA",
  90. "help": "Τα χαρακτηριστικά ARIA πρέπει να είναι σύμφωνα με έγκυρα ονόματα"
  91. },
  92. "audio-caption": {
  93. "description": "Διασφαλίζει ότι τα στοιχεία <audio> έχουν υπότιτλους",
  94. "help": "Τα στοιχεία <audio> πρέπει να έχουν λεζάντες"
  95. },
  96. "autocomplete-valid": {
  97. "description": "Διασφαλίζει ότι το χαρακτηριστικό autocomplete είναι σωστό και κατάλληλο για το πεδίο φόρμας",
  98. "help": "Το χαρακτηριστικό autocomplete πρέπει να χρησιμοποιείται σωστά"
  99. },
  100. "avoid-inline-spacing": {
  101. "description": "Διασφαλίζει ότι η απόσταση κειμένου που έχει οριστεί μέσω χαρακτηριστικών στυλ μπορεί να προσαρμοστεί με προσαρμοσμένα φύλλα στυλ",
  102. "help": "Το ενσωματωμένο διάστημα κειμένου πρέπει να είναι ρυθμιζόμενο με προσαρμοσμένα φύλλα στυλ"
  103. },
  104. "blink": {
  105. "description": "Διασφαλίζει ότι τα στοιχεία <blink> δεν χρησιμοποιούνται",
  106. "help": "Τα στοιχεία <blink> έχουν καταργηθεί και δεν πρέπει να χρησιμοποιούνται"
  107. },
  108. "button-name": {
  109. "description": "Διασφαλίζει ότι τα κουμπιά έχουν ευδιάκριτο κείμενο",
  110. "help": "Τα κουμπιά πρέπει να έχουν ευδιάκριτο κείμενο"
  111. },
  112. "bypass": {
  113. "description": "Διασφαλίζει ότι κάθε σελίδα έχει τουλάχιστον έναν μηχανισμό για τον χρήστη να παρακάμπτει την πλοήγηση και να μεταβαίνει απευθείας στο περιεχόμενο",
  114. "help": "Η σελίδα πρέπει να έχει τρόπο για την παράκαμψη επαναλαμβανόμενων μπλοκ"
  115. },
  116. "color-contrast-enhanced": {
  117. "description": "Διασφαλίζει ότι η ενισχυμένη αντίθεση μεταξύ των χρωμάτων προσκηνίου και φόντου πληροί τα όρια αναλογίας αντίθεσης WCAG 2 AAA",
  118. "help": "Τα στοιχεία πρέπει να έχουν επαρκώς ενισχυμένη χρωματική αντίθεση"
  119. },
  120. "color-contrast": {
  121. "description": "Διασφαλίζει ότι η αντίθεση μεταξύ των χρωμάτων προσκηνίου και φόντου πληροί τα όρια αναλογίας αντίθεσης WCAG 2 AA",
  122. "help": "Τα στοιχεία πρέπει να έχουν επαρκή χρωματική αντίθεση"
  123. },
  124. "css-orientation-lock": {
  125. "description": "Διασφαλίζει ότι το περιεχόμενο δεν είναι κλειδωμένο σε κάποιον συγκεκριμένο προσανατολισμό οθόνης και ότι είναι λειτουργικό σε όλους τους προσανατολισμούς οθόνης",
  126. "help": "Τα ερωτήματα πολυμέσων CSS δεν πρέπει να κλειδώνουν τον προσανατολισμό της οθόνης"
  127. },
  128. "definition-list": {
  129. "description": "Διασφαλίζει ότι τα στοιχεία <dl> έχουν δομηθεί σωστά",
  130. "help": "Τα στοιχεία <dl> πρέπει να περιέχουν μόνο σωστά διατεταγμένες ομάδες <dt> και <dd>, και <script>, <template> ή <div> στοιχεία"
  131. },
  132. "dlitem": {
  133. "description": "Διασφαλίζει ότι τα στοιχεία <dt> και <dd> περιέχονται από ένα <dl>",
  134. "help": "Τα στοιχεία <dt> και <dd> πρέπει να περιέχονται από ένα <dl>"
  135. },
  136. "document-title": {
  137. "description": "Διασφαλίζει ότι κάθε έγγραφο HTML περιέχει ένα μη κενό στοιχείο <title>",
  138. "help": "Τα έγγραφα πρέπει να διαθέτουν το στοιχείο <title> για να βοηθήσουν στην πλοήγηση"
  139. },
  140. "duplicate-id-active": {
  141. "description": "Διασφαλίζει ότι κάθε τιμή του χαρακτηριστικού id των ενεργών στοιχείων είναι μοναδική",
  142. "help": "Τα ID των ενεργών στοιχείων πρέπει να είναι μοναδικά"
  143. },
  144. "duplicate-id-aria": {
  145. "description": "Διασφαλίζει ότι κάθε τιμή χαρακτηριστικού id που χρησιμοποιείται στο ARIA και στις ετικέτες είναι μοναδική",
  146. "help": "Τα ID που χρησιμοποιούνται στο ARIA και οι ετικέτες πρέπει να είναι μοναδικά"
  147. },
  148. "duplicate-id": {
  149. "description": "Διασφαλίζει ότι κάθε τιμή χαρακτηριστικού id είναι μοναδική",
  150. "help": "Η τιμή του χαρακτηριστικού id πρέπει να είναι μοναδική"
  151. },
  152. "empty-heading": {
  153. "description": "Διασφαλίζει ότι οι επικεφαλίδες έχουν ευδιάκριτο κείμενο",
  154. "help": "Οι επικεφαλίδες δεν πρέπει να είναι κενές"
  155. },
  156. "empty-table-header": {
  157. "description": "Διασφαλίζει ότι οι κεφαλίδες του πίνακα έχουν ευδιάκριτο κείμενο",
  158. "help": "Το κείμενο κεφαλίδας πίνακα δεν πρέπει να είναι κενό"
  159. },
  160. "focus-order-semantics": {
  161. "description": "Διασφαλίζει ότι τα στοιχεία στη σειρά εστίασης έχουν ρόλο κατάλληλο για διαδραστικό περιεχόμενο",
  162. "help": "Τα στοιχεία στη σειρά εστίασης πρέπει να έχουν τον κατάλληλο ρόλο"
  163. },
  164. "form-field-multiple-labels": {
  165. "description": "Διασφαλίζει ότι το πεδίο της φόρμας δεν έχει πολλαπλά στοιχεία ετικέτας",
  166. "help": "Το πεδίο φόρμας δεν πρέπει να έχει πολλαπλά στοιχεία ετικέτας"
  167. },
  168. "frame-focusable-content": {
  169. "description": "Διασφαλίζει ότι τα στοιχεία <frame> και <iframe> με περιεχόμενο που μπορεί να εστιαστεί δεν έχουν tabindex=-1",
  170. "help": "Τα στοιχεία <frame> και <iframe> με εστιάσιμο περιεχόμενο δεν πρέπει να έχουν tabindex=-1"
  171. },
  172. "frame-tested": {
  173. "description": "Διασφαλίζει ότι τα στοιχεία <iframe> και <frame> περιέχουν τη δέσμη ενεργειών του axe-core",
  174. "help": "Τα στοιχεία <iframe> και <frame πρέπει να ελέγχονται με το axe-core"
  175. },
  176. "frame-title-unique": {
  177. "description": "Διασφαλίζει ότι τα στοιχεία <iframe> και <frame> περιέχουν ένα μοναδικό χαρακτηριστικό τίτλου",
  178. "help": "Τα πλαίσια πρέπει να έχουν ένα μοναδικό χαρακτηριστικό τίτλου"
  179. },
  180. "frame-title": {
  181. "description": "Διασφαλίζει ότι τα στοιχεία <iframe> και <frame> έχουν ένα προσβάσιμο όνομα",
  182. "help": "Τα πλαίσια πρέπει να έχουν ένα προσβάσιμο όνομα"
  183. },
  184. "heading-order": {
  185. "description": "Διασφαλίζει ότι η σειρά των επικεφαλίδων είναι σημασιολογικά σωστή",
  186. "help": "Τα επίπεδα επικεφαλίδων θα πρέπει να αυξάνονται μόνο κατά ένα"
  187. },
  188. "hidden-content": {
  189. "description": "Ενημερώνει τους χρήστες για κρυφό περιεχόμενο.",
  190. "help": "Το κρυμμένο περιεχόμενο στη σελίδα πρέπει να αναλυθεί"
  191. },
  192. "html-has-lang": {
  193. "description": "Διασφαλίζει ότι κάθε έγγραφο HTML έχει ένα χαρακτηριστικό lang",
  194. "help": "Το στοιχείο <html> πρέπει να έχει χαρακτηριστικό lang"
  195. },
  196. "html-lang-valid": {
  197. "description": "Διασφαλίζει ότι το χαρακτηριστικό lang του στοιχείου <html> έχει έγκυρη τιμή",
  198. "help": "Το στοιχείο <html> πρέπει να έχει μια έγκυρη τιμή για το χαρακτηριστικό lang"
  199. },
  200. "html-xml-lang-mismatch": {
  201. "description": "Διασφαλίζει ότι τα στοιχεία HTML με έγκυρα χαρακτηριστικά lang και xml:lang συμφωνούν στη βασική γλώσσα της σελίδας",
  202. "help": "Τα στοιχεία HTML με lang και xml:lang πρέπει να έχουν την ίδια βασική γλώσσα"
  203. },
  204. "identical-links-same-purpose": {
  205. "description": "Διασφαλίζει ότι οι σύνδεσμοι με το ίδιο προσβάσιμο όνομα εξυπηρετούν παρόμοιο σκοπό",
  206. "help": "Οι σύνδεσμοι με το ίδιο όνομα πρέπει να έχουν παρόμοιο σκοπό"
  207. },
  208. "image-alt": {
  209. "description": "Διασφαλίζει ότι τα στοιχεία <img> έχουν εναλλακτικό κείμενο ή κανένα ρόλο ή παρουσίαση",
  210. "help": "Οι εικόνες πρέπει να έχουν εναλλακτικό κείμενο"
  211. },
  212. "image-redundant-alt": {
  213. "description": "Διασφαλίζει ότι το εναλλακτικό κείμενο δεν επαναλαμβάνεται",
  214. "help": "Το εναλλακτικό κείμενο εικόνων δεν πρέπει να επαναλαμβάνεται"
  215. },
  216. "input-button-name": {
  217. "description": "Διασφαλίζει ότι τα κουμπιά εισαγωγής έχουν ευδιάκριτο κείμενο",
  218. "help": "Τα κουμπιά εισαγωγής πρέπει να έχουν ευδιάκριτο κείμενο"
  219. },
  220. "input-image-alt": {
  221. "description": "Διασφαλίζει ότι τα στοιχεία <input type=\"image\"> έχουν εναλλακτικό κείμενο",
  222. "help": "Τα κουμπιά εικόνας πρέπει να έχουν εναλλακτικό κείμενο"
  223. },
  224. "label-content-name-mismatch": {
  225. "description": "Διασφαλίζει ότι τα στοιχεία που επισημαίνονται μέσω του περιεχομένου τους πρέπει να έχουν το ορατό κείμενό τους ως μέρος του προσβάσιμου ονόματος τους",
  226. "help": "Τα στοιχεία πρέπει να έχουν το ορατό κείμενό τους ως μέρος του προσβάσιμου ονόματός τους"
  227. },
  228. "label-title-only": {
  229. "description": "Διασφαλίζει ότι κάθε στοιχείο φόρμας έχει ορατή ετικέτα και δεν επισημαίνεται αποκλειστικά με χρήση κρυφών ετικετών ή χαρακτηριστικών τίτλου ή άριας-describedby",
  230. "help": "Τα στοιχεία φόρμας πρέπει να έχουν ορατή ετικέτα"
  231. },
  232. "label": {
  233. "description": "Διασφαλίζει ότι κάθε στοιχείο φόρμας έχει μια ετικέτα",
  234. "help": "Τα στοιχεία φόρμας πρέπει να έχουν ετικέτες"
  235. },
  236. "landmark-banner-is-top-level": {
  237. "description": "Διασφαλίζει ότι το ορόσημο του banner βρίσκεται στο ανώτερο επίπεδο",
  238. "help": "Το ορόσημο του banner δεν θα πρέπει να περιέχεται σε άλλο ορόσημο"
  239. },
  240. "landmark-complementary-is-top-level": {
  241. "description": "Εξασφαλίζει ότι το συμπληρωματικό ορόσημο ή το aside είναι στο κορυφαίο επίπεδο",
  242. "help": "Το aside δεν πρέπει να περιέχεται σε άλλο ορόσημο"
  243. },
  244. "landmark-contentinfo-is-top-level": {
  245. "description": "Διασφαλίζει ότι το ορόσημο του contentinfo βρίσκεται στο ανώτατο επίπεδο",
  246. "help": "Το ορόσημο του contentinfo δεν πρέπει να περιέχεται σε άλλο ορόσημο"
  247. },
  248. "landmark-main-is-top-level": {
  249. "description": "Διασφαλίζει ότι το ορόσημο main βρίσκεται σto κορυφαίο επίπεδο",
  250. "help": "Το ορόσημο main δεν πρέπει να περιέχεται σε άλλο ορόσημο"
  251. },
  252. "landmark-no-duplicate-banner": {
  253. "description": "Διασφαλίζει ότι το έγγραφο έχει το πολύ ένα ορόσημο banner",
  254. "help": "Το έγγραφο δεν πρέπει να έχει περισσότερα από ένα ορόσημα banner"
  255. },
  256. "landmark-no-duplicate-contentinfo": {
  257. "description": "Διασφαλίζει ότι το έγγραφο έχει το πολύ ένα ορόσημο contentinfo",
  258. "help": "Το έγγραφο δεν πρέπει να έχει περισσότερα από ένα ορόσημα contentinfo"
  259. },
  260. "landmark-no-duplicate-main": {
  261. "description": "Διασφαλίζει ότι το έγγραφο έχει το πολύ ένα ορόσημο main",
  262. "help": "Το έγγραφο δεν πρέπει να έχει περισσότερα από ένα ορόσημα main"
  263. },
  264. "landmark-one-main": {
  265. "description": "Διασφαλίζει ότι το έγγραφο έχει ένα ορόσημο main",
  266. "help": "Το έγγραφο πρέπει να έχει ένα ορόσημο main"
  267. },
  268. "landmark-unique": {
  269. "help": "Διασφαλίζει ότι τα ορόσημα είναι μοναδικά",
  270. "description": "Τα ορόσημα πρέπει να έχουν μοναδικό ρόλο ή συνδυασμό ρόλου/ετικέτας/τίτλου (δηλαδή προσβάσιμο όνομα)."
  271. },
  272. "link-in-text-block": {
  273. "description": "Διασφαλίζει ότι οι σύνδεσμοι διακρίνονται από το περιβάλλον κείμενο με τρόπο που δεν βασίζεται στο χρώμα",
  274. "help": "Οι σύνδεσμοι πρέπει να είναι διακριτοί χωρίς να βασίζονται στο χρώμα"
  275. },
  276. "link-name": {
  277. "description": "Διασφαλίζει ότι οι σύνδεσμοι έχουν ευδιάκριτο κείμενο",
  278. "help": "Οι σύνδεσμοι πρέπει να έχουν ευδιάκριτο κείμενο"
  279. },
  280. "list": {
  281. "description": "Διασφαλίζει ότι οι λίστες είναι σωστά δομημένες",
  282. "help": "Τα <ul> και <ol> πρέπει να περιέχουν μόνο στοιχεία <li>, <script> ή <template>"
  283. },
  284. "listitem": {
  285. "description": "Διασφαλίζει ότι τα στοιχεία <li> χρησιμοποιούνται σημασιολογικά",
  286. "help": "Τα στοιχεία <li> πρέπει να περιέχονται σε <ul> ή <ol>"
  287. },
  288. "marquee": {
  289. "description": "Διασφαλίζει ότι τα στοιχεία <marquee> δεν χρησιμοποιούνται",
  290. "help": "Τα στοιχεία <marquee> έχουν καταργηθεί και δεν πρέπει να χρησιμοποιούνται"
  291. },
  292. "meta-refresh-no-exceptions": {
  293. "description": "Διασφαλίζει ότι το <meta http-equiv=\"refresh\"> δεν χρησιμοποιείται για καθυστερημένη ανανέωση",
  294. "help": "Δεν πρέπει να χρησιμοποιείται καθυστερημένη ανανέωση"
  295. },
  296. "meta-refresh": {
  297. "description": "Διασφαλίζει ότι το <meta http-equiv=\"refresh\"> δεν χρησιμοποιείται για καθυστερημένη ανανέωση",
  298. "help": "Δεν πρέπει να χρησιμοποιείται καθυστερημένη ανανέωση κάτω των 20 ωρών"
  299. },
  300. "meta-viewport-large": {
  301. "description": "Διασφαλίζει ότι το <meta name=\"viewport\"> μπορεί να κλιμακώσει σημαντικά",
  302. "help": "Οι χρήστες θα πρέπει να μπορούν να μεγεθύνουν και να κλιμακώσουν το κείμενο έως και 500%"
  303. },
  304. "meta-viewport": {
  305. "description": "Διασφαλίζει ότι το <meta name=\"viewport\"> δεν απενεργοποιεί την κλιμάκωση και τη μεγέθυνση κειμένου",
  306. "help": "Το ζουμ και η κλιμάκωση δεν πρέπει να απενεργοποιούνται"
  307. },
  308. "nested-interactive": {
  309. "description": "Διασφαλίζει ότι τα διαδραστικά στοιχεία ελέγχου δεν είναι ένθετα, καθώς δεν ανακοινώνονται πάντα από τα προγράμματα ανάγνωσης οθόνης ή μπορεί να προκαλέσουν προβλήματα εστίασης για τις υποστηρικτικές τεχνολογίες",
  310. "help": "Τα διαδραστικά στοιχεία ελέγχου δεν πρέπει να είναι ένθετα"
  311. },
  312. "no-autoplay-audio": {
  313. "description": "Διασφαλίζει ότι τα στοιχεία <video> ή <audio> δεν αναπαράγουν αυτόματα ήχο για περισσότερα από 3 δευτερόλεπτα χωρίς μηχανισμό ελέγχου για διακοπή ή σίγαση του ήχου",
  314. "help": "Τα στοιχεία <video> ή <audio> δεν πρέπει να αναπαράγονται αυτόματα"
  315. },
  316. "object-alt": {
  317. "description": "Διασφαλίζει ότι τα στοιχεία <object> έχουν εναλλακτικό κείμενο",
  318. "help": "Τα στοιχεία <object> πρέπει να έχουν εναλλακτικό κείμενο"
  319. },
  320. "p-as-heading": {
  321. "description": "Διασφαλίζει ότι τα bold, italic και το font-size δε χρησιμοποιούνται για το στυλ των στοιχείων <p> ως επικεφαλίδα",
  322. "help": "Τα στοιχεία <p> με στυλ δεν πρέπει να χρησιμοποιούνται ως επικεφαλίδες"
  323. },
  324. "page-has-heading-one": {
  325. "description": "Διασφαλίζει ότι η σελίδα ή τουλάχιστον ένα από τα frame της περιέχει μια επικεφαλίδα επιπέδου 1",
  326. "help": "Η σελίδα πρέπει να περιέχει μια επικεφαλίδα επιπέδου 1"
  327. },
  328. "presentation-role-conflict": {
  329. "description": "Τα στοιχεία που έχουν επισημανθεί ως παρουσίασης δε θα πρέπει να έχουν καθολικό ARIA ή tabindex για να διασφαλίζεται ότι όλα τα προγράμματα ανάγνωσης οθόνης τα αγνοούν",
  330. "help": "Βεβαιωθείτε ότι τα στοιχεία που επισημαίνονται ως παρουσίασης οπωσδήποτε αγνοούνται"
  331. },
  332. "region": {
  333. "description": "Εξασφαλίζει ότι όλο το περιεχόμενο της σελίδας περιλαμβάνεται από ορόσημα",
  334. "help": "Όλο το περιεχόμενο της σελίδας πρέπει να περιλαμβάνεται από ορόσημα"
  335. },
  336. "role-img-alt": {
  337. "description": "Διασφαλίζει ότι τα στοιχεία [role='img'] έχουν εναλλακτικό κείμενο",
  338. "help": "Τα στοιχεία [role='img'] πρέπει να έχουν εναλλακτικό κείμενο"
  339. },
  340. "scope-attr-valid": {
  341. "description": "Διασφαλίζει ότι το χαρακτηριστικό scope χρησιμοποιείται σωστά στους πίνακες",
  342. "help": "Το χαρακτηριστικό scope θα πρέπει να χρησιμοποιείται σωστά"
  343. },
  344. "scrollable-region-focusable": {
  345. "description": "Διασφαλίζει ότι τα στοιχεία που έχουν περιεχόμενο με δυνατότητα κύλισης είναι προσβάσιμα από το πληκτρολόγιο",
  346. "help": "Η περιοχή με δυνατότητα κύλισης πρέπει να είναι προσβάσιμη από το πληκτρολόγιο"
  347. },
  348. "select-name": {
  349. "description": "Διασφαλίζει ότι το στοιχείο select έχει ένα προσβάσιμο όνομα",
  350. "help": "Το στοιχείο select πρέπει να έχει προσβάσιμο όνομα"
  351. },
  352. "server-side-image-map": {
  353. "description": "Διασφαλίζει ότι δεν χρησιμοποιούνται χάρτες εικόνων από την πλευρά του διακομιστή",
  354. "help": "Δεν πρέπει να χρησιμοποιούνται χάρτες εικόνων από την πλευρά του διακομιστή"
  355. },
  356. "skip-link": {
  357. "description": "Βεβαιωθείτε ότι όλοι οι σύνδεσμοι παράλειψης έχουν έναν στόχο που μπορεί να εστιαστεί",
  358. "help": "Ο στόχος παράβλεψης συνδέσμου θα πρέπει να υπάρχει και να μπορεί να εστιαστεί"
  359. },
  360. "svg-img-alt": {
  361. "description": "Διασφαλίζει ότι τα στοιχεία <svg> με ρόλο img, graphics-document ή graphics-symbol έχουν προσβάσιμο κείμενο",
  362. "help": "Τα στοιχεία <svg> με ρόλο img πρέπει να έχουν εναλλακτικό κείμενο"
  363. },
  364. "tabindex": {
  365. "description": "Διασφαλίζει ότι οι τιμές των χαρακτηριστικών tabindex δεν είναι μεγαλύτερες από 0",
  366. "help": "Τα στοιχεία δεν πρέπει να έχουν tabindex μεγαλύτερο από μηδέν"
  367. },
  368. "table-duplicate-name": {
  369. "description": "Διασφαλίζει ότι το στοιχείο <caption> δεν περιέχει το ίδιο κείμενο με το χαρακτηριστικό summary",
  370. "help": "Οι πίνακες δεν πρέπει να έχουν την ίδια περίληψη και λεζάντα"
  371. },
  372. "table-fake-caption": {
  373. "description": "Διασφαλίζει ότι οι πίνακες με λεζάντα χρησιμοποιούν το στοιχείο <caption>",
  374. "help": "Δεδομένα ή κελιά κεφαλίδας δεν πρέπει να χρησιμοποιούνται για να δίνεται υπότιτλος σε έναν πίνακα δεδομένων"
  375. },
  376. "target-size": {
  377. "description": "Διασφαλίζει ότι ο στόχος αφής έχει επαρκές μέγεθος και χώρο",
  378. "help": "Όλοι οι στόχοι αφής πρέπει να έχουν μέγεθος 24 px ή να αφήνουν αρκετό χώρο"
  379. },
  380. "td-has-header": {
  381. "description": "Διασφαλίζει ότι κάθε μη κενό κελί δεδομένων σε ένα <table> μεγαλύτερο από 3 επί 3 έχει μία ή περισσότερες κεφαλίδες πίνακα",
  382. "help": "Τα μη κενά στοιχεία <td> σε μεγαλύτερο <table> πρέπει να έχουν συσχετισμένη κεφαλίδα πίνακα"
  383. },
  384. "td-headers-attr": {
  385. "description": "Διασφαλίζει ότι κάθε κελί σε έναν πίνακα που χρησιμοποιεί το χαρακτηριστικό headers αναφέρεται μόνο σε άλλα κελιά σε αυτόν τον πίνακα",
  386. "help": "Τα κελιά πίνακα που χρησιμοποιούν το χαρακτηριστικό headers πρέπει να αναφέρονται μόνο σε κελιά του ίδιου πίνακα"
  387. },
  388. "th-has-data-cells": {
  389. "description": "Διασφαλίζει ότι τα στοιχεία <th> και τα στοιχεία με role=columnheader/rowheader έχουν κελιά δεδομένων που περιγράφουν",
  390. "help": "Οι κεφαλίδες πίνακα σε έναν πίνακα δεδομένων πρέπει να παραπέμπουν σε κελιά δεδομένων"
  391. },
  392. "valid-lang": {
  393. "description": "Διασφαλίζει ότι τα χαρακτηριστικά lang έχουν έγκυρες τιμές",
  394. "help": "Το χαρακτηριστικό lang πρέπει να έχει έγκυρη τιμή"
  395. },
  396. "video-caption": {
  397. "description": "Διασφαλίζει ότι τα στοιχεία <video> έχουν υπότιτλους",
  398. "help": "Τα στοιχεία <video> πρέπει να έχουν υπότιτλους"
  399. }
  400. },
  401. "checks": {
  402. "abstractrole": {
  403. "pass": "Δεν χρησιμοποιούνται αφηρημένοι ρόλοι",
  404. "fail": {
  405. "singular": "Ο αφηρημένος ρόλος δεν μπορεί να χρησιμοποιηθεί απευθείας: ${data.values}",
  406. "plural": "Οι αφηρημένοι ρόλοι δεν μπορούν να χρησιμοποιηθούν απευθείας: ${data.values}"
  407. }
  408. },
  409. "aria-allowed-attr": {
  410. "pass": "Τα χαρακτηριστικά ARIA χρησιμοποιούνται σωστά για τον καθορισμένο ρόλο",
  411. "fail": {
  412. "singular": "Το χαρακτηριστικό ARIA δεν επιτρέπεται: ${data.values}",
  413. "plural": "Τα χαρακτηριστικά ARIA δεν επιτρέπονται: ${data.values}"
  414. },
  415. "incomplete": "Βεβαιωθείτε ότι δεν υπάρχει πρόβλημα αν το χαρακτηριστικό ARIA αγνοηθεί σε αυτό το στοιχείο: ${data.values}"
  416. },
  417. "aria-allowed-role": {
  418. "pass": "Ο ρόλος ARIA επιτρέπεται για το συγκεκριμένο στοιχείο",
  419. "fail": {
  420. "singular": "Ο ρόλος ARIA ${data.values} δεν επιτρέπεται για το συγκεκριμένο στοιχείο",
  421. "plural": "Οι ρόλοι ARIA ${data.values} δεν επιτρέπονται για το συγκεκριμένο στοιχείο"
  422. },
  423. "incomplete": {
  424. "singular": "Ο ρόλος ARIA ${data.values} πρέπει να καταργηθεί όταν το στοιχείο γίνει ορατό, καθώς δεν επιτρέπεται για το στοιχείο",
  425. "plural": "Οι ρόλοι ARIA ${data.values} πρέπει να καταργηθούν όταν το στοιχείο γίνει ορατό, καθώς δεν επιτρέπονται για το στοιχείο"
  426. }
  427. },
  428. "aria-busy": {
  429. "pass": "Το στοιχείο έχει το χαρακτηριστικό aria-busy",
  430. "fail": "Το στοιχείο δεν έχει το χαρακτηριστικό aria-busy=\"true\"."
  431. },
  432. "aria-errormessage": {
  433. "pass": "Το aria-errormessage υπάρχει και παραπέμπει σε στοιχεία ορατά στους αναγνώστες οθόνης που χρησιμοποιούν μια υποστηριζόμενη τεχνική aria-errormessage",
  434. "fail": {
  435. "singular": "Η τιμή του aria-errormessage `${data.values}` πρέπει να χρησιμοποιεί μια τεχνική για να ανακοινώσει το μήνυμα (π.χ. aria-live, aria-describedby, role=alert, κ.λπ.)",
  436. "plural": "Οι τιμές του aria-errormessage `${data.values}` πρέπει να χρησιμοποιούν μια τεχνική για να ανακοινώσουν το μήνυμα (π.χ. aria-live, aria-describedby, role=alert, κ.λπ.)",
  437. "hidden": "Η τιμή του aria-errormessage `${data.values}` δεν μπορεί να αναφέρει ένα κρυφό στοιχείο"
  438. },
  439. "incomplete": {
  440. "singular": "βεβαιωθείτε ότι η τιμή του aria-errormessage `${data.values}` αναφέρεται σε ένα υπάρχον στοιχείο",
  441. "plural": "βεβαιωθείτε ότι οι τιμές του aria-errormessage `${data.values}` αναφέρονται σε υπάρχοντα στοιχεία",
  442. "idrefs": "δεν είναι δυνατός ο προσδιορισμός του εάν το στοιχείο aria-errormessage υπάρχει στη σελίδα: ${data.values}"
  443. }
  444. },
  445. "aria-hidden-body": {
  446. "pass": "Δεν υπάρχει χαρακτηριστικό aria-hidden στο σώμα του εγγράφου",
  447. "fail": "Το aria-hidden=true δεν πρέπει να υπάρχει στο σώμα του εγγράφου"
  448. },
  449. "aria-level": {
  450. "pass": "Οι τιμές του aria-level είναι έγκυρες",
  451. "incomplete": "Τιμές του aria-level μεγαλύτερες από 6 δεν υποστηρίζονται σε όλους τους συνδυασμούς προγράμματος ανάγνωσης οθόνης και προγράμματος περιήγησης"
  452. },
  453. "aria-prohibited-attr": {
  454. "pass": "Το χαρακτηριστικό ARIA επιτρέπεται",
  455. "fail": {
  456. "hasRolePlural": "Τα χαρακτηριστικά ${data.prohibited} δεν μπορούν να χρησιμοποιηθούν με το ρόλο \"${data.role}\".",
  457. "hasRoleSingular": "Το χαρακτηριστικό ${data.prohibited} δεν μπορεί να χρησιμοποιηθεί με το ρόλο \"${data.role}\".",
  458. "noRolePlural": "Τα χαρακτηριστικά ${data.prohibited} δεν μπορούν να χρησιμοποιηθούν σε ένα ${data.nodeName} χωρίς έγκυρο χαρακτηριστικό ρόλου.",
  459. "noRoleSingular": "Το χαρακτηριστικό ${data.prohibited} δεν μπορεί να χρησιμοποιηθεί σε ένα ${data.nodeName} χωρίς έγκυρο χαρακτηριστικό ρόλου."
  460. },
  461. "incomplete": {
  462. "hasRoleSingular": "Το χαρακτηριστικό ${data.prohibited} δεν υποστηρίζεται καλά με τον ρόλο \"${data.role}\".",
  463. "hasRolePlural": "Τα χαρακτηριστικά ${data.prohibited} δεν υποστηρίζονται καλά με τον ρόλο \"${data.role}\".",
  464. "noRoleSingular": "Το χαρακτηριστικό ${data.prohibited} δεν υποστηρίζεται καλά σε ένα ${data.nodeName} χωρίς έγκυρο χαρακτηριστικό ρόλου.",
  465. "noRolePlural": "Τα χαρακτηριστικά ${data.prohibited} δεν υποστηρίζονται καλά σε ένα ${data.nodeName} χωρίς έγκυρο χαρακτηριστικό ρόλου."
  466. }
  467. },
  468. "aria-required-attr": {
  469. "pass": "Υπάρχουν όλα τα απαιτούμενα χαρακτηριστικά ARIA",
  470. "fail": {
  471. "singular": "Δεν υπάρχει το απαιτούμενο χαρακτηριστικό ARIA: ${data.values}",
  472. "plural": "Δεν υπάρχουν τα απαιτούμενα χαρακτηριστικά ARIA: ${data.values}"
  473. }
  474. },
  475. "aria-required-children": {
  476. "pass": {
  477. "default": "Οι απαιτούμενοι γόνοι ARIA είναι παρόντες"
  478. },
  479. "fail": {
  480. "singular": "Ο απαιτούμενος θυγατρικός ρόλος ARIA δεν υπάρχει: ${data.values}",
  481. "plural": "Οι απαιτούμενοι θυγατρικόι ρόλοι ARIA δεν υπάρχουν: ${data.values}",
  482. "unallowed": "Το στοιχείο έχει γόνους που δεν επιτρέπονται ${data.values}"
  483. },
  484. "incomplete": {
  485. "singular": "Αναμένεται προσθήκη θυγατρικού ρόλου ARIA: ${data.values}",
  486. "plural": "Αναμένεται προσθήκη θυγατρικών ρόλων ARIA: ${data.values}"
  487. }
  488. },
  489. "aria-required-parent": {
  490. "pass": "Required ARIA parent role present",
  491. "fail": {
  492. "singular": "Ο απαιτούμενος γονικός ρόλος ARIA δεν υπάρχει: ${data.values}",
  493. "plural": "Οι απαιτούμενοι ρόλοι γονέα ARIA δεν υπάρχουν: ${data.values}"
  494. }
  495. },
  496. "aria-roledescription": {
  497. "pass": "το aria-roledescription χρησιμοποιείται σε υποστηριζόμενο σημασιολογικό ρόλο",
  498. "incomplete": "Βεβαιωθείτε ότι το aria-roledescription ανακοινώνεται από υποστηριζόμενα προγράμματα ανάγνωσης οθόνης",
  499. "fail": "Δώστε στο στοιχείο έναν ρόλο που υποστηρίζει το aria-roledescription"
  500. },
  501. "aria-unsupported-attr": {
  502. "pass": "Το χαρακτηριστικό ARIA υποστηρίζεται",
  503. "fail": "Το χαρακτηριστικό ARIA δεν υποστηρίζεται ευρέως σε προγράμματα ανάγνωσης οθόνης και υποστηρικτικές τεχνολογίες: ${data.values}"
  504. },
  505. "aria-valid-attr-value": {
  506. "pass": "Οι τιμές του χαρακτηριστικού ARIA είναι έγκυρες",
  507. "fail": {
  508. "singular": "Μη έγκυρη τιμή χαρακτηριστικού ARIA: ${data.values}",
  509. "plural": "Μη έγκυρες τιμές χαρακτηριστικών ARIA: ${data.values}"
  510. },
  511. "incomplete": {
  512. "noId": "Το ID του χαρακτηριστικού ARIA δεν υπάρχει στη σελίδα: ${data.needsReview}",
  513. "noIdShadow": "Το ID του χαρακτηριστικού ARIA δεν υπάρχει στη σελίδα ή είναι απόγονος ενός διαφορετικού σκιώδους DOM: ${data.needsReview}",
  514. "ariaCurrent": "Η τιμή χαρακτηριστικού ARIA δεν είναι έγκυρη και θα αντιμετωπιστεί ως \"aria-current=true\": ${data.needsReview}",
  515. "idrefs": "Δεν είναι δυνατός ο προσδιορισμός εάν το ID του χαρακτηριστικού ARIA υπάρχει στη σελίδα: ${data.needsReview}",
  516. "empty": "Η τιμή του χαρακτηριστικού ARIA αγνοείται όταν είναι κενή: ${data.needsReview}"
  517. }
  518. },
  519. "aria-valid-attr": {
  520. "pass": "Το όνομα χαρακτηριστικού ARIA είναι έγκυρο",
  521. "fail": {
  522. "singular": "Μη έγκυρο όνομα χαρακτηριστικού ARIA: ${data.values}",
  523. "plural": "Μη έγκυρα ονόματα χαρακτηριστικών ARIA: ${data.values}"
  524. }
  525. },
  526. "deprecatedrole": {
  527. "pass": "Ο ρόλος ARIA δεν έχει καταργηθεί",
  528. "fail": "Ο ρόλος που χρησιμοποιείται έχει καταργηθεί: ${data}"
  529. },
  530. "fallbackrole": {
  531. "pass": "Χρησιμοποιείται μόνο μια τιμή ρόλου",
  532. "fail": "Χρησιμοποιήστε μόνο μία τιμή ρόλου, καθώς οι εναλλακτικοί ρόλοι δεν υποστηρίζονται σε παλαιότερα προγράμματα περιήγησης",
  533. "incomplete": "Χρησιμοποιήστε μόνο τους ρόλους 'presentation' ή 'none' επειδή είναι συνώνυμοι."
  534. },
  535. "has-global-aria-attribute": {
  536. "pass": {
  537. "singular": "Το στοιχείο έχει καθολικό χαρακτηριστικό ARIA: ${data.values}",
  538. "plural": "Το στοιχείο έχει καθολικά χαρακτηριστικά ARIA: ${data.values}"
  539. },
  540. "fail": "Το στοιχείο δεν έχει καθολικό χαρακτηριστικό ARIA"
  541. },
  542. "has-widget-role": {
  543. "pass": "Το στοιχείο έχει ρόλο widget.",
  544. "fail": "Το στοιχείο δεν έχει ρόλο widget."
  545. },
  546. "invalidrole": {
  547. "pass": "Ο ρόλος ARIA είναι έγκυρος",
  548. "fail": {
  549. "singular": "Ο ρόλος πρέπει να είναι ένας από τους έγκυρους ρόλους ARIA: ${data.values}",
  550. "plural": "Οι ρόλοι πρέπει να είναι ένας από τους έγκυρους ρόλους ARIA: ${data.values}"
  551. }
  552. },
  553. "is-element-focusable": {
  554. "pass": "Το στοιχείο μπορεί να εστιαστεί.",
  555. "fail": "Το στοιχείο δεν μπορεί να εστιαστεί."
  556. },
  557. "no-implicit-explicit-label": {
  558. "pass": "Δεν υπάρχει αναντιστοιχία μεταξύ <label> και προσβάσιμου ονόματος",
  559. "incomplete": "Βεβαιωθείτε ότι το <label> δεν χρειάζεται να αποτελεί μέρος του ονόματος του πεδίου ARIA ${data}"
  560. },
  561. "unsupportedrole": {
  562. "pass": "Ο ρόλος του ARIA υποστηρίζεται",
  563. "fail": "Ο ρόλος που χρησιμοποιείται δεν υποστηρίζεται ευρέως σε προγράμματα ανάγνωσης οθόνης και υποστηρικτικές τεχνολογίες: ${data}"
  564. },
  565. "valid-scrollable-semantics": {
  566. "pass": "Το στοιχείο έχει έγκυρη σημασιολογία για ένα στοιχείο στη σειρά εστίασης.",
  567. "fail": "Το στοιχείο έχει μη έγκυρη σημασιολογία για ένα στοιχείο στη σειρά εστίασης."
  568. },
  569. "color-contrast-enhanced": {
  570. "pass": "Το στοιχείο έχει επαρκώς ενισχυμένη χρωματική αντίθεση ${data.contrastRatio}",
  571. "fail": {
  572. "default": "Το στοιχείο έχει ανεπαρκώς ενισχυμένη χρωματική αντίθεση ${data.contrastRatio} (χρώμα προσκηνίου: ${data.fgColor}, χρώμα φόντου: ${data.bgColor}, μέγεθος γραμματοσειράς: ${data.fontSize}, βάρος γραμματοσειράς: ${data.fontWeight}). Αναμενόμενος λόγος αντίθεσης ${data.expectedContrastRatio}",
  573. "fgOnShadowColor": "Το στοιχείο έχει ανεπαρκώς ενισχυμένη χρωματική αντίθεση ${data.contrastRatio} μεταξύ του χρώματος του προσκηνίου και του χρώματος σκιάς (χρώμα προσκηνίου: ${data.fgColor}, χρώμα σκιάς κειμένου: ${data.shadowColor}, μέγεθος γραμματοσειράς: ${data.fontSize}, βάρος γραμματοσειράς: ${data.fontWeight}). Αναμενόμενος λόγος αντίθεσης ${data.expectedContrastRatio}",
  574. "shadowOnBgColor": "Το στοιχείο έχει ανεπαρκώς ενισχυμένη χρωματική αντίθεση ${data.contrastRatio} μεταξύ του χρώματος σκιάς και του χρώματος φόντου (χρώμα σκιάς κειμένου: ${data.shadowColor}, χρώμα φόντου: ${data.bgColor}, μέγεθος γραμματοσειράς: ${data.fontSize }, βάρος γραμματοσειράς: ${data.fontWeight}). Αναμενόμενος λόγος αντίθεσης ${data.expectedContrastRatio}"
  575. },
  576. "incomplete": {
  577. "default": "Δεν είναι δυνατός ο προσδιορισμός της αναλογίας αντίθεσης",
  578. "bgImage": "Το χρώμα φόντου του στοιχείου δεν ήταν δυνατό να προσδιοριστεί λόγω εικόνας φόντου",
  579. "bgGradient": "Το χρώμα φόντου του στοιχείου δεν ήταν δυνατό να προσδιοριστεί λόγω διαβάθμισης φόντου",
  580. "imgNode": "Το χρώμα φόντου του στοιχείου δεν ήταν δυνατό να προσδιοριστεί επειδή το στοιχείο περιέχει έναν κόμβο εικόνας",
  581. "bgOverlap": "Το χρώμα φόντου του στοιχείου δεν ήταν δυνατό να προσδιοριστεί επειδή επικαλύπτεται από άλλο στοιχείο",
  582. "fgAlpha": "Το χρώμα του προσκηνίου του στοιχείου δεν ήταν δυνατό να προσδιοριστεί λόγω της διαφάνειας άλφα",
  583. "elmPartiallyObscured": "Δεν ήταν δυνατός ο προσδιορισμός του χρώματος φόντου του στοιχείου επειδή είναι μερικώς καλυμμένο από άλλο στοιχείο",
  584. "elmPartiallyObscuring": "Το χρώμα φόντου του στοιχείου δεν ήταν δυνατό να προσδιοριστεί επειδή επικαλύπτει εν μέρει άλλα στοιχεία",
  585. "outsideViewport": "Το χρώμα φόντου του στοιχείου δεν ήταν δυνατό να προσδιοριστεί επειδή βρίσκεται εκτός του viewport",
  586. "equalRatio": "Το στοιχείο έχει αναλογία αντίθεσης 1:1 με το φόντο",
  587. "shortTextContent": "Το περιεχόμενο του στοιχείου είναι πολύ σύντομο για να προσδιοριστεί εάν πρόκειται για πραγματικό περιεχόμενο κειμένου",
  588. "nonBmp": "Το περιεχόμενο του στοιχείου περιέχει μόνο χαρακτήρες που δεν είναι κειμένου",
  589. "pseudoContent": "Το χρώμα φόντου του στοιχείου δεν ήταν δυνατό να προσδιοριστεί λόγω ψευδοστοιχείου"
  590. }
  591. },
  592. "color-contrast": {
  593. "pass": {
  594. "default": "Το στοιχείο έχει επαρκή χρωματική αντίθεση ${data.contrastRatio}",
  595. "hidden": "Το στοιχείο είναι κρυμμένο"
  596. },
  597. "fail": {
  598. "default": "Το στοιχείο έχει ανεπαρκή χρωματική αντίθεση ${data.contrastRatio} (χρώμα προσκηνίου: ${data.fgColor}, χρώμα φόντου: ${data.bgColor}, μέγεθος γραμματοσειράς: ${data.fontSize}, βάρος γραμματοσειράς: ${data.fontWeight}). Αναμενόμενος λόγος αντίθεσης ${data.expectedContrastRatio}",
  599. "fgOnShadowColor": "Το στοιχείο έχει ανεπαρκή χρωματική αντίθεση ${data.contrastRatio} μεταξύ του χρώματος προσκηνίου και σκιάς (χρώμα προσκηνίου: ${data.fgColor}, χρώμα σκιάς κειμένου: ${data.shadowColor}, μέγεθος γραμματοσειράς: ${data.fontSize}, βάρος γραμματοσειράς: ${data.fontWeight}). Αναμενόμενος λόγος αντίθεσης ${data.expectedContrastRatio}",
  600. "shadowOnBgColor": "Το στοιχείο έχει ανεπαρκή χρωματική αντίθεση ${data.contrastRatio} μεταξύ του χρώματος σκιάς και του χρώματος φόντου (χρώμα σκιάς κειμένου: ${data.shadowColor}, χρώμα φόντου: ${data.bgColor}, μέγεθος γραμματοσειράς: ${data.fontSize}, βάρος γραμματοσειράς: ${data.fontWeight}). Αναμενόμενος λόγος αντίθεσης ${data.expectedContrastRatio}"
  601. },
  602. "incomplete": {
  603. "default": "Δεν είναι δυνατός ο προσδιορισμός της αναλογίας αντίθεσης",
  604. "bgImage": "Το χρώμα φόντου του στοιχείου δεν ήταν δυνατό να προσδιοριστεί λόγω εικόνας φόντου",
  605. "bgGradient": "Το χρώμα φόντου του στοιχείου δεν ήταν δυνατό να προσδιοριστεί λόγω διαβάθμισης φόντου",
  606. "imgNode": "Το χρώμα φόντου του στοιχείου δεν ήταν δυνατό να προσδιοριστεί επειδή το στοιχείο περιέχει έναν κόμβο εικόνας",
  607. "bgOverlap": "Το χρώμα φόντου του στοιχείου δεν ήταν δυνατό να προσδιοριστεί επειδή επικαλύπτεται από άλλο στοιχείο",
  608. "fgAlpha": "Το χρώμα του προσκηνίου του στοιχείου δεν ήταν δυνατό να προσδιοριστεί λόγω διαφάνειας άλφα",
  609. "elmPartiallyObscured": "Δεν ήταν δυνατός ο προσδιορισμός του χρώματος φόντου του στοιχείου επειδή είναι μερικώς καλυμμένο από άλλο στοιχείο",
  610. "elmPartiallyObscuring": "Το χρώμα φόντου του στοιχείου δεν ήταν δυνατό να προσδιοριστεί επειδή επικαλύπτει εν μέρει άλλα στοιχεία",
  611. "outsideViewport": "Το χρώμα φόντου του στοιχείου δεν ήταν δυνατό να προσδιοριστεί επειδή βρίσκεται εκτός viewport",
  612. "equalRatio": "Το στοιχείο έχει αναλογία αντίθεσης 1:1 με το φόντο",
  613. "shortTextContent": "Το περιεχόμενο του στοιχείου είναι πολύ σύντομο για να προσδιοριστεί εάν πρόκειται για πραγματικό περιεχόμενο κειμένου",
  614. "nonBmp": "Το περιεχόμενο του στοιχείου περιέχει μόνο χαρακτήρες εκτός κειμένου",
  615. "pseudoContent": "Δεν ήταν δυνατός ο προσδιορισμός του χρώματος φόντου του στοιχείου λόγω ψευδοστοιχείου"
  616. }
  617. },
  618. "link-in-text-block-style": {
  619. "pass": "Οι σύνδεσμοι μπορούν να διακριθούν από το περιβάλλον κείμενο εφαρμόζοντας οπτικό στυλ",
  620. "fail": "Ο σύνδεσμος δεν έχει στυλ (π.χ. underline) που να τον ξεχωρίζει από το περιβάλλον κείμενο"
  621. },
  622. "link-in-text-block": {
  623. "pass": "Οι σύνδεσμοι μπορούν να διακριθούν από το περιβάλλον κείμενο με άλλο τρόπο εκτός από το χρώμα",
  624. "fail": {
  625. "fgContrast": "Ο σύνδεσμος έχει ανεπαρκή χρωματική αντίθεση ${data.contrastRatio}:1 με το περιβάλλον κείμενο. (Η ελάχιστη αντίθεση είναι ${data.requiredContrastRatio}:1, κείμενο συνδέσμου: ${data.nodeColor}, περιβάλλον κείμενο: ${data.parentColor})",
  626. "bgContrast": "Το φόντο του συνδέσμου έχει ανεπαρκή χρωματική αντίθεση ${data.contrastRatio} (η ελάχιστη αντίθεση είναι ${data.requiredContrastRatio}:1, χρώμα φόντου συνδέσμου: ${data.nodeBackgroundColor}, χρώμα φόντου περιβάλλοντος: ${data.parentBackgroundColor})"
  627. },
  628. "incomplete": {
  629. "default": "Δεν ήταν δυνατός ο προσδιορισμός της αναλογίας αντίθεσης προσκηνίου του στοιχείου",
  630. "bgContrast": "Δεν ήταν δυνατός ο προσδιορισμός της αναλογίας αντίθεσης φόντου του στοιχείου",
  631. "bgImage": "Δεν ήταν δυνατός ο προσδιορισμός της αναλογίας αντίθεσης του στοιχείου λόγω εικόνας φόντου",
  632. "bgGradient": "Η αναλογία αντίθεσης του στοιχείου δεν ήταν δυνατό να προσδιοριστεί λόγω gradient φόντου",
  633. "imgNode": "Δεν ήταν δυνατός ο προσδιορισμός της αναλογίας αντίθεσης του στοιχείου επειδή το στοιχείο περιέχει έναν κόμβο εικόνας",
  634. "bgOverlap": "Δεν ήταν δυνατός ο προσδιορισμός της αναλογίας αντίθεσης του στοιχείου λόγω επικάλυψης στοιχείων"
  635. }
  636. },
  637. "autocomplete-appropriate": {
  638. "pass": "η τιμή αυτόματης συμπλήρωσης βρίσκεται σε ένα κατάλληλο στοιχείο",
  639. "fail": "η τιμή αυτόματης συμπλήρωσης είναι ακατάλληλη για αυτόν τον τύπο εισόδου"
  640. },
  641. "autocomplete-valid": {
  642. "pass": "το χαρακτηριστικό αυτόματης συμπλήρωσης έχει μορφοποιηθεί σωστά",
  643. "fail": "το χαρακτηριστικό αυτόματης συμπλήρωσης δεν έχει μορφοποιηθεί σωστά"
  644. },
  645. "accesskeys": {
  646. "pass": "Η τιμή χαρακτηριστικού Accesskey είναι μοναδική",
  647. "fail": "Το έγγραφο έχει πολλά στοιχεία με το ίδιο κλειδί πρόσβασης"
  648. },
  649. "focusable-content": {
  650. "pass": "Το στοιχείο περιέχει στοιχεία με δυνατότητα εστίασης",
  651. "fail": "Το στοιχείο πρέπει να έχει εστιασμένο περιεχόμενο"
  652. },
  653. "focusable-disabled": {
  654. "pass": "Δεν περιέχονται στοιχεία με δυνατότητα εστίασης μέσα στο στοιχείο",
  655. "incomplete": "Ελέγξτε εάν τα εστιάσιμα στοιχεία μετακινούν αμέσως την ένδειξη εστίασης",
  656. "fail": "Το περιεχόμενο με δυνατότητα εστίασης θα πρέπει να απενεργοποιηθεί ή να αφαιρεθεί από το DOM"
  657. },
  658. "focusable-element": {
  659. "pass": "Το στοιχείο είναι εστιασμένο",
  660. "fail": "Το στοιχείο πρέπει να είναι εστιασμένο"
  661. },
  662. "focusable-modal-open": {
  663. "pass": "Δεν υπάρχουν εστιάσιμα στοιχεία ενώ ένα modal είναι ανοιχτό",
  664. "incomplete": "Βεβαιωθείτε ότι τα στοιχεία με δυνατότητα εστίασης δεν έχουν δυνατότητα tabbable στην τρέχουσα κατάσταση"
  665. },
  666. "focusable-no-name": {
  667. "pass": "Το στοιχείο δεν είναι σε σειρά tab ή έχει προσβάσιμο κείμενο",
  668. "fail": "Το στοιχείο είναι σε σειρά tab και δεν έχει προσβάσιμο κείμενο",
  669. "incomplete": "Δεν είναι δυνατό να προσδιοριστεί εάν το στοιχείο έχει προσβάσιμο όνομα"
  670. },
  671. "focusable-not-tabbable": {
  672. "pass": "Δεν περιέχονται στοιχεία με δυνατότητα εστίασης μέσα στο στοιχείο",
  673. "incomplete": "Ελέγξτε εάν τα εστιάσιμα στοιχεία μετακινούν αμέσως την ένδειξη εστίασης",
  674. "fail": "Το περιεχόμενο με δυνατότητα εστίασης θα πρέπει να έχει tabindex='-1' ή να αφαιρεθεί από το DOM"
  675. },
  676. "frame-focusable-content": {
  677. "pass": "Το στοιχείο δεν έχει εστιάσιμους απογόνους",
  678. "fail": "Το στοιχείο έχει απογόνους με δυνατότητα εστίασης",
  679. "incomplete": "Δεν ήταν δυνατός ο προσδιορισμός εάν το στοιχείο έχει απογόνους"
  680. },
  681. "landmark-is-top-level": {
  682. "pass": "Το ορόσημο ${data.role} βρίσκεται στο ανώτατο επίπεδο.",
  683. "fail": "Το ορόσημο ${data.role} περιέχεται σε άλλο ορόσημο."
  684. },
  685. "no-focusable-content": {
  686. "pass": "Το στοιχείο δεν έχει εστιάσιμους απογόνους",
  687. "fail": {
  688. "default": "Το στοιχείο έχει απογόνους με δυνατότητα εστίασης",
  689. "notHidden": "Η χρήση αρνητικού tabindex σε ένα στοιχείο μέσα σε ένα διαδραστικό στοιχείο ελέγχου δεν εμποδίζει τις υποστηρικτικές τεχνολογίες να εστιάσουν το στοιχείο (ακόμη και με το 'aria-hidden=true')"
  690. },
  691. "incomplete": "Δεν ήταν δυνατός ο προσδιορισμός για το εάν το στοιχείο έχει απογόνους"
  692. },
  693. "page-has-heading-one": {
  694. "pass": "Η σελίδα έχει τουλάχιστον μία επικεφαλίδα επιπέδου 1",
  695. "fail": "Η σελίδα πρέπει να έχει επικεφαλίδα επιπέδου 1"
  696. },
  697. "page-has-main": {
  698. "pass": "Το έγγραφο έχει τουλάχιστον ένα κύριο ορόσημο",
  699. "fail": "Το έγγραφο δεν έχει κύριο ορόσημο"
  700. },
  701. "page-no-duplicate-banner": {
  702. "pass": "Το έγγραφο δεν έχει περισσότερα από ένα ορόσημα banner",
  703. "fail": "Το έγγραφο έχει περισσότερα από ένα ορόσημα banner"
  704. },
  705. "page-no-duplicate-contentinfo": {
  706. "pass": "Το έγγραφο δεν έχει περισσότερα από ένα ορόσημα contentinfo",
  707. "fail": "Το έγγραφο έχει περισσότερα από ένα ορόσημα contentinfo"
  708. },
  709. "page-no-duplicate-main": {
  710. "pass": "Το έγγραφο δεν έχει περισσότερα από ένα κύρια ορόσημα",
  711. "fail": "Το έγγραφο έχει περισσότερα από ένα κύρια ορόσημα"
  712. },
  713. "tabindex": {
  714. "pass": "Το στοιχείο δεν έχει tabindex μεγαλύτερο από 0",
  715. "fail": "Το στοιχείο έχει tabindex μεγαλύτερο από 0"
  716. },
  717. "alt-space-value": {
  718. "pass": "Το στοιχείο έχει μια έγκυρη τιμή χαρακτηριστικού alt",
  719. "fail": "Το στοιχείο έχει ένα χαρακτηριστικό alt που περιέχει μόνο έναν χαρακτήρα διαστήματος, το οποίο δεν αγνοείται από όλα τα προγράμματα ανάγνωσης οθόνης"
  720. },
  721. "duplicate-img-label": {
  722. "pass": "Το στοιχείο δεν αντιγράφει υπάρχον κείμενο στο πεδίο alt του <img>",
  723. "fail": "Το στοιχείο περιέχει στοιχείο <img> με κείμενο alt που αντιγράφει το υπάρχον κείμενο"
  724. },
  725. "explicit-label": {
  726. "pass": "Το στοιχείο φόρμας έχει ρητό <label>",
  727. "fail": "Το στοιχείο φόρμας δέν έχει ρητό <label>",
  728. "incomplete": "Δεν είναι δυνατό να προσδιοριστεί εάν το στοιχείο φόρμας έχει ρητό <label>"
  729. },
  730. "help-same-as-label": {
  731. "pass": "Το κείμενο βοήθειας (τίτλος ή aria-describedby) δεν αντιγράφει το κείμενο της ετικέτας",
  732. "fail": "Το κείμενο βοήθειας (τίτλος ή aria-describedby) είναι το ίδιο με το κείμενο της ετικέτας"
  733. },
  734. "hidden-explicit-label": {
  735. "pass": "Το στοιχείο φόρμας έχει ένα ορατό και ρητό <label>",
  736. "fail": "Το στοιχείο φόρμας έχει ρητό <label> που είναι κρυφό",
  737. "incomplete": "Δεν είναι δυνατό να προσδιοριστεί εάν το στοιχείο φόρμας έχει ρητό <label> που είναι κρυφό"
  738. },
  739. "implicit-label": {
  740. "pass": "Το στοιχείο φόρμας έχει ένα σιωπηρό (wrapped) <label>",
  741. "fail": "Το στοιχείο φόρμας δέν έχει ένα σιωπηρό (wrapped) <label>",
  742. "incomplete": "Unable to determine if form element has an implicit (wrapped} <label>"
  743. },
  744. "label-content-name-mismatch": {
  745. "pass": "Το στοιχείο περιέχει ορατό κείμενο ως μέρος του προσβάσιμου ονόματος του",
  746. "fail": "Το κείμενο μέσα στο στοιχείο δεν περιλαμβάνεται στο προσβάσιμο όνομα"
  747. },
  748. "multiple-label": {
  749. "pass": "Το πεδίο φόρμας δεν έχει πολλά στοιχεία ετικέτας",
  750. "incomplete": "Τα πολλαπλά στοιχεία ετικετών δεν υποστηρίζονται ευρέως στις υποστηρικτικές τεχνολογίες. Βεβαιωθείτε ότι η πρώτη ετικέτα περιέχει όλες τις απαραίτητες πληροφορίες."
  751. },
  752. "title-only": {
  753. "pass": "Το στοιχείο φόρμας δεν χρησιμοποιεί αποκλειστικά το χαρακτηριστικό τίτλου για την ετικέτα του",
  754. "fail": "Μόνο ο τίτλος χρησιμοποιείται για τη δημιουργία ετικέτας για το στοιχείο φόρμας"
  755. },
  756. "landmark-is-unique": {
  757. "pass": "Τα ορόσημα πρέπει να έχουν μοναδικό ρόλο ή συνδυασμό ρόλου/ετικέτας/τίτλου (δηλαδή προσβάσιμο όνομα).",
  758. "fail": "Το ορόσημο πρέπει να έχει ένα μοναδικό χαρακτηριστικό aria-label, aria-labelledby ή τίτλο για να διακρίνονται τα ορόσημα"
  759. },
  760. "has-lang": {
  761. "pass": "Το στοιχείο <html> έχει ένα χαρακτηριστικό lang",
  762. "fail": {
  763. "noXHTML": "Το χαρακτηριστικό xml:lang δεν είναι έγκυρο σε σελίδες HTML, χρησιμοποιήστε το χαρακτηριστικό lang.",
  764. "noLang": "Το στοιχείο <html> δεν έχει χαρακτηριστικό lang"
  765. }
  766. },
  767. "valid-lang": {
  768. "pass": "Η τιμή του χαρακτηριστικού lang περιλαμβάνεται στη λίστα των έγκυρων γλωσσών",
  769. "fail": "Η τιμή του χαρακτηριστικού lang δεν περιλαμβάνεται στη λίστα έγκυρων γλωσσών"
  770. },
  771. "xml-lang-mismatch": {
  772. "pass": "Τα χαρακτηριστικά Lang και xml:lang έχουν την ίδια βασική γλώσσα",
  773. "fail": "Τα χαρακτηριστικά Lang και xml:lang δεν έχουν την ίδια βασική γλώσσα"
  774. },
  775. "dlitem": {
  776. "pass": "Το στοιχείο λίστας περιγραφής έχει ένα γονικό στοιχείο <dl>",
  777. "fail": "Το στοιχείο λίστας περιγραφής δεν έχει γονικό στοιχείο <dl>"
  778. },
  779. "listitem": {
  780. "pass": "Το στοιχείο λίστας έχει ένα γονικό στοιχείο <ul>, <ol> ή role=\"list\".",
  781. "fail": {
  782. "default": "Το στοιχείο λίστας δεν έχει γονικό στοιχείο <ul>, <ol>",
  783. "roleNotValid": "Το στοιχείο λίστας δεν έχει <ul>, <ol> γονικό στοιχείο χωρίς ρόλο ή role=\"list\""
  784. }
  785. },
  786. "only-dlitems": {
  787. "pass": "Το στοιχείο dl έχει μόνο απευθείας θυγατρικά που επιτρέπεται να βρίσκονται μέσα σε στοιχεία <dt>, <dd> ή <div>",
  788. "fail": "Το στοιχείο dl έχει απευθείας θυγατρικά που δεν επιτρέπονται: ${data.values}"
  789. },
  790. "only-listitems": {
  791. "pass": "Το στοιχείο λίστας έχει μόνο απευθείας θυγατρικά που επιτρέπονται μέσα σε στοιχεία <li>",
  792. "fail": "Το στοιχείο λίστας έχει απευθείας θυγατρικά που δεν επιτρέπονται: ${data.values}"
  793. },
  794. "structured-dlitems": {
  795. "pass": "Όταν δεν είναι κενό, το στοιχείο έχει και τα δύο στοιχεία <dt> και <dd>",
  796. "fail": "Όταν δεν είναι κενό, το στοιχείο δεν έχει τουλάχιστον ένα στοιχείο <dt> ακολουθούμενο από τουλάχιστον ένα στοιχείο <dd>"
  797. },
  798. "caption": {
  799. "pass": "Το στοιχείο πολυμέσων έχει ένα κομμάτι υπότιτλων",
  800. "incomplete": "Ελέγξτε ότι οι υπότιτλοι είναι διαθέσιμοι για το στοιχείο"
  801. },
  802. "frame-tested": {
  803. "pass": "Το iframe δοκιμάστηκε με το ax-core",
  804. "fail": "Το iframe δεν ήταν δυνατό να δοκιμαστεί με το axe-core",
  805. "incomplete": "Το iframe πρέπει να δοκιμαστεί με το axe-core"
  806. },
  807. "no-autoplay-audio": {
  808. "pass": "Το <video> ή το <audio> δεν παράγει ήχο για μεγαλύτερη από την επιτρεπόμενη διάρκεια ή διαθέτει μηχανισμό ελέγχου",
  809. "fail": "Το <video> ή το <audio> εξάγει ήχο για μεγαλύτερη από την επιτρεπόμενη διάρκεια και δεν διαθέτει μηχανισμό ελέγχου",
  810. "incomplete": "Βεβαιωθείτε ότι το <video> ή το <audio> δεν παράγει ήχο για μεγαλύτερη από την επιτρεπόμενη διάρκεια ή παρέχει μηχανισμό ελέγχου"
  811. },
  812. "css-orientation-lock": {
  813. "pass": "Η οθόνη είναι λειτουργική και το κλείδωμα προσανατολισμού δεν υπάρχει",
  814. "fail": "Εφαρμόζεται κλείδωμα προσανατολισμού CSS και καθιστά την οθόνη μη λειτουργική",
  815. "incomplete": "Δεν είναι δυνατός ο προσδιορισμός ύπαρξης κλειδώματος προσανατολισμού CSS"
  816. },
  817. "meta-viewport-large": {
  818. "pass": "Η ετικέτα <meta> δεν εμποδίζει τη σημαντική μεγέθυνση σε κινητές συσκευές",
  819. "fail": "Η ετικέτα <meta> περιορίζει τη μεγέθυνση σε κινητές συσκευές"
  820. },
  821. "meta-viewport": {
  822. "pass": "Η ετικέτα <meta> δεν απενεργοποιεί το ζουμ σε κινητές συσκευές",
  823. "fail": "Η ετικέτα ${data} στην ετικέτα <meta> απενεργοποιεί το ζουμ σε κινητές συσκευές"
  824. },
  825. "target-offset": {
  826. "pass": "Ο στόχος έχει επαρκή απόσταση από τους πλησιέστερους γείτονές του. Ο ασφαλής χώρος με δυνατότητα κλικ έχει διάμετρο ${data.closestOffset}px που είναι τουλάχιστον ${data.minOffset}px.",
  827. "fail": "Ο στόχος δεν έχει επαρκή απόσταση από τους πλησιέστερους γείτονές του. Ο ασφαλής χώρος με δυνατότητα κλικ έχει διάμετρο ${data.closestOffset}px αντί για τουλάχιστον ${data.minOffset}px.",
  828. "incomplete": {
  829. "default": "Το στοιχείο με αρνητικό tabindex έχει ανεπαρκή χώρο προς τους πλησιέστερους γείτονές του. Ο ασφαλής χώρος με δυνατότητα κλικ έχει διάμετρο ${data.closestOffset}px αντί για τουλάχιστον ${data.minOffset}px. Είναι αυτός ο στόχος;",
  830. "nonTabbableNeighbor": "Ο στόχος δεν έχει επαρκή χώρο προς τους πλησιέστερους γείτονές του. Ο ασφαλής χώρος με δυνατότητα κλικ έχει διάμετρο ${data.closestOffset}px αντί για τουλάχιστον ${data.minOffset}px. Είναι στόχος ο γείτονας;"
  831. }
  832. },
  833. "target-size": {
  834. "pass": {
  835. "default": "Το στοιχείο ελέγχου έχει επαρκές μέγεθος (${data.width}px επί ${data.height}px, θα πρέπει να είναι τουλάχιστον ${data.minSize}px επί ${data.minSize}px)",
  836. "obscured": "Το στοιχείο ελέγχου αγνοείται επειδή είναι πλήρως κρυμμένο και επομένως δεν μπορεί να γίνει κλικ"
  837. },
  838. "fail": {
  839. "default": "Ο στόχος έχει ανεπαρκές μέγεθος (${data.width}px επί ${data.height}px, θα πρέπει να είναι τουλάχιστον ${data.minSize}px επί ${data.minSize}px)",
  840. "partiallyObscured": "Το μέγεθος του στόχου είναι ανεπαρκές επειδή είναι μερικώς κρυμμένο (το μικρότερο διάστημα είναι ${data.width}px επί ${data.height}px, θα πρέπει να είναι τουλάχιστον ${data.minSize}px επί ${data.minSize}px)"
  841. },
  842. "incomplete": {
  843. "default": "Το στοιχείο με αρνητικό tabindex έχει ανεπαρκές μέγεθος (${data.width}px επί ${data.height}px, θα πρέπει να είναι τουλάχιστον ${data.minSize}px επί ${data.minSize}px). Είναι στόχος;",
  844. "contentOverflow": "Το μέγεθος του στοιχείου δεν ήταν δυνατό να προσδιοριστεί με ακρίβεια λόγω του περιεχομένου υπερχείλισης",
  845. "partiallyObscured": "Το στοιχείο με αρνητικό tabindex δεν έχει επαρκές μέγεθος επειδή είναι μερικώς κρυμμένο (το μικρότερο διάστημα είναι ${data.width}px επί ${data.height}px, θα πρέπει να είναι τουλάχιστον ${data.minSize}px επί ${data.minSize} px). Είναι στόχος;",
  846. "partiallyObscuredNonTabbable": "Ο στόχος έχει ανεπαρκές μέγεθος επειδή είναι μερικώς καλυμμένος από έναν γείτονα με αρνητικό tabindex (το μικρότερο διάστημα είναι ${data.width}px επί ${data.height}px, θα πρέπει να είναι τουλάχιστον ${data.minSize}px επί ${data.minSize}px). Είναι στόχος ο γείτονας;"
  847. }
  848. },
  849. "header-present": {
  850. "pass": "Η σελίδα έχει επικεφαλίδα",
  851. "fail": "Η σελίδα δεν έχει επικεφαλίδα"
  852. },
  853. "heading-order": {
  854. "pass": "Έγκυρη σειρά επικεφαλίδας",
  855. "fail": "Μη έγκυρη σειρά επικεφαλίδας",
  856. "incomplete": "Δεν είναι δυνατός ο προσδιορισμός της προηγούμενης επικεφαλίδας"
  857. },
  858. "identical-links-same-purpose": {
  859. "pass": "Δεν υπάρχουν άλλοι σύνδεσμοι με το ίδιο όνομα που να πηγαίνουν σε διαφορετική διεύθυνση URL",
  860. "incomplete": "Ελέγξτε ότι οι σύνδεσμοι έχουν τον ίδιο σκοπό ή είναι σκόπιμα διφορούμενοι."
  861. },
  862. "internal-link-present": {
  863. "pass": "Βρέθηκε έγκυρο skip link",
  864. "fail": "Δεν βρέθηκε έγκυρο skip link"
  865. },
  866. "landmark": {
  867. "pass": "Η σελίδα έχει περιοχή ορόσημο",
  868. "fail": "Η σελίδα δεν έχει περιοχή ορόσημο"
  869. },
  870. "meta-refresh-no-exceptions": {
  871. "pass": "Η ετικέτα <meta> δεν ανανεώνει αμέσως τη σελίδα",
  872. "fail": "Η ετικέτα <meta> αναγκάζει σε ανανέωση της σελίδας μετά από κάποια χρονική στιγμή"
  873. },
  874. "meta-refresh": {
  875. "pass": "Η ετικέτα <meta> δεν ανανεώνει αμέσως τη σελίδα",
  876. "fail": "Η ετικέτα <meta> αναγκάζει σε ανανέωση της σελίδας μετά από κάποια χρονική στιγμή (λιγότερο από 20 ώρες)"
  877. },
  878. "p-as-heading": {
  879. "pass": "Τα στοιχεία <p> δεν έχουν στυλ επικεφαλίδων",
  880. "fail": "Στοιχεία επικεφαλίδας πρέπει να χρησιμοποιούνται αντί για στοιχεία <p> με στυλ επικεφαλίδας",
  881. "incomplete": "Δεν είναι δυνατό να προσδιοριστεί εάν τα στοιχεία <p> έχουν στυλ επικεφαλίδων"
  882. },
  883. "region": {
  884. "pass": "Όλο το περιεχόμενο της σελίδας περιλαμβάνεται από ορόσημα",
  885. "fail": "Ορισμένο περιεχόμενο της σελίδας δεν περιλαμβάνεται από ορόσημα"
  886. },
  887. "skip-link": {
  888. "pass": "Υπάρχει στόχος για skip link",
  889. "incomplete": "Ο στόχος του skip link θα πρέπει να είναι ορατός κατά την ενεργοποίηση",
  890. "fail": "Δεν υπάρχει στόχος για skip link"
  891. },
  892. "unique-frame-title": {
  893. "pass": "Το χαρακτηριστικό title του στοιχείου είναι μοναδικό",
  894. "fail": "Το χαρακτηριστικό title του στοιχείου δεν είναι μοναδικό"
  895. },
  896. "duplicate-id-active": {
  897. "pass": "Το έγγραφο δεν έχει ενεργά στοιχεία που μοιράζονται το ίδιο χαρακτηριστικό id",
  898. "fail": "Το έγγραφο έχει ενεργά στοιχεία με το ίδιο χαρακτηριστικό id: ${data}"
  899. },
  900. "duplicate-id-aria": {
  901. "pass": "Το έγγραφο δεν έχει πολλαπλά στοιχεία που αναφέρονται με ARIA ή ετικέτες που μοιράζονται το ίδιο χαρακτηριστικό id",
  902. "fail": "Το έγγραφο έχει πολλαπλά στοιχεία που αναφέρονται με ARIA με το ίδιο χαρακτηριστικό id: ${data}"
  903. },
  904. "duplicate-id": {
  905. "pass": "Το έγγραφο δεν έχει πολλαπλά στατικά στοιχεία που να μοιράζονται το ίδιο χαρακτηριστικό id",
  906. "fail": "Το έγγραφο έχει πολλαπλά στατικά στοιχεία με το ίδιο χαρακτηριστικό id: ${data}"
  907. },
  908. "aria-label": {
  909. "pass": "Το χαρακτηριστικό aria-label υπάρχει και δεν είναι κενό",
  910. "fail": "Το χαρακτηριστικό aria-label δεν υπάρχει ή είναι κενό"
  911. },
  912. "aria-labelledby": {
  913. "pass": "Το χαρακτηριστικό aria-labelledby υπάρχει και παραπέμπει σε στοιχεία που είναι ορατά στους αναγνώστες οθόνης",
  914. "fail": "Το χαρακτηριστικό aria-labelledby δεν υπάρχει, αναφέρεται σε στοιχεία που δεν υπάρχουν ή παραπέμπει σε στοιχεία που είναι κενά",
  915. "incomplete": "βεβαιωθείτε ότι το aria-labelledby παραπέμπει σε ένα υπάρχον στοιχείο"
  916. },
  917. "avoid-inline-spacing": {
  918. "pass": "Δεν έχουν καθοριστεί ενσωματωμένα στυλ με '!important' που επηρεάζουν το διάστημα κειμένου",
  919. "fail": {
  920. "singular": "Καταργήστε το '!important' από το ενσωματωμένο στυλ ${data.values}, καθώς η παράκαμψη του δεν υποστηρίζεται από τα περισσότερα προγράμματα περιήγησης",
  921. "plural": "Καταργήστε το '!important' από τα ενσωματωμένα στυλ ${data.values}, καθώς η παράκαμψη τους δεν υποστηρίζεται από τα περισσότερα προγράμματα περιήγησης"
  922. }
  923. },
  924. "button-has-visible-text": {
  925. "pass": "Το στοιχείο έχει εσωτερικό κείμενο που είναι ορατό στους αναγνώστες οθόνης",
  926. "fail": "Το στοιχείο δεν έχει εσωτερικό κείμενο που είναι ορατό στους αναγνώστες οθόνης",
  927. "incomplete": "Δεν είναι δυνατό να προσδιοριστεί εάν το στοιχείο έχει παιδιά"
  928. },
  929. "doc-has-title": {
  930. "pass": "Το έγγραφο έχει μη κενό στοιχείο <title>",
  931. "fail": "Το έγγραφο δεν έχει μη κενό στοιχείο <title>"
  932. },
  933. "exists": {
  934. "pass": "Το στοιχείο δεν υπάρχει",
  935. "incomplete": "Το στοιχείο υπάρχει"
  936. },
  937. "has-alt": {
  938. "pass": "Το στοιχείο έχει χαρακτηριστικό alt",
  939. "fail": "Το στοιχείο δεν έχει χαρακτηριστικό alt"
  940. },
  941. "has-visible-text": {
  942. "pass": "Το στοιχείο έχει κείμενο που είναι ορατό στους αναγνώστες οθόνης",
  943. "fail": "Το στοιχείο δεν έχει κείμενο που είναι ορατό στους αναγνώστες οθόνης",
  944. "incomplete": "Δεν είναι δυνατό να προσδιοριστεί εάν το στοιχείο έχει παιδιά"
  945. },
  946. "important-letter-spacing": {
  947. "pass": "Το letter-spacing στο χαρακτηριστικό style δεν έχει οριστεί σε !important ή πληροί το ελάχιστο",
  948. "fail": "Το letter-spacing στο χαρακτηριστικό style δεν πρέπει να χρησιμοποιεί !important ή να είναι στο ${data.minValue}em (τρέχον ${data.value}em)"
  949. },
  950. "important-line-height": {
  951. "pass": "Το line-height στο χαρακτηριστικό style δεν έχει οριστεί σε !important ή πληροί το ελάχιστο",
  952. "fail": "Το line-height στο χαρακτηριστικό style δεν πρέπει να χρησιμοποιεί !important ή να είναι στο ${data.minValue}em (τρέχον ${data.value}em)"
  953. },
  954. "important-word-spacing": {
  955. "pass": "Το word-spacing στο χαρακτηριστικό style δεν έχει οριστεί σε !important ή πληροί το ελάχιστο",
  956. "fail": "Το word-spacing στο χαρακτηριστικό style δεν πρέπει να χρησιμοποιεί !important ή να είναι στο ${data.minValue}em (τρέχον ${data.value}em)"
  957. },
  958. "is-on-screen": {
  959. "pass": "Το στοιχείο δεν είναι ορατό",
  960. "fail": "Το στοιχείο είναι ορατό"
  961. },
  962. "non-empty-alt": {
  963. "pass": "Το στοιχείο έχει μη κενό χαρακτηριστικό alt",
  964. "fail": {
  965. "noAttr": "Το στοιχείο δεν έχει χαρακτηριστικό alt",
  966. "emptyAttr": "Το στοιχείο έχει κενό χαρακτηριστικό alt"
  967. }
  968. },
  969. "non-empty-if-present": {
  970. "pass": {
  971. "default": "Το στοιχείο δεν έχει χαρακτηριστικό value",
  972. "has-label": "Το στοιχείο έχει ένα χαρακτηριστικό value με μη κενή τιμή"
  973. },
  974. "fail": "Το στοιχείο έχει χαρακτηριστικό value αλλά είναι κενό"
  975. },
  976. "non-empty-placeholder": {
  977. "pass": "Το στοιχείο έχει χαρακτηριστικό placeholder",
  978. "fail": {
  979. "noAttr": "Το στοιχείο δεν έχει χαρακτηριστικό placeholder",
  980. "emptyAttr": "Το στοιχείο έχει κενό χαρακτηριστικό placeholder"
  981. }
  982. },
  983. "non-empty-title": {
  984. "pass": "Το στοιχείο έχει χαρακτηριστικό τίτλου",
  985. "fail": {
  986. "noAttr": "Το στοιχείο δεν έχει χαρακτηριστικό τίτλου",
  987. "emptyAttr": "Το στοιχείο έχει κενό χαρακτηριστικό τίτλου"
  988. }
  989. },
  990. "non-empty-value": {
  991. "pass": "Το στοιχείο έχει ένα χαρακτηριστικό με μη κενή τιμή",
  992. "fail": {
  993. "noAttr": "Το στοιχείο δεν έχει χαρακτηριστικό τιμής",
  994. "emptyAttr": "Το στοιχείο έχει ένα χαρακτηριστικό με κενή τιμή"
  995. }
  996. },
  997. "presentational-role": {
  998. "pass": "Η προεπιλεγμένη σημασιολογία του στοιχείου αντικαταστάθηκε με το role=\"${data.role}\"",
  999. "fail": {
  1000. "default": "Η προεπιλεγμένη σημασιολογία του στοιχείου δεν αντικαταστάθηκε με role=\"none\" ή role=\"presentation\"",
  1001. "globalAria": "Ο ρόλος του στοιχείου δεν είναι για παρουσίαση επειδή έχει ένα καθολικό χαρακτηριστικό ARIA",
  1002. "focusable": "Ο ρόλος του στοιχείου δεν είναι για παρουσίαση επειδή είναι εστιασμένο",
  1003. "both": "Ο ρόλος του στοιχείου δεν είναι για παρουσίαση, επειδή έχει ένα καθολικό χαρακτηριστικό ARIA και είναι εστιασμένο",
  1004. "iframe": "Η χρήση του χαρακτηριστικού \"title\" σε ένα στοιχείο ${data.nodeName} με ρόλο παρουσίασης συμπεριφέρεται με ασυνέπεια μεταξύ των προγραμμάτων ανάγνωσης οθόνης"
  1005. }
  1006. },
  1007. "role-none": {
  1008. "pass": "Η προεπιλεγμένη σημασιολογία του στοιχείου αντικαταστάθηκε με role=\"none\"",
  1009. "fail": "Η προεπιλεγμένη σημασιολογία του στοιχείου δεν αντικαταστάθηκε με role=\"none\""
  1010. },
  1011. "role-presentation": {
  1012. "pass": "Η προεπιλεγμένη σημασιολογία του στοιχείου αντικαταστάθηκε με role=\"presentation\"",
  1013. "fail": "Η προεπιλεγμένη σημασιολογία του στοιχείου δεν αντικαταστάθηκε με role=\"presentation\""
  1014. },
  1015. "svg-non-empty-title": {
  1016. "pass": "Το στοιχείο έχει θυγατρικό που είναι τίτλος",
  1017. "fail": {
  1018. "noTitle": "Το στοιχείο δεν έχει θυγατρικό που να είναι τίτλος",
  1019. "emptyTitle": "Ο τίτλος του θυγατρικού στοιχείου είναι κενός"
  1020. },
  1021. "incomplete": "Δεν είναι δυνατό να προσδιοριστεί αν το στοιχείο έχει ένα θυγατρικό που είναι τίτλος"
  1022. },
  1023. "caption-faked": {
  1024. "pass": "Η πρώτη γραμμή του πίνακα δεν χρησιμοποιείται ως λεζάντα",
  1025. "fail": "Το πρώτο θυγατρικό του πίνακα θα πρέπει να είναι λεζάντα αντί για κελί πίνακα"
  1026. },
  1027. "html5-scope": {
  1028. "pass": "Το χαρακτηριστικό Scope χρησιμοποιείται μόνο σε στοιχεία κεφαλίδας πίνακα (<th>)",
  1029. "fail": "Στην HTML 5, τα χαρακτηριστικά scope μπορούν να χρησιμοποιούνται μόνο σε στοιχεία κεφαλίδας πίνακα (<th>)"
  1030. },
  1031. "same-caption-summary": {
  1032. "pass": "Το περιεχόμενο του χαρακτηριστικού summary και του <caption> δεν είναι διπλότυπα",
  1033. "fail": "Το περιεχόμενο του χαρακτηριστικού summary και το στοιχείο <caption> είναι πανομοιότυπα",
  1034. "incomplete": "Δεν είναι δυνατό να προσδιοριστεί εάν το στοιχείο <table> έχει λεζάντα"
  1035. },
  1036. "scope-value": {
  1037. "pass": "Το χαρακτηριστικό Scope χρησιμοποιείται σωστά",
  1038. "fail": "Η τιμή του χαρακτηριστικού scope μπορεί να είναι μόνο 'row' ή 'col'"
  1039. },
  1040. "td-has-header": {
  1041. "pass": "Όλα τα μη κενά κελιά δεδομένων διαθέτουν κεφαλίδες πίνακα",
  1042. "fail": "Ορισμένα μη κενά κελιά δεδομένων δεν διαθέτουν κεφαλίδες πίνακα"
  1043. },
  1044. "td-headers-attr": {
  1045. "pass": "Το χαρακτηριστικό headers χρησιμοποιείται αποκλειστικά για αναφορά σε άλλα κελιά του πίνακα",
  1046. "incomplete": "Το χαρακτηριστικό headers είναι κενό",
  1047. "fail": "Το χαρακτηριστικό headers δεν χρησιμοποιείται αποκλειστικά για αναφορά σε άλλα κελιά του πίνακα"
  1048. },
  1049. "th-has-data-cells": {
  1050. "pass": "Όλα τα κελιά της κεφαλίδας του πίνακα αναφέρονται σε κελιά δεδομένων",
  1051. "fail": "Δεν αναφέρονται όλα τα κελιά της κεφαλίδας του πίνακα σε κελιά δεδομένων",
  1052. "incomplete": "Τα κελιά δεδομένων του πίνακα λείπουν ή είναι άδεια"
  1053. },
  1054. "hidden-content": {
  1055. "pass": "Όλο το περιεχόμενο της σελίδας έχει αναλυθεί.",
  1056. "fail": "Παρουσιάστηκαν προβλήματα κατά την ανάλυση του περιεχομένου σε αυτήν τη σελίδα.",
  1057. "incomplete": "Υπάρχει κρυφό περιεχόμενο στη σελίδα που δεν αναλύθηκε. Για να το αναλύσετε, θα πρέπει να ενεργοποιήσετε την εμφάνιση αυτού του περιεχομένου."
  1058. }
  1059. },
  1060. "failureSummaries": {
  1061. "any": {
  1062. "failureMessage": "Διορθώστε οποιοδήποτε από τα παρακάτω:{{~it:value}}\n {{=value.split('\\n').join('\\n ')}}{{~}}"
  1063. },
  1064. "none": {
  1065. "failureMessage": "Διορθώστε όλα τα παρακάτω:{{~it:value}}\n {{=value.split('\\n').join('\\n ')}}{{~}}"
  1066. }
  1067. },
  1068. "incompleteFallbackMessage": "Το axe δεν μπορεί να πει τον λόγο. Ώρα για τον επιθεωρητή στοιχείων!"
  1069. }