forked from dequelabs/axe-core
-
Notifications
You must be signed in to change notification settings - Fork 0
/
pl.json
1109 lines (1109 loc) · 61.1 KB
/
pl.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": "pl",
"rules": {
"accesskeys": {
"description": "Wartość każdego atrybutu accessskey jest unikalna.",
"help": "Wartość atrybutu accessskey musi być unikalna."
},
"area-alt": {
"description": "Elementy <area> w graficznych mapach odnośników mają tekst zastępczy.",
"help": "Elementy aktywne <area> muszą mieć tekst alternatywny."
},
"aria-allowed-attr": {
"description": "Użyte atrybuty ARIA są dozwolone dla elementu z określoną rolą.",
"help": "Elementy mogą używać tylko dozwolonych atrybutów ARIA."
},
"aria-allowed-role": {
"description": "Atrybut role ma odpowiednią wartość dla danego elementu.",
"help": "Rola ARIA musi być odpowiednia dla danego elementu."
},
"aria-braille-equivalent": {
"description": "Upewnij się, że aria-braillelabel i aria-brailleroledescription mają odpowiednik niebrajlowski",
"help": "Atrybuty aria-braille muszą mieć odpowiednik niebrajlowski."
},
"aria-command-name": {
"description": "Każdy element button, link i menuitem ARIA ma dostępną nazwę.",
"help": "Przyciski, łącza, pozycje menu ARIA muszą mieć dostępną nazwę."
},
"aria-conditional-attr": {
"description": "Upewnij się, że atrybuty ARIA są używane zgodnie ze specyfikacją roli elementu.",
"help": "Atrybuty ARIA muszą być używane w sposób określony dla roli elementu"
},
"aria-deprecated-role": {
"description": "Upewnij się, że elementy nie używają przestarzałych ról.",
"help": "Przestarzałe role ARIA nie mogą być używane."
},
"aria-dialog-name": {
"description": "Każde okno dialogowe ARIA i węzeł alertdialog ma dostępną nazwę.",
"help": "Okno dialogowe ARIA i węzły alertdialog muszą mieć dostępną nazwę."
},
"aria-hidden-body": {
"description": "Element body nie ma atrybutu aria-hidden='true'.",
"help": "Element body nie może mieć atrybutu aria-hidden='true'."
},
"aria-hidden-focus": {
"description": "Elementy z aria-hidden=true nie mogą obejmować elementów przyjmujących fokus.",
"help": "Ukryty element ARIA nie może zawierać elementów przyjmujących fokus."
},
"aria-input-field-name": {
"description": "Każde pole ARIA do wprowadzania danych ma dostępną nazwę.",
"help": "Pola ARIA do wprowadzania danych muszą mieć dostępną nazwę."
},
"aria-meter-name": {
"description": "Każdy element ARIA meter (licznik) ma dostępną nazwę.",
"help": "Liczniki ARIA (meter) muszą mieć dostępne nazwy."
},
"aria-progressbar-name": {
"description": "Każdy element ARIA progressbar (pasek postępu) ma dostępną nazwę.",
"help": "Paski postępu ARIA (progressbar) muszą mieć dostępne nazwy."
},
"aria-prohibited-attr": {
"description": "Upewnij się, że atrybuty ARIA nie są zabronione dla roli elementu.",
"help": "Elementy mogą używać tylko dozwolonych atrybutów ARIA."
},
"aria-required-attr": {
"description": "Elementy z rolą ARIA mają wszystkie wymagane atrybuty aria-*",
"help": "Wymagane atrybuty ARIA muszą istnieć."
},
"aria-required-children": {
"description": "Elementy z atrybutem ARIA role, które muszą zawierać elementy potomne z wymaganym atrybutem role, zawierają je.",
"help": "Niektóre role ARIA muszą obejmować określone dzieci."
},
"aria-required-parent": {
"description": "Elementy z atrybutem ARIA role, które wymagają elementu rodzica z atrybutem role, są zawarte w elementach z takimi rolami.",
"help": "Elementy z niektórymi atrybutami role ARIA muszą znajdować się wewnątrz nadrzędnego elementu rodzica z wymaganym atrybutem role."
},
"aria-roledescription": {
"description": "Atrybut aria-roledescription jest używany tylko w elementach, które mają rolę określoną domyślnie lub jawnie.",
"help": "Użyj aria-roledescription w elementach o roli semantycznej."
},
"aria-roles": {
"description": "Wartości atrybutu role są poprawne.",
"help": "Stosowane role ARIA muszą mieć poprawne wartości."
},
"aria-text": {
"description": "Atrybut role=\"text\" jest używany dla elementów, które nie mają potomków przyjmujących fokus",
"help": "Element z atrybutem role=\"text\" nie może mieć potomków przyjmujących fokus."
},
"aria-toggle-field-name": {
"description": "Każdy element ARIA toggle (przełącznik) ma dostępną nazwę.",
"help": "Przełączniki ARIA (toggle) muszą mieć dostępną nazwę."
},
"aria-tooltip-name": {
"description": "Każdy element ARIA tooltip (podpowiedź) ma dostępną nazwę.",
"help": "Podpowiedzi ARIA (tooltip) muszą mieć dostępną nazwę."
},
"aria-treeitem-name": {
"description": "Każdy element ARIA treeitem (węzeł drzewa) ma dostępną nazwę.",
"help": "Węzły drzewa elementów ARIA (treeitem) muszą mieć dostępną nazwę."
},
"aria-valid-attr-value": {
"description": "Wszystkie atrybuty ARIA mają poprawne wartości.",
"help": "Atrybuty ARIA muszą mieć poprawne wartości."
},
"aria-valid-attr": {
"description": "Wszystkie atrybuty aria-* mają poprawne nazwy.",
"help": "Atrybuty ARIA muszą mieć poprawne nazwy."
},
"audio-caption": {
"description": "Elementy <audio> mają napisy rozszerzone.",
"help": "Elementy <audio> muszą mieć ścieżkę z napisami."
},
"autocomplete-valid": {
"description": "Pola formularza, które zbierają dane osobowe, mają poprawne atrybuty autocomplete",
"help": "Atrybut autocomplete musi być użyty poprawnie."
},
"avoid-inline-spacing": {
"description": "Odstępy w tekście można regulować za pomocą własnych arkuszy stylów.",
"help": "Odstępy w tekście muszą być regulowane za pomocą własnych arkuszy stylów."
},
"blink": {
"description": "Elementy <blink> nie są używane.",
"help": "Elementy <blink> są przestarzałe i nie mogą być używane."
},
"button-name": {
"description": "Każdy przycisk ma odróżniającą go dostępną nazwę.",
"help": "Przyciski muszą mieć odróżniający je tekst nazwy."
},
"bypass": {
"description": "Każda strona ma co najmniej jeden mechanizm, który pozwala ominąć nawigację i przejść od razu do treści.",
"help": "Strona musi mieć środki do ominięcia powtarzających bloków treści."
},
"color-contrast-enhanced": {
"description": "Kontrast między kolorami pierwszego planu i tła spełnia wyższe progi współczynnika kontrastu WCAG 2 AAA.",
"help": "Elementy muszą spełniać wyższe progi współczynnika kontrastu kolorów"
},
"color-contrast": {
"description": "Kontrast między kolorami pierwszego planu i tła spełnia progi kontrastu WCAG 2 AA.",
"help": "Elementy muszą mieć wystarczający kontrast kolorów."
},
"css-orientation-lock": {
"description": "Treść nie jest przypisana do żadnej konkretnej orientacji wyświetlacza i można ją obsługiwać we wszystkich orientacjach wyświetlacza.",
"help": "Zapytania medialne nie są wykorzystywane do blokowania orientacji wyświetlacza."
},
"definition-list": {
"description": "Elementy <dl> mają poprawną strukturę.",
"help": "Elementy <dl> mogą bezpośrednio zawierać tylko odpowiednio uporządkowane grupy <dt> i <dd> oraz elementy <script>, <template> lub <div>."
},
"dlitem": {
"description": "Elementy <dt> i <dd> znajdują się bezpośrednio w <dl>.",
"help": "Elementy <dt> i <dd> są wewnątrz elementu <dl>."
},
"document-title": {
"description": "Każdy dokument HTML ma niepusty element <title>.",
"help": "Dokumenty muszą mieć element <title> pomagający w nawigacji."
},
"duplicate-id-active": {
"description": "Wartość każdego atrybutu id aktywnych elementów jest unikalna.",
"help": "ID aktywnych elementów, które otrzymują fokus, muszą być unikalne."
},
"duplicate-id-aria": {
"description": "Każdy atrybut id używany w ARIA i w etykietach jest unikalny.",
"help": "Identyfikatory stosowane w ARIA i etykietach muszą być unikalne."
},
"duplicate-id": {
"description": "Wartość każdego atrybutu id jest unikalna.",
"help": "Wartość atrybutu id musi być unikalna."
},
"empty-heading": {
"description": "Nagłówki mają odróżniający je tekst.",
"help": "Nagłówki nie mogą być puste."
},
"empty-table-header": {
"description": "Upewnij się, że nagłówki tabel mają opisowy tekst.",
"help": "Tekst nagłówka tabeli nie może być pusty."
},
"focus-order-semantics": {
"description": "Elementy w porządku otrzymywania fokusu mają odpowiednią rolę.",
"help": "Elementy w porządku otrzymywania fokusu muszą mieć rolę odpowiednią dla treści interaktywnych."
},
"form-field-multiple-labels": {
"description": "Żadne pole formularza nie ma wielu etykiet (elementów label).",
"help": "Pole formularza nie może mieć wielu elementów label."
},
"frame-focusable-content": {
"description": "Elementy <frame> i <iframe> z treścią przyjmującą fokus nie mają tabindex=-1.",
"help": "Ramki z treścią przyjmującą fokus nie mogą mieć tabindex=-1."
},
"frame-tested": {
"description": "Elementy <iframe> i <frame> muszą być testowane ze skryptem axe-core.",
"help": "Ramki muszą być testowane ze skryptem axe-core."
},
"frame-title-unique": {
"description": "Elementy <iframe> i <frame> mają unikalny atrybut title.",
"help": "Ramki muszą mieć unikalny atrybut title."
},
"frame-title": {
"description": "Elementy <iframe> i <frame> mają niepusty atrybut title.",
"help": "Ramki muszą mieć niepusty atrybut title."
},
"heading-order": {
"description": "Kolejność nagłówków jest semantycznie poprawna.",
"help": "Poziomy nagłówków powinny wzrastać tylko o jeden."
},
"hidden-content": {
"description": "Na stronie są ukryte treści.",
"help": "Ukrytych treści na stronie nie można analizować."
},
"html-has-lang": {
"description": "Każdy dokument HTML ma atrybut lang.",
"help": "Element <html> musi mieć atrybut lang."
},
"html-lang-valid": {
"description": "Atrybut lang elementu <html> ma poprawną wartość.",
"help": "Element <html> musi mieć poprawną wartość atrybutu lang."
},
"html-xml-lang-mismatch": {
"description": "Element HTML z poprawnym atrybutem lang xml:lang ma ten sam podstawowy język strony.",
"help": "Element HTML z lang i xml:lang musi mieć ten sam język podstawowy."
},
"identical-links-same-purpose": {
"description": "Łącza o tej samej dostępnej nazwie służą temu samemu celowi.",
"help": "Łącza o tej samej nazwie mają ten sam cel."
},
"image-alt": {
"description": "Elementy <img> mają atrybut alt lub rolę none albo presentation.",
"help": "Obrazy muszą mieć tekst alternatywny."
},
"image-redundant-alt": {
"description": "Tekst alternatywny obrazu nie jest powtarzany w tekście.",
"help": "Tekst alternatywny obrazów nie powinien być powtarzany w tekście."
},
"input-button-name": {
"description": "Przyciski input type=button mają odróżniający je tekst.",
"help": "Przyciski input type=button muszą mieć odróżniający je tekst."
},
"input-image-alt": {
"description": "Elementy <input type=\"image\"> mają tekst alternatywny.",
"help": "Przyciski graficzne muszą mieć tekst alternatywny."
},
"label-content-name-mismatch": {
"description": "Elementy oznakowane swoją treścią mają swój widoczny tekst jako część ich dostępnej nazwy",
"help": "Elementy muszą mieć swój widoczny tekst jako część ich dostępnej nazwy."
},
"label-title-only": {
"description": "Żaden element formularza nie jest oznaczony wyłącznie za pomocą atrybutu title lub aria-describedby.",
"help": "Element formularza powinien mieć widoczną etykietę."
},
"label": {
"description": "Każdy element formularza ma etykietę.",
"help": "Element formularza musi mieć etykietę."
},
"landmark-banner-is-top-level": {
"description": "Obszar banner jest obszarem kluczowym najwyższego poziomu.",
"help": "Punkt orientacyjny banner nie może być zawarty wewnątrz innego obszaru kluczowego."
},
"landmark-complementary-is-top-level": {
"description": "Obszary aside lub z role=complementary są obszarami kluczowymi najwyższego poziomu.",
"help": "Punkt orientacyjny complementary nie może być zawarty wewnątrz innego obszaru kluczowego."
},
"landmark-contentinfo-is-top-level": {
"description": "Obszar kluczowy z role=contentinfo jest obszarem kluczowym najwyższego poziomu.",
"help": "Punkt orientacyjny contentinfo nie może być zawarty wewnątrz innego obszaru kluczowego."
},
"landmark-main-is-top-level": {
"description": "Obszar main jest obszarem kluczowym najwyższego poziomu.",
"help": "Punkt orientacyjny main nie może być zawarty wewnątrz innego obszaru kluczowego."
},
"landmark-no-duplicate-banner": {
"description": "Dokument ma co najwyżej jeden punkt orientacyjny banner.",
"help": "Dokument nie może mieć więcej niż jednego obszaru kluczowego banner."
},
"landmark-no-duplicate-contentinfo": {
"description": "Dokument ma co najwyżej jeden punkt orientacyjny contentinfo.",
"help": "Dokument nie może mieć więcej niż jednego obszaru kluczowego contentinfo."
},
"landmark-no-duplicate-main": {
"description": "Dokument ma co najwyżej jeden punkt orientacyjny main.",
"help": "Dokument nie może mieć więcej niż jednego obszaru kluczowego main."
},
"landmark-one-main": {
"description": "Dokument ma punkt orientacyjny main.",
"help": "Dokument może mieć tylko jeden obszar kluczowy main."
},
"landmark-unique": {
"help": "Punkty orientacyjne są unikalne",
"description": "Punkty orientacyjne (obszary kluczowe) mają unikalną rolę lub kombinację roli/etykiety/tytułu (tj. dostępną nazwę)."
},
"link-in-text-block": {
"description": "Łącza można rozróżniać bez opierania się na kolorze.",
"help": "Łącza muszą być odróżnialne od sąsiadującego tekstu w sposób, który nie opiera się na kolorze."
},
"link-name": {
"description": "Łącza mają odróżniający je tekst.",
"help": "Łącza muszą mieć odróżniający je tekst."
},
"list": {
"description": "Listy mają poprawną strukturę.",
"help": "Elementy <ul> i <ol> mogą bezpośrednio zawierać tylko elementy <li>, <script> lub <template>."
},
"listitem": {
"description": "Elementy <li> są używane semantycznie.",
"help": " Elementy <li> muszą być zawarte bezpośrednio w <ul> lub <ol>."
},
"marquee": {
"description": "Elementy <marquee> nie są używane.",
"help": "Elementy <marquee> są przestarzałe i nie mogą być używane."
},
"meta-refresh-no-exceptions": {
"description": "Upewnij się, że <meta http-equiv=\"refresh\"> nie jest używany do opóźnionego odświeżania",
"help": "Nie wolno stosować opóźnionego odświeżania"
},
"meta-refresh": {
"description": "Znacznik <meta http-equiv=\"refresh\"> nie jest używany do opóźnionego odświeżania.",
"help": "Opóźnione odświeżanie poniżej 20 godzin nie może być stosowane."
},
"meta-viewport-large": {
"description": "Element <meta name=\"viewport\"> umożliwia znaczne powiększanie.",
"help": "Użytkownicy mogą powiększać i skalować tekst do 500%."
},
"meta-viewport": {
"description": "Element <meta name=\"viewport\"> nie wyłącza skalowania i powiększania tekstu.",
"help": "Powiększanie i skalowanie nie może być wyłączone."
},
"nested-interactive": {
"description": "Upewnij się, że kontrolki interaktywne nie są zagnieżdżone, ponieważ nie zawsze są ogłaszane przez czytniki ekranu lub mogą powodować problemy technologii wspomagających z fokusem.",
"help": "Kontrolki interaktywne nie mogą być zagnieżdżone"
},
"no-autoplay-audio": {
"description": "Elementy <video> lub <audio> nie odtwarzają automatycznie dźwięku przez dłużej niż 3 sekundy bez mechanizmu, który go zatrzymuje lub wycisza.",
"help": "Elementy <video> lub <audio> nie odtwarzają dźwięku automatycznie."
},
"object-alt": {
"description": "Elementy <object> mają tekst zastępczy.",
"help": "Elementy <object> muszą mieć alternatywę tekstową."
},
"p-as-heading": {
"description": "Pogrubienie, kursywa i rozmiar czcionki nie są używane do stylizacji elementów <p> jako nagłówków.",
"help": "Stylizowane elementy <p> nie mogą być używane jako nagłówki."
},
"page-has-heading-one": {
"description": "Strona lub co najmniej jedna z jej ramek, zawiera nagłówek pierwszego poziomu.",
"help": "Strona musi zawierać nagłówek poziomu 1."
},
"presentation-role-conflict": {
"description": "Elementy oznaczone jako prezentacyjne nie powinny mieć globalnego ARIA ani tabindex, aby zapewnić, że wszystkie czytniki ekranu je zignorują.",
"help": "Upewnij się, że elementy oznaczone jako prezentacyjne są konsekwentnie ignorowane."
},
"region": {
"description": "Cała treść strony jest objęta przez punkty orientacyjne.",
"help": "Cała treść strony musi być zawarta w obszarach kluczowych."
},
"role-img-alt": {
"description": "Elementy z [role='img'] mają tekst alternatywny.",
"help": "Elementy z [role='img'] muszą mieć tekst alternatywny."
},
"scope-attr-valid": {
"description": "Atrybut scope w tabelach jest stosowany poprawnie.",
"help": "Atrybut scope ma poprawną wartość."
},
"scrollable-region-focusable": {
"description": "Elementy, których treść można przewijać, są osiągalne za pomocą klawiatury.",
"help": "Obszary przewijane muszą być osiągalne z klawiatury."
},
"select-name": {
"description": "Element select ma dostępną nazwę.",
"help": "Element select musi mieć dostępną nazwę."
},
"server-side-image-map": {
"description": "Graficzne mapy odnośników (mapy obrazkowe) obsługiwane po stronie serwera nie są używane.",
"help": "Nie wolno używać map odnośników po stronie serwera."
},
"skip-link": {
"description": "Wszystkie łącza pomijania mają cel przyjmujący fokus.",
"help": "Cel łącza pomijającego powinien istnieć i przyjmować fokus."
},
"svg-img-alt": {
"description": "Elementy <svg> z rolą img, graphics-document lub graphics-symbol mają dostępny tekst.",
"help": "Elementy svg z rolą img muszą mieć tekst alternatywny."
},
"tabindex": {
"description": "Wartości atrybutów tabindex nie są większe niż 0.",
"help": "Elementy nie powinny mieć wartości tabindex większej niż zero."
},
"table-duplicate-name": {
"description": "Podpis tabeli (element <caption>) nie może zawierać takiego samego tekstu co atrybut summary.",
"help": "Atrybut summary w tabeli ma inny tekst niż element caption."
},
"table-fake-caption": {
"description": "Tabele używają jako podpisu elementu <caption>.",
"help": "Komórki danych i nagłówkowe w tabeli danych nie są używane do umieszczania podpisu tabeli."
},
"target-size": {
"description": "Sprawdź, czy cel dotykowy ma wystarczający rozmiar i przestrzeń wokół.",
"help": "Wszystkie cele dotykowe muszą mieć rozmiar 24px lub pozostawiać wystarczającą ilość miejsca wokół."
},
"td-has-header": {
"description": "Wszystkie niepuste komórki danych w tabelach danych większych niż 3 na 3 mają jeden lub więcej nagłówków tabeli.",
"help": "Każdy niepusty element <td> w dużej tabeli musi mieć powiązany nagłówek tabeli"
},
"td-headers-attr": {
"description": "Każda komórka tabeli używająca atrybutu headers odwołuje się do innej komórki w tej tabeli.",
"help": "Wszystkie komórki z atrybutem headers odnoszą się tylko do innych komórek tej samej tabeli."
},
"th-has-data-cells": {
"description": "Wszystkie elementy th i elementy z role=columnheader/rowheader mają komórki danych, które opisują.",
"help": "Każdy nagłówek tabeli w tabeli danych musi odnosić się do komórek danych."
},
"valid-lang": {
"description": "Atrybuty lang mają poprawne wartości.",
"help": "Atrybuty lang muszą mieć poprawną wartość."
},
"video-caption": {
"description": "Elementy <video> mają napisy rozszerzone.",
"help": "Elementy <video> muszą mieć napisy rozszerzone."
}
},
"checks": {
"abstractrole": {
"pass": "Role abstrakcyjne nie są wykorzystywane.",
"fail": {
"singular": "Rola abstrakcyjna nie może być użyta bezpośrednio: ${data.values}.",
"plural": ": Role abstrakcyjne nie mogą być używane bezpośrednio: ${data.values}."
}
},
"aria-allowed-attr": {
"pass": "Atrybuty ARIA są używane poprawnie dla zdefiniowanej roli.",
"fail": {
"singular": "Atrybut ARIA nie jest dozwolony: ${data.values}.",
"plural": ": Atrybuty ARIA nie są dozwolone: ${data.values}."
},
"incomplete": "Sprawdź, czy nie ma problemu, jeśli atrybut ARIA jest ignorowany w tym elemencie: ${data.values}"
},
"aria-allowed-role": {
"pass": "Rola ARIA jest dozwolona dla danego elementu.",
"fail": {
"singular": "Rola ARIA ${data.values} nie jest dozwolona dla tego elementu.",
"plural": ": Role ARIA ${data.values} nie są dozwolone dla tego elementu."
},
"incomplete": {
"singular": "Rola ARIA ${data.values} musi być usunięta, gdy element jest widoczny, ponieważ nie jest to dozwolone dla elementu.",
"plural": ": Role ARIA ${data.values} muszą być usunięte, gdy element jest widoczny, ponieważ nie są one dozwolone dla elementu."
}
},
"aria-busy": {
"pass": "Element ma atrybut aria-busy",
"fail": "Element używa aria-busy=\"true\" podczas pokazywania ładowania"
},
"aria-conditional-attr": {
"pass": "Atrybut ARIA jest dozwolony",
"fail": {
"checkbox": "Usuń aria-checked lub ustaw jego wartość na \"${data.checkState}\", aby dopasować ją do rzeczywistego stanu pola wyboru.",
"rowSingular": "Ten atrybut jest obsługiwany przez wiersze siatki, ale nie przez ${data.ownerRole}: ${data.invalidAttrs}",
"rowPlural": "Te atrybuty są obsługiwane przez wiersze siatki, ale nie przez ${data.ownerRole}: ${data.invalidAttrs}"
}
},
"aria-errormessage": {
"pass": "Istnieje aria-errormessage oraz elementy referencyjne widoczne dla czytników ekranowych, które wykorzystują wspieraną technikę aria-errormessage.",
"fail": {
"singular": "Wartość aria-errormessage ${data.values} musi używać techniki ogłoszenia wiadomości (np. aria-live, aria-describedby, role=alert, etc.).",
"plural": "Wartości aria-errormessage ${data.values} muszą używać techniki ogłoszenia wiadomości (np. aria-live, aria-describedby, role=alert, etc.).",
"hidden": "Wartość aria-errormessage ${data.values} nie może odwoływać się do ukrytego elementu."
},
"incomplete": {
"singular": "Upewnij się, że wartość aria-errormessage ${data.values} odnosi się do istniejącego elementu.",
"plural": "Upewnij się, że wartości aria-errormessage ${data.values} odnoszą się do istniejących elementów.",
"idrefs": "Nie można określić, czy na stronie istnieje element aria-errormessage: ${data.values}"
}
},
"aria-hidden-body": {
"pass": "Nie ma żadnego atrybutu aria-hidden w elemencie body dokumentu.",
"fail": "Atrybut aria-hidden=true nie może być użyty w elemencie body dokumentu."
},
"aria-level": {
"pass": "Wartość aria-level jest poprawna",
"incomplete": "Wartości aria-level większe niż 6 nie są obsługiwane we wszystkich kombinacjach czytników ekranu i przeglądarek"
},
"aria-prohibited-attr": {
"pass": "Atrybut ARIA jest dozwolony",
"fail": {
"hasRolePlural": "Atrybuty ${data.prohibited} nie mogą być używane z rolą \"${data.role}\".",
"hasRoleSingular": "Atrybut ${data.prohibited} nie może być użyty z rolą \"${data.role}\".",
"noRolePlural": "Atrybuty ${data.prohibited} nie mogą być używane w ${data.nodeName} bez poprawnego atrybutu roli.",
"noRoleSingular": "Atrybut ${data.prohibited} nie może być użyty w ${data.nodeName} bez poprawnego atrybutu roli."
},
"incomplete": {
"hasRoleSingular": "Atrybut ${data.prohibited} nie jest dobrze obsługiwany przez rolę \"${data.role}\".",
"hasRolePlural": "Atrybuty ${data.prohibited} nie są dobrze obsługiwane przez role \"${data.role}\".",
"noRoleSingular": "Atrybut ${data.prohibited} nie jest dobrze obsługiwany przez ${data.nodeName} bez poprawnego atrybutu roli.",
"noRolePlural": "Atrybuty ${data.prohibited} nie są dobrze obsługiwane przez ${data.nodeName} bez poprawnego atrybutu roli."
}
},
"aria-required-attr": {
"pass": "Wszystkie wymagane atrybuty ARIA istnieją.",
"fail": {
"singular": "Wymagany atrybut ARIA nie istnieje: ${data.values}.",
"plural": "Wymagane atrybuty ARIA nie istnieją: ${data.values}."
}
},
"aria-required-children": {
"pass": {
"default": "Wymagane dzieci ARIA istnieją."
},
"fail": {
"singular": "Wymagana rola dziecka ARIA nie istnieje: ${data.values}.",
"plural": "Wymagane role dzieci ARIA nie istnieją: ${data.values",
"unallowed": "Element ma dzieci, które nie są dozwolone: ${data.values}"
},
"incomplete": {
"singular": "Należy dodać oczekiwaną rolę dziecka ARIA: ${data.values}.",
"plural": "Należy dodać oczekiwane role dzieci ARIA: ${data.values}."
}
},
"aria-required-parent": {
"pass": "Wymagana rola rodzica ARIA istnieje.",
"fail": {
"singular": "Wymagana rola rodzica ARIA nie istnieje: ${data.values}.",
"plural": "Wymagane role rodziców ARIA nie istnieją: ${data.values}."
}
},
"aria-roledescription": {
"pass": "Atrybut aria-roledescription jest używany z obsługiwaną rolą semantyczną.",
"incomplete": "Sprawdź, czy aria-roledescription jest ogłaszany przez obsługiwane czytniki ekranu.",
"fail": "Nadaj temu elementowi rolę, która obsługuje aria-roledescription."
},
"aria-unsupported-attr": {
"pass": "Atrybut ARIA jest obsługiwany.",
"fail": "Atrybut ARIA nie jest dostatecznie obsługiwany przez czytniki ekranu i inne technologie wspomagające: ${data.values}."
},
"aria-valid-attr-value": {
"pass": "Wartości atrybutu ARIA są poprawne.",
"fail": {
"singular": "Niepoprawna wartość atrybutu ARIA: ${data.values}",
"plural": "Niepoprawne wartości atrybutu ARIA: ${data.values}"
},
"incomplete": {
"noId": "Identyfikator elementu atrybutu ARIA nie istnieje na stronie: ${data.needsReview}",
"noIdShadow": "ID elementu atrybutu ARIA nie istnieje na stronie lub jest potomkiem innego drzewa shadow DOM: ${data.needsReview}",
"ariaCurrent": "Wartość atrybutu ARIA jest niepoprawna i będzie traktowana jako \"aria-current=true\": ${data.needsReview}",
"idrefs": "Nie można określić, czy atrybut ARIA element ID istnieje na stronie: ${data.needsReview}",
"empty": "Wartość atrybutu ARIA jest ignorowana, gdy jest pusty: ${data.needsReview}"
}
},
"aria-valid-attr": {
"pass": "Nazwa atrybutu ARIA jest poprawna.",
"fail": {
"singular": "Niepoprawna nazwa atrybutu ARIA: ${data.values}.",
"plural": "Niepoprawne nazwy atrybutów ARIA: ${data.values}."
}
},
"braille-label-equivalent": {
"pass": "Atrybut aria-braillelabel jest użyty w elemencie z dostępnym tekstem.",
"fail": "Atrybut aria-braillelabel jest użyty w elemencie, który nie ma dostępnego tekstu.",
"incomplete": "Nie można wyliczyć dostępnego tekstu."
},
"braille-roledescription-equivalent": {
"pass": "Atrybut aria-brailleroledescription nie jest używany w elemencie, który nie ma dostępnego tekstu.",
"fail": {
"noRoleDescription": "Atrybut aria-brailleroledescription jest użyty w elemencie bez atrybutu aria-roledescription.",
"emptyRoleDescription": "Atrybut aria-brailleroledescription jest użyty w elemencie z pustym atrybutem aria-roledescription."
}
},
"deprecatedrole": {
"pass": "Rola ARIA nie jest przestarzała",
"fail": "Użyta rola jest przestarzała: ${data}"
},
"fallbackrole": {
"pass": "Użyto tylko jednej wartości roli.",
"fail": "Użyj tylko jednej wartości roli, ponieważ role rezerwowe nie są obsługiwane w starszych przeglądarkach.",
"incomplete": "Używaj tylko roli 'presentation' lub 'none', ponieważ są one synonimami."
},
"has-global-aria-attribute": {
"pass": {
"singular": "Element ma ogólny atrybut ARIA: ${data.values}.",
"plural": ": Element ma ogólne atrybuty ARIA: ${data.values}."
},
"fail": "Element nie ma ogólnego atrybutu ARIA"
},
"has-widget-role": {
"pass": "Element ma rolę widżetu.",
"fail": "Element nie ma roli widżetu."
},
"invalidrole": {
"pass": "Rola ARIA jest poprawna.",
"fail": {
"singular": "Rola musi być jedną z poprawnych ról ARIA: ${data.values}.",
"plural": ": Role muszą być jedną z poprawnych ról ARIA: ${data.values}."
}
},
"is-element-focusable": {
"pass": "Element przyjmuje fokus.",
"fail": "Element nie przyjmuje fokusu."
},
"no-implicit-explicit-label": {
"pass": "Nie ma rozbieżności między label a dostępną nazwą.",
"incomplete": "Sprawdź, czy label nie musi być częścią nazwy pola ARIA ${data}."
},
"unsupportedrole": {
"pass": "Rola ARIA jest obsługiwana.",
"fail": "Zastosowana rola nie jest szeroko obsługiwana w czytnikach ekranu i technologiach wspomagających: ${data.values}."
},
"valid-scrollable-semantics": {
"pass": "Element w porządku otrzymywania fokusu ma poprawną semantykę.",
"fail": "Element w porządku otrzymywania fokusu ma niepoprawną semantykę."
},
"color-contrast-enhanced": {
"pass": "Element ma wystarczający kontrast kolorów ${data.contrastRatio}",
"fail": {
"default": "Element ma niewystarczający kontrast kolorów ${data.contrastRatio} (kolor pierwszego planu: ${data.fgColor}, kolor tła: ${data.bgColor}, rozmiar czcionki: ${data.fontSize}, waga czcionki: ${data.fontWeight}). Oczekiwany współczynnik kontrastu: ${data.expectedContrastRatio}",
"fgOnShadowColor": "Element ma niewystarczający kontrast kolorów ${data.contrastRatio} pomiędzy kolorem pierwszego planu a kolorem cienia tekstu (kolor pierwszego planu: ${data.fgColor}, kolor cienia tekstu: ${data.shadowColor}, rozmiar czcionki: ${data.fontSize}, waga czcionki: ${data.fontWeight}). Oczekiwany współczynnik kontrastu: ${data.expectedContrastRatio}",
"shadowOnBgColor": "Element ma niewystarczający kontrast kolorów ${data.contrastRatio} pomiędzy kolorem cienia tekstu a kolorem tła (kolor cienia tekstu: ${data.shadowColor}, kolor tła: ${data.bgColor}, rozmiar czcionki: ${data.fontSize}, waga czcionki: ${data.fontWeight}). Oczekiwany współczynnik kontrastu: ${data.expectedContrastRatio}"
},
"incomplete": {
"default": "Nie można określić współczynnika kontrastu.",
"bgImage": "Nie można określić koloru tła elementu, ponieważ element ma obraz tła.",
"bgGradient": "Nie można określić koloru tła elementu, ponieważ element ma gradientowe tło.",
"imgNode": "Nie można określić koloru tła elementu, ponieważ element zawiera węzeł obrazu.",
"bgOverlap": "Nie można określić koloru tła elementu, ponieważ nakłada się na niego inny element.",
"fgAlpha": "Nie można określić koloru pierwszego planu elementu z powodu przezroczystości alfa.",
"elmPartiallyObscured": "Nie można określić koloru tła elementu, ponieważ jest on częściowo zasłonięty przez inny element.",
"elmPartiallyObscuring": "Nie można określić koloru tła elementu, ponieważ częściowo nakłada się on na inne elementy.",
"outsideViewport": "Nie można określić koloru tła elementu, ponieważ znajduje się on poza obszarem operacyjnym.",
"equalRatio": "Element ma współczynnik kontrastu 1:1 z tłem.",
"shortTextContent": "Treść elementu jest zbyt krótka, aby określić, czy jest to rzeczywista treść tekstowa.",
"nonBmp": "Treść elementu zawiera tylko znaki nietekstowe.",
"pseudoContent": "Nie można określić koloru tła elementu, ponieważ jest to pseudoelement."
}
},
"color-contrast": {
"pass": {
"default": "Element ma wystarczający kontrast kolorów ${data.contrastRatio}",
"hidden": "Element jest ukryty"
},
"fail": {
"default": "Element ma niewystarczający kontrast kolorów ${data.contrastRatio} (kolor pierwszego planu: ${data.fgColor}, kolor tła: ${data.bgColor}, rozmiar czcionki: ${data.fontSize}, waga czcionki: ${data.fontWeight}). Oczekiwany współczynnik kontrastu: ${data.expectedContrastRatio}",
"fgOnShadowColor": "Element ma niewystarczający kontrast kolorów ${data.contrastRatio} pomiędzy kolorem pierwszego planu a kolorem cienia tekstu (kolor pierwszego planu: ${data.fgColor}, kolor cienia tekstu: ${data.shadowColor}, rozmiar czcionki: ${data.fontSize}, waga czcionki: ${data.fontWeight}). Oczekiwany współczynnik kontrastu: ${data.expectedContrastRatio}",
"shadowOnBgColor": "Element ma niewystarczający kontrast kolorów ${data.contrastRatio} pomiędzy kolorem cienia tekstu a kolorem tła (kolor cienia tekstu: ${data.shadowColor}, kolor tła: ${data.bgColor}, rozmiar czcionki: ${data.fontSize}, waga czcionki: ${data.fontWeight}). Oczekiwany współczynnik kontrastu: ${data.expectedContrastRatio}"
},
"incomplete": {
"default": "Nie można określić współczynnika kontrastu.",
"bgImage": "Nie można określić koloru tła elementu, ponieważ element ma obraz tła.",
"bgGradient": "Nie można określić koloru tła elementu, ponieważ element ma gradientowe tło.",
"imgNode": "Nie można określić koloru tła elementu, ponieważ element zawiera węzeł obrazu.",
"bgOverlap": "Nie można określić koloru tła elementu, ponieważ nakłada się na niego inny element.",
"fgAlpha": "Nie można określić koloru pierwszego planu elementu z powodu przezroczystości alfa.",
"elmPartiallyObscured": "Nie można określić koloru tła elementu, ponieważ jest on częściowo zasłonięty przez inny element.",
"elmPartiallyObscuring": "Nie można określić koloru tła elementu, ponieważ częściowo nakłada się on na inne elementy.",
"outsideViewport": "Nie można określić koloru tła elementu, ponieważ znajduje się on poza obszarem operacyjnym.",
"equalRatio": "Element ma współczynnik kontrastu 1:1 z tłem.",
"shortTextContent": "Treść elementu jest zbyt krótka, aby określić, czy jest to rzeczywista treść tekstowa.",
"nonBmp": "Treść elementu zawiera tylko znaki nietekstowe.",
"pseudoContent": "Nie można określić koloru tła elementu, ponieważ jest to pseudoelement."
}
},
"link-in-text-block-style": {
"pass": "Łącza mogą być odróżnione od sąsiadującego tekstu poprzez wizualną stylizację",
"incomplete": {
"default": "Sprawdź, czy łącze wymaga stylizacji, aby odróżnić je od sąsiadującego tekstu.",
"pseudoContent": "Sprawdź, czy pseudostyl łącza jest wystarczający, aby odróżnić je od sąsiadującego tekstu."
},
"fail": "Łącze nie ma żadnej stylizacji (np. podkreślenia), która odróżniałaby je od sąsiadującego tekstu"
},
"link-in-text-block": {
"pass": "Łącza można odróżnić od sąsiadującego tekstu w inny sposób niż za pomocą koloru.",
"fail": {
"fgContrast": "Łącze ma niewystarczający kontrast kolorów ${data.contrastRatio}:1 z sąsiadującym tekstem. (Minimalny kontrast to: ${data.requiredContrastRatio}:1, kolor tekstu łącza: ${data.nodeColor}, kolor sąsiadującego tekstu: ${data.parentColor})",
"bgContrast": "Tło łącza ma niewystarczający kontrast kolorów ${data.contrastRatio} (Minimalny kontrast to: ${data.requiredContrastRatio}:1, kolor tła łącza: ${data.nodeBackgroundColor}, sąsiadujący kolor tła: ${data.parentBackgroundColor})"
},
"incomplete": {
"default": "Nie można określić współczynnika kontrastu.",
"bgContrast": "Nie można określić współczynnika kontrastu elementu. Sprawdź, czy nie ma odrębnego stylu stanów hover/fokus.",
"bgImage": "Nie można określić współczynnika kontrastu elementu ze względu na obraz tła.",
"bgGradient": "Nie można określić współczynnika kontrastu elementu ze względu na gradient tła.",
"imgNode": "Nie można określić współczynnika kontrastu elementu, ponieważ element zawiera węzeł obrazu.",
"bgOverlap": "Nie można określić współczynnika kontrastu elementu ze względu na nakładanie się elementów."
}
},
"autocomplete-appropriate": {
"pass": "Wartość autocomplete jest odpowiednia dla tego typu pola formularza.",
"fail": "Wartość autocomplete jest niewłaściwa dla tego typu pola formularza."
},
"autocomplete-valid": {
"pass": "Atrybut autocomplete jest sformatowany poprawnie.",
"fail": "Atrybut autocomplete jest sformatowany niepoprawnie."
},
"accesskeys": {
"pass": "Wartość atrybutu accesskey jest unikalna.",
"fail": "Dokument ma wiele elementów z tym samym klawiszem dostępu."
},
"focusable-content": {
"pass": "Element zawiera elementy przyjmujące fokus.",
"fail": "Element powinien przyjmować fokus."
},
"focusable-disabled": {
"pass": "W elemencie nie ma elementów przyjmujących fokus.",
"incomplete": "Sprawdź, czy elementy, na których można ustawić fokus, natychmiast otrzymują wskaźnik fokusu",
"fail": "Treść z możliwością ustawiania fokusu powinna być wyłączona lub usunięta z DOM."
},
"focusable-element": {
"pass": "Element może przyjmować fokus.",
"fail": "Element powinien przyjmować fokus."
},
"focusable-modal-open": {
"pass": "Nie ma elementów przyjmujących fokus, gdy otwarte jest okno modalne.",
"incomplete": "Sprawdź, czy elementy, które mogą przyjmować fokus, nie są tabulowane w aktualnym stanie."
},
"focusable-no-name": {
"pass": "Element nie znajduje się w porządku tabulacji lub ma dostępny tekst.",
"fail": "Element znajduje się w porządku tabulacji i nie ma dostępnego tekstu.",
"incomplete": "Nie można ustalić, czy element ma dostępną nazwę."
},
"focusable-not-tabbable": {
"pass": "Nie ma elementów przyjmujących fokus wewnątrz elementu.",
"incomplete": "Sprawdź, czy elementy, na których można ustawić fokus, natychmiast otrzymują wskaźnik fokusu",
"fail": "Treść przyjmująca fokus powinna mieć tabindex=-1 lub być usunięta z DOM."
},
"frame-focusable-content": {
"pass": "Element nie ma potomków przyjmujących fokus",
"fail": "Element ma elementy potomne przyjmujące fokus",
"incomplete": "Nie można ustalić, czy element ma elementy potomne"
},
"landmark-is-top-level": {
"pass": "Punkt orientacyjny ${data.role} jest na najwyższym poziomie.",
"fail": "Punkt orientacyjny {data.role} jest wewnątrz innego obszaru kluczowego."
},
"no-focusable-content": {
"pass": "Element nie ma potomków przyjmujących fokus",
"fail": {
"default": "Element ma elementy potomne przyjmujące fokus",
"notHidden": "Użycie ujemnej wartości tabindex elementu wewnątrz interaktywnej kontrolki nie zapobiega ustawianiu na elemencie fokusu przez technologie wspomagające (nawet z 'aria-hidden=true')"
},
"incomplete": "Nie można ustalić, czy element ma elementy potomne"
},
"page-has-heading-one": {
"pass": "Strona ma co najmniej jeden nagłówek 1. poziomu.",
"fail": "Strona musi mieć nagłówek 1. poziomu."
},
"page-has-main": {
"pass": "Dokument ma co najmniej jeden główny punkt orientacyjny.",
"fail": "Dokument nie ma głównego punktu orientacyjnego."
},
"page-no-duplicate-banner": {
"pass": "W dokumencie nie ma więcej niż jeden obszar kluczowy banner.",
"fail": "W dokumencie jest więcej niż jeden obszar kluczowy banner."
},
"page-no-duplicate-contentinfo": {
"pass": "W dokumencie nie ma więcej niż jeden obszar kluczowy contentinfo.",
"fail": "W dokumencie jest więcej niż jeden obszar kluczowy contentinfo."
},
"page-no-duplicate-main": {
"pass": "W dokumencie nie ma więcej niż jeden obszar kluczowy main.",
"fail": "W dokumencie jest więcej niż jeden obszar kluczowy main."
},
"tabindex": {
"pass": "Element nie ma wartości tabindex większej niż 0.",
"fail": "Element nie ma wartości tabindex większą od 0."
},
"alt-space-value": {
"pass": "Element ma poprawną wartość atrybutu alt.",
"fail": "Element ma atrybut alt zawierający tylko znak spacji, który nie przez wszystkie czytniki ekranu jest ignorowany ."
},
"duplicate-img-label": {
"pass": "Element nie powiela tekstu istniejącego w atrybucie alt elementu img.",
"fail": "Element powiela tekst istniejący w atrybucie alt elementu img."
},
"explicit-label": {
"pass": "Element formularza ma jawnie określoną label.",
"fail": "Element formularza nie ma jawnie określonej label.",
"incomplete": "Nie można określić, czy element formularza ma jawnie określoną label."
},
"help-same-as-label": {
"pass": "Tekst pomocy (title lub aria-describedby) nie powiela tekstu etykiety.",
"fail": "Tekst pomocy (title lub aria-describedby) jest taki sam jak tekst etykiety."
},
"hidden-explicit-label": {
"pass": "Element formularza ma widoczną jednoznaczną etykietę label.",
"fail": "Element formularza ma jednoznaczną etykietę label, która jest ukryta.",
"incomplete": "Nie można określić, czy element formularza ma jawną etykietę (label), gdy jest ukryta."
},
"implicit-label": {
"pass": "Element formularza ma dorozumianą etykietę (jest owinięty w label).",
"fail": "Element formularza nie ma dorozumianej etykiety (nie jest owinięty w label).",
"incomplete": "Nie można określić, czy element formularza ma dorozumianą etykietę (jest owinięty w label)."
},
"label-content-name-mismatch": {
"pass": "Widoczny tekst elementu jest częścią dostępnej nazwy elementu.",
"fail": "Widoczny tekst wewnątrz elementu nie jest częścią dostępnej nazwy."
},
"multiple-label": {
"pass": "Pole formularza nie ma wielu label.",
"incomplete": "Technologie wspomagające nie obsługują wystarczająco dobrze wielu elementów label. Upewnij się, że pierwsza etykieta zawiera wszystkie niezbędne informacje."
},
"title-only": {
"pass": "Element formularza nie używa wyłącznie atrybutu title jako swojej etykiety.",
"fail": "Tylko atrybut title jest używany do wygenerowania etykiety dla elementu formularza."
},
"landmark-is-unique": {
"pass": "Punkty orientacyjne muszą mieć unikalną kombinację roli lub roli etykiety i tytułu (tj. dostępną nazwę).",
"fail": "Punkt orientacyjny musi mieć unikalną aria-label, aria-labelledby lub title, aby był rozpoznawalny."
},
"has-lang": {
"pass": "Element <html> ma atrybut lang.",
"fail": {
"noXHTML": "Atrybut xml:lang nie jest poprawny na stronach HTML, użyj atrybutu lang.",
"noLang": "Element <html> nie ma atrybutu lang."
}
},
"valid-lang": {
"pass": "Wartość atrybutu lang jest na liście poprawnych kodów języków.",
"fail": "Wartości atrybutu lang nie ma na liście poprawnych kodów języków."
},
"xml-lang-mismatch": {
"pass": "Atrybuty lang i xml:lang mają ten sam język podstawowy.",
"fail": "Atrybuty lang i xml:lang nie mają tego samego języka podstawowego."
},
"dlitem": {
"pass": "Element listy opisowej ma element nadrzędny dl.",
"fail": "Pozycja listy opisowej nie ma elementu nadrzędnego dl."
},
"listitem": {
"pass": "Element listy ma ul, ol lub role=\"list\" jako bezpośredni element rodzicielski.",
"fail": {
"default": "Element listy nie ma nadrzędnego elementu ul lub ol.",
"roleNotValid": "Element listy nie ma nadrzędnego elementu ul, ol, ani nadrzędnego elementu z role=\"list\"."
}
},
"only-dlitems": {
"pass": "Element dl ma wewnątrz tylko dozwolone jako bezpośrednie elementy potomne (dzieci) elementy dt lub dd.",
"fail": "Element listy ma wewnątrz bezpośrednie elementy dzieci, które nie są dozwolone wewnątrz listy opisowej."
},
"only-listitems": {
"pass": "Element lista ma wewnątrz tylko dozwolone jako bezpośrednie elementy potomne (dzieci) elementy li.",
"fail": "Element listy ma bezpośrednie elementy potomne, które nie są dozwolone: ${data.values}"
},
"structured-dlitems": {
"pass": "Gdy elemet dl nie jest pusty, ma zarówno elementy dt, jak i dd.",
"fail": "Element nie jest pusty, ale nie ma co najmniej jednego elementu dt, po którym następuje co najmniej jeden element dd."
},
"caption": {
"pass": "Element multimedialny ma ścieżkę z napisami rozszerzonymi.",
"incomplete": "Sprawdź, czy istnieją napisy rozszerzone dla tego elementu."
},
"frame-tested": {
"pass": "Ramka iframe została przetestowana z axe-core.",
"fail": "Ramka iframe nie mogła być przetestowana z axe-core.",
"incomplete": "Nadal wymagane jest przetestowanie ramki iframe z axe-core."
},
"no-autoplay-audio": {
"pass": "Element <video> lub <audio> nie emituje dźwięku przez czas dłuższy niż dozwolony lub posiada mechanizm sterujący.",
"fail": "Element <video> lub <audio> emituje dźwięk przez czas dłuższy niż dozwolony i nie posiada mechanizmu sterowania.",
"incomplete": "Sprawdź, czy <video> lub <audio> nie emituje dźwięku dłuższej niż przez dozwolony czas lub czy ma mechanizm sterujący."
},
"css-orientation-lock": {
"pass": "Wyświetlacz działa sprawnie, orientacja nie jest blokowana.",
"fail": "Zastosowano blokadę orientacji wyświetlacza, w rezultacie wyświetlacz nie działa sprawnie.",
"incomplete": "Nie można blokować orientacji wyświetlacza za pomocą ustawień CSS."
},
"meta-viewport-large": {
"pass": "Znacznik <meta> nie ogranicza znacznego powiększenia na urządzeniach przenośnych.",
"fail": "Znacznik <meta> znacznik ogranicza powiększanie na urządzeniach przenośnych."
},
"meta-viewport": {
"pass": "Znacznik <meta> nie wyłącza powiększania na urządzeniach przenośnych.",
"fail": "${data} w znaczniku <meta> wyłącza powiększanie na urządzeniach przenośnych."
},
"target-offset": {
"pass": "Cel ma wystarczające odsunięcie od swojego najbliższego sąsiada: (${data.closestOffset}px, które powinno wynosić co najmniej ${data.minOffset}px)",
"fail": "Cel ma niewystarczające odsunięcie od najbliższego sąsiada: (${data.closestOffset}px, które powinno wynosić co najmniej ${data.minOffset}px)",
"incomplete": {
"default": "Element z ujemnym tabindeksem ma niewystarczające odsunięcie od najbliższego sąsiada: (${data.closestOffset}px, które powinno wynosić co najmniej${data.minOffset}px). Czy to jest cel?",
"nonTabbableNeighbor": "Cel ma niewystarczające odsunięcie od sąsiada z ujemnym tabindeksem: (${data.closestOffset}px, które powinno wynosić co najmniej ${data.minOffset}px). Czy sąsiad jest celem?"
}
},
"target-size": {
"pass": {
"default": "Kontrolka ma wystarczający rozmiar (${data.width}px na ${data.height}px, który powinnien wynosić co najmniej ${data.minSize}px na ${data.minSize}px)",
"obscured": "Kontrolka jest ignorowana, ponieważ jest całkowicie zasłonięta i nie można jej kliknąć."
},
"fail": {
"default": "Cel ma niewystarczający rozmiar (${data.width}px na ${data.height}px, który powinnien wynosić co najmniej ${data.minSize}px na ${data.minSize}px)",
"partiallyObscured": "Cel ma niewystarczający rozmiar, ponieważ jest częściowo przesłonięty (najmniejsza przestrzeń to ${data.width}px na ${data.height}px, powinna wynosić ${data.minSize}px na ${data.minSize}px)"
},
"incomplete": {
"default": "Element z ujemnym tabindex ma niewystarczający rozmiar (${data.width}px na ${data.height}px, powinnien wynosić co najmniej ${data.minSize}px na ${data.minSize}px). Czy to jest cel?",
"contentOverflow": "Rozmiar elementu nie mógł być dokładnie określony z powodu przepełnienia zawartości",
"partiallyObscured": "Element z ujemnym tabindex ma niewystarczający rozmiar, ponieważ jest częściowo przesłonięty (najmniejsza przestrzeń to ${data.width}px na ${data.height}px, powinna wynosić co najmniej ${data.minSize}px na ${data.minSize}px). Czy to jest cel?",
"partiallyObscuredNonTabbable": "Cel ma niewystarczający rozmiar, ponieważ jest częściowo przesłonięty przez sąsiada o ujemnym tabindeksie (najmniejsza przestrzeń to ${data.width}px na ${data.height}px, powinna wynosić co najmniej ${data.minSize}px na ${data.minSize}px). Czy sąsiad jest celem?"
}
},
"header-present": {
"pass": "Strona ma nagłówek.",
"fail": "Strona nie ma nagłówka."
},
"heading-order": {
"pass": "Kolejność nagłówków jest poprawna.",
"fail": "Kolejność nagłówków jest niepoprawna.",
"incomplete": "Nie można określić poprzedniego nagłówka"
},
"identical-links-same-purpose": {
"pass": "Nie ma żadnych innych łączy o tej samej nazwie, które kierują na inny adres URL.",
"incomplete": "Sprawdź, czy łącza mają ten sam cel lub są celowo niejednoznaczne."
},
"internal-link-present": {
"pass": "Znaleziono poprawne łącze pomijające.",
"fail": "Nie znaleziono poprawnych łączy pomijających."
},
"landmark": {
"pass": "Strona ma punkt orientacyjny (obszar kluczowy).",
"fail": "Strona nie ma żadnego punktu orientacyjnego (obszaru kluczowego)."
},
"meta-refresh-no-exceptions": {
"pass": "Znacznik <meta> nie powoduje natychmiastowego odświeżenia strony",
"fail": "Znacznik <meta> tag wymusza czasowe odświeżenie strony"
},
"meta-refresh": {
"pass": "Znacznik <meta> nie odświeża od razu strony.",
"fail": "Znacznik <meta> wymusza odświeżenie strony."
},
"p-as-heading": {
"pass": "Elementy <p> nie są stylizowane na nagłówki.",
"fail": "Zamiast stylizowanych na nagłówki elementów <p> muszą być użyte nagłówki semantyczne.",
"incomplete": "Nie można określić, czy elementy <p> są stylizowane na nagłówki"
},
"region": {
"pass": "Cała treść strony jest zawarta w obszarach kluczowych.",
"fail": "Pewna część strony znajduje się poza punktami orientacyjnymi."
},
"skip-link": {
"pass": "Cel łącza pomijajacego istnieje.",
"incomplete": "Cel łącza pomijania powinien być widoczny po aktywacji.",
"fail": "Nie istnieje cel łącza pomijającego."
},
"unique-frame-title": {
"pass": "Atrybut title elementu jest unikalny.",
"fail": "Atrybut title elementu nie jest unikalny."
},
"duplicate-id-active": {
"pass": "W dokumencie nie ma aktywnych elementów z takim samym atrybutem id.",
"fail": "W dokumencie są aktywne elementy z tą samą wartością atrybutu id: ${data}."
},
"duplicate-id-aria": {
"pass": "W dokumencie nie ma żadnych elementów, do których odwołuje się ARIA lub <label>, które mają ten sam atrybut id.",
"fail": "W dokumencie jest wiele elementów, do których odnosi się ARIA z tym samym atrybutem id: ${data}."
},
"duplicate-id": {
"pass": "W dokumencie nie ma wielu elementów statycznych z takim samym atrybutem id.",
"fail": "W dokumencie jest wiele elementów statycznych z takim samym atrybutem id: ${data}."
},
"aria-label": {
"pass": "Atrybut aria-label istnieje i nie jest pusty.",
"fail": "Atrybut aria-label nie istnieje lub jest pusty."
},
"aria-labelledby": {
"pass": "Atrybut aria-labelledby oraz elementy, do których się odwołuje, istnieją i są widoczne dla czytników ekranu.",
"fail": "Atrybut aria-labelledby nie istnieje albo elementy, do których odwołuje atrybut aria-labelledby, nie istnieją lub są puste.",
"incomplete": "Spowoduj, aby istniał element, do którego istnieje odwołanie w atrybucie aria-labelldeby."
},
"avoid-inline-spacing": {
"pass": "Nie określono żadnych stylów wewnętrznych (inline) z '!important', które wpływają na odstępy w tekście.",
"fail": {
"singular": "Usuń dyrektywę '!important' ze stylu inline ${data.values}, ponieważ nadpisywanie tego nie jest obsługiwane przez większość przeglądarek.",
"plural": "Usuń dyrektywy '!important' ze stylów inline ${data.values}, ponieważ nadpisywanie tego nie jest obsługiwane przez większość przeglądarek."
}
},
"button-has-visible-text": {
"pass": "Element ma tekst wewnętrzny widoczny dla czytników ekranu.",
"fail": "Element nie ma wewnętrznego tekstu, który jest widoczny dla czytników ekranu.",
"incomplete": "Nie można określić, czy element ma elementy potomne."
},
"doc-has-title": {
"pass": "Dokument ma niepusty element <title>.",
"fail": "Dokument nie ma niepustego elementu <title>."
},
"exists": {
"pass": "Element nie istnieje.",
"incomplete": "Element istnieje."
},
"has-alt": {
"pass": "Element ma atrybut alt.",
"fail": "Element nie ma atrybutu alt."
},
"has-visible-text": {
"pass": "Element ma tekst, który jest widoczny dla czytników ekranu.",
"fail": "Element nie ma tekstu, który jest widoczny dla czytników ekranu.",
"incomplete": "Nie można określić, czy element ma elementy dzieci."
},
"important-letter-spacing": {
"pass": "Odstępy między literami (letter-spacing) w atrybucie style nie są ustawione na !important lub spełniają minimum",
"fail": "Odstępy między literami w atrybucie style nie mogą używać !important lub muszą mieć ${data.minValue}em (aktualnie: ${data.value}em)"
},
"important-line-height": {
"pass": "Właściwość line-height w atrybucie style nie jest ustawiona na !important lub spełnia minimum.",
"fail": "Właściwość line-height w atrybucie style nie może używać !important lub musi mieć ${data.minValue}em (aktualnie: ${data.value}em)."
},
"important-word-spacing": {
"pass": "Odstępy miedzy wyrazami (word-spacing) w atrybucie style nie są ustawione na !important lub spełniają minimum",
"fail": "Odstępy miedzy wyrazami (word-spacing) w atrybucie style nie mogą używać !important lub muszą mieć ${data.minValue}em (aktualnie: ${data.value}em)"
},
"is-on-screen": {
"pass": "Element nie jest widoczny.",
"fail": "Element jest widoczny."