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