it.json 65 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108
  1. {
  2. "lang": "it",
  3. "rules": {
  4. "accesskeys": {
  5. "description": "Assicurati che ogni valore dell'attributo accesskey sia univoco",
  6. "help": "Il valore dell'attributo accesskey deve essere univoco"
  7. },
  8. "area-alt": {
  9. "description": "Assicurati che gli elementi <area> delle mappe immagine abbiano un testo alternativo",
  10. "help": "Gli elementi <area> attivi devono avere un testo alternativo"
  11. },
  12. "aria-allowed-attr": {
  13. "description": "Assicurati che il ruolo di un elemento supporti i suoi attributi ARIA",
  14. "help": "Gli elementi devono utilizzare solo gli attributi ARIA supportati"
  15. },
  16. "aria-allowed-role": {
  17. "description": "Assicurati che il valore dell'attributo role sia appropriato per l'elemento",
  18. "help": "Il ruolo ARIA deve essere appropriato per l'elemento"
  19. },
  20. "aria-braille-equivalent": {
  21. "description": "Assicurati che aria-braillelabel e aria-brailleroledescription abbiano un equivalente non braille",
  22. "help": "Gli attributi aria-braille devono avere un equivalente non braille"
  23. },
  24. "aria-command-name": {
  25. "description": "Assicurati che ogni bottone, link e menuitem gestito con ARIA abbia un nome accessibile",
  26. "help": "I controlli gestiti con ARIA devono avere un nome accessibile"
  27. },
  28. "aria-conditional-attr": {
  29. "description": "Assicurati che gli attributi ARIA vengano utilizzati come descritto nella specifica del ruolo dell'elemento",
  30. "help": "Gli attributi ARIA devono essere utilizzati come specificato per il ruolo dell'elemento"
  31. },
  32. "aria-deprecated-role": {
  33. "description": "Assicurati che gli elementi non utilizzino ruoli obsoleti",
  34. "help": "I ruoli ARIA obsoleti non devono essere utilizzati"
  35. },
  36. "aria-dialog-name": {
  37. "description": "Assicurati che ogni nodo dialog e alertdialog ARIA abbia un nome accessibile",
  38. "help": "I nodi dialog e alertdialog ARIA devono avere un nome accessibile"
  39. },
  40. "aria-hidden-body": {
  41. "description": "Assicurati che aria-hidden=\"true\" non sia presente sull'elemento body del documento",
  42. "help": "aria-hidden=\"true\" non deve essere presente sull'elemento body del documento"
  43. },
  44. "aria-hidden-focus": {
  45. "description": "Assicurati che gli elementi nascosti con aria-hidden non possano nè ricevere focus, nè contengano elementi che possono ricevere focus",
  46. "help": "L'elemento nascosto con aria-hidden non deve ricevere focus, nè può contenere elementi che ricevono focus"
  47. },
  48. "aria-input-field-name": {
  49. "description": "Assicurati che ogni input gestito con ARIA abbia un nome accessibile",
  50. "help": "Gli input gestiti con ARIA devono avere un nome accessibile"
  51. },
  52. "aria-meter-name": {
  53. "description": "Assicurati che ogni nodo meter gestito con ARIA abbia un nome accessibile",
  54. "help": "I nodi meter gestiti con ARIA devono avere un nome accessibile"
  55. },
  56. "aria-progressbar-name": {
  57. "description": "Assicurati che ogni nodo progessbar gestito con ARIA abbia un nome accessibile",
  58. "help": "I nodi progressbar gestiti con ARIA devono avere un nome accessibile"
  59. },
  60. "aria-prohibited-attr": {
  61. "description": "Assicurati che gli attributi ARIA non siano proibiti per il ruolo di un elemento",
  62. "help": "Gli elementi devono utilizzare solo gli attributi ARIA consentiti"
  63. },
  64. "aria-required-attr": {
  65. "description": "Assicurati che gli elementi con ruoli ARIA abbiano tutti gli attributi ARIA obbligatori",
  66. "help": "Gli attributi ARIA obbligatori devono essere forniti"
  67. },
  68. "aria-required-children": {
  69. "description": "Assicurati che gli elementi con un ruolo ARIA che richiede ruoli figlio contengano questi ultimi",
  70. "help": "Alcuni ruoli ARIA devono contenere ruoli figlio specifici"
  71. },
  72. "aria-required-parent": {
  73. "description": "Assicurati che gli elementi con un ruolo ARIA che richiede ruoli genitore siano contenuti da questi ultimi",
  74. "help": "Alcuni ruoli ARIA devono essere contenuti da ruoli genitore specifici"
  75. },
  76. "aria-roledescription": {
  77. "description": "Assicurati che aria-roledescription venga utilizzato solo su elementi con un ruolo implicito o esplicito",
  78. "help": "aria-roledescription deve essere presente solo su elementi con un ruolo semantico"
  79. },
  80. "aria-roles": {
  81. "description": "Assicurati che tutti gli elementi con un attributo role utilizzino un valore valido",
  82. "help": "I ruoli ARIA utilizzati devono essere conformi ai valori validi"
  83. },
  84. "aria-text": {
  85. "description": "Assicurati che role=\"text\" venga utilizzato su elementi i cui discendenti non ricevono focus",
  86. "help": "\"role=text\" non deve avere discendenti che possono ricevere focus"
  87. },
  88. "aria-toggle-field-name": {
  89. "description": "Assicurati che ogni bottone toggle gestito con aria ARIA abbia un nome accessibile",
  90. "help": "I bottoni toggle gestiti con ARIA devono avere un nome accessibile"
  91. },
  92. "aria-tooltip-name": {
  93. "description": "Assicurati che ogni nodo tooltip gestito con ARIA abbia un nome accessibile",
  94. "help": "I nodi tooltip gestiti con ARIA devono avere un nome accessibile"
  95. },
  96. "aria-treeitem-name": {
  97. "description": "Assicurati che ogni nodo treeitem gestito con ARIA abbia un nome accessibile",
  98. "help": "I nodi treeitem gestiti con ARIA devono avere un nome accessibile"
  99. },
  100. "aria-valid-attr-value": {
  101. "description": "Assicurati che tutti gli attributi ARIA abbiano valori validi",
  102. "help": "Gli attributi ARIA devono essere conformi ai valori validi"
  103. },
  104. "aria-valid-attr": {
  105. "description": "Assicurati che gli attributi che iniziano con aria- siano attributi ARIA validi",
  106. "help": "Gli attributi ARIA devono essere conformi ai nomi validi"
  107. },
  108. "audio-caption": {
  109. "description": "Assicurati che gli elementi <audio> abbiano didascalie",
  110. "help": "Gli elementi <audio> devono avere una didascalia"
  111. },
  112. "autocomplete-valid": {
  113. "description": "Assicurati che l'attributo autocomplete sia corretto e adatto al campo specifico",
  114. "help": "L'attributo autocomplete deve essere utilizzato correttamente"
  115. },
  116. "avoid-inline-spacing": {
  117. "description": "Assicurati che la spaziatura del testo impostata tramite attributi di stile possa essere regolata con fogli di stile personalizzati",
  118. "help": "La spaziatura del testo inline deve poter essere regolata con fogli di stile personalizzati"
  119. },
  120. "blink": {
  121. "description": "Assicurati che non vengano utilizzati elementi <blink>",
  122. "help": "Gli elementi <blink> sono deprecati e non devono essere utilizzati"
  123. },
  124. "button-name": {
  125. "description": "Assicurati che i pulsanti abbiano un testo distinguibile",
  126. "help": "I pulsanti devono avere un testo distinguibile"
  127. },
  128. "bypass": {
  129. "description": "Assicurati che ogni pagina abbia almeno un meccanismo per consentire all'utente di ignorare la navigazione e passare direttamente al contenuto",
  130. "help": "La pagina deve avere un modo per ignorare i blocchi ripetuti"
  131. },
  132. "color-contrast-enhanced": {
  133. "description": "Assicurati che il contrasto tra i colori in primo piano e di sfondo soddisfi le soglie di rapporto di contrasto avanzato WCAG 2 AAA",
  134. "help": "Gli elementi devono soddisfare le soglie di rapporto di contrasto di colore avanzato"
  135. },
  136. "color-contrast": {
  137. "description": "Assicurati che il contrasto tra i colori in primo piano e di sfondo soddisfi le soglie minime del rapporto di contrasto WCAG 2 AA",
  138. "help": "Gli elementi devono soddisfare le soglie minime del rapporto di contrasto di colore"
  139. },
  140. "css-orientation-lock": {
  141. "description": "Assicurati che il contenuto non sia bloccato in un'orientamento di visualizzazione specifico e che sia operabile in tutti gli orientamenti di visualizzazione",
  142. "help": "Le Media queries CSS non devono bloccare l'orientamento di visualizzazione"
  143. },
  144. "definition-list": {
  145. "description": "Assicurati che gli elementi <dl> siano strutturati correttamente",
  146. "help": "Gli elementi <dl> devono contenere direttamente solo gruppi <dt> e <dd> ordinati correttamente, <script>, <template> o elementi <div>"
  147. },
  148. "dlitem": {
  149. "description": "Assicurati che gli elementi <dt> e <dd> siano contenuti in un <dl>",
  150. "help": "Gli elementi <dt> e <dd> devono essere contenuti in un <dl>"
  151. },
  152. "document-title": {
  153. "description": "Assicurati che ogni documento HTML contenga un elemento <title> non vuoto",
  154. "help": "I documenti devono avere un elemento <title> per aiutare nella navigazione"
  155. },
  156. "duplicate-id-active": {
  157. "description": "Assicurati che ogni valore dell'attributo id degli elementi attivi sia univoco",
  158. "help": "Gli ID degli elementi attivi devono essere univoci"
  159. },
  160. "duplicate-id-aria": {
  161. "description": "Assicurati che ogni valore dell'attributo id utilizzato in ARIA e nelle etichette sia univoco",
  162. "help": "Gli ID utilizzati in ARIA e nelle etichette devono essere univoci"
  163. },
  164. "duplicate-id": {
  165. "description": "Assicurati che ogni valore dell'attributo id sia univoco",
  166. "help": "Il valore dell'attributo id deve essere univoco"
  167. },
  168. "empty-heading": {
  169. "description": "Assicurati che le intestazioni abbiano un testo distinguibile",
  170. "help": "Le intestazioni non devono essere vuote"
  171. },
  172. "empty-table-header": {
  173. "description": "Assicurati che le intestazioni di tabella abbiano un testo distinguibile",
  174. "help": "Il testo dell'intestazione di tabella non deve essere vuoto"
  175. },
  176. "focus-order-semantics": {
  177. "description": "Assicurati che gli elementi presenti nell'ordine di focus abbiano un ruolo appropriato per il contenuto interattivo",
  178. "help": "Gli elementi presenti nell'ordine di focus devono avere un ruolo appropriato"
  179. },
  180. "form-field-multiple-labels": {
  181. "description": "Assicurati che il campo non abbia elementi label multipli associati",
  182. "help": "Il campo deve avere un solo elemento label associato"
  183. },
  184. "frame-focusable-content": {
  185. "description": "Assicurati che gli elementi <frame> e <iframe> con contenuto che può ricevere focus non abbiano tabindex=-1",
  186. "help": "I frames con contenuto che può ricecere focus non devono avere tabindex=-1"
  187. },
  188. "frame-tested": {
  189. "description": "Assicurati che gli elementi <iframe> e <frame> contengano lo script axe-core",
  190. "help": "I frames devono essere testate con axe-core"
  191. },
  192. "frame-title-unique": {
  193. "description": "Assicurati che gli elementi <iframe> e <frame> contengano un attributo title univoco",
  194. "help": "I frames devono avere un attributo title univoco"
  195. },
  196. "frame-title": {
  197. "description": "Assicurati che gli elementi <iframe> e <frame> abbiano un nome accessibile",
  198. "help": "I frames devono avere un nome accessibile"
  199. },
  200. "heading-order": {
  201. "description": "Assicurati che l'ordine delle intestazioni sia semanticamente corretto",
  202. "help": "I livelli delle intestazioni possono aumentare solo di uno"
  203. },
  204. "hidden-content": {
  205. "description": "Informa gli utenti sul contenuto nascosto",
  206. "help": "Il contenuto nascosto nella pagina deve essere analizzato"
  207. },
  208. "html-has-lang": {
  209. "description": "Assicurati che ogni documento HTML abbia un attributo lang",
  210. "help": "L'elemento <html> deve avere un attributo lang"
  211. },
  212. "html-lang-valid": {
  213. "description": "Assicurati che l'attributo lang dell'elemento <html> abbia un valore valido",
  214. "help": "L'attributo lang dell'elemento <html> deve avere un valore valido"
  215. },
  216. "html-xml-lang-mismatch": {
  217. "description": "Assicurati che gli elementi HTML con entrambi gli attributi lang e xml:lang siano coerenti con la lingua di base della pagina",
  218. "help": "Gli elementi con attributi lang e xml:lang devono avere la stessa lingua di base"
  219. },
  220. "identical-links-same-purpose": {
  221. "description": "Assicurati che i collegamenti con lo stesso nome accessibile abbiano uno scopo simile",
  222. "help": "I collegamenti con lo stesso nome devono avere uno scopo simile"
  223. },
  224. "image-alt": {
  225. "description": "Assicurati che gli elementi <img> abbiano un testo alternativo o un ruolo none o presentation",
  226. "help": "Le immagini devono avere un testo alternativo"
  227. },
  228. "image-redundant-alt": {
  229. "description": "Assicurati che l'alternativa testuale delle immagini non venga ripetuta come testo",
  230. "help": "Il testo alternativo delle immagini non deve essere ripetuto come testo"
  231. },
  232. "input-button-name": {
  233. "description": "Assicurati che i pulsanti di input abbiano un testo distinguibile",
  234. "help": "I pulsanti di input devono avere un testo distinguibile"
  235. },
  236. "input-image-alt": {
  237. "description": "Assicurati che gli elementi <input type=\"image\"> abbiano un testo alternativo",
  238. "help": "I pulsanti immagine devono avere un testo alternativo"
  239. },
  240. "label-content-name-mismatch": {
  241. "description": "Assicurati che gli elementi etichettati tramite il loro contenuto abbiano il loro testo visibile come parte del loro nome accessibile",
  242. "help": "Gli elementi devono avere il loro testo visibile come parte del loro nome accessibile"
  243. },
  244. "label-title-only": {
  245. "description": "Assicurati che ogni elemento del modulo abbia un'etichetta visibile e non sia etichettato esclusivamente utilizzando etichette nascoste, o gli attributi title o aria-describedby",
  246. "help": "Gli elementi del modulo devono avere un'etichetta visibile"
  247. },
  248. "label": {
  249. "description": "Assicurati che ogni elemento del modulo abbia un'etichetta",
  250. "help": "Gli elementi del modulo devono avere etichette"
  251. },
  252. "landmark-banner-is-top-level": {
  253. "description": "Assicurati che il landmark banner sia a livello superiore",
  254. "help": "Il landmark banner non deve essere contenuto in un altro landmark"
  255. },
  256. "landmark-complementary-is-top-level": {
  257. "description": "Assicurati che il landmark complementary o l'elemento aside sia a livello superiore",
  258. "help": "L'elemento aside non deve essere contenuto in un altro landmark"
  259. },
  260. "landmark-contentinfo-is-top-level": {
  261. "description": "Assicurati che il landmark contentinfo sia a livello superiore",
  262. "help": "Il landmark contentinfo non deve essere contenuto in un altro landmark"
  263. },
  264. "landmark-main-is-top-level": {
  265. "description": "Assicurati che il landmark main sia a livello superiore",
  266. "help": "Il landmark main non deve essere contenuto in un altro landmark"
  267. },
  268. "landmark-no-duplicate-banner": {
  269. "description": "Assicurati che il documento abbia al massimo un landmark banner",
  270. "help": "Il documento non deve avere più di un landmark banner"
  271. },
  272. "landmark-no-duplicate-contentinfo": {
  273. "description": "Assicurati che il documento abbia al massimo un landmark contentinfo",
  274. "help": "Il documento non deve avere più di un landmark contentinfo"
  275. },
  276. "landmark-no-duplicate-main": {
  277. "description": "Assicurati che il documento abbia al massimo un landmark main",
  278. "help": "Il documento non deve avere più di un landmark main"
  279. },
  280. "landmark-one-main": {
  281. "description": "Assicurati che il documento abbia un landmark main",
  282. "help": "Il documento deve avere un landmark main"
  283. },
  284. "landmark-unique": {
  285. "help": "Assicurati che i landmark siano univoci",
  286. "description": "I landmark devono avere un ruolo univoco o una combinazione univoca di ruolo/etichetta/titolo (come ad esempio un nome accessibile univoco)"
  287. },
  288. "link-in-text-block": {
  289. "description": "Assicurati che i collegamenti siano distinguibili dal testo circostante in un modo che non si basa sul colore",
  290. "help": "I collegamenti devono essere distinguibili senza fare affidamento sul colore"
  291. },
  292. "link-name": {
  293. "description": "Assicurati che i collegamenti abbiano un testo distinguibile",
  294. "help": "I collegamenti devono avere un testo distinguibile"
  295. },
  296. "list": {
  297. "description": "Assicurati che le liste siano strutturate correttamente",
  298. "help": "<ul> e <ol> devono contenere direttamente solo elementi <li>, <script> o <template>"
  299. },
  300. "listitem": {
  301. "description": "Assicurati che gli elementi <li> siano utilizzati semanticamente",
  302. "help": "Gli elementi <li> devono essere contenuti in un <ul> o <ol>"
  303. },
  304. "marquee": {
  305. "description": "Assicurati che gli elementi <marquee> non siano utilizzati",
  306. "help": "Gli elementi <marquee> sono deprecati e non devono essere utilizzati"
  307. },
  308. "meta-refresh-no-exceptions": {
  309. "description": "Assicurati che <meta http-equiv=\"refresh\"> non venga utilizzato per il refresh ritardato",
  310. "help": "Il refresh ritardato non deve essere utilizzato"
  311. },
  312. "meta-refresh": {
  313. "description": "Assicurati che <meta http-equiv=\"refresh\"> non venga utilizzato per il refresh ritardato",
  314. "help": "Il refresh ritardato al di sotto delle 20 ore non deve essere utilizzato"
  315. },
  316. "meta-viewport-large": {
  317. "description": "Assicurati che <meta name=\"viewport\"> possa scalare una quantità significativa",
  318. "help": "Gli utenti devono essere in grado di ingrandire e scalare il testo fino al 500%"
  319. },
  320. "meta-viewport": {
  321. "description": "Assicurati che <meta name=\"viewport\"> non disabiliti il ridimensionamento e lo zoom del testo",
  322. "help": "Lo zoom e il ridimensionamento non devono essere disabilitati"
  323. },
  324. "nested-interactive": {
  325. "description": "Assicurati che i controlli interattivi non siano annidati, poiché non vengono sempre annunciati dagli screen reader o possono causare problemi di focus per le tecnologie assistive",
  326. "help": "I controlli interattivi non devono essere annidati"
  327. },
  328. "no-autoplay-audio": {
  329. "description": "Assicurati che gli elementi <video> o <audio> non riproducano automaticamente l'audio per più di 3 secondi senza un meccanismo di controllo per arrestare o disattivare l'audio",
  330. "help": "Gli elementi <video> o <audio> non devono essere riprodotti automaticamente"
  331. },
  332. "object-alt": {
  333. "description": "Assicurati che gli elementi <object> abbiano un testo alternativo",
  334. "help": "Gli elementi <object> devono avere un testo alternativo"
  335. },
  336. "p-as-heading": {
  337. "description": "Assicurati che il grassetto, il corsivo e le dimensioni del font non vengano utilizzati per rappresentare elementi <p> come intestazione",
  338. "help": "Gli elementi <p> personalizzati non devono essere utilizzati come intestazioni"
  339. },
  340. "page-has-heading-one": {
  341. "description": "Assicurati che la pagina, o almeno uno dei suoi frame, contenga un'intestazione di livello uno",
  342. "help": "La pagina dovrebbe contenere un'intestazione di livello uno"
  343. },
  344. "presentation-role-conflict": {
  345. "description": "Gli elementi contrassegnati come presentazionali non devono avere attributi ARIA globali o tabindex per assicurare che tutti gli screen reader li ignorino",
  346. "help": "Assicurati che gli elementi contrassegnati come presentazionali vengano ignorati in modo coerente"
  347. },
  348. "region": {
  349. "description": "Assicurati che tutti i contenuti della pagina siano contenuti nei landmark",
  350. "help": "Tutti i contenuti della pagina dovrebbero essere contenuti nei landmark"
  351. },
  352. "role-img-alt": {
  353. "description": "Assicurati che gli elementi [role=\"img\"] abbiano un testo alternativo",
  354. "help": "Gli elementi [role=\"img\"] devono avere un testo alternativo"
  355. },
  356. "scope-attr-valid": {
  357. "description": "Assicurati che l'attributo scope venga utilizzato correttamente nelle tabelle",
  358. "help": "L'attributo scope deve essere utilizzato correttamente"
  359. },
  360. "scrollable-region-focusable": {
  361. "description": "Assicurati che gli elementi che hanno contenuti scorrevoli siano accessibili da tastiera",
  362. "help": "La regione scrollabile deve avere accesso da tastiera"
  363. },
  364. "select-name": {
  365. "description": "Assicurati che l'elemento select abbia un nome accessibile",
  366. "help": "L'elemento select deve avere un nome accessibile"
  367. },
  368. "server-side-image-map": {
  369. "description": "Assicurati che non vengano utilizzate mappe immagini lato server",
  370. "help": "Le mappe immagini lato server non devono essere utilizzate"
  371. },
  372. "skip-link": {
  373. "description": "Assicurati che tutti gli skip link puntino ad un elemento che può ricevere focus",
  374. "help": "L'elemento a cui lo skip link punta deve esistere e deve poter ricevere focus"
  375. },
  376. "svg-img-alt": {
  377. "description": "Assicurati che gli elementi <svg> con un ruolo img, graphics-document o graphics-symbol abbiano un testo accessibile",
  378. "help": "Gli elementi <svg> con un ruolo img devono avere un testo alternativo"
  379. },
  380. "tabindex": {
  381. "description": "Assicurati che i valori degli attributi tabindex non siano maggiori di 0",
  382. "help": "Gli elementi non devono avere un tabindex maggiore di zero"
  383. },
  384. "table-duplicate-name": {
  385. "description": "Assicurati che l'elemento <caption> non contenga lo stesso testo dell'attributo summary",
  386. "help": "Il riepilogo e la didascalia di una tabella non devono essere uguali"
  387. },
  388. "table-fake-caption": {
  389. "description": "Assicurati che le tabelle con una didascalia utilizzino l'elemento <caption>.",
  390. "help": "Le celle di dati o di intestazione non devono essere utilizzate per fornire una didascalia a una tabella di dati."
  391. },
  392. "target-size": {
  393. "description": "Assicurati che gli elementi che possono essere attivati tramite puntatore abbiano dimensioni e spaziature sufficienti",
  394. "help": "Tutti gli elementi che possono essere attivati tramite puntatore devono avere una largezza di 24px, o lasciare spazio sufficiente"
  395. },
  396. "td-has-header": {
  397. "description": "Assicurati che ogni cella di dati non vuota in una tabella più grande di 3x3 abbia una o più intestazioni di tabella",
  398. "help": "Le celle <td> non vuote in una tabella di dimensioni considerevoli devono avere un'intestazione di tabella associata"
  399. },
  400. "td-headers-attr": {
  401. "description": "Assicurati che ogni cella in una tabella che utilizza l'attributo headers si riferisca solo ad altre celle nella stessa tabella",
  402. "help": "Le celle di tabella che utilizzano l'attributo headers devono riferirsi solo a celle nella stessa tabella"
  403. },
  404. "th-has-data-cells": {
  405. "description": "Assicurati che gli elementi <th> e gli elementi con role=columnheader/rowheader descrivano le celle di dati corrispondenti",
  406. "help": "Le intestazioni di tabella in una tabella di dati devono fare riferimento a celle di dati"
  407. },
  408. "valid-lang": {
  409. "description": "Assicurati che gli attributi lang abbiano valori validi",
  410. "help": "L'attributo lang deve avere un valore valido"
  411. },
  412. "video-caption": {
  413. "description": "Assicurati che gli elementi <video> abbiano didascalie",
  414. "help": "Gli elementi <video> devono avere didascalie"
  415. }
  416. },
  417. "checks": {
  418. "abstractrole": {
  419. "pass": "I ruoli astratti non vengono utilizzati",
  420. "fail": {
  421. "singular": "Il ruolo astratto non può essere utilizzato direttamente: ${data.values}",
  422. "plural": "I ruoli astratti non possono essere utilizzati direttamente: ${data.values}"
  423. }
  424. },
  425. "aria-allowed-attr": {
  426. "pass": "Gli attributi ARIA sono utilizzati correttamente per il ruolo definito",
  427. "fail": {
  428. "singular": "L'attributo ARIA non è consentito: ${data.values}",
  429. "plural": "Gli attributi ARIA non sono consentiti: ${data.values}"
  430. },
  431. "incomplete": "Verifica che non ci siano problemi se l'attributo ARIA viene ignorato su questo elemento: ${data.values}"
  432. },
  433. "aria-allowed-role": {
  434. "pass": "Il ruolo ARIA è consentito per l'elemento dato",
  435. "fail": {
  436. "singular": "Il ruolo ARIA ${data.values} non è consentito per l'elemento dato",
  437. "plural": "I ruoli ARIA ${data.values} non sono consentiti per l'elemento dato"
  438. },
  439. "incomplete": {
  440. "singular": "Il ruolo ARIA ${data.values} deve essere rimosso quando l'elemento viene reso visibile, poiché non è consentito per l'elemento",
  441. "plural": "I ruoli ARIA ${data.values} devono essere rimossi quando l'elemento viene reso visibile, poiché non sono consentiti per l'elemento"
  442. }
  443. },
  444. "aria-busy": {
  445. "pass": "L'elemento ha un attributo aria-busy",
  446. "fail": "L'elemento utilizza aria-busy=\"true\" mentre viene mostrato un caricamento"
  447. },
  448. "aria-conditional-attr": {
  449. "pass": "L'attributo ARIA è consentito",
  450. "fail": {
  451. "checkbox": "Rimuovi aria-checked, o impostalo su \"${data.checkState}\" per farlo combaciare allo stato reale della casella di controllo",
  452. "rowSingular": "Questo attributo è supportato con le righe treegrid, ma non ${data.ownerRole}: ${data.invalidAttrs}",
  453. "rowPlural": "Questi attributi sono supportati con le righe treegrid, ma non ${data.ownerRole}: ${data.invalidAttrs}"
  454. }
  455. },
  456. "aria-errormessage": {
  457. "pass": "aria-errormessage esiste e fa riferimento ad elementi visibili agli screen reader che utilizzano una tecnica aria-errormessage supportata",
  458. "fail": {
  459. "singular": "Il valore aria-errormessage `${data.values}` deve utilizzare una tecnica per annunciare il messaggio (ad esempio, aria-live, aria-describedby, role=alert, ecc.)",
  460. "plural": "I valori aria-errormessage `${data.values}` devono utilizzare una tecnica per annunciare il messaggio (ad esempio, aria-live, aria-describedby, role=alert, ecc.)",
  461. "hidden": "Il valore aria-errormessage `${data.values}` non può fare riferimento a un elemento nascosto"
  462. },
  463. "incomplete": {
  464. "singular": "assicurati che il valore aria-errormessage `${data.values}` faccia riferimento a un elemento esistente",
  465. "plural": "assicurati che i valori aria-errormessage `${data.values}` facciano riferimento a elementi esistenti",
  466. "idrefs": "non è possibile determinare se l'elemento aria-errormessage esiste nella pagina: ${data.values}"
  467. }
  468. },
  469. "aria-hidden-body": {
  470. "pass": "Non è presente l'attributo aria-hidden sull'elemento body del documento",
  471. "fail": "aria-hidden=true non deve essere presente sull'elemento body del documento"
  472. },
  473. "aria-level": {
  474. "pass": "I valori aria-level sono validi",
  475. "incomplete": "I valori aria-level superiori a 6 non sono supportati in tutte le combinazioni di screenreader e browser"
  476. },
  477. "aria-prohibited-attr": {
  478. "pass": "L'attributo ARIA è consentito",
  479. "fail": {
  480. "hasRolePlural": "Gli attributi ${data.prohibited} non possono essere utilizzati con il ruolo \"${data.role}\".",
  481. "hasRoleSingular": "L'attributo ${data.prohibited} non può essere utilizzato con il ruolo \"${data.role}\".",
  482. "noRolePlural": "Gli attributi ${data.prohibited} non possono essere utilizzati su un ${data.nodeName} senza un ruolo valido.",
  483. "noRoleSingular": "L'attributo ${data.prohibited} non può essere utilizzato su un ${data.nodeName} senza un ruolo valido."
  484. },
  485. "incomplete": {
  486. "hasRoleSingular": "L'attributo ${data.prohibited} non è ben supportato con il ruolo \"${data.role}\".",
  487. "hasRolePlural": "Gli attributi ${data.prohibited} non sono ben supportati con il ruolo \"${data.role}\".",
  488. "noRoleSingular": "L'attributo ${data.prohibited} non è ben supportato su un ${data.nodeName} senza un ruolo valido.",
  489. "noRolePlural": "Gli attributi ${data.prohibited} non sono ben supportati su un ${data.nodeName} senza un ruolo valido."
  490. }
  491. },
  492. "aria-required-attr": {
  493. "pass": "Tutti gli attributi ARIA obbligatori sono presenti",
  494. "fail": {
  495. "singular": "L'attributo ARIA obbligatorio non è presente: ${data.values}",
  496. "plural": "Gli attributi ARIA obbligatori non sono presenti: ${data.values}"
  497. }
  498. },
  499. "aria-required-children": {
  500. "pass": "I figli ARIA obbligatori sono presenti",
  501. "fail": {
  502. "singular": "Il ruolo ARIA obbligatorio per l'elemento figlio non è presente: ${data.values}",
  503. "plural": "Il ruolo ARIA obbligatorio per gli elementi figli non è presente: ${data.values}",
  504. "unallowed": "L'elemento ha figli che non sono consentiti: ${data.values}"
  505. },
  506. "incomplete": {
  507. "singular": "Ci si aspetta che venga aggiunto un figlio con un ruolo ARIA: ${data.values}",
  508. "plural": "Ci si aspetta che vengano aggiunti i figli con un ruolo ARIA: ${data.values}"
  509. }
  510. },
  511. "aria-required-parent": {
  512. "pass": "Il ruolo ARIA obbligatorio per l'elemento genitore è presente",
  513. "fail": {
  514. "singular": "Il ruolo ARIA obbligatorio per l'elemento genitore non è presente: ${data.values}",
  515. "plural": "I ruoli ARIA obbligatori per gli elementi genitori non sono presenti: ${data.values}"
  516. }
  517. },
  518. "aria-roledescription": {
  519. "pass": "aria-roledescription utilizzato su un ruolo semantico supportato",
  520. "incomplete": "Verifica che aria-roledescription venga annunciato dagli screen reader supportati",
  521. "fail": "Assegna all'elemento un ruolo che supporta aria-roledescription"
  522. },
  523. "aria-unsupported-attr": {
  524. "pass": "L'attributo ARIA è supportato",
  525. "fail": "L'attributo ARIA non è ampiamente supportato dagli screen reader e dalle tecnologie assistive: ${data.values}"
  526. },
  527. "aria-valid-attr-value": {
  528. "pass": "I valori degli attributi ARIA sono validi",
  529. "fail": {
  530. "singular": "Il valore dell'attributo ARIA non è valido: ${data.values}",
  531. "plural": "I valori degli attributi ARIA non sono validi: ${data.values}"
  532. },
  533. "incomplete": {
  534. "noId": "Nella pagina non esiste un elemento con ID corrispondente all'attributo ARIA: ${data.needsReview}",
  535. "noIdShadow": "Nella pagina non esiste un elemento con ID corrispondente all'attributo ARIA o è un discendente di un diverso albero shadow DOM: ${data.needsReview}",
  536. "ariaCurrent": "Il valore dell'attributo ARIA non è valido e verrà trattato come \"aria-current=true\": ${data.needsReview}",
  537. "idrefs": "Non è possibile determinare se esiste un elemento con ID corrispondente all'attributo ARIA nella pagina: ${data.needsReview}",
  538. "empty": "Il valore dell'attributo ARIA viene ignorato mentre è vuoto: ${data.needsReview}"
  539. }
  540. },
  541. "aria-valid-attr": {
  542. "pass": "Il nome dell'attributo ARIA è valido",
  543. "fail": {
  544. "singular": "Il nome dell'attributo ARIA non è valido: ${data.values}",
  545. "plural": "I nomi degli attributi ARIA non sono validi: ${data.values}"
  546. }
  547. },
  548. "braille-label-equivalent": {
  549. "pass": "aria-braillelabel viene utilizzato su un elemento con testo accessibile",
  550. "fail": "aria-braillelabel viene utilizzato su un elemento senza testo accessibile",
  551. "incomplete": "Non è possibile calcolare il testo accessibile"
  552. },
  553. "braille-roledescription-equivalent": {
  554. "pass": "aria-brailleroledescription viene utilizzato su un elemento con aria-roledescription",
  555. "fail": {
  556. "noRoleDescription": "aria-brailleroledescription viene utilizzato su un elemento senza aria-roledescription",
  557. "emptyRoleDescription": "aria-brailleroledescription viene utilizzato su un elemento con aria-roledescription vuoto"
  558. }
  559. },
  560. "deprecatedrole": {
  561. "pass": "Il ruolo ARIA non è deprecato",
  562. "fail": "Il ruolo utilizzato è deprecato: ${data}"
  563. },
  564. "fallbackrole": {
  565. "pass": "Viene utilizzato un solo valore di ruolo",
  566. "fail": "Utilizza un solo valore di ruolo, poiché i ruoli di fallback non sono supportati nei browser più vecchi",
  567. "incomplete": "Utilizza solo il ruolo 'presentation' o 'none' poiché sono sinonimi."
  568. },
  569. "has-global-aria-attribute": {
  570. "pass": {
  571. "singular": "L'elemento ha un attributo ARIA globale: ${data.values}",
  572. "plural": "L'elemento ha attributi ARIA globali: ${data.values}"
  573. },
  574. "fail": "L'elemento non ha un attributo ARIA globale"
  575. },
  576. "has-widget-role": {
  577. "pass": "L'elemento ha un ruolo widget.",
  578. "fail": "L'elemento non ha un ruolo widget."
  579. },
  580. "invalidrole": {
  581. "pass": "Il ruolo ARIA è valido",
  582. "fail": {
  583. "singular": "Il ruolo deve essere uno dei ruoli ARIA validi: ${data.values}",
  584. "plural": "I ruoli devono essere uno dei ruoli ARIA validi: ${data.values}"
  585. }
  586. },
  587. "is-element-focusable": {
  588. "pass": "L'elemento può ricevere focus.",
  589. "fail": "L'elemento non può ricevere focus."
  590. },
  591. "no-implicit-explicit-label": {
  592. "pass": "Non c'è incongruenza tra etichetta <label> e nome accessibile",
  593. "incomplete": "Verifica che l'etichetta <label> non debba far parte del nome del campo ARIA ${data}"
  594. },
  595. "unsupportedrole": {
  596. "pass": "Il ruolo ARIA è supportato",
  597. "fail": "Il ruolo utilizzato non è ampiamente supportato dagli screen reader e dalle tecnologie assistive: ${data}"
  598. },
  599. "valid-scrollable-semantics": {
  600. "pass": "L'elemento ha una semantica valida per un elemento presente nell'ordine di focus.",
  601. "fail": "L'elemento ha una semantica non valida per un elemento presente nell'ordine di focus."
  602. },
  603. "color-contrast-enhanced": {
  604. "pass": "L'elemento ha un contrasto di colore sufficiente di ${data.contrastRatio}",
  605. "fail": {
  606. "default": "L'elemento ha un contrasto di colore insufficiente di ${data.contrastRatio} (colore in primo piano: ${data.fgColor}, colore di sfondo: ${data.bgColor}, dimensione del font: ${data.fontSize}, peso del font: ${data.fontWeight}). Contrasto atteso di ${data.expectedContrastRatio}",
  607. "fgOnShadowColor": "L'elemento ha un contrasto di colore insufficiente di ${data.contrastRatio} tra il primo piano e il colore dell'ombra (colore in primo piano: ${data.fgColor}, colore dell'ombra del testo: ${data.shadowColor}, dimensione del font: ${data.fontSize}, peso del font: ${data.fontWeight}). Contrasto atteso di ${data.expectedContrastRatio}",
  608. "shadowOnBgColor": "L'elemento ha un contrasto di colore insufficiente di ${data.contrastRatio} tra il colore dell'ombra e il colore di sfondo (colore dell'ombra del testo: ${data.shadowColor}, colore di sfondo: ${data.bgColor}, dimensione del font: ${data.fontSize}, peso del font: ${data.fontWeight}). Contrasto atteso di ${data.expectedContrastRatio}"
  609. },
  610. "incomplete": {
  611. "default": "Impossibile determinare il rapporto di contrasto",
  612. "bgImage": "Il colore di sfondo dell'elemento non può essere determinato a causa di un'immagine di sfondo",
  613. "bgGradient": "Il colore di sfondo dell'elemento non può essere determinato a causa di un gradiente di sfondo",
  614. "imgNode": "Il colore di sfondo dell'elemento non può essere determinato perché l'elemento contiene un nodo immagine",
  615. "bgOverlap": "Il colore di sfondo dell'elemento non può essere determinato perché c'è un altro elemento sovrapposto",
  616. "fgAlpha": "Il colore in primo piano dell'elemento non può essere determinato a causa della trasparenza alfa",
  617. "elmPartiallyObscured": "Il colore di sfondo dell'elemento non può essere determinato perché è parzialmente oscurato da un altro elemento",
  618. "elmPartiallyObscuring": "Il colore di sfondo dell'elemento non può essere determinato perché si sovrappone parzialmente ad altri elementi",
  619. "outsideViewport": "Il colore di sfondo dell'elemento non può essere determinato perché è al di fuori della finestra di visualizzazione",
  620. "equalRatio": "L'elemento ha un rapporto di contrasto di 1:1 con lo sfondo",
  621. "shortTextContent": "Il contenuto dell'elemento è troppo breve per determinare se si tratta di un contenuto di testo effettivo",
  622. "nonBmp": "Il contenuto dell'elemento contiene solo caratteri non di testo",
  623. "pseudoContent": "Il colore di sfondo dell'elemento non può essere determinato a causa di uno pseudo-elemento"
  624. }
  625. },
  626. "color-contrast": {
  627. "pass": {
  628. "default": "L'elemento ha un contrasto di colore sufficiente di ${data.contrastRatio}",
  629. "hidden": "L'elemento è nascosto"
  630. },
  631. "fail": {
  632. "default": "L'elemento ha un contrasto di colore insufficiente di ${data.contrastRatio} (colore in primo piano: ${data.fgColor}, colore di sfondo: ${data.bgColor}, dimensione del font: ${data.fontSize}, peso del font: ${data.fontWeight}). Contrasto atteso di ${data.expectedContrastRatio}",
  633. "fgOnShadowColor": "L'elemento ha un contrasto di colore insufficiente di ${data.contrastRatio} tra il primo piano e il colore dell'ombra (colore in primo piano: ${data.fgColor}, colore dell'ombra del testo: ${data.shadowColor}, dimensione del font: ${data.fontSize}, peso del font: ${data.fontWeight}). Contrasto atteso di ${data.expectedContrastRatio}",
  634. "shadowOnBgColor": "L'elemento ha un contrasto di colore insufficiente di ${data.contrastRatio} tra il colore dell'ombra e il colore di sfondo (colore dell'ombra del testo: ${data.shadowColor}, colore di sfondo: ${data.bgColor}, dimensione del font: ${data.fontSize}, peso del font: ${data.fontWeight}). Contrasto atteso di ${data.expectedContrastRatio}"
  635. },
  636. "incomplete": {
  637. "default": "Impossibile determinare il rapporto di contrasto",
  638. "bgImage": "Il colore di sfondo dell'elemento non può essere determinato a causa di un'immagine di sfondo",
  639. "bgGradient": "Il colore di sfondo dell'elemento non può essere determinato a causa di un gradiente di sfondo",
  640. "imgNode": "Il colore di sfondo dell'elemento non può essere determinato perché l'elemento contiene un nodo immagine",
  641. "bgOverlap": "Il colore di sfondo dell'elemento non può essere determinato perché c'è un altro elemento sovrapposto",
  642. "complexTextShadows": "Il contrasto dell'elemento non può essere determinato perché utilizza ombre di testo complesse",
  643. "fgAlpha": "Il colore in primo piano dell'elemento non può essere determinato a causa della trasparenza alfa",
  644. "elmPartiallyObscured": "Il colore di sfondo dell'elemento non può essere determinato perché è parzialmente oscurato da un altro elemento",
  645. "elmPartiallyObscuring": "Il colore di sfondo dell'elemento non può essere determinato perché si sovrappone parzialmente ad altri elementi",
  646. "outsideViewport": "Il colore di sfondo dell'elemento non può essere determinato perché è al di fuori della finestra di visualizzazione",
  647. "equalRatio": "L'elemento ha un rapporto di contrasto di 1:1 con lo sfondo",
  648. "shortTextContent": "Il contenuto dell'elemento è troppo breve per determinare se si tratta di un contenuto di testo effettivo",
  649. "nonBmp": "Il contenuto dell'elemento contiene solo caratteri non di testo",
  650. "pseudoContent": "Il colore di sfondo dell'elemento non può essere determinato a causa di uno pseudo-elemento"
  651. }
  652. },
  653. "link-in-text-block-style": {
  654. "pass": "I collegamenti possono essere distinti dal testo circostante grazie ad uno stile visivo",
  655. "incomplete": {
  656. "default": "Verifica se il collegamento necessita di uno stile per distinguerlo dal testo circostante",
  657. "pseudoContent": "Verifica se lo pseudo-stile del collegamento è sufficiente per distinguerlo dal testo circostante"
  658. },
  659. "fail": "Il collegamento non ha uno stile (come la sottolineatura) per distinguerlo dal testo circostante"
  660. },
  661. "link-in-text-block": {
  662. "pass": "I collegamenti possono essere distinti dal testo circostante in qualche modo che non sia solo attraverso il colore",
  663. "fail": {
  664. "fgContrast": "Il collegamento ha un contrasto di colore insufficiente di ${data.contrastRatio}:1 con il testo circostante. (Contrasto minimo è ${data.requiredContrastRatio}:1, colore del testo del collegamento: ${data.nodeColor}, colore del testo circostante: ${data.parentColor})",
  665. "bgContrast": "Lo sfondo del collegamento ha un contrasto di colore insufficiente di ${data.contrastRatio} (Contrasto minimo è ${data.requiredContrastRatio}:1, colore dello sfondo del collegamento: ${data.nodeBackgroundColor}, colore dello sfondo circostante: ${data.parentBackgroundColor})"
  666. },
  667. "incomplete": {
  668. "default": "Il rapporto di contrasto dei colori in primo piano dell'elemento non può essere determinato",
  669. "bgContrast": "Il rapporto di contrasto dello sfondo dell'elemento non può essere determinato",
  670. "bgImage": "Il rapporto di contrasto dell'elemento non può essere determinato a causa di un'immagine di sfondo",
  671. "bgGradient": "Il rapporto di contrasto dell'elemento non può essere determinato a causa di un gradiente di sfondo",
  672. "imgNode": "Il rapporto di contrasto dell'elemento non può essere determinato perché l'elemento contiene un nodo immagine",
  673. "bgOverlap": "Il rapporto di contrasto dell'elemento non può essere determinato a causa della sovrapposizione dell'elemento"
  674. }
  675. },
  676. "autocomplete-appropriate": {
  677. "pass": "il valore di autocomplete è appropriato per questo elemento",
  678. "fail": "il valore di autocomplete non è appropriato per questo tipo di input"
  679. },
  680. "autocomplete-valid": {
  681. "pass": "l'attributo autocomplete è formattato correttamente",
  682. "fail": "l'attributo autocomplete non è formattato correttamente"
  683. },
  684. "accesskeys": {
  685. "pass": "Il valore dell'attributo accesskey è univoco",
  686. "fail": "Il documento ha più elementi con lo stesso accesskey"
  687. },
  688. "focusable-content": {
  689. "pass": "L'elemento contiene elementi che possono ricevere focus",
  690. "fail": "L'elemento dovrebbe avere contenuto che può ricevere focus"
  691. },
  692. "focusable-disabled": {
  693. "pass": "Non ci sono elementi che possono ricevere focus all'interno dell'elemento",
  694. "incomplete": "Controlla se gli elementi che possono ricevere focus spostano immediatamente l'indicatore di focus",
  695. "fail": "Il contenuto che può ricevere focus dovrebbe essere disabilitato o rimosso dal DOM"
  696. },
  697. "focusable-element": {
  698. "pass": "L'elemento può ricevere focus",
  699. "fail": "L'elemento dovrebbe poter ricevere focus"
  700. },
  701. "focusable-modal-open": {
  702. "pass": "Non ci sono elementi che possono ricevere focus mentre è aperta una modale",
  703. "incomplete": "Controlla che gli elementi che possono ricevere focus non siano tabbabili nello stato attuale"
  704. },
  705. "focusable-no-name": {
  706. "pass": "L'elemento non è nell'ordine di tab o ha un testo accessibile",
  707. "fail": "L'elemento è nell'ordine di tab e non ha un testo accessibile",
  708. "incomplete": "Non è possibile determinare se l'elemento ha un nome accessibile"
  709. },
  710. "focusable-not-tabbable": {
  711. "pass": "Non ci sono elementi che possono ricevere focus all'interno dell'elemento",
  712. "incomplete": "Controlla se gli elementi che possono ricevere focus spostano immediatamente l'indicatore di focus",
  713. "fail": "Il contenuto che può ricevere focus dovrebbe avere tabindex=\"-1\" o essere rimosso dal DOM"
  714. },
  715. "frame-focusable-content": {
  716. "pass": "L'elemento non ha discendenti che possono ricevere focus",
  717. "fail": "L'elemento ha discendenti che possono ricevere focus",
  718. "incomplete": "Non è stato possibile determinare se l'elemento ha discendenti"
  719. },
  720. "landmark-is-top-level": {
  721. "pass": "Il landmark ${data.role} è al livello superiore.",
  722. "fail": "Il landmark ${data.role} è contenuto in un altro landmark."
  723. },
  724. "no-focusable-content": {
  725. "pass": "L'elemento non ha discendenti che possono ricevere focus",
  726. "fail": {
  727. "default": "L'elemento ha discendenti che possono ricevere focus",
  728. "notHidden": "L'utilizzo di un tabindex negativo su un elemento all'interno di un controllo interattivo non impedisce alle tecnologie assistive di spostare il focus sull'elemento (anche con aria-hidden=\"true\")"
  729. },
  730. "incomplete": "Non è stato possibile determinare se l'elemento ha discendenti"
  731. },
  732. "page-has-heading-one": {
  733. "pass": "La pagina ha almeno un'intestazione di livello uno",
  734. "fail": "La pagina deve avere un'intestazione di livello uno"
  735. },
  736. "page-has-main": {
  737. "pass": "Il documento ha almeno un landmark main",
  738. "fail": "Il documento non ha un landmark main"
  739. },
  740. "page-no-duplicate-banner": {
  741. "pass": "Il documento non ha più di un landmark banner",
  742. "fail": "Il documento ha più di un landmark banner"
  743. },
  744. "page-no-duplicate-contentinfo": {
  745. "pass": "Il documento non ha più di un landmark contentinfo",
  746. "fail": "Il documento ha più di un landmark contentinfo"
  747. },
  748. "page-no-duplicate-main": {
  749. "pass": "Il documento non ha più di un landmark main",
  750. "fail": "Il documento ha più di un landmark main"
  751. },
  752. "tabindex": {
  753. "pass": "L'elemento non ha un tabindex maggiore di 0",
  754. "fail": "L'elemento ha un tabindex maggiore di 0"
  755. },
  756. "alt-space-value": {
  757. "pass": "Il valore dell'attributo alt dell'elemento è valido",
  758. "fail": "L'elemento ha un attributo alt che contiene solo uno spazio, che non viene ignorato da tutti gli screen reader"
  759. },
  760. "duplicate-img-label": {
  761. "pass": "L'elemento non duplica il testo esistente nel testo alternativo dell'immagine",
  762. "fail": "L'elemento contiene un elemento immagine con testo alternativo che duplica il testo esistente"
  763. },
  764. "explicit-label": {
  765. "pass": "L'elemento del modulo ha un'etichetta esplicita <label>",
  766. "fail": "L'elemento del modulo non ha un'etichetta esplicita <label>",
  767. "incomplete": "Non è possibile determinare se l'elemento del modulo ha un'etichetta esplicita <label>"
  768. },
  769. "help-same-as-label": {
  770. "pass": "Il testo di aiuto (title o aria-describedby) non duplica il testo dell'etichetta",
  771. "fail": "Il testo di aiuto (title o aria-describedby) è lo stesso del testo dell'etichetta"
  772. },
  773. "hidden-explicit-label": {
  774. "pass": "L'elemento del modulo ha un'etichetta esplicita <label> visibile",
  775. "fail": "L'elemento del modulo ha un'etichetta esplicita <label> nascosta",
  776. "incomplete": "Non è possibile determinare se l'elemento del modulo ha un'etichetta esplicita <label> nascosta"
  777. },
  778. "implicit-label": {
  779. "pass": "L'elemento del modulo ha un'etichetta implicita (racchiusa) <label>",
  780. "fail": "L'elemento del modulo non ha un'etichetta implicita (racchiusa) <label>",
  781. "incomplete": "Non è possibile determinare se l'elemento del modulo ha un'etichetta implicita (racchiusa) <label>"
  782. },
  783. "label-content-name-mismatch": {
  784. "pass": "L'elemento contiene del testo visibile come parte del suo nome accessibile",
  785. "fail": "Il testo all'interno dell'elemento non è incluso nel nome accessibile"
  786. },
  787. "multiple-label": {
  788. "pass": "Il campo del modulo non ha più elementi etichetta",
  789. "incomplete": "L'utilizzo di più elementi etichetta non è ampiamente supportato dalle tecnologie assistive. Assicurati che la prima etichetta contenga tutte le informazioni necessarie."
  790. },
  791. "title-only": {
  792. "pass": "L'elemento del modulo non utilizza solo l'attributo title per generare la sua etichetta",
  793. "fail": "Solo il titolo viene utilizzato per generare l'etichetta dell'elemento del modulo"
  794. },
  795. "landmark-is-unique": {
  796. "pass": "I landmark devono avere un ruolo univoco o una combinazione univoca di ruolo/etichetta/titolo (come ad esempio un nome accessibile univico)",
  797. "fail": "Il landmark deve avere un aria-label, aria-labelledby o titolo univoco per rendere i landmark distinguibili"
  798. },
  799. "has-lang": {
  800. "pass": "L'elemento <html> ha un attributo lang",
  801. "fail": {
  802. "noXHTML": "L'attributo xml:lang non è valido nelle pagine HTML, utilizza l'attributo lang.",
  803. "noLang": "L'elemento <html> non ha un attributo lang"
  804. }
  805. },
  806. "valid-lang": {
  807. "pass": "Il valore dell'attributo lang è incluso nell'elenco delle lingue valide",
  808. "fail": "Il valore dell'attributo lang non è incluso nell'elenco delle lingue valide"
  809. },
  810. "xml-lang-mismatch": {
  811. "pass": "Gli attributi lang e xml:lang hanno la stessa lingua di base",
  812. "fail": "Gli attributi lang e xml:lang non hanno la stessa lingua di base"
  813. },
  814. "dlitem": {
  815. "pass": "L'elemento di descrizione della lista ha un elemento <dl> come genitore",
  816. "fail": "L'elemento di descrizione della lista non ha un elemento <dl> come genitore"
  817. },
  818. "listitem": {
  819. "pass": "L'elemento della lista ha un elemento <ul>, <ol> o role=\"list\" come genitore",
  820. "fail": {
  821. "default": "L'elemento della lista non ha come genitore un elemento <ul> o <ol>",
  822. "roleNotValid": "L'elemento della lista non ha come genitore un elemento <ul>, <ol> o un elemento con role=\"list\""
  823. }
  824. },
  825. "only-dlitems": {
  826. "pass": "L'elemento dl contiene al suo interno solo figli diretti consentiti; <dt>, <dd>, o elementi <div>",
  827. "fail": "L'elemento dl ha figli diretti che non sono consentiti: ${data.values}"
  828. },
  829. "only-listitems": {
  830. "pass": "L'elemento della lista contiene al suo interno solo figli diretti consentiti",
  831. "fail": "L'elemento della lista ha figli diretti che non sono consentiti: ${data.values}"
  832. },
  833. "structured-dlitems": {
  834. "pass": "Quando non è vuoto, l'elemento ha sia elementi <dt> che <dd>",
  835. "fail": "Quando non è vuoto, l'elemento non ha nemmeno un elemento <dt> seguito da almeno un elemento <dd>"
  836. },
  837. "caption": {
  838. "pass": "L'elemento multimediale ha una didascalia",
  839. "incomplete": "Controlla che le didascalie siano disponibili per l'elemento"
  840. },
  841. "frame-tested": {
  842. "pass": "L'iframe è stato testato con axe-core",
  843. "fail": "L'iframe non può essere testato con axe-core",
  844. "incomplete": "L'iframe deve ancora essere testato con axe-core"
  845. },
  846. "no-autoplay-audio": {
  847. "pass": "<video> o <audio> non riproduce audio per più della durata consentita o ha un meccanismo di controllo",
  848. "fail": "<video> o <audio> riproduce audio per più della durata consentita e non ha un meccanismo di controllo",
  849. "incomplete": "Controlla che il <video> o <audio> non riproduca audio per più della durata consentita o fornisca un meccanismo di controllo"
  850. },
  851. "css-orientation-lock": {
  852. "pass": "Il display è utilizzabile e l'orientamento del dispositivo non viene bloccato",
  853. "fail": "Il blocco dell'orientamento tramite CSS viene applicato e rende il display non utilizzabile",
  854. "incomplete": "Il blocco dell'orientamento tramite CSS non può essere determinato"
  855. },
  856. "meta-viewport-large": {
  857. "pass": "Il tag <meta> non impedisce lo zoom in modo significativo sui dispositivi mobili",
  858. "fail": "Il tag <meta> limita lo zoom sui dispositivi mobili"
  859. },
  860. "meta-viewport": {
  861. "pass": "Il tag <meta> non disabilita lo zoom sui dispositivi mobili",
  862. "fail": "${data} sul tag <meta> disabilita lo zoom sui dispositivi mobili"
  863. },
  864. "target-offset": {
  865. "pass": "L'elemento ha spazio sufficiente dai suoi vicini più prossimi. Lo spazio sicuro e cliccabile ha un diametro di ${data.closestOffset}px, che è superiore al requisito di ${data.minOffset}px.",
  866. "fail": "L'elemento non ha spazio sufficiente rispetto ai suoi vicini più prossimi. Lo spazio sicuro e cliccabile ha un diametro di ${data.closestOffset}px, che è inferiore rispetto al requisito di ${data.minOffset}px.",
  867. "incomplete": {
  868. "default": "L'elemento con tabindex negativo non ha spazio sufficiente rispetto ai suoi vicini più prossimi. Lo spazio sicuro e cliccabile ha un diametro di ${data.closestOffset}px, che è inferiore rispetto al requisito di ${data.minOffset}px. Si tratta di un elemento che può essere attivato?",
  869. "nonTabbableNeighbor": "L'elemento non ha spazio sufficiente rispetto ai suoi vicini più prossimi. Lo spazio sicuro e cliccabile ha un diametro di ${data.closestOffset}px, che è inferiore rispetto al requisito di ${data.minOffset}px. Il vicino più prossimo è un elemento che può essere attivato?"
  870. }
  871. },
  872. "target-size": {
  873. "pass": {
  874. "default": "Il controllo ha dimensioni sufficienti (${data.width}px per ${data.height}px, dovrebbe essere almeno ${data.minSize}px per ${data.minSize}px)",
  875. "obscured": "Il controllo viene ignorato perché è completamente oscurato e quindi non cliccabile"
  876. },
  877. "fail": {
  878. "default": "L'elemento ha dimensioni insufficienti (${data.width}px per ${data.height}px, dovrebbe essere almeno ${data.minSize}px per ${data.minSize}px)",
  879. "partiallyObscured": "L'elemento ha dimensioni insufficienti perché è parzialmente oscurato (lo spazio più piccolo è ${data.width}px per ${data.height}px, dovrebbe essere almeno ${data.minSize}px per ${data.minSize}px)"
  880. },
  881. "incomplete": {
  882. "default": "L'elemento con tabindex negativo ha dimensioni insufficienti (${data.width}px per ${data.height}px, dovrebbe essere almeno ${data.minSize}px per ${data.minSize}px). Si tratta di un elemento che può essere attivato?",
  883. "contentOverflow": "Le dimensioni dell'elemento non possono essere determinate con precisione a causa del contenuto in overflow",
  884. "partiallyObscured": "L'elemento con tabindex negativo ha dimensioni insufficienti perché è parzialmente oscurato (lo spazio più piccolo è ${data.width}px per ${data.height}px, dovrebbe essere almeno ${data.minSize}px per ${data.minSize}px). Si tratta di un elemento che può essere attivato?",
  885. "partiallyObscuredNonTabbable": "L'elemento ha dimensioni insufficienti perché è parzialmente oscurato da un vicino con tabindex negativo (lo spazio più piccolo è ${data.width}px per ${data.height}px, dovrebbe essere almeno ${data.minSize}px per ${data.minSize}px). Il vicino più prossimo è un elemento che può essere attivato?"
  886. }
  887. },
  888. "header-present": {
  889. "pass": "La pagina ha un'intestazione",
  890. "fail": "La pagina non ha nemmeno un'intestazione"
  891. },
  892. "heading-order": {
  893. "pass": "L'ordine delle intestazioni è valido",
  894. "fail": "L'ordine delle intestazioni non è valido",
  895. "incomplete": "Non è possibile determinare l'intestazione precedente"
  896. },
  897. "identical-links-same-purpose": {
  898. "pass": "Non ci sono altri collegamenti con lo stesso nome, che puntano ad un URL diverso",
  899. "incomplete": "Controlla che i collegamenti abbiano lo stesso scopo, o siano intenzionalmente ambigui."
  900. },
  901. "internal-link-present": {
  902. "pass": "Trovato skip link valido",
  903. "fail": "Non è stato trovato alcuno skip link valido"
  904. },
  905. "landmark": {
  906. "pass": "La pagina ha una regione landmark",
  907. "fail": "La pagina non ha una regione landmark"
  908. },
  909. "meta-refresh-no-exceptions": {
  910. "pass": "Il tag <meta> non aggiorna immediatamente la pagina",
  911. "fail": "Il tag <meta> forza il refresh temporizzato della pagina"
  912. },
  913. "meta-refresh": {
  914. "pass": "Il tag <meta> non aggiorna immediatamente la pagina",
  915. "fail": "Il tag <meta> forza il refresh temporizzato della pagina (al di sotto delle 20 ore)"
  916. },
  917. "p-as-heading": {
  918. "pass": "Gli elementi <p> non sono disegnati come intestazioni",
  919. "fail": "Al posto di elementi <p> disegnati come intestazioni, dovrebbero essere utilizzati elementi di intestazione",
  920. "incomplete": "Non è possibile determinare se gli elementi <p> sono stati disegnati come intestazioni"
  921. },
  922. "region": {
  923. "pass": "Tutto il contenuto della pagina è contenuto in landmark",
  924. "fail": "Alcuni contenuti della pagina non sono contenuti in landmark"
  925. },
  926. "skip-link": {
  927. "pass": "L'elemento a cui lo skip link punta esiste",
  928. "incomplete": "L'elemento a cui lo skip link punta deve diventare visibile quando attivato",
  929. "fail": "L'elemento a cui lo skip link punta non esiste"
  930. },
  931. "unique-frame-title": {
  932. "pass": "L'attributo title dell'elemento è univoco",
  933. "fail": "L'attributo title dell'elemento non è univoco"
  934. },
  935. "duplicate-id-active": {
  936. "pass": "Il documento non ha elementi attivi che condividono lo stesso attributo id",
  937. "fail": "Il documento ha elementi attivi con lo stesso attributo id: ${data}"
  938. },
  939. "duplicate-id-aria": {
  940. "pass": "Il documento non ha elementi referenziati con ARIA o etichette che condividono lo stesso attributo id",
  941. "fail": "Il documento ha più elementi referenziati con ARIA con lo stesso attributo id: ${data}"
  942. },
  943. "duplicate-id": {
  944. "pass": "Il documento non ha elementi statici che condividono lo stesso attributo id",
  945. "fail": "Il documento ha più elementi statici con lo stesso attributo id: ${data}"
  946. },
  947. "aria-label": {
  948. "pass": "L'attributo aria-label esiste e non è vuoto",
  949. "fail": "L'attributo aria-label non esiste o è vuoto"
  950. },
  951. "aria-labelledby": {
  952. "pass": "L'attributo aria-labelledby esiste e fa riferimento ad elementi che sono visibili agli screen reader",
  953. "fail": "L'attributo aria-labelledby non esiste, fa riferimento ad elementi che non esistono o fa riferimento ad elementi che sono vuoti",
  954. "incomplete": "assicurati che aria-labelledby faccia riferimento a un elemento esistente"
  955. },
  956. "avoid-inline-spacing": {
  957. "pass": "Non sono stati specificati stili inline con '!important' che influenzano lo spaziatura del testo",
  958. "fail": {
  959. "singular": "Rimuovi '!important' dallo stile inline ${data.values}, poiché la sovrascrittura di questo non è supportata dalla maggior parte dei browser",
  960. "plural": "Rimuovi '!important' dagli stili inline ${data.values}, poiché la sovrascrittura di questo non è supportata dalla maggior parte dei browser"
  961. }
  962. },
  963. "button-has-visible-text": {
  964. "pass": "L'elemento ha del testo interno che è visibile agli screen reader",
  965. "fail": "L'elemento non ha del testo interno che è visibile agli screen reader",
  966. "incomplete": "Non è possibile determinare se l'elemento ha figli"
  967. },
  968. "doc-has-title": {
  969. "pass": "Il documento ha un elemento <title> non vuoto",
  970. "fail": "Il documento non ha un elemento <title> non vuoto"
  971. },
  972. "exists": {
  973. "pass": "L'elemento non esiste",
  974. "incomplete": "L'elemento esiste"
  975. },
  976. "has-alt": {
  977. "pass": "L'elemento ha un attributo alt",
  978. "fail": "L'elemento non ha un attributo alt"
  979. },
  980. "has-visible-text": {
  981. "pass": "L'elemento ha del testo che è visibile agli screen reader",
  982. "fail": "L'elemento non ha del testo che è visibile agli screen reader",
  983. "incomplete": "Non è possibile determinare se l'elemento ha figli"
  984. },
  985. "important-letter-spacing": {
  986. "pass": "La spaziatura delle lettere nell'attributo style non è impostato su !important, o rispetta il requisito minimo",
  987. "fail": "La spaziatura delle lettere nell'attributo style non deve utilizzare !important, o deve essere impostata a ${data.minValue}em (attuale ${data.value}em)"
  988. },
  989. "important-line-height": {
  990. "pass": "l'interlinea nell'attributo style non è impostata su !important, o rispetta il requisito minimo",
  991. "fail": "l'interlinea nell'attributo style non deve utilizzare !important, o deve essere impostata a ${data.minValue}em (attuale ${data.value}em)"
  992. },
  993. "important-word-spacing": {
  994. "pass": "La spaziatura delle parole nell'attributo style non è impostata su !important, o rispetta il requisito minimo",
  995. "fail": "La spaziatura delle parole nell'attributo style non deve utilizzare !important, o deve essere impostata a ${data.minValue}em (attuale ${data.value}em)"
  996. },
  997. "is-on-screen": {
  998. "pass": "L'elemento non è visibile",
  999. "fail": "L'elemento è visibile"
  1000. },
  1001. "non-empty-alt": {
  1002. "pass": "L'elemento ha un attributo alt non vuoto",
  1003. "fail": {
  1004. "noAttr": "L'elemento non ha un attributo alt",
  1005. "emptyAttr": "L'elemento ha un attributo alt vuoto"
  1006. }
  1007. },
  1008. "non-empty-if-present": {
  1009. "pass": {
  1010. "default": "L'elemento non ha un attributo value",
  1011. "has-label": "L'elemento ha un attributo value non vuoto"
  1012. },
  1013. "fail": "L'elemento ha un attributo value e l'attributo value è vuoto"
  1014. },
  1015. "non-empty-placeholder": {
  1016. "pass": "L'elemento ha un attributo placeholder",
  1017. "fail": {
  1018. "noAttr": "L'elemento non ha un attributo placeholder",
  1019. "emptyAttr": "L'elemento ha un attributo placeholder vuoto"
  1020. }
  1021. },
  1022. "non-empty-title": {
  1023. "pass": "L'elemento ha un attributo title",
  1024. "fail": {
  1025. "noAttr": "L'elemento non ha un attributo title",
  1026. "emptyAttr": "L'elemento ha un attributo title vuoto"
  1027. }
  1028. },
  1029. "non-empty-value": {
  1030. "pass": "L'elemento ha un attributo value non vuoto",
  1031. "fail": {
  1032. "noAttr": "L'elemento non ha un attributo value",
  1033. "emptyAttr": "L'elemento ha un attributo value vuoto"
  1034. }
  1035. },
  1036. "presentational-role": {
  1037. "pass": "La semantica predefinita dell'elemento è stata sostituita da role=\"${data.role}\"",
  1038. "fail": {
  1039. "default": "La semantica predefinita dell'elemento non è stata sostituita da role=\"none\" o role=\"presentation\"",
  1040. "globalAria": "Il ruolo dell'elemento non è presentazionale perché ha un attributo ARIA globale",
  1041. "focusable": "Il ruolo dell'elemento non è presentazionale perché è focusabile",
  1042. "both": "Il ruolo dell'elemento non è presentazionale perché ha un attributo ARIA globale ed è focusabile",
  1043. "iframe": "L'utilizzo dell'attributo \"title\" su un elemento ${data.nodeName} con un ruolo presentazionale si comporta in modo inconsistente a seconda dello screen reader"
  1044. }
  1045. },
  1046. "role-none": {
  1047. "pass": "La semantica predefinita dell'elemento è stata sostituita da role=\"none\"",
  1048. "fail": "La semantica predefinita dell'elemento non è stata sostituita da role=\"none\""
  1049. },
  1050. "role-presentation": {
  1051. "pass": "La semantica predefinita dell'elemento è stata sostituita da role=\"presentation\"",
  1052. "fail": "La semantica predefinita dell'elemento non è stata sostituita da role=\"presentation\""
  1053. },
  1054. "svg-non-empty-title": {
  1055. "pass": "L'elemento ha un figlio che è un titolo",
  1056. "fail": {
  1057. "noTitle": "L'elemento non ha figli che sono titoli",
  1058. "emptyTitle": "Il titolo figlio dell'elemento è vuoto"
  1059. },
  1060. "incomplete": "Non è possibile determinare se l'elemento ha un figlio che è un titolo"
  1061. },
  1062. "caption-faked": {
  1063. "pass": "La prima riga di una tabella non viene utilizzata come didascalia",
  1064. "fail": "Il primo figlio della tabella dovrebbe essere una didascalia invece di una cella di tabella"
  1065. },
  1066. "html5-scope": {
  1067. "pass": "L'attributo scope viene utilizzato solo sugli elementi di intestazione della tabella (<th>)",
  1068. "fail": "In HTML 5, gli attributi scope possono essere utilizzati solo sugli elementi di intestazione della tabella (<th>)"
  1069. },
  1070. "same-caption-summary": {
  1071. "pass": "Il contenuto dell'attributo summary e dell'elemento <caption> non sono duplicati",
  1072. "fail": "Il contenuto dell'attributo summary e dell'elemento <caption> sono identici",
  1073. "incomplete": "Non è possibile determinare se l'elemento <table> ha una didascalia"
  1074. },
  1075. "scope-value": {
  1076. "pass": "L'attributo scope viene utilizzato correttamente",
  1077. "fail": "Il valore dell'attributo scope può essere solo 'row' o 'col'"
  1078. },
  1079. "td-has-header": {
  1080. "pass": "Tutte le celle di dati non vuote hanno intestazioni di tabella",
  1081. "fail": "Alcune celle di dati non vuote non hanno intestazioni di tabella"
  1082. },
  1083. "td-headers-attr": {
  1084. "pass": "L'attributo headers viene utilizzato esclusivamente per fare riferimento ad altre celle nella tabella",
  1085. "incomplete": "L'attributo headers è vuoto",
  1086. "fail": "L'attributo headers non viene utilizzato esclusivamente per fare riferimento ad altre celle nella tabella"
  1087. },
  1088. "th-has-data-cells": {
  1089. "pass": "Tutte le celle di intestazione della tabella fanno riferimento a celle di dati",
  1090. "fail": "Non tutte le celle di intestazione della tabella fanno riferimento a celle di dati",
  1091. "incomplete": "Le celle di dati della tabella sono vuote o mancanti"
  1092. },
  1093. "hidden-content": {
  1094. "pass": "Tutto il contenuto della pagina è stato analizzato.",
  1095. "fail": "Ci sono stati problemi nell'analizzare il contenuto di questa pagina.",
  1096. "incomplete": "C'è del contenuto nascosto nella pagina che non è stato analizzato. Dovrai attivare la visualizzazione di questo contenuto per poterlo analizzare."
  1097. }
  1098. },
  1099. "failureSummaries": {
  1100. "any": {
  1101. "failureMessage": "Correggi uno dei seguenti:{{~it:value}}\n {{=value.split('\\n').join('\\n ')}}{{~}}"
  1102. },
  1103. "none": {
  1104. "failureMessage": "Correggi tutti i seguenti:{{~it:value}}\n {{=value.split('\\n').join('\\n ')}}{{~}}"
  1105. }
  1106. },
  1107. "incompleteFallbackMessage": "axe non è stato in grado di determinare il motivo. È il momento di utilizzare l'element inspector!"
  1108. }