pl.json
49.2 KB
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
{
"lang": "pl",
"rules": {
"accesskeys": {
"description": "Każdy atrybut accessskey jest unikalny.",
"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 roli elementu.",
"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-command-name": {
"description": "Każdy przycisk, łącze i pozycja menu (menuitem) ARIA ma dostępną nazwę.",
"help": "Polecenia ARIA muszą mieć dostępną nazwę."
},
"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 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 wejściowe ARIA ma dostępną nazwę.",
"help": "Pola wejściowe ARIA muszą mieć dostępną nazwę."
},
"aria-meter-name": {
"description": "Każdy licznik (meter) oparty na ARIA ma dostępną nazwę.",
"help": "Liczniki (meter) ARIA muszą mieć dostępną nazwę."
},
"aria-progressbar-name": {
"description": "Każdy pasek postępu (progressbar) ARIA ma dostępną nazwę.",
"help": "Paski postępu (progressbar) ARIA muszą mieć dostępną nazwę."
},
"aria-required-attr": {
"description": "Elementy z rolami ARIA mają wszystkie wymagane atrybuty ARIA.",
"help": "Wymagane atrybuty ARIA muszą istnieć."
},
"aria-required-children": {
"description": "Elementy z rolą ARIA, które wymagają ról potomnych, zawierają je.",
"help": "Niektóre role ARIA muszą obejmować określone dzieci."
},
"aria-required-parent": {
"description": "Elementy z rolą ARIA, które wymagają ról nadrzędnych, są zawarte w elementach z takimi rolami.",
"help": "Niektóre role ARIA muszą być wewnątrz określonych elementów rodziców."
},
"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": "Wszystkie elementy z atrybutem roli używają prawidłowej wartości tego atrybutu.",
"help": "Stosowane role ARIA muszą być zgodne z obowiązującymi wartościami."
},
"aria-text": {
"description": "Atrybut \"role=text\" jest używany dla elementów, które nie mają potomków przyjmujących fokus",
"help": "\"role=text\" nie powinien mieć potomków przyjmujących fokus."
},
"aria-toggle-field-name": {
"description": "Każdy przełącznik (toggle) ARIA ma dostępną nazwę.",
"help": "Przełączniki (toggle) ARIA muszą mieć dostępną nazwę."
},
"aria-tooltip-name": {
"description": "Każda podpowiedź (tooltip) ARIA ma dostępną nazwę.",
"help": "Podpowiedzi (tooltip) ARIA muszą mieć dostępną nazwę."
},
"aria-treeitem-name": {
"description": "Każdy węzeł drzewa elementów (treeitem) ARIA ma dostępną nazwę.",
"help": "Węzły drzewa elementów ARIA 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": "Atrybuty, które rozpoczynają się od aria-, są poprawnymi atrybutami ARIA.",
"help": "Atrybuty ARIA muszą być mieć poprawne nazwy."
},
"audio-caption": {
"description": "Elementy <audio> mają napisy rozszerzone.",
"help": "Elementy <audio> muszą mieć ścieżkę z napisami."
},
"autocomplete-valid": {
"description": "Atrybut autocomplete jest poprawny i odpowiedni dla pola formularza.",
"help": "Atrybut autocomplete musi być użyty poprawnie."
},
"avoid-inline-spacing": {
"description": "Odstępy w tekście ustawione za pomocą atrybutów stylu mogą być regulowane 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": "Przyciski mają odróżniający je tekst.",
"help": "Przyciski muszą mieć odróżniający je tekst."
},
"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 się bloków treści."
},
"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."
},
"color-contrast-enhanced": {
"description": "Kontrast między kolorami pierwszego planu i tła spełnia progi kontrastu WCAG 2 AAA.",
"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 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": "Pole formularza nie ma wielu etykiet (elementów label).",
"help": "Pole formularza nie powinno zawierać 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 <frame> i <frame> mają unikalny atrybut title.",
"help": "Ramki (frame) muszą mieć unikalny atrybut title."
},
"frame-title": {
"description": "Elementy <iframe> i <frame> mają niepusty atrybut title.",
"help": "Ramki muszą mieć 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": "Informuje użytkowników o ukrytych treściach.",
"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": "Alternatywny tekst 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": "Obszar aside lub obszar 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 mają unikalną rolę lub kombinację roli/etykiety/tytułu (tj. dostępną nazwę).",
"description": "Punkty orientacyjne (obszary kluczowe) są unikalne."
},
"link-in-text-block": {
"description": "Łącza można rozróżniać bez opierania się na kolorze.",
"help": "Łącza muszą być odróżnialne od otaczającego je 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": {
"description": "<meta http-equiv=\"refresh\"> nie jest stosowane.",
"help": "Automatyczne odświeżenie strony 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": "Zagnieżdżone interaktywne kontrolki nie są ogłaszane przez czytniki ekranu",
"help": "Upewnij się, że kontrolki interaktywne nie są zagnieżdżone"
},
"no-autoplay-audio": {
"description": "Elementy <video> lub <audio> nie odtwarzają automatycznie przez dłużej niż 3 sekundy dźwięku 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 alternatywny.",
"help": "Elementy <object> muszą mieć tekst zastępczy."
},
"p-as-heading": {
"description": "Elementy p nie są stylizowane jako nagłówki.",
"help": "Pogrubienie, kursywa i rozmiar czcionki nie są używane do stylizacji elementów p jako nagłówków."
},
"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 z role=none lub role=presentation nie mogą kolidować z innymi rolami.",
"help": "Elementy, które mają role=none lub role=presentation, nie mogą kolidować z innymi rolami."
},
"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 rolami img, graphics-document lub graphics-symbol mają dostępny tekst.",
"help": "Elementy svg z rolą img mają 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": "Tabele nie mają takiego samego streszczenia (summary) i podpisu (caption).",
"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 podpisów."
},
"td-has-header": {
"description": "Każda niepusta komórka danych w dużej tabeli ma jeden lub więcej nagłówków tabeli.",
"help": "Wszystkie niepuste elementy td w tabelach danych większych niż 3 na 3 mają skojarzony 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": "Każdy nagłówek tabeli w tabeli danych odnosi się do komórek danych.",
"help": "Wszystkie elementy th i elementy z role=columnheader/rowheader mają komórki danych, które opisują."
},
"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}."
}
},
"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-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.)."
},
"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."
}
},
"aria-hidden-body": {
"pass": "Nie ma żadnego atrybutu aria-hidden w elemencie <body> dokumentu.",
"fail": "Atrybutu aria-hidden=true nie może być w elemencie <body> dokumentu."
},
"aria-prohibited-attr": {
"pass": "Atrybut ARIA jest dozwolony",
"fail": "Atrybut ARIA nie może być użyty, dodaj atrybut role lub użyj innego elementu: ${data.values}",
"incomplete": "Atrybut ARIA nie jest dobrze obsługiwany w elemencie i zamiast niego zostanie użyta treść tekstowa: ${data.values}"
},
"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": "Wymagane dzieci ARIA istnieją.",
"fail": {
"singular": "Wymagana rola dziecka ARIA nie istnieje: ${data.values}.",
"plural": "Wymagane role dzieci ARIA nie istnieją: ${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}.",
"ariaCurrent": "Wartość atrybutu ARIA jest niepoprawna i będzie traktowana jako aria-current=true: ${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}."
}
},
"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."
},
"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": {
"pass": "Element ma wystarczający kontrast kolorów ${data.contrastRatio}.",
"fail": "Element ma niewystarczający kontrast kolorów: ${data.contrastRatio} (foreground color: ${data.fgColor}, background color: ${data.bgColor}, font size: ${data.fontSize}, font weight: ${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-enhanced": {
"pass": "Element ma wystarczający kontrast kolorów ${data.contrastRatio}.",
"fail": "Element ma niewystarczający kontrast kolorów: ${data.contrastRatio} (foreground color: ${data.fgColor}, background color: ${data.bgColor}, font size: ${data.fontSize}, font weight: ${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": {
"pass": "Łącza można odróżnić od otaczającego je tekstu w inny sposób niż za pomocą koloru.",
"fail": "Łącza muszą być odróżnione od otaczającego je tekstu w inny sposób niż za pomocą koloru.",
"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 wejściowego.",
"fail": "Wartość autocomplete jest niewłaściwa dla tego typu pola wejściowego."
},
"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.",
"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.",
"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": "Element ma elementy potomne przyjmujące fokus",
"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ą <label>.",
"fail": "Element formularza ma jednoznaczną <label>, która jest ukryta.",
"incomplete": "Nie można określić, czy element formularza ma jednoznaczną ukrytą etykietę (<label>)."
},
"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": "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 znajduje się 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": {
"default": "Element lista ma niedozwolone bezpośrednie elementy potomne (dzieci), poza elementami <li>.",
"roleNotValid": "Element lista ma bezpośrednie elementy potomne (dzieci) z rolą, która nie jest dozwolona: ${data.role}."
}
},
"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."
},
"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."
},
"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": {
"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żywane nagłówki semantyczne."
},
"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 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 dzieci."
},
"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."
},
"is-on-screen": {
"pass": "Element nie jest widoczny.",
"fail": "Element jest widoczny."
},
"non-empty-alt": {
"pass": "Element ma niepusty atrybut alt.",
"fail": {
"noAttr": "Element nie ma atrybutu alt.",
"emptyAttr": "Element ma pusty atrybut alt."
}
},
"non-empty-if-present": {
"pass": {
"default": "Element nie posiada atrybutu bez określonej wartości.",
"has-label": "Element ma atrybuty bez określonej wartości."
},
"fail": "Element ma atrybut wartości, a atrybut wartości jest pusty."
},
"non-empty-placeholder": {
"pass": "Element ma atrybut placeholder.",
"fail": {
"noAttr": "Element nie ma atrybutu placeholder.",
"emptyAttr": "Element ma pusty atrybut placeholder."
}
},
"non-empty-title": {
"pass": "Element ma atrybut title.",
"fail": {
"noAttr": "Element nie ma atrybutu title.",
"emptyAttr": "Element ma pusty atrybut title."
}
},
"non-empty-value": {
"pass": "Element ma atrybut z niepustą wartością.",
"fail": {
"noAttr": "Element nie ma atrybutu z wartością.",
"emptyAttr": "Element ma atrybut z pustą wartością."
}
},
"presentational-role": {
"pass": "Domyślna semantyka elementu została zastąpiona przez role=\"${data.role}\".",
"fail": {
"default": "Domyślna semantyka elementu nie została nadpisana przez role=\"none\" ani role=\"presentation\".",
"globalAria": "Rola elementu nie jest prezentacyjna, ponieważ ma on ogólny atrybut ARIA.",
"focusable": "Rola elementu nie jest prezentacyjna, ponieważ może on przyjmować fokus.",
"both": "Rola elementu nie jest prezentacyjna, ponieważ ma on ogólny atrybut ARIA i może przyjmować fokus."
}
},
"role-none": {
"pass": "Domyślna semantyka elementu została zastąpiona przez role=\"none\".",
"fail": "Domyślna semantyka elementu nie została nadpisana przez role=\"none\"."
},
"role-presentation": {
"pass": "Domyślna semantyka elementu została zastąpiona przez role=\"presentation\".",
"fail": "Domyślna semantyka elementu nie została nadpisana przez role=\"presentation\"."
},
"svg-non-empty-title": {
"pass": "Element ma dziecko, które jest tytułem.",
"fail": {
"noTitle": "Element nie ma dziecka, które jest tytułem.",
"emptyTitle": "Tytuł elementu dziecka jest pusty."
},
"incomplete": "Nie można ustalić, czy element ma dziecko, które jest tytułem."
},
"caption-faked": {
"pass": "Pierwszy wiersz tabeli nie jest używany jako podpis.",
"fail": "Pierwszym elementem potomnym (dzieckiem) w tabeli powinien być caption zamiast komórki tabeli."
},
"html5-scope": {
"pass": "Atrybut scope jest używany tylko w elementach nagłówków tabeli (<th>).",
"fail": "W HTML 5, atrybuty scope mogą być używane tylko w elementach nagłówkowych tabeli (<th>)."
},
"same-caption-summary": {
"pass": "Treści atrybutu summary i elementu <caption> nie są powielane.",
"fail": "Treści atrybutu summary i elementu <caption> są identyczne."
},
"scope-value": {
"pass": "Atrybut scope ma poprawną wartość.",
"fail": "Wartością atrybutu scope może być tylko 'row' lub 'col'."
},
"td-has-header": {
"pass": "Wszystkie niepuste komórki danych mają nagłówki tabeli.",
"fail": "Niektóre niepuste komórki danych nie mają nagłówków tabeli."
},
"td-headers-attr": {
"pass": "Atrybut headers jest używany wyłącznie w odniesieniu do innych komórek w tabeli.",
"incomplete": "Atrybut headers jest pusty.",
"fail": "Atrybut headers nie jest używany wyłącznie w odniesieniu do innych komórek w tabeli."
},
"th-has-data-cells": {
"pass": "Wszystkie komórki nagłówkowe tabeli odnoszą się do komórek danych.",
"fail": "Nie wszystkie komórki nagłówkowe tabeli odnoszą się do komórek danych.",
"incomplete": "Komórki danych tabeli są puste lub nie istnieją."
},
"hidden-content": {
"pass": "Wszystkie treści na stronie zostały przeanalizowane.",
"fail": "Były problemy z analizą treści na tej stronie.",
"incomplete": "Na tej stronie jest ukryta treść, która nie została przeanalizowana. Musisz uruchomić wyświetlanie tej treści, aby ją przeanalizować."
}
},
"failureSummaries": {
"any": {
"failureMessage": "Napraw następujące elementy: {{~it:value}}\n {{=value.split('\\n').join('\\n ')}}{{~}}"
},
"none": {
"failureMessage": "Napraw wszystkie poniższe: {{~it:value}}\n {{=value.split('\\n').join('\\n ')}}{{~}}"
}
},
"incompleteFallbackMessage": "AXE nie potrafił określić powodu. Czas użyć inspektora elementów!"
}