govuk_publishing_components 35.15.2 → 35.15.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/assets/javascripts/govuk_publishing_components/analytics-ga4/ga4-core.js +2 -1
- data/app/assets/javascripts/govuk_publishing_components/analytics-ga4/ga4-page-views.js +40 -4
- data/app/assets/stylesheets/govuk_publishing_components/components/_action-link.scss +16 -0
- data/app/assets/stylesheets/govuk_publishing_components/components/_cards.scss +2 -5
- data/app/views/govuk_publishing_components/components/_action_link.html.erb +2 -0
- data/app/views/govuk_publishing_components/components/_intervention.html.erb +13 -3
- data/app/views/govuk_publishing_components/components/docs/action_link.yml +5 -0
- data/app/views/govuk_publishing_components/components/docs/intervention.yml +14 -2
- data/config/locales/en.yml +2 -0
- data/lib/govuk_publishing_components/version.rb +1 -1
- data/node_modules/axe-core/axe.d.ts +72 -9
- data/node_modules/axe-core/axe.js +4509 -4081
- data/node_modules/axe-core/axe.min.js +3 -3
- data/node_modules/axe-core/locales/_template.json +42 -13
- data/node_modules/axe-core/locales/fr.json +14 -6
- data/node_modules/axe-core/locales/ja.json +270 -232
- data/node_modules/axe-core/locales/pl.json +280 -138
- data/node_modules/axe-core/package.json +4 -2
- data/node_modules/axe-core/sri-history.json +4 -0
- metadata +2 -2
@@ -2,7 +2,7 @@
|
|
2
2
|
"lang": "pl",
|
3
3
|
"rules": {
|
4
4
|
"accesskeys": {
|
5
|
-
"description": "
|
5
|
+
"description": "Wartość każdego atrybutu accessskey jest unikalna.",
|
6
6
|
"help": "Wartość atrybutu accessskey musi być unikalna."
|
7
7
|
},
|
8
8
|
"area-alt": {
|
@@ -10,95 +10,111 @@
|
|
10
10
|
"help": "Elementy aktywne <area> muszą mieć tekst alternatywny."
|
11
11
|
},
|
12
12
|
"aria-allowed-attr": {
|
13
|
-
"description": "Użyte atrybuty ARIA są dozwolone dla
|
13
|
+
"description": "Użyte atrybuty ARIA są dozwolone dla elementu z określoną rolą.",
|
14
14
|
"help": "Elementy mogą używać tylko dozwolonych atrybutów ARIA."
|
15
15
|
},
|
16
16
|
"aria-allowed-role": {
|
17
17
|
"description": "Atrybut role ma odpowiednią wartość dla danego elementu.",
|
18
18
|
"help": "Rola ARIA musi być odpowiednia dla danego elementu."
|
19
19
|
},
|
20
|
+
"aria-braille-equivalent": {
|
21
|
+
"description": "Upewnij się, że aria-braillelabel i aria-brailleroledescription mają odpowiednik niebrajlowski",
|
22
|
+
"help": "Atrybuty aria-braille muszą mieć odpowiednik niebrajlowski."
|
23
|
+
},
|
20
24
|
"aria-command-name": {
|
21
|
-
"description": "Każdy
|
22
|
-
"help": "
|
25
|
+
"description": "Każdy element button, link i menuitem ARIA ma dostępną nazwę.",
|
26
|
+
"help": "Przyciski, łącza, pozycje menu ARIA muszą mieć dostępną nazwę."
|
27
|
+
},
|
28
|
+
"aria-conditional-attr": {
|
29
|
+
"description": "Upewnij się, że atrybuty ARIA są używane zgodnie ze specyfikacją roli elementu.",
|
30
|
+
"help": "Atrybuty ARIA muszą być używane w sposób określony dla roli elementu"
|
31
|
+
},
|
32
|
+
"aria-deprecated-role": {
|
33
|
+
"description": "Upewnij się, że elementy nie używają przestarzałych ról.",
|
34
|
+
"help": "Przestarzałe role ARIA nie mogą być używane."
|
23
35
|
},
|
24
36
|
"aria-dialog-name": {
|
25
37
|
"description": "Każde okno dialogowe ARIA i węzeł alertdialog ma dostępną nazwę.",
|
26
38
|
"help": "Okno dialogowe ARIA i węzły alertdialog muszą mieć dostępną nazwę."
|
27
39
|
},
|
28
40
|
"aria-hidden-body": {
|
29
|
-
"description": "Element
|
30
|
-
"help": "Element
|
41
|
+
"description": "Element body nie ma atrybutu aria-hidden='true'.",
|
42
|
+
"help": "Element body nie może mieć atrybutu aria-hidden='true'."
|
31
43
|
},
|
32
44
|
"aria-hidden-focus": {
|
33
|
-
"description": "Elementy z aria-hidden nie mogą obejmować elementów przyjmujących fokus.",
|
45
|
+
"description": "Elementy z aria-hidden=true nie mogą obejmować elementów przyjmujących fokus.",
|
34
46
|
"help": "Ukryty element ARIA nie może zawierać elementów przyjmujących fokus."
|
35
47
|
},
|
36
48
|
"aria-input-field-name": {
|
37
|
-
"description": "Każde pole
|
38
|
-
"help": "Pola
|
49
|
+
"description": "Każde pole ARIA do wprowadzania danych ma dostępną nazwę.",
|
50
|
+
"help": "Pola ARIA do wprowadzania danych muszą mieć dostępną nazwę."
|
39
51
|
},
|
40
52
|
"aria-meter-name": {
|
41
|
-
"description": "Każdy
|
42
|
-
"help": "Liczniki (meter)
|
53
|
+
"description": "Każdy element ARIA meter (licznik) ma dostępną nazwę.",
|
54
|
+
"help": "Liczniki ARIA (meter) muszą mieć dostępne nazwy."
|
43
55
|
},
|
44
56
|
"aria-progressbar-name": {
|
45
|
-
"description": "Każdy pasek postępu
|
46
|
-
"help": "Paski postępu (progressbar)
|
57
|
+
"description": "Każdy element ARIA progressbar (pasek postępu) ma dostępną nazwę.",
|
58
|
+
"help": "Paski postępu ARIA (progressbar) muszą mieć dostępne nazwy."
|
59
|
+
},
|
60
|
+
"aria-prohibited-attr": {
|
61
|
+
"description": "Upewnij się, że atrybuty ARIA nie są zabronione dla roli elementu.",
|
62
|
+
"help": "Elementy mogą używać tylko dozwolonych atrybutów ARIA."
|
47
63
|
},
|
48
64
|
"aria-required-attr": {
|
49
|
-
"description": "Elementy z
|
65
|
+
"description": "Elementy z rolą ARIA mają wszystkie wymagane atrybuty aria-*",
|
50
66
|
"help": "Wymagane atrybuty ARIA muszą istnieć."
|
51
67
|
},
|
52
68
|
"aria-required-children": {
|
53
|
-
"description": "Elementy z
|
69
|
+
"description": "Elementy z atrybutem ARIA role, które muszą zawierać elementy potomne z wymaganym atrybutem role, zawierają je.",
|
54
70
|
"help": "Niektóre role ARIA muszą obejmować określone dzieci."
|
55
71
|
},
|
56
72
|
"aria-required-parent": {
|
57
|
-
"description": "Elementy z
|
58
|
-
"help": "
|
73
|
+
"description": "Elementy z atrybutem ARIA role, które wymagają elementu rodzica z atrybutem role, są zawarte w elementach z takimi rolami.",
|
74
|
+
"help": "Elementy z niektórymi atrybutami role ARIA muszą znajdować się wewnątrz nadrzędnego elementu rodzica z wymaganym atrybutem role."
|
59
75
|
},
|
60
76
|
"aria-roledescription": {
|
61
77
|
"description": "Atrybut aria-roledescription jest używany tylko w elementach, które mają rolę określoną domyślnie lub jawnie.",
|
62
78
|
"help": "Użyj aria-roledescription w elementach o roli semantycznej."
|
63
79
|
},
|
64
80
|
"aria-roles": {
|
65
|
-
"description": "
|
66
|
-
"help": "Stosowane role ARIA muszą
|
81
|
+
"description": "Wartości atrybutu role są poprawne.",
|
82
|
+
"help": "Stosowane role ARIA muszą mieć poprawne wartości."
|
67
83
|
},
|
68
84
|
"aria-text": {
|
69
|
-
"description": "Atrybut
|
70
|
-
"help": "
|
85
|
+
"description": "Atrybut role=\"text\" jest używany dla elementów, które nie mają potomków przyjmujących fokus",
|
86
|
+
"help": "Element z atrybutem role=\"text\" nie może mieć potomków przyjmujących fokus."
|
71
87
|
},
|
72
88
|
"aria-toggle-field-name": {
|
73
|
-
"description": "Każdy
|
74
|
-
"help": "Przełączniki (toggle)
|
89
|
+
"description": "Każdy element ARIA toggle (przełącznik) ma dostępną nazwę.",
|
90
|
+
"help": "Przełączniki ARIA (toggle) muszą mieć dostępną nazwę."
|
75
91
|
},
|
76
92
|
"aria-tooltip-name": {
|
77
|
-
"description": "
|
78
|
-
"help": "Podpowiedzi (tooltip)
|
93
|
+
"description": "Każdy element ARIA tooltip (podpowiedź) ma dostępną nazwę.",
|
94
|
+
"help": "Podpowiedzi ARIA (tooltip) muszą mieć dostępną nazwę."
|
79
95
|
},
|
80
96
|
"aria-treeitem-name": {
|
81
|
-
"description": "Każdy
|
82
|
-
"help": "Węzły drzewa elementów ARIA muszą mieć dostępną nazwę."
|
97
|
+
"description": "Każdy element ARIA treeitem (węzeł drzewa) ma dostępną nazwę.",
|
98
|
+
"help": "Węzły drzewa elementów ARIA (treeitem) muszą mieć dostępną nazwę."
|
83
99
|
},
|
84
100
|
"aria-valid-attr-value": {
|
85
101
|
"description": "Wszystkie atrybuty ARIA mają poprawne wartości.",
|
86
102
|
"help": "Atrybuty ARIA muszą mieć poprawne wartości."
|
87
103
|
},
|
88
104
|
"aria-valid-attr": {
|
89
|
-
"description": "
|
90
|
-
"help": "Atrybuty ARIA muszą
|
105
|
+
"description": "Wszystkie atrybuty aria-* mają poprawne nazwy.",
|
106
|
+
"help": "Atrybuty ARIA muszą mieć poprawne nazwy."
|
91
107
|
},
|
92
108
|
"audio-caption": {
|
93
109
|
"description": "Elementy <audio> mają napisy rozszerzone.",
|
94
110
|
"help": "Elementy <audio> muszą mieć ścieżkę z napisami."
|
95
111
|
},
|
96
112
|
"autocomplete-valid": {
|
97
|
-
"description": "
|
113
|
+
"description": "Pola formularza, które zbierają dane osobowe, mają poprawne atrybuty autocomplete",
|
98
114
|
"help": "Atrybut autocomplete musi być użyty poprawnie."
|
99
115
|
},
|
100
116
|
"avoid-inline-spacing": {
|
101
|
-
"description": "Odstępy w tekście
|
117
|
+
"description": "Odstępy w tekście można regulować za pomocą własnych arkuszy stylów.",
|
102
118
|
"help": "Odstępy w tekście muszą być regulowane za pomocą własnych arkuszy stylów."
|
103
119
|
},
|
104
120
|
"blink": {
|
@@ -106,21 +122,21 @@
|
|
106
122
|
"help": "Elementy <blink> są przestarzałe i nie mogą być używane."
|
107
123
|
},
|
108
124
|
"button-name": {
|
109
|
-
"description": "
|
110
|
-
"help": "Przyciski muszą mieć odróżniający je tekst."
|
125
|
+
"description": "Każdy przycisk ma odróżniającą go dostępną nazwę.",
|
126
|
+
"help": "Przyciski muszą mieć odróżniający je tekst nazwy."
|
111
127
|
},
|
112
128
|
"bypass": {
|
113
129
|
"description": "Każda strona ma co najmniej jeden mechanizm, który pozwala ominąć nawigację i przejść od razu do treści.",
|
114
|
-
"help": "Strona musi mieć środki do ominięcia powtarzających
|
130
|
+
"help": "Strona musi mieć środki do ominięcia powtarzających bloków treści."
|
131
|
+
},
|
132
|
+
"color-contrast-enhanced": {
|
133
|
+
"description": "Kontrast między kolorami pierwszego planu i tła spełnia wyższe progi współczynnika kontrastu WCAG 2 AAA.",
|
134
|
+
"help": "Elementy muszą spełniać wyższe progi współczynnika kontrastu kolorów"
|
115
135
|
},
|
116
136
|
"color-contrast": {
|
117
137
|
"description": "Kontrast między kolorami pierwszego planu i tła spełnia progi kontrastu WCAG 2 AA.",
|
118
138
|
"help": "Elementy muszą mieć wystarczający kontrast kolorów."
|
119
139
|
},
|
120
|
-
"color-contrast-enhanced": {
|
121
|
-
"description": "Kontrast między kolorami pierwszego planu i tła spełnia progi kontrastu WCAG 2 AAA.",
|
122
|
-
"help": "Elementy muszą mieć wystarczający kontrast kolorów."
|
123
|
-
},
|
124
140
|
"css-orientation-lock": {
|
125
141
|
"description": "Treść nie jest przypisana do żadnej konkretnej orientacji wyświetlacza i można ją obsługiwać we wszystkich orientacjach wyświetlacza.",
|
126
142
|
"help": "Zapytania medialne nie są wykorzystywane do blokowania orientacji wyświetlacza."
|
@@ -139,7 +155,7 @@
|
|
139
155
|
},
|
140
156
|
"duplicate-id-active": {
|
141
157
|
"description": "Wartość każdego atrybutu id aktywnych elementów jest unikalna.",
|
142
|
-
"help": "ID aktywnych elementów muszą być unikalne."
|
158
|
+
"help": "ID aktywnych elementów, które otrzymują fokus, muszą być unikalne."
|
143
159
|
},
|
144
160
|
"duplicate-id-aria": {
|
145
161
|
"description": "Każdy atrybut id używany w ARIA i w etykietach jest unikalny.",
|
@@ -162,31 +178,31 @@
|
|
162
178
|
"help": "Elementy w porządku otrzymywania fokusu muszą mieć rolę odpowiednią dla treści interaktywnych."
|
163
179
|
},
|
164
180
|
"form-field-multiple-labels": {
|
165
|
-
"description": "
|
166
|
-
"help": "Pole formularza nie
|
181
|
+
"description": "Żadne pole formularza nie ma wielu etykiet (elementów label).",
|
182
|
+
"help": "Pole formularza nie może mieć wielu elementów label."
|
167
183
|
},
|
168
184
|
"frame-focusable-content": {
|
169
|
-
"description": "Elementy <frame> i <iframe> z treścią przyjmującą fokus nie mają tabindex=-1",
|
170
|
-
"help": "Ramki z treścią przyjmującą fokus nie mogą mieć tabindex=-1"
|
185
|
+
"description": "Elementy <frame> i <iframe> z treścią przyjmującą fokus nie mają tabindex=-1.",
|
186
|
+
"help": "Ramki z treścią przyjmującą fokus nie mogą mieć tabindex=-1."
|
171
187
|
},
|
172
188
|
"frame-tested": {
|
173
189
|
"description": "Elementy <iframe> i <frame> muszą być testowane ze skryptem axe-core.",
|
174
190
|
"help": "Ramki muszą być testowane ze skryptem axe-core."
|
175
191
|
},
|
176
192
|
"frame-title-unique": {
|
177
|
-
"description": "Elementy <
|
178
|
-
"help": "Ramki
|
193
|
+
"description": "Elementy <iframe> i <frame> mają unikalny atrybut title.",
|
194
|
+
"help": "Ramki muszą mieć unikalny atrybut title."
|
179
195
|
},
|
180
196
|
"frame-title": {
|
181
197
|
"description": "Elementy <iframe> i <frame> mają niepusty atrybut title.",
|
182
|
-
"help": "Ramki muszą mieć atrybut title."
|
198
|
+
"help": "Ramki muszą mieć niepusty atrybut title."
|
183
199
|
},
|
184
200
|
"heading-order": {
|
185
201
|
"description": "Kolejność nagłówków jest semantycznie poprawna.",
|
186
202
|
"help": "Poziomy nagłówków powinny wzrastać tylko o jeden."
|
187
203
|
},
|
188
204
|
"hidden-content": {
|
189
|
-
"description": "
|
205
|
+
"description": "Na stronie są ukryte treści.",
|
190
206
|
"help": "Ukrytych treści na stronie nie można analizować."
|
191
207
|
},
|
192
208
|
"html-has-lang": {
|
@@ -211,7 +227,7 @@
|
|
211
227
|
},
|
212
228
|
"image-redundant-alt": {
|
213
229
|
"description": "Tekst alternatywny obrazu nie jest powtarzany w tekście.",
|
214
|
-
"help": "
|
230
|
+
"help": "Tekst alternatywny obrazów nie powinien być powtarzany w tekście."
|
215
231
|
},
|
216
232
|
"input-button-name": {
|
217
233
|
"description": "Przyciski input type=button mają odróżniający je tekst.",
|
@@ -238,7 +254,7 @@
|
|
238
254
|
"help": "Punkt orientacyjny banner nie może być zawarty wewnątrz innego obszaru kluczowego."
|
239
255
|
},
|
240
256
|
"landmark-complementary-is-top-level": {
|
241
|
-
"description": "
|
257
|
+
"description": "Obszary aside lub z role=complementary są obszarami kluczowymi najwyższego poziomu.",
|
242
258
|
"help": "Punkt orientacyjny complementary nie może być zawarty wewnątrz innego obszaru kluczowego."
|
243
259
|
},
|
244
260
|
"landmark-contentinfo-is-top-level": {
|
@@ -266,12 +282,12 @@
|
|
266
282
|
"help": "Dokument może mieć tylko jeden obszar kluczowy main."
|
267
283
|
},
|
268
284
|
"landmark-unique": {
|
269
|
-
"help": "Punkty orientacyjne
|
270
|
-
"description": "Punkty orientacyjne (obszary kluczowe)
|
285
|
+
"help": "Punkty orientacyjne są unikalne",
|
286
|
+
"description": "Punkty orientacyjne (obszary kluczowe) mają unikalną rolę lub kombinację roli/etykiety/tytułu (tj. dostępną nazwę)."
|
271
287
|
},
|
272
288
|
"link-in-text-block": {
|
273
289
|
"description": "Łącza można rozróżniać bez opierania się na kolorze.",
|
274
|
-
"help": "Łącza muszą być odróżnialne od
|
290
|
+
"help": "Łącza muszą być odróżnialne od sąsiadującego tekstu w sposób, który nie opiera się na kolorze."
|
275
291
|
},
|
276
292
|
"link-name": {
|
277
293
|
"description": "Łącza mają odróżniający je tekst.",
|
@@ -289,9 +305,13 @@
|
|
289
305
|
"description": "Elementy <marquee> nie są używane.",
|
290
306
|
"help": "Elementy <marquee> są przestarzałe i nie mogą być używane."
|
291
307
|
},
|
308
|
+
"meta-refresh-no-exceptions": {
|
309
|
+
"description": "Upewnij się, że <meta http-equiv=\"refresh\"> nie jest używany do opóźnionego odświeżania",
|
310
|
+
"help": "Nie wolno stosować opóźnionego odświeżania"
|
311
|
+
},
|
292
312
|
"meta-refresh": {
|
293
|
-
"description": "<meta http-equiv=\"refresh\"> nie jest
|
294
|
-
"help": "
|
313
|
+
"description": "Znacznik <meta http-equiv=\"refresh\"> nie jest używany do opóźnionego odświeżania.",
|
314
|
+
"help": "Opóźnione odświeżanie poniżej 20 godzin nie może być stosowane."
|
295
315
|
},
|
296
316
|
"meta-viewport-large": {
|
297
317
|
"description": "Element <meta name=\"viewport\"> umożliwia znaczne powiększanie.",
|
@@ -302,36 +322,36 @@
|
|
302
322
|
"help": "Powiększanie i skalowanie nie może być wyłączone."
|
303
323
|
},
|
304
324
|
"nested-interactive": {
|
305
|
-
"description": "
|
306
|
-
"help": "
|
325
|
+
"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.",
|
326
|
+
"help": "Kontrolki interaktywne nie mogą być zagnieżdżone"
|
307
327
|
},
|
308
328
|
"no-autoplay-audio": {
|
309
|
-
"description": "Elementy <video> lub <audio> nie odtwarzają automatycznie przez dłużej niż 3 sekundy
|
329
|
+
"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.",
|
310
330
|
"help": "Elementy <video> lub <audio> nie odtwarzają dźwięku automatycznie."
|
311
331
|
},
|
312
332
|
"object-alt": {
|
313
|
-
"description": "Elementy <object> mają tekst
|
314
|
-
"help": "Elementy <object> muszą mieć
|
333
|
+
"description": "Elementy <object> mają tekst zastępczy.",
|
334
|
+
"help": "Elementy <object> muszą mieć alternatywę tekstową."
|
315
335
|
},
|
316
336
|
"p-as-heading": {
|
317
|
-
"description": "
|
318
|
-
"help": "
|
337
|
+
"description": "Pogrubienie, kursywa i rozmiar czcionki nie są używane do stylizacji elementów <p> jako nagłówków.",
|
338
|
+
"help": "Stylizowane elementy <p> nie mogą być używane jako nagłówki."
|
319
339
|
},
|
320
340
|
"page-has-heading-one": {
|
321
|
-
"description": "Strona
|
341
|
+
"description": "Strona lub co najmniej jedna z jej ramek, zawiera nagłówek pierwszego poziomu.",
|
322
342
|
"help": "Strona musi zawierać nagłówek poziomu 1."
|
323
343
|
},
|
324
344
|
"presentation-role-conflict": {
|
325
|
-
"description": "Elementy
|
326
|
-
"help": "
|
345
|
+
"description": "Elementy oznaczone jako prezentacyjne nie powinny mieć globalnego ARIA ani tabindex, aby zapewnić, że wszystkie czytniki ekranu je zignorują.",
|
346
|
+
"help": "Upewnij się, że elementy oznaczone jako prezentacyjne są konsekwentnie ignorowane."
|
327
347
|
},
|
328
348
|
"region": {
|
329
349
|
"description": "Cała treść strony jest objęta przez punkty orientacyjne.",
|
330
350
|
"help": "Cała treść strony musi być zawarta w obszarach kluczowych."
|
331
351
|
},
|
332
352
|
"role-img-alt": {
|
333
|
-
"description": "Elementy z [role
|
334
|
-
"help": "Elementy z [role
|
353
|
+
"description": "Elementy z [role='img'] mają tekst alternatywny.",
|
354
|
+
"help": "Elementy z [role='img'] muszą mieć tekst alternatywny."
|
335
355
|
},
|
336
356
|
"scope-attr-valid": {
|
337
357
|
"description": "Atrybut scope w tabelach jest stosowany poprawnie.",
|
@@ -354,32 +374,36 @@
|
|
354
374
|
"help": "Cel łącza pomijającego powinien istnieć i przyjmować fokus."
|
355
375
|
},
|
356
376
|
"svg-img-alt": {
|
357
|
-
"description": "Elementy svg z
|
358
|
-
"help": "Elementy svg z rolą img
|
377
|
+
"description": "Elementy <svg> z rolą img, graphics-document lub graphics-symbol mają dostępny tekst.",
|
378
|
+
"help": "Elementy svg z rolą img muszą mieć tekst alternatywny."
|
359
379
|
},
|
360
380
|
"tabindex": {
|
361
381
|
"description": "Wartości atrybutów tabindex nie są większe niż 0.",
|
362
382
|
"help": "Elementy nie powinny mieć wartości tabindex większej niż zero."
|
363
383
|
},
|
364
384
|
"table-duplicate-name": {
|
365
|
-
"description": "
|
385
|
+
"description": "Podpis tabeli (element <caption>) nie może zawierać takiego samego tekstu co atrybut summary.",
|
366
386
|
"help": "Atrybut summary w tabeli ma inny tekst niż element caption."
|
367
387
|
},
|
368
388
|
"table-fake-caption": {
|
369
389
|
"description": "Tabele używają jako podpisu elementu <caption>.",
|
370
|
-
"help": "Komórki danych i nagłówkowe w tabeli danych nie są używane do umieszczania
|
390
|
+
"help": "Komórki danych i nagłówkowe w tabeli danych nie są używane do umieszczania podpisu tabeli."
|
391
|
+
},
|
392
|
+
"target-size": {
|
393
|
+
"description": "Sprawdź, czy cel dotykowy ma wystarczający rozmiar i przestrzeń wokół.",
|
394
|
+
"help": "Wszystkie cele dotykowe muszą mieć rozmiar 24px lub pozostawiać wystarczającą ilość miejsca wokół."
|
371
395
|
},
|
372
396
|
"td-has-header": {
|
373
|
-
"description": "
|
374
|
-
"help": "
|
397
|
+
"description": "Wszystkie niepuste komórki danych w tabelach danych większych niż 3 na 3 mają jeden lub więcej nagłówków tabeli.",
|
398
|
+
"help": "Każdy niepusty element <td> w dużej tabeli musi mieć powiązany nagłówek tabeli"
|
375
399
|
},
|
376
400
|
"td-headers-attr": {
|
377
401
|
"description": "Każda komórka tabeli używająca atrybutu headers odwołuje się do innej komórki w tej tabeli.",
|
378
402
|
"help": "Wszystkie komórki z atrybutem headers odnoszą się tylko do innych komórek tej samej tabeli."
|
379
403
|
},
|
380
404
|
"th-has-data-cells": {
|
381
|
-
"description": "
|
382
|
-
"help": "
|
405
|
+
"description": "Wszystkie elementy th i elementy z role=columnheader/rowheader mają komórki danych, które opisują.",
|
406
|
+
"help": "Każdy nagłówek tabeli w tabeli danych musi odnosić się do komórek danych."
|
383
407
|
},
|
384
408
|
"valid-lang": {
|
385
409
|
"description": "Atrybuty lang mają poprawne wartości.",
|
@@ -403,7 +427,8 @@
|
|
403
427
|
"fail": {
|
404
428
|
"singular": "Atrybut ARIA nie jest dozwolony: ${data.values}.",
|
405
429
|
"plural": ": Atrybuty ARIA nie są dozwolone: ${data.values}."
|
406
|
-
}
|
430
|
+
},
|
431
|
+
"incomplete": "Sprawdź, czy nie ma problemu, jeśli atrybut ARIA jest ignorowany w tym elemencie: ${data.values}"
|
407
432
|
},
|
408
433
|
"aria-allowed-role": {
|
409
434
|
"pass": "Rola ARIA jest dozwolona dla danego elementu.",
|
@@ -416,25 +441,53 @@
|
|
416
441
|
"plural": ": Role ARIA ${data.values} muszą być usunięte, gdy element jest widoczny, ponieważ nie są one dozwolone dla elementu."
|
417
442
|
}
|
418
443
|
},
|
444
|
+
"aria-busy": {
|
445
|
+
"pass": "Element ma atrybut aria-busy",
|
446
|
+
"fail": "Element używa aria-busy=\"true\" podczas pokazywania ładowania"
|
447
|
+
},
|
448
|
+
"aria-conditional-attr": {
|
449
|
+
"pass": "Atrybut ARIA jest dozwolony",
|
450
|
+
"fail": {
|
451
|
+
"checkbox": "Usuń aria-checked lub ustaw jego wartość na \"${data.checkState}\", aby dopasować ją do rzeczywistego stanu pola wyboru.",
|
452
|
+
"rowSingular": "Ten atrybut jest obsługiwany przez wiersze siatki, ale nie przez ${data.ownerRole}: ${data.invalidAttrs}",
|
453
|
+
"rowPlural": "Te atrybuty są obsługiwane przez wiersze siatki, ale nie przez ${data.ownerRole}: ${data.invalidAttrs}"
|
454
|
+
}
|
455
|
+
},
|
419
456
|
"aria-errormessage": {
|
420
457
|
"pass": "Istnieje aria-errormessage oraz elementy referencyjne widoczne dla czytników ekranowych, które wykorzystują wspieraną technikę aria-errormessage.",
|
421
458
|
"fail": {
|
422
|
-
"singular": "Wartość aria-errormessage
|
423
|
-
"plural": "Wartości aria-errormessage
|
459
|
+
"singular": "Wartość aria-errormessage ${data.values} musi używać techniki ogłoszenia wiadomości (np. aria-live, aria-describedby, role=alert, etc.).",
|
460
|
+
"plural": "Wartości aria-errormessage ${data.values} muszą używać techniki ogłoszenia wiadomości (np. aria-live, aria-describedby, role=alert, etc.).",
|
461
|
+
"hidden": "Wartość aria-errormessage ${data.values} nie może odwoływać się do ukrytego elementu."
|
424
462
|
},
|
425
463
|
"incomplete": {
|
426
|
-
"singular": "Upewnij się, że wartość aria-errormessage
|
427
|
-
"plural": "Upewnij się, że wartości aria-errormessage
|
464
|
+
"singular": "Upewnij się, że wartość aria-errormessage ${data.values} odnosi się do istniejącego elementu.",
|
465
|
+
"plural": "Upewnij się, że wartości aria-errormessage ${data.values} odnoszą się do istniejących elementów.",
|
466
|
+
"idrefs": "Nie można określić, czy na stronie istnieje element aria-errormessage: ${data.values}"
|
428
467
|
}
|
429
468
|
},
|
430
469
|
"aria-hidden-body": {
|
431
|
-
"pass": "Nie ma żadnego atrybutu aria-hidden w elemencie
|
432
|
-
"fail": "
|
470
|
+
"pass": "Nie ma żadnego atrybutu aria-hidden w elemencie body dokumentu.",
|
471
|
+
"fail": "Atrybut aria-hidden=true nie może być użyty w elemencie body dokumentu."
|
472
|
+
},
|
473
|
+
"aria-level": {
|
474
|
+
"pass": "Wartość aria-level jest poprawna",
|
475
|
+
"incomplete": "Wartości aria-level większe niż 6 nie są obsługiwane we wszystkich kombinacjach czytników ekranu i przeglądarek"
|
433
476
|
},
|
434
477
|
"aria-prohibited-attr": {
|
435
478
|
"pass": "Atrybut ARIA jest dozwolony",
|
436
|
-
"fail":
|
437
|
-
|
479
|
+
"fail": {
|
480
|
+
"hasRolePlural": "Atrybuty ${data.prohibited} nie mogą być używane z rolą \"${data.role}\".",
|
481
|
+
"hasRoleSingular": "Atrybut ${data.prohibited} nie może być użyty z rolą \"${data.role}\".",
|
482
|
+
"noRolePlural": "Atrybuty ${data.prohibited} nie mogą być używane w ${data.nodeName} bez poprawnego atrybutu roli.",
|
483
|
+
"noRoleSingular": "Atrybut ${data.prohibited} nie może być użyty w ${data.nodeName} bez poprawnego atrybutu roli."
|
484
|
+
},
|
485
|
+
"incomplete": {
|
486
|
+
"hasRoleSingular": "Atrybut ${data.prohibited} nie jest dobrze obsługiwany przez rolę \"${data.role}\".",
|
487
|
+
"hasRolePlural": "Atrybuty ${data.prohibited} nie są dobrze obsługiwane przez role \"${data.role}\".",
|
488
|
+
"noRoleSingular": "Atrybut ${data.prohibited} nie jest dobrze obsługiwany przez ${data.nodeName} bez poprawnego atrybutu roli.",
|
489
|
+
"noRolePlural": "Atrybuty ${data.prohibited} nie są dobrze obsługiwane przez ${data.nodeName} bez poprawnego atrybutu roli."
|
490
|
+
}
|
438
491
|
},
|
439
492
|
"aria-required-attr": {
|
440
493
|
"pass": "Wszystkie wymagane atrybuty ARIA istnieją.",
|
@@ -447,7 +500,8 @@
|
|
447
500
|
"pass": "Wymagane dzieci ARIA istnieją.",
|
448
501
|
"fail": {
|
449
502
|
"singular": "Wymagana rola dziecka ARIA nie istnieje: ${data.values}.",
|
450
|
-
"plural": "Wymagane role dzieci ARIA nie istnieją: ${data.values
|
503
|
+
"plural": "Wymagane role dzieci ARIA nie istnieją: ${data.values",
|
504
|
+
"unallowed": "Element ma dzieci, które nie są dozwolone: ${data.values}"
|
451
505
|
},
|
452
506
|
"incomplete": {
|
453
507
|
"singular": "Należy dodać oczekiwaną rolę dziecka ARIA: ${data.values}.",
|
@@ -473,12 +527,15 @@
|
|
473
527
|
"aria-valid-attr-value": {
|
474
528
|
"pass": "Wartości atrybutu ARIA są poprawne.",
|
475
529
|
"fail": {
|
476
|
-
"singular": "Niepoprawna wartość atrybutu ARIA: ${data.values}
|
477
|
-
"plural": "Niepoprawne wartości atrybutu ARIA: ${data.values}
|
530
|
+
"singular": "Niepoprawna wartość atrybutu ARIA: ${data.values}",
|
531
|
+
"plural": "Niepoprawne wartości atrybutu ARIA: ${data.values}"
|
478
532
|
},
|
479
533
|
"incomplete": {
|
480
|
-
"noId": "Identyfikator elementu atrybutu ARIA nie istnieje na stronie: ${data.needsReview}
|
481
|
-
"
|
534
|
+
"noId": "Identyfikator elementu atrybutu ARIA nie istnieje na stronie: ${data.needsReview}",
|
535
|
+
"noIdShadow": "ID elementu atrybutu ARIA nie istnieje na stronie lub jest potomkiem innego drzewa shadow DOM: ${data.needsReview}",
|
536
|
+
"ariaCurrent": "Wartość atrybutu ARIA jest niepoprawna i będzie traktowana jako \"aria-current=true\": ${data.needsReview}",
|
537
|
+
"idrefs": "Nie można określić, czy atrybut ARIA element ID istnieje na stronie: ${data.needsReview}",
|
538
|
+
"empty": "Wartość atrybutu ARIA jest ignorowana, gdy jest pusty: ${data.needsReview}"
|
482
539
|
}
|
483
540
|
},
|
484
541
|
"aria-valid-attr": {
|
@@ -488,9 +545,26 @@
|
|
488
545
|
"plural": "Niepoprawne nazwy atrybutów ARIA: ${data.values}."
|
489
546
|
}
|
490
547
|
},
|
548
|
+
"braille-label-equivalent": {
|
549
|
+
"pass": "Atrybut aria-braillelabel jest użyty w elemencie z dostępnym tekstem.",
|
550
|
+
"fail": "Atrybut aria-braillelabel jest użyty w elemencie, który nie ma dostępnego tekstu.",
|
551
|
+
"incomplete": "Nie można wyliczyć dostępnego tekstu."
|
552
|
+
},
|
553
|
+
"braille-roledescription-equivalent": {
|
554
|
+
"pass": "Atrybut aria-brailleroledescription nie jest używany w elemencie, który nie ma dostępnego tekstu.",
|
555
|
+
"fail": {
|
556
|
+
"noRoleDescription": "Atrybut aria-brailleroledescription jest użyty w elemencie bez atrybutu aria-roledescription.",
|
557
|
+
"emptyRoleDescription": "Atrybut aria-brailleroledescription jest użyty w elemencie z pustym atrybutem aria-roledescription."
|
558
|
+
}
|
559
|
+
},
|
560
|
+
"deprecatedrole": {
|
561
|
+
"pass": "Rola ARIA nie jest przestarzała",
|
562
|
+
"fail": "Użyta rola jest przestarzała: ${data}"
|
563
|
+
},
|
491
564
|
"fallbackrole": {
|
492
565
|
"pass": "Użyto tylko jednej wartości roli.",
|
493
|
-
"fail": "Użyj tylko jednej wartości roli, ponieważ role rezerwowe nie są obsługiwane w starszych przeglądarkach."
|
566
|
+
"fail": "Użyj tylko jednej wartości roli, ponieważ role rezerwowe nie są obsługiwane w starszych przeglądarkach.",
|
567
|
+
"incomplete": "Używaj tylko roli 'presentation' lub 'none', ponieważ są one synonimami."
|
494
568
|
},
|
495
569
|
"has-global-aria-attribute": {
|
496
570
|
"pass": {
|
@@ -515,8 +589,8 @@
|
|
515
589
|
"fail": "Element nie przyjmuje fokusu."
|
516
590
|
},
|
517
591
|
"no-implicit-explicit-label": {
|
518
|
-
"pass": "Nie ma rozbieżności między
|
519
|
-
"incomplete": "Sprawdź, czy
|
592
|
+
"pass": "Nie ma rozbieżności między label a dostępną nazwą.",
|
593
|
+
"incomplete": "Sprawdź, czy label nie musi być częścią nazwy pola ARIA ${data}."
|
520
594
|
},
|
521
595
|
"unsupportedrole": {
|
522
596
|
"pass": "Rola ARIA jest obsługiwana.",
|
@@ -526,9 +600,13 @@
|
|
526
600
|
"pass": "Element w porządku otrzymywania fokusu ma poprawną semantykę.",
|
527
601
|
"fail": "Element w porządku otrzymywania fokusu ma niepoprawną semantykę."
|
528
602
|
},
|
529
|
-
"color-contrast": {
|
530
|
-
"pass": "Element ma wystarczający kontrast kolorów ${data.contrastRatio}
|
531
|
-
"fail":
|
603
|
+
"color-contrast-enhanced": {
|
604
|
+
"pass": "Element ma wystarczający kontrast kolorów ${data.contrastRatio}",
|
605
|
+
"fail": {
|
606
|
+
"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}",
|
607
|
+
"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}",
|
608
|
+
"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}"
|
609
|
+
},
|
532
610
|
"incomplete": {
|
533
611
|
"default": "Nie można określić współczynnika kontrastu.",
|
534
612
|
"bgImage": "Nie można określić koloru tła elementu, ponieważ element ma obraz tła.",
|
@@ -545,9 +623,16 @@
|
|
545
623
|
"pseudoContent": "Nie można określić koloru tła elementu, ponieważ jest to pseudoelement."
|
546
624
|
}
|
547
625
|
},
|
548
|
-
"color-contrast
|
549
|
-
"pass":
|
550
|
-
|
626
|
+
"color-contrast": {
|
627
|
+
"pass": {
|
628
|
+
"default": "Element ma wystarczający kontrast kolorów ${data.contrastRatio}",
|
629
|
+
"hidden": "Element jest ukryty"
|
630
|
+
},
|
631
|
+
"fail": {
|
632
|
+
"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}",
|
633
|
+
"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}",
|
634
|
+
"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}"
|
635
|
+
},
|
551
636
|
"incomplete": {
|
552
637
|
"default": "Nie można określić współczynnika kontrastu.",
|
553
638
|
"bgImage": "Nie można określić koloru tła elementu, ponieważ element ma obraz tła.",
|
@@ -564,9 +649,20 @@
|
|
564
649
|
"pseudoContent": "Nie można określić koloru tła elementu, ponieważ jest to pseudoelement."
|
565
650
|
}
|
566
651
|
},
|
652
|
+
"link-in-text-block-style": {
|
653
|
+
"pass": "Łącza mogą być odróżnione od sąsiadującego tekstu poprzez wizualną stylizację",
|
654
|
+
"incomplete": {
|
655
|
+
"default": "Sprawdź, czy łącze wymaga stylizacji, aby odróżnić je od sąsiadującego tekstu.",
|
656
|
+
"pseudoContent": "Sprawdź, czy pseudostyl łącza jest wystarczający, aby odróżnić je od sąsiadującego tekstu."
|
657
|
+
},
|
658
|
+
"fail": "Łącze nie ma żadnej stylizacji (np. podkreślenia), która odróżniałaby je od sąsiadującego tekstu"
|
659
|
+
},
|
567
660
|
"link-in-text-block": {
|
568
|
-
"pass": "Łącza można odróżnić od
|
569
|
-
"fail":
|
661
|
+
"pass": "Łącza można odróżnić od sąsiadującego tekstu w inny sposób niż za pomocą koloru.",
|
662
|
+
"fail": {
|
663
|
+
"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})",
|
664
|
+
"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})"
|
665
|
+
},
|
570
666
|
"incomplete": {
|
571
667
|
"default": "Nie można określić współczynnika kontrastu.",
|
572
668
|
"bgContrast": "Nie można określić współczynnika kontrastu elementu. Sprawdź, czy nie ma odrębnego stylu stanów hover/fokus.",
|
@@ -577,8 +673,8 @@
|
|
577
673
|
}
|
578
674
|
},
|
579
675
|
"autocomplete-appropriate": {
|
580
|
-
"pass": "Wartość autocomplete jest odpowiednia dla tego typu pola
|
581
|
-
"fail": "Wartość autocomplete jest niewłaściwa dla tego typu pola
|
676
|
+
"pass": "Wartość autocomplete jest odpowiednia dla tego typu pola formularza.",
|
677
|
+
"fail": "Wartość autocomplete jest niewłaściwa dla tego typu pola formularza."
|
582
678
|
},
|
583
679
|
"autocomplete-valid": {
|
584
680
|
"pass": "Atrybut autocomplete jest sformatowany poprawnie.",
|
@@ -594,6 +690,7 @@
|
|
594
690
|
},
|
595
691
|
"focusable-disabled": {
|
596
692
|
"pass": "W elemencie nie ma elementów przyjmujących fokus.",
|
693
|
+
"incomplete": "Sprawdź, czy elementy, na których można ustawić fokus, natychmiast otrzymują wskaźnik fokusu",
|
597
694
|
"fail": "Treść z możliwością ustawiania fokusu powinna być wyłączona lub usunięta z DOM."
|
598
695
|
},
|
599
696
|
"focusable-element": {
|
@@ -611,6 +708,7 @@
|
|
611
708
|
},
|
612
709
|
"focusable-not-tabbable": {
|
613
710
|
"pass": "Nie ma elementów przyjmujących fokus wewnątrz elementu.",
|
711
|
+
"incomplete": "Sprawdź, czy elementy, na których można ustawić fokus, natychmiast otrzymują wskaźnik fokusu",
|
614
712
|
"fail": "Treść przyjmująca fokus powinna mieć tabindex=-1 lub być usunięta z DOM."
|
615
713
|
},
|
616
714
|
"frame-focusable-content": {
|
@@ -624,7 +722,10 @@
|
|
624
722
|
},
|
625
723
|
"no-focusable-content": {
|
626
724
|
"pass": "Element nie ma potomków przyjmujących fokus",
|
627
|
-
"fail":
|
725
|
+
"fail": {
|
726
|
+
"default": "Element ma elementy potomne przyjmujące fokus",
|
727
|
+
"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')"
|
728
|
+
},
|
628
729
|
"incomplete": "Nie można ustalić, czy element ma elementy potomne"
|
629
730
|
},
|
630
731
|
"page-has-heading-one": {
|
@@ -656,35 +757,35 @@
|
|
656
757
|
"fail": "Element ma atrybut alt zawierający tylko znak spacji, który nie przez wszystkie czytniki ekranu jest ignorowany ."
|
657
758
|
},
|
658
759
|
"duplicate-img-label": {
|
659
|
-
"pass": "Element nie powiela tekstu istniejącego w atrybucie alt elementu
|
660
|
-
"fail": "Element powiela tekst istniejący w atrybucie alt elementu
|
760
|
+
"pass": "Element nie powiela tekstu istniejącego w atrybucie alt elementu img.",
|
761
|
+
"fail": "Element powiela tekst istniejący w atrybucie alt elementu img."
|
661
762
|
},
|
662
763
|
"explicit-label": {
|
663
|
-
"pass": "Element formularza ma jawnie określoną
|
664
|
-
"fail": "Element formularza nie ma jawnie określonej
|
665
|
-
"incomplete": "Nie można określić, czy element formularza ma jawnie określoną
|
764
|
+
"pass": "Element formularza ma jawnie określoną label.",
|
765
|
+
"fail": "Element formularza nie ma jawnie określonej label.",
|
766
|
+
"incomplete": "Nie można określić, czy element formularza ma jawnie określoną label."
|
666
767
|
},
|
667
768
|
"help-same-as-label": {
|
668
769
|
"pass": "Tekst pomocy (title lub aria-describedby) nie powiela tekstu etykiety.",
|
669
770
|
"fail": "Tekst pomocy (title lub aria-describedby) jest taki sam jak tekst etykiety."
|
670
771
|
},
|
671
772
|
"hidden-explicit-label": {
|
672
|
-
"pass": "Element formularza ma widoczną jednoznaczną
|
673
|
-
"fail": "Element formularza ma jednoznaczną
|
674
|
-
"incomplete": "Nie można określić, czy element formularza ma
|
773
|
+
"pass": "Element formularza ma widoczną jednoznaczną etykietę label.",
|
774
|
+
"fail": "Element formularza ma jednoznaczną etykietę label, która jest ukryta.",
|
775
|
+
"incomplete": "Nie można określić, czy element formularza ma jawną etykietę (label), gdy jest ukryta."
|
675
776
|
},
|
676
777
|
"implicit-label": {
|
677
|
-
"pass": "Element formularza ma dorozumianą etykietę (jest owinięty w
|
678
|
-
"fail": "Element formularza nie ma dorozumianej etykiety (nie jest owinięty w
|
679
|
-
"incomplete": "Nie można określić, czy element formularza ma dorozumianą etykietę (jest owinięty w
|
778
|
+
"pass": "Element formularza ma dorozumianą etykietę (jest owinięty w label).",
|
779
|
+
"fail": "Element formularza nie ma dorozumianej etykiety (nie jest owinięty w label).",
|
780
|
+
"incomplete": "Nie można określić, czy element formularza ma dorozumianą etykietę (jest owinięty w label)."
|
680
781
|
},
|
681
782
|
"label-content-name-mismatch": {
|
682
783
|
"pass": "Widoczny tekst elementu jest częścią dostępnej nazwy elementu.",
|
683
|
-
"fail": "
|
784
|
+
"fail": "Widoczny tekst wewnątrz elementu nie jest częścią dostępnej nazwy."
|
684
785
|
},
|
685
786
|
"multiple-label": {
|
686
|
-
"pass": "Pole formularza nie ma wielu
|
687
|
-
"incomplete": "Technologie wspomagające nie obsługują wystarczająco dobrze wielu elementów
|
787
|
+
"pass": "Pole formularza nie ma wielu label.",
|
788
|
+
"incomplete": "Technologie wspomagające nie obsługują wystarczająco dobrze wielu elementów label. Upewnij się, że pierwsza etykieta zawiera wszystkie niezbędne informacje."
|
688
789
|
},
|
689
790
|
"title-only": {
|
690
791
|
"pass": "Element formularza nie używa wyłącznie atrybutu title jako swojej etykiety.",
|
@@ -702,7 +803,7 @@
|
|
702
803
|
}
|
703
804
|
},
|
704
805
|
"valid-lang": {
|
705
|
-
"pass": "Wartość atrybutu lang
|
806
|
+
"pass": "Wartość atrybutu lang jest na liście poprawnych kodów języków.",
|
706
807
|
"fail": "Wartości atrybutu lang nie ma na liście poprawnych kodów języków."
|
707
808
|
},
|
708
809
|
"xml-lang-mismatch": {
|
@@ -710,30 +811,27 @@
|
|
710
811
|
"fail": "Atrybuty lang i xml:lang nie mają tego samego języka podstawowego."
|
711
812
|
},
|
712
813
|
"dlitem": {
|
713
|
-
"pass": "Element listy opisowej ma element nadrzędny
|
714
|
-
"fail": "Pozycja listy opisowej nie ma elementu nadrzędnego
|
814
|
+
"pass": "Element listy opisowej ma element nadrzędny dl.",
|
815
|
+
"fail": "Pozycja listy opisowej nie ma elementu nadrzędnego dl."
|
715
816
|
},
|
716
817
|
"listitem": {
|
717
|
-
"pass": "Element listy ma
|
818
|
+
"pass": "Element listy ma ul, ol lub role=\"list\" jako bezpośredni element rodzicielski.",
|
718
819
|
"fail": {
|
719
|
-
"default": "Element listy nie ma nadrzędnego elementu
|
720
|
-
"roleNotValid": "Element listy nie ma nadrzędnego elementu
|
820
|
+
"default": "Element listy nie ma nadrzędnego elementu ul lub ol.",
|
821
|
+
"roleNotValid": "Element listy nie ma nadrzędnego elementu ul, ol, ani nadrzędnego elementu z role=\"list\"."
|
721
822
|
}
|
722
823
|
},
|
723
824
|
"only-dlitems": {
|
724
|
-
"pass": "Element
|
825
|
+
"pass": "Element dl ma wewnątrz tylko dozwolone jako bezpośrednie elementy potomne (dzieci) elementy dt lub dd.",
|
725
826
|
"fail": "Element listy ma wewnątrz bezpośrednie elementy dzieci, które nie są dozwolone wewnątrz listy opisowej."
|
726
827
|
},
|
727
828
|
"only-listitems": {
|
728
|
-
"pass": "Element lista ma wewnątrz tylko dozwolone jako bezpośrednie elementy potomne (dzieci) elementy
|
729
|
-
"fail": {
|
730
|
-
"default": "Element lista ma niedozwolone bezpośrednie elementy potomne (dzieci), poza elementami <li>.",
|
731
|
-
"roleNotValid": "Element lista ma bezpośrednie elementy potomne (dzieci) z rolą, która nie jest dozwolona: ${data.role}."
|
732
|
-
}
|
829
|
+
"pass": "Element lista ma wewnątrz tylko dozwolone jako bezpośrednie elementy potomne (dzieci) elementy li.",
|
830
|
+
"fail": "Element listy ma bezpośrednie elementy potomne, które nie są dozwolone: ${data.values}"
|
733
831
|
},
|
734
832
|
"structured-dlitems": {
|
735
|
-
"pass": "Gdy elemet
|
736
|
-
"fail": "Element nie jest pusty, ale nie ma co najmniej jednego elementu
|
833
|
+
"pass": "Gdy elemet dl nie jest pusty, ma zarówno elementy dt, jak i dd.",
|
834
|
+
"fail": "Element nie jest pusty, ale nie ma co najmniej jednego elementu dt, po którym następuje co najmniej jeden element dd."
|
737
835
|
},
|
738
836
|
"caption": {
|
739
837
|
"pass": "Element multimedialny ma ścieżkę z napisami rozszerzonymi.",
|
@@ -762,13 +860,38 @@
|
|
762
860
|
"pass": "Znacznik <meta> nie wyłącza powiększania na urządzeniach przenośnych.",
|
763
861
|
"fail": "${data} w znaczniku <meta> wyłącza powiększanie na urządzeniach przenośnych."
|
764
862
|
},
|
863
|
+
"target-offset": {
|
864
|
+
"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)",
|
865
|
+
"fail": "Cel ma niewystarczające odsunięcie od najbliższego sąsiada: (${data.closestOffset}px, które powinno wynosić co najmniej ${data.minOffset}px)",
|
866
|
+
"incomplete": {
|
867
|
+
"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?",
|
868
|
+
"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?"
|
869
|
+
}
|
870
|
+
},
|
871
|
+
"target-size": {
|
872
|
+
"pass": {
|
873
|
+
"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)",
|
874
|
+
"obscured": "Kontrolka jest ignorowana, ponieważ jest całkowicie zasłonięta i nie można jej kliknąć."
|
875
|
+
},
|
876
|
+
"fail": {
|
877
|
+
"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)",
|
878
|
+
"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)"
|
879
|
+
},
|
880
|
+
"incomplete": {
|
881
|
+
"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?",
|
882
|
+
"contentOverflow": "Rozmiar elementu nie mógł być dokładnie określony z powodu przepełnienia zawartości",
|
883
|
+
"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?",
|
884
|
+
"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?"
|
885
|
+
}
|
886
|
+
},
|
765
887
|
"header-present": {
|
766
888
|
"pass": "Strona ma nagłówek.",
|
767
889
|
"fail": "Strona nie ma nagłówka."
|
768
890
|
},
|
769
891
|
"heading-order": {
|
770
892
|
"pass": "Kolejność nagłówków jest poprawna.",
|
771
|
-
"fail": "Kolejność nagłówków jest niepoprawna."
|
893
|
+
"fail": "Kolejność nagłówków jest niepoprawna.",
|
894
|
+
"incomplete": "Nie można określić poprzedniego nagłówka"
|
772
895
|
},
|
773
896
|
"identical-links-same-purpose": {
|
774
897
|
"pass": "Nie ma żadnych innych łączy o tej samej nazwie, które kierują na inny adres URL.",
|
@@ -782,13 +905,18 @@
|
|
782
905
|
"pass": "Strona ma punkt orientacyjny (obszar kluczowy).",
|
783
906
|
"fail": "Strona nie ma żadnego punktu orientacyjnego (obszaru kluczowego)."
|
784
907
|
},
|
908
|
+
"meta-refresh-no-exceptions": {
|
909
|
+
"pass": "Znacznik <meta> nie powoduje natychmiastowego odświeżenia strony",
|
910
|
+
"fail": "Znacznik <meta> tag wymusza czasowe odświeżenie strony"
|
911
|
+
},
|
785
912
|
"meta-refresh": {
|
786
913
|
"pass": "Znacznik <meta> nie odświeża od razu strony.",
|
787
914
|
"fail": "Znacznik <meta> wymusza odświeżenie strony."
|
788
915
|
},
|
789
916
|
"p-as-heading": {
|
790
917
|
"pass": "Elementy <p> nie są stylizowane na nagłówki.",
|
791
|
-
"fail": "Zamiast stylizowanych na nagłówki elementów p muszą być
|
918
|
+
"fail": "Zamiast stylizowanych na nagłówki elementów <p> muszą być użyte nagłówki semantyczne.",
|
919
|
+
"incomplete": "Nie można określić, czy elementy <p> są stylizowane na nagłówki"
|
792
920
|
},
|
793
921
|
"region": {
|
794
922
|
"pass": "Cała treść strony jest zawarta w obszarach kluczowych.",
|
@@ -825,16 +953,16 @@
|
|
825
953
|
"incomplete": "Spowoduj, aby istniał element, do którego istnieje odwołanie w atrybucie aria-labelldeby."
|
826
954
|
},
|
827
955
|
"avoid-inline-spacing": {
|
828
|
-
"pass": "Nie określono żadnych stylów inline z '!important', które wpływają na odstępy w tekście.",
|
956
|
+
"pass": "Nie określono żadnych stylów wewnętrznych (inline) z '!important', które wpływają na odstępy w tekście.",
|
829
957
|
"fail": {
|
830
958
|
"singular": "Usuń dyrektywę '!important' ze stylu inline ${data.values}, ponieważ nadpisywanie tego nie jest obsługiwane przez większość przeglądarek.",
|
831
959
|
"plural": "Usuń dyrektywy '!important' ze stylów inline ${data.values}, ponieważ nadpisywanie tego nie jest obsługiwane przez większość przeglądarek."
|
832
960
|
}
|
833
961
|
},
|
834
962
|
"button-has-visible-text": {
|
835
|
-
"pass": "Element ma tekst wewnętrzny
|
963
|
+
"pass": "Element ma tekst wewnętrzny widoczny dla czytników ekranu.",
|
836
964
|
"fail": "Element nie ma wewnętrznego tekstu, który jest widoczny dla czytników ekranu.",
|
837
|
-
"incomplete": "Nie można określić, czy element ma elementy
|
965
|
+
"incomplete": "Nie można określić, czy element ma elementy potomne."
|
838
966
|
},
|
839
967
|
"doc-has-title": {
|
840
968
|
"pass": "Dokument ma niepusty element <title>.",
|
@@ -853,6 +981,18 @@
|
|
853
981
|
"fail": "Element nie ma tekstu, który jest widoczny dla czytników ekranu.",
|
854
982
|
"incomplete": "Nie można określić, czy element ma elementy dzieci."
|
855
983
|
},
|
984
|
+
"important-letter-spacing": {
|
985
|
+
"pass": "Odstępy między literami (letter-spacing) w atrybucie style nie są ustawione na !important lub spełniają minimum",
|
986
|
+
"fail": "Odstępy między literami w atrybucie style nie mogą używać !important lub muszą mieć ${data.minValue}em (aktualnie: ${data.value}em)"
|
987
|
+
},
|
988
|
+
"important-line-height": {
|
989
|
+
"pass": "Właściwość line-height w atrybucie style nie jest ustawiona na !important lub spełnia minimum.",
|
990
|
+
"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)."
|
991
|
+
},
|
992
|
+
"important-word-spacing": {
|
993
|
+
"pass": "Odstępy miedzy wyrazami (word-spacing) w atrybucie style nie są ustawione na !important lub spełniają minimum",
|
994
|
+
"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)"
|
995
|
+
},
|
856
996
|
"is-on-screen": {
|
857
997
|
"pass": "Element nie jest widoczny.",
|
858
998
|
"fail": "Element jest widoczny."
|
@@ -898,7 +1038,8 @@
|
|
898
1038
|
"default": "Domyślna semantyka elementu nie została nadpisana przez role=\"none\" ani role=\"presentation\".",
|
899
1039
|
"globalAria": "Rola elementu nie jest prezentacyjna, ponieważ ma on ogólny atrybut ARIA.",
|
900
1040
|
"focusable": "Rola elementu nie jest prezentacyjna, ponieważ może on przyjmować fokus.",
|
901
|
-
"both": "Rola elementu nie jest prezentacyjna, ponieważ ma on ogólny atrybut ARIA i może przyjmować fokus."
|
1041
|
+
"both": "Rola elementu nie jest prezentacyjna, ponieważ ma on ogólny atrybut ARIA i może przyjmować fokus.",
|
1042
|
+
"iframe": "Użycie atrybutu \"title\" na elemencie ${data.nodeName} z rolą prezentacyjną zachowuje się niespójnie pomiędzy czytnikami ekranu."
|
902
1043
|
}
|
903
1044
|
},
|
904
1045
|
"role-none": {
|
@@ -913,7 +1054,7 @@
|
|
913
1054
|
"pass": "Element ma dziecko, które jest tytułem.",
|
914
1055
|
"fail": {
|
915
1056
|
"noTitle": "Element nie ma dziecka, które jest tytułem.",
|
916
|
-
"emptyTitle": "
|
1057
|
+
"emptyTitle": "Element title dziecka jest pusty."
|
917
1058
|
},
|
918
1059
|
"incomplete": "Nie można ustalić, czy element ma dziecko, które jest tytułem."
|
919
1060
|
},
|
@@ -927,7 +1068,8 @@
|
|
927
1068
|
},
|
928
1069
|
"same-caption-summary": {
|
929
1070
|
"pass": "Treści atrybutu summary i elementu <caption> nie są powielane.",
|
930
|
-
"fail": "Treści atrybutu summary i elementu <caption> są identyczne."
|
1071
|
+
"fail": "Treści atrybutu summary i elementu <caption> są identyczne.",
|
1072
|
+
"incomplete": "Nie można określić, czy element <table> ma caption"
|
931
1073
|
},
|
932
1074
|
"scope-value": {
|
933
1075
|
"pass": "Atrybut scope ma poprawną wartość.",
|