| 1 | {
|
|---|
| 2 | "lang": "pl",
|
|---|
| 3 | "rules": {
|
|---|
| 4 | "accesskeys": {
|
|---|
| 5 | "description": "Wartość każdego atrybutu accessskey jest unikalna.",
|
|---|
| 6 | "help": "Wartość atrybutu accessskey musi być unikalna."
|
|---|
| 7 | },
|
|---|
| 8 | "area-alt": {
|
|---|
| 9 | "description": "Elementy <area> w graficznych mapach odnośników mają tekst zastępczy.",
|
|---|
| 10 | "help": "Elementy aktywne <area> muszą mieć tekst alternatywny."
|
|---|
| 11 | },
|
|---|
| 12 | "aria-allowed-attr": {
|
|---|
| 13 | "description": "Użyte atrybuty ARIA są dozwolone dla elementu z określoną rolą.",
|
|---|
| 14 | "help": "Elementy mogą używać tylko dozwolonych atrybutów ARIA."
|
|---|
| 15 | },
|
|---|
| 16 | "aria-allowed-role": {
|
|---|
| 17 | "description": "Atrybut role ma odpowiednią wartość dla danego elementu.",
|
|---|
| 18 | "help": "Rola ARIA musi być odpowiednia dla danego elementu."
|
|---|
| 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 | },
|
|---|
| 24 | "aria-command-name": {
|
|---|
| 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."
|
|---|
| 35 | },
|
|---|
| 36 | "aria-dialog-name": {
|
|---|
| 37 | "description": "Każde okno dialogowe ARIA i węzeł alertdialog ma dostępną nazwę.",
|
|---|
| 38 | "help": "Okno dialogowe ARIA i węzły alertdialog muszą mieć dostępną nazwę."
|
|---|
| 39 | },
|
|---|
| 40 | "aria-hidden-body": {
|
|---|
| 41 | "description": "Element body nie ma atrybutu aria-hidden='true'.",
|
|---|
| 42 | "help": "Element body nie może mieć atrybutu aria-hidden='true'."
|
|---|
| 43 | },
|
|---|
| 44 | "aria-hidden-focus": {
|
|---|
| 45 | "description": "Elementy z aria-hidden=true nie mogą obejmować elementów przyjmujących fokus.",
|
|---|
| 46 | "help": "Ukryty element ARIA nie może zawierać elementów przyjmujących fokus."
|
|---|
| 47 | },
|
|---|
| 48 | "aria-input-field-name": {
|
|---|
| 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ę."
|
|---|
| 51 | },
|
|---|
| 52 | "aria-meter-name": {
|
|---|
| 53 | "description": "Każdy element ARIA meter (licznik) ma dostępną nazwę.",
|
|---|
| 54 | "help": "Liczniki ARIA (meter) muszą mieć dostępne nazwy."
|
|---|
| 55 | },
|
|---|
| 56 | "aria-progressbar-name": {
|
|---|
| 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."
|
|---|
| 63 | },
|
|---|
| 64 | "aria-required-attr": {
|
|---|
| 65 | "description": "Elementy z rolą ARIA mają wszystkie wymagane atrybuty aria-*",
|
|---|
| 66 | "help": "Wymagane atrybuty ARIA muszą istnieć."
|
|---|
| 67 | },
|
|---|
| 68 | "aria-required-children": {
|
|---|
| 69 | "description": "Elementy z atrybutem ARIA role, które muszą zawierać elementy potomne z wymaganym atrybutem role, zawierają je.",
|
|---|
| 70 | "help": "Niektóre role ARIA muszą obejmować określone dzieci."
|
|---|
| 71 | },
|
|---|
| 72 | "aria-required-parent": {
|
|---|
| 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."
|
|---|
| 75 | },
|
|---|
| 76 | "aria-roledescription": {
|
|---|
| 77 | "description": "Atrybut aria-roledescription jest używany tylko w elementach, które mają rolę określoną domyślnie lub jawnie.",
|
|---|
| 78 | "help": "Użyj aria-roledescription w elementach o roli semantycznej."
|
|---|
| 79 | },
|
|---|
| 80 | "aria-roles": {
|
|---|
| 81 | "description": "Wartości atrybutu role są poprawne.",
|
|---|
| 82 | "help": "Stosowane role ARIA muszą mieć poprawne wartości."
|
|---|
| 83 | },
|
|---|
| 84 | "aria-text": {
|
|---|
| 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."
|
|---|
| 87 | },
|
|---|
| 88 | "aria-toggle-field-name": {
|
|---|
| 89 | "description": "Każdy element ARIA toggle (przełącznik) ma dostępną nazwę.",
|
|---|
| 90 | "help": "Przełączniki ARIA (toggle) muszą mieć dostępną nazwę."
|
|---|
| 91 | },
|
|---|
| 92 | "aria-tooltip-name": {
|
|---|
| 93 | "description": "Każdy element ARIA tooltip (podpowiedź) ma dostępną nazwę.",
|
|---|
| 94 | "help": "Podpowiedzi ARIA (tooltip) muszą mieć dostępną nazwę."
|
|---|
| 95 | },
|
|---|
| 96 | "aria-treeitem-name": {
|
|---|
| 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ę."
|
|---|
| 99 | },
|
|---|
| 100 | "aria-valid-attr-value": {
|
|---|
| 101 | "description": "Wszystkie atrybuty ARIA mają poprawne wartości.",
|
|---|
| 102 | "help": "Atrybuty ARIA muszą mieć poprawne wartości."
|
|---|
| 103 | },
|
|---|
| 104 | "aria-valid-attr": {
|
|---|
| 105 | "description": "Wszystkie atrybuty aria-* mają poprawne nazwy.",
|
|---|
| 106 | "help": "Atrybuty ARIA muszą mieć poprawne nazwy."
|
|---|
| 107 | },
|
|---|
| 108 | "audio-caption": {
|
|---|
| 109 | "description": "Elementy <audio> mają napisy rozszerzone.",
|
|---|
| 110 | "help": "Elementy <audio> muszą mieć ścieżkę z napisami."
|
|---|
| 111 | },
|
|---|
| 112 | "autocomplete-valid": {
|
|---|
| 113 | "description": "Pola formularza, które zbierają dane osobowe, mają poprawne atrybuty autocomplete",
|
|---|
| 114 | "help": "Atrybut autocomplete musi być użyty poprawnie."
|
|---|
| 115 | },
|
|---|
| 116 | "avoid-inline-spacing": {
|
|---|
| 117 | "description": "Odstępy w tekście można regulować za pomocą własnych arkuszy stylów.",
|
|---|
| 118 | "help": "Odstępy w tekście muszą być regulowane za pomocą własnych arkuszy stylów."
|
|---|
| 119 | },
|
|---|
| 120 | "blink": {
|
|---|
| 121 | "description": "Elementy <blink> nie są używane.",
|
|---|
| 122 | "help": "Elementy <blink> są przestarzałe i nie mogą być używane."
|
|---|
| 123 | },
|
|---|
| 124 | "button-name": {
|
|---|
| 125 | "description": "Każdy przycisk ma odróżniającą go dostępną nazwę.",
|
|---|
| 126 | "help": "Przyciski muszą mieć odróżniający je tekst nazwy."
|
|---|
| 127 | },
|
|---|
| 128 | "bypass": {
|
|---|
| 129 | "description": "Każda strona ma co najmniej jeden mechanizm, który pozwala ominąć nawigację i przejść od razu do treści.",
|
|---|
| 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"
|
|---|
| 135 | },
|
|---|
| 136 | "color-contrast": {
|
|---|
| 137 | "description": "Kontrast między kolorami pierwszego planu i tła spełnia progi kontrastu WCAG 2 AA.",
|
|---|
| 138 | "help": "Elementy muszą mieć wystarczający kontrast kolorów."
|
|---|
| 139 | },
|
|---|
| 140 | "css-orientation-lock": {
|
|---|
| 141 | "description": "Treść nie jest przypisana do żadnej konkretnej orientacji wyświetlacza i można ją obsługiwać we wszystkich orientacjach wyświetlacza.",
|
|---|
| 142 | "help": "Zapytania medialne nie są wykorzystywane do blokowania orientacji wyświetlacza."
|
|---|
| 143 | },
|
|---|
| 144 | "definition-list": {
|
|---|
| 145 | "description": "Elementy <dl> mają poprawną strukturę.",
|
|---|
| 146 | "help": "Elementy <dl> mogą bezpośrednio zawierać tylko odpowiednio uporządkowane grupy <dt> i <dd> oraz elementy <script>, <template> lub <div>."
|
|---|
| 147 | },
|
|---|
| 148 | "dlitem": {
|
|---|
| 149 | "description": "Elementy <dt> i <dd> znajdują się bezpośrednio w <dl>.",
|
|---|
| 150 | "help": "Elementy <dt> i <dd> są wewnątrz elementu <dl>."
|
|---|
| 151 | },
|
|---|
| 152 | "document-title": {
|
|---|
| 153 | "description": "Każdy dokument HTML ma niepusty element <title>.",
|
|---|
| 154 | "help": "Dokumenty muszą mieć element <title> pomagający w nawigacji."
|
|---|
| 155 | },
|
|---|
| 156 | "duplicate-id-active": {
|
|---|
| 157 | "description": "Wartość każdego atrybutu id aktywnych elementów jest unikalna.",
|
|---|
| 158 | "help": "ID aktywnych elementów, które otrzymują fokus, muszą być unikalne."
|
|---|
| 159 | },
|
|---|
| 160 | "duplicate-id-aria": {
|
|---|
| 161 | "description": "Każdy atrybut id używany w ARIA i w etykietach jest unikalny.",
|
|---|
| 162 | "help": "Identyfikatory stosowane w ARIA i etykietach muszą być unikalne."
|
|---|
| 163 | },
|
|---|
| 164 | "duplicate-id": {
|
|---|
| 165 | "description": "Wartość każdego atrybutu id jest unikalna.",
|
|---|
| 166 | "help": "Wartość atrybutu id musi być unikalna."
|
|---|
| 167 | },
|
|---|
| 168 | "empty-heading": {
|
|---|
| 169 | "description": "Nagłówki mają odróżniający je tekst.",
|
|---|
| 170 | "help": "Nagłówki nie mogą być puste."
|
|---|
| 171 | },
|
|---|
| 172 | "empty-table-header": {
|
|---|
| 173 | "description": "Upewnij się, że nagłówki tabel mają opisowy tekst.",
|
|---|
| 174 | "help": "Tekst nagłówka tabeli nie może być pusty."
|
|---|
| 175 | },
|
|---|
| 176 | "focus-order-semantics": {
|
|---|
| 177 | "description": "Elementy w porządku otrzymywania fokusu mają odpowiednią rolę.",
|
|---|
| 178 | "help": "Elementy w porządku otrzymywania fokusu muszą mieć rolę odpowiednią dla treści interaktywnych."
|
|---|
| 179 | },
|
|---|
| 180 | "form-field-multiple-labels": {
|
|---|
| 181 | "description": "Żadne pole formularza nie ma wielu etykiet (elementów label).",
|
|---|
| 182 | "help": "Pole formularza nie może mieć wielu elementów label."
|
|---|
| 183 | },
|
|---|
| 184 | "frame-focusable-content": {
|
|---|
| 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."
|
|---|
| 187 | },
|
|---|
| 188 | "frame-tested": {
|
|---|
| 189 | "description": "Elementy <iframe> i <frame> muszą być testowane ze skryptem axe-core.",
|
|---|
| 190 | "help": "Ramki muszą być testowane ze skryptem axe-core."
|
|---|
| 191 | },
|
|---|
| 192 | "frame-title-unique": {
|
|---|
| 193 | "description": "Elementy <iframe> i <frame> mają unikalny atrybut title.",
|
|---|
| 194 | "help": "Ramki muszą mieć unikalny atrybut title."
|
|---|
| 195 | },
|
|---|
| 196 | "frame-title": {
|
|---|
| 197 | "description": "Elementy <iframe> i <frame> mają niepusty atrybut title.",
|
|---|
| 198 | "help": "Ramki muszą mieć niepusty atrybut title."
|
|---|
| 199 | },
|
|---|
| 200 | "heading-order": {
|
|---|
| 201 | "description": "Kolejność nagłówków jest semantycznie poprawna.",
|
|---|
| 202 | "help": "Poziomy nagłówków powinny wzrastać tylko o jeden."
|
|---|
| 203 | },
|
|---|
| 204 | "hidden-content": {
|
|---|
| 205 | "description": "Na stronie są ukryte treści.",
|
|---|
| 206 | "help": "Ukrytych treści na stronie nie można analizować."
|
|---|
| 207 | },
|
|---|
| 208 | "html-has-lang": {
|
|---|
| 209 | "description": "Każdy dokument HTML ma atrybut lang.",
|
|---|
| 210 | "help": "Element <html> musi mieć atrybut lang."
|
|---|
| 211 | },
|
|---|
| 212 | "html-lang-valid": {
|
|---|
| 213 | "description": "Atrybut lang elementu <html> ma poprawną wartość.",
|
|---|
| 214 | "help": "Element <html> musi mieć poprawną wartość atrybutu lang."
|
|---|
| 215 | },
|
|---|
| 216 | "html-xml-lang-mismatch": {
|
|---|
| 217 | "description": "Element HTML z poprawnym atrybutem lang xml:lang ma ten sam podstawowy język strony.",
|
|---|
| 218 | "help": "Element HTML z lang i xml:lang musi mieć ten sam język podstawowy."
|
|---|
| 219 | },
|
|---|
| 220 | "identical-links-same-purpose": {
|
|---|
| 221 | "description": "Łącza o tej samej dostępnej nazwie służą temu samemu celowi.",
|
|---|
| 222 | "help": "Łącza o tej samej nazwie mają ten sam cel."
|
|---|
| 223 | },
|
|---|
| 224 | "image-alt": {
|
|---|
| 225 | "description": "Elementy <img> mają atrybut alt lub rolę none albo presentation.",
|
|---|
| 226 | "help": "Obrazy muszą mieć tekst alternatywny."
|
|---|
| 227 | },
|
|---|
| 228 | "image-redundant-alt": {
|
|---|
| 229 | "description": "Tekst alternatywny obrazu nie jest powtarzany w tekście.",
|
|---|
| 230 | "help": "Tekst alternatywny obrazów nie powinien być powtarzany w tekście."
|
|---|
| 231 | },
|
|---|
| 232 | "input-button-name": {
|
|---|
| 233 | "description": "Przyciski input type=button mają odróżniający je tekst.",
|
|---|
| 234 | "help": "Przyciski input type=button muszą mieć odróżniający je tekst."
|
|---|
| 235 | },
|
|---|
| 236 | "input-image-alt": {
|
|---|
| 237 | "description": "Elementy <input type=\"image\"> mają tekst alternatywny.",
|
|---|
| 238 | "help": "Przyciski graficzne muszą mieć tekst alternatywny."
|
|---|
| 239 | },
|
|---|
| 240 | "label-content-name-mismatch": {
|
|---|
| 241 | "description": "Elementy oznakowane swoją treścią mają swój widoczny tekst jako część ich dostępnej nazwy",
|
|---|
| 242 | "help": "Elementy muszą mieć swój widoczny tekst jako część ich dostępnej nazwy."
|
|---|
| 243 | },
|
|---|
| 244 | "label-title-only": {
|
|---|
| 245 | "description": "Żaden element formularza nie jest oznaczony wyłącznie za pomocą atrybutu title lub aria-describedby.",
|
|---|
| 246 | "help": "Element formularza powinien mieć widoczną etykietę."
|
|---|
| 247 | },
|
|---|
| 248 | "label": {
|
|---|
| 249 | "description": "Każdy element formularza ma etykietę.",
|
|---|
| 250 | "help": "Element formularza musi mieć etykietę."
|
|---|
| 251 | },
|
|---|
| 252 | "landmark-banner-is-top-level": {
|
|---|
| 253 | "description": "Obszar banner jest obszarem kluczowym najwyższego poziomu.",
|
|---|
| 254 | "help": "Punkt orientacyjny banner nie może być zawarty wewnątrz innego obszaru kluczowego."
|
|---|
| 255 | },
|
|---|
| 256 | "landmark-complementary-is-top-level": {
|
|---|
| 257 | "description": "Obszary aside lub z role=complementary są obszarami kluczowymi najwyższego poziomu.",
|
|---|
| 258 | "help": "Punkt orientacyjny complementary nie może być zawarty wewnątrz innego obszaru kluczowego."
|
|---|
| 259 | },
|
|---|
| 260 | "landmark-contentinfo-is-top-level": {
|
|---|
| 261 | "description": "Obszar kluczowy z role=contentinfo jest obszarem kluczowym najwyższego poziomu.",
|
|---|
| 262 | "help": "Punkt orientacyjny contentinfo nie może być zawarty wewnątrz innego obszaru kluczowego."
|
|---|
| 263 | },
|
|---|
| 264 | "landmark-main-is-top-level": {
|
|---|
| 265 | "description": "Obszar main jest obszarem kluczowym najwyższego poziomu.",
|
|---|
| 266 | "help": "Punkt orientacyjny main nie może być zawarty wewnątrz innego obszaru kluczowego."
|
|---|
| 267 | },
|
|---|
| 268 | "landmark-no-duplicate-banner": {
|
|---|
| 269 | "description": "Dokument ma co najwyżej jeden punkt orientacyjny banner.",
|
|---|
| 270 | "help": "Dokument nie może mieć więcej niż jednego obszaru kluczowego banner."
|
|---|
| 271 | },
|
|---|
| 272 | "landmark-no-duplicate-contentinfo": {
|
|---|
| 273 | "description": "Dokument ma co najwyżej jeden punkt orientacyjny contentinfo.",
|
|---|
| 274 | "help": "Dokument nie może mieć więcej niż jednego obszaru kluczowego contentinfo."
|
|---|
| 275 | },
|
|---|
| 276 | "landmark-no-duplicate-main": {
|
|---|
| 277 | "description": "Dokument ma co najwyżej jeden punkt orientacyjny main.",
|
|---|
| 278 | "help": "Dokument nie może mieć więcej niż jednego obszaru kluczowego main."
|
|---|
| 279 | },
|
|---|
| 280 | "landmark-one-main": {
|
|---|
| 281 | "description": "Dokument ma punkt orientacyjny main.",
|
|---|
| 282 | "help": "Dokument może mieć tylko jeden obszar kluczowy main."
|
|---|
| 283 | },
|
|---|
| 284 | "landmark-unique": {
|
|---|
| 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ę)."
|
|---|
| 287 | },
|
|---|
| 288 | "link-in-text-block": {
|
|---|
| 289 | "description": "Łącza można rozróżniać bez opierania się na kolorze.",
|
|---|
| 290 | "help": "Łącza muszą być odróżnialne od sąsiadującego tekstu w sposób, który nie opiera się na kolorze."
|
|---|
| 291 | },
|
|---|
| 292 | "link-name": {
|
|---|
| 293 | "description": "Łącza mają odróżniający je tekst.",
|
|---|
| 294 | "help": "Łącza muszą mieć odróżniający je tekst."
|
|---|
| 295 | },
|
|---|
| 296 | "list": {
|
|---|
| 297 | "description": "Listy mają poprawną strukturę.",
|
|---|
| 298 | "help": "Elementy <ul> i <ol> mogą bezpośrednio zawierać tylko elementy <li>, <script> lub <template>."
|
|---|
| 299 | },
|
|---|
| 300 | "listitem": {
|
|---|
| 301 | "description": "Elementy <li> są używane semantycznie.",
|
|---|
| 302 | "help": " Elementy <li> muszą być zawarte bezpośrednio w <ul> lub <ol>."
|
|---|
| 303 | },
|
|---|
| 304 | "marquee": {
|
|---|
| 305 | "description": "Elementy <marquee> nie są używane.",
|
|---|
| 306 | "help": "Elementy <marquee> są przestarzałe i nie mogą być używane."
|
|---|
| 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 | },
|
|---|
| 312 | "meta-refresh": {
|
|---|
| 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."
|
|---|
| 315 | },
|
|---|
| 316 | "meta-viewport-large": {
|
|---|
| 317 | "description": "Element <meta name=\"viewport\"> umożliwia znaczne powiększanie.",
|
|---|
| 318 | "help": "Użytkownicy mogą powiększać i skalować tekst do 500%."
|
|---|
| 319 | },
|
|---|
| 320 | "meta-viewport": {
|
|---|
| 321 | "description": "Element <meta name=\"viewport\"> nie wyłącza skalowania i powiększania tekstu.",
|
|---|
| 322 | "help": "Powiększanie i skalowanie nie może być wyłączone."
|
|---|
| 323 | },
|
|---|
| 324 | "nested-interactive": {
|
|---|
| 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"
|
|---|
| 327 | },
|
|---|
| 328 | "no-autoplay-audio": {
|
|---|
| 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.",
|
|---|
| 330 | "help": "Elementy <video> lub <audio> nie odtwarzają dźwięku automatycznie."
|
|---|
| 331 | },
|
|---|
| 332 | "object-alt": {
|
|---|
| 333 | "description": "Elementy <object> mają tekst zastępczy.",
|
|---|
| 334 | "help": "Elementy <object> muszą mieć alternatywę tekstową."
|
|---|
| 335 | },
|
|---|
| 336 | "p-as-heading": {
|
|---|
| 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."
|
|---|
| 339 | },
|
|---|
| 340 | "page-has-heading-one": {
|
|---|
| 341 | "description": "Strona lub co najmniej jedna z jej ramek, zawiera nagłówek pierwszego poziomu.",
|
|---|
| 342 | "help": "Strona musi zawierać nagłówek poziomu 1."
|
|---|
| 343 | },
|
|---|
| 344 | "presentation-role-conflict": {
|
|---|
| 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."
|
|---|
| 347 | },
|
|---|
| 348 | "region": {
|
|---|
| 349 | "description": "Cała treść strony jest objęta przez punkty orientacyjne.",
|
|---|
| 350 | "help": "Cała treść strony musi być zawarta w obszarach kluczowych."
|
|---|
| 351 | },
|
|---|
| 352 | "role-img-alt": {
|
|---|
| 353 | "description": "Elementy z [role='img'] mają tekst alternatywny.",
|
|---|
| 354 | "help": "Elementy z [role='img'] muszą mieć tekst alternatywny."
|
|---|
| 355 | },
|
|---|
| 356 | "scope-attr-valid": {
|
|---|
| 357 | "description": "Atrybut scope w tabelach jest stosowany poprawnie.",
|
|---|
| 358 | "help": "Atrybut scope ma poprawną wartość."
|
|---|
| 359 | },
|
|---|
| 360 | "scrollable-region-focusable": {
|
|---|
| 361 | "description": "Elementy, których treść można przewijać, są osiągalne za pomocą klawiatury.",
|
|---|
| 362 | "help": "Obszary przewijane muszą być osiągalne z klawiatury."
|
|---|
| 363 | },
|
|---|
| 364 | "select-name": {
|
|---|
| 365 | "description": "Element select ma dostępną nazwę.",
|
|---|
| 366 | "help": "Element select musi mieć dostępną nazwę."
|
|---|
| 367 | },
|
|---|
| 368 | "server-side-image-map": {
|
|---|
| 369 | "description": "Graficzne mapy odnośników (mapy obrazkowe) obsługiwane po stronie serwera nie są używane.",
|
|---|
| 370 | "help": "Nie wolno używać map odnośników po stronie serwera."
|
|---|
| 371 | },
|
|---|
| 372 | "skip-link": {
|
|---|
| 373 | "description": "Wszystkie łącza pomijania mają cel przyjmujący fokus.",
|
|---|
| 374 | "help": "Cel łącza pomijającego powinien istnieć i przyjmować fokus."
|
|---|
| 375 | },
|
|---|
| 376 | "svg-img-alt": {
|
|---|
| 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."
|
|---|
| 379 | },
|
|---|
| 380 | "tabindex": {
|
|---|
| 381 | "description": "Wartości atrybutów tabindex nie są większe niż 0.",
|
|---|
| 382 | "help": "Elementy nie powinny mieć wartości tabindex większej niż zero."
|
|---|
| 383 | },
|
|---|
| 384 | "table-duplicate-name": {
|
|---|
| 385 | "description": "Podpis tabeli (element <caption>) nie może zawierać takiego samego tekstu co atrybut summary.",
|
|---|
| 386 | "help": "Atrybut summary w tabeli ma inny tekst niż element caption."
|
|---|
| 387 | },
|
|---|
| 388 | "table-fake-caption": {
|
|---|
| 389 | "description": "Tabele używają jako podpisu elementu <caption>.",
|
|---|
| 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ół."
|
|---|
| 395 | },
|
|---|
| 396 | "td-has-header": {
|
|---|
| 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"
|
|---|
| 399 | },
|
|---|
| 400 | "td-headers-attr": {
|
|---|
| 401 | "description": "Każda komórka tabeli używająca atrybutu headers odwołuje się do innej komórki w tej tabeli.",
|
|---|
| 402 | "help": "Wszystkie komórki z atrybutem headers odnoszą się tylko do innych komórek tej samej tabeli."
|
|---|
| 403 | },
|
|---|
| 404 | "th-has-data-cells": {
|
|---|
| 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."
|
|---|
| 407 | },
|
|---|
| 408 | "valid-lang": {
|
|---|
| 409 | "description": "Atrybuty lang mają poprawne wartości.",
|
|---|
| 410 | "help": "Atrybuty lang muszą mieć poprawną wartość."
|
|---|
| 411 | },
|
|---|
| 412 | "video-caption": {
|
|---|
| 413 | "description": "Elementy <video> mają napisy rozszerzone.",
|
|---|
| 414 | "help": "Elementy <video> muszą mieć napisy rozszerzone."
|
|---|
| 415 | }
|
|---|
| 416 | },
|
|---|
| 417 | "checks": {
|
|---|
| 418 | "abstractrole": {
|
|---|
| 419 | "pass": "Role abstrakcyjne nie są wykorzystywane.",
|
|---|
| 420 | "fail": {
|
|---|
| 421 | "singular": "Rola abstrakcyjna nie może być użyta bezpośrednio: ${data.values}.",
|
|---|
| 422 | "plural": ": Role abstrakcyjne nie mogą być używane bezpośrednio: ${data.values}."
|
|---|
| 423 | }
|
|---|
| 424 | },
|
|---|
| 425 | "aria-allowed-attr": {
|
|---|
| 426 | "pass": "Atrybuty ARIA są używane poprawnie dla zdefiniowanej roli.",
|
|---|
| 427 | "fail": {
|
|---|
| 428 | "singular": "Atrybut ARIA nie jest dozwolony: ${data.values}.",
|
|---|
| 429 | "plural": ": Atrybuty ARIA nie są dozwolone: ${data.values}."
|
|---|
| 430 | },
|
|---|
| 431 | "incomplete": "Sprawdź, czy nie ma problemu, jeśli atrybut ARIA jest ignorowany w tym elemencie: ${data.values}"
|
|---|
| 432 | },
|
|---|
| 433 | "aria-allowed-role": {
|
|---|
| 434 | "pass": "Rola ARIA jest dozwolona dla danego elementu.",
|
|---|
| 435 | "fail": {
|
|---|
| 436 | "singular": "Rola ARIA ${data.values} nie jest dozwolona dla tego elementu.",
|
|---|
| 437 | "plural": ": Role ARIA ${data.values} nie są dozwolone dla tego elementu."
|
|---|
| 438 | },
|
|---|
| 439 | "incomplete": {
|
|---|
| 440 | "singular": "Rola ARIA ${data.values} musi być usunięta, gdy element jest widoczny, ponieważ nie jest to dozwolone dla elementu.",
|
|---|
| 441 | "plural": ": Role ARIA ${data.values} muszą być usunięte, gdy element jest widoczny, ponieważ nie są one dozwolone dla elementu."
|
|---|
| 442 | }
|
|---|
| 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 | },
|
|---|
| 456 | "aria-errormessage": {
|
|---|
| 457 | "pass": "Istnieje aria-errormessage oraz elementy referencyjne widoczne dla czytników ekranowych, które wykorzystują wspieraną technikę aria-errormessage.",
|
|---|
| 458 | "fail": {
|
|---|
| 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."
|
|---|
| 462 | },
|
|---|
| 463 | "incomplete": {
|
|---|
| 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}"
|
|---|
| 467 | }
|
|---|
| 468 | },
|
|---|
| 469 | "aria-hidden-body": {
|
|---|
| 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"
|
|---|
| 476 | },
|
|---|
| 477 | "aria-prohibited-attr": {
|
|---|
| 478 | "pass": "Atrybut ARIA jest dozwolony",
|
|---|
| 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 | }
|
|---|
| 491 | },
|
|---|
| 492 | "aria-required-attr": {
|
|---|
| 493 | "pass": "Wszystkie wymagane atrybuty ARIA istnieją.",
|
|---|
| 494 | "fail": {
|
|---|
| 495 | "singular": "Wymagany atrybut ARIA nie istnieje: ${data.values}.",
|
|---|
| 496 | "plural": "Wymagane atrybuty ARIA nie istnieją: ${data.values}."
|
|---|
| 497 | }
|
|---|
| 498 | },
|
|---|
| 499 | "aria-required-children": {
|
|---|
| 500 | "pass": {
|
|---|
| 501 | "default": "Wymagane dzieci ARIA istnieją."
|
|---|
| 502 | },
|
|---|
| 503 | "fail": {
|
|---|
| 504 | "singular": "Wymagana rola dziecka ARIA nie istnieje: ${data.values}.",
|
|---|
| 505 | "plural": "Wymagane role dzieci ARIA nie istnieją: ${data.values",
|
|---|
| 506 | "unallowed": "Element ma dzieci, które nie są dozwolone: ${data.values}"
|
|---|
| 507 | },
|
|---|
| 508 | "incomplete": {
|
|---|
| 509 | "singular": "Należy dodać oczekiwaną rolę dziecka ARIA: ${data.values}.",
|
|---|
| 510 | "plural": "Należy dodać oczekiwane role dzieci ARIA: ${data.values}."
|
|---|
| 511 | }
|
|---|
| 512 | },
|
|---|
| 513 | "aria-required-parent": {
|
|---|
| 514 | "pass": "Wymagana rola rodzica ARIA istnieje.",
|
|---|
| 515 | "fail": {
|
|---|
| 516 | "singular": "Wymagana rola rodzica ARIA nie istnieje: ${data.values}.",
|
|---|
| 517 | "plural": "Wymagane role rodziców ARIA nie istnieją: ${data.values}."
|
|---|
| 518 | }
|
|---|
| 519 | },
|
|---|
| 520 | "aria-roledescription": {
|
|---|
| 521 | "pass": "Atrybut aria-roledescription jest używany z obsługiwaną rolą semantyczną.",
|
|---|
| 522 | "incomplete": "Sprawdź, czy aria-roledescription jest ogłaszany przez obsługiwane czytniki ekranu.",
|
|---|
| 523 | "fail": "Nadaj temu elementowi rolę, która obsługuje aria-roledescription."
|
|---|
| 524 | },
|
|---|
| 525 | "aria-unsupported-attr": {
|
|---|
| 526 | "pass": "Atrybut ARIA jest obsługiwany.",
|
|---|
| 527 | "fail": "Atrybut ARIA nie jest dostatecznie obsługiwany przez czytniki ekranu i inne technologie wspomagające: ${data.values}."
|
|---|
| 528 | },
|
|---|
| 529 | "aria-valid-attr-value": {
|
|---|
| 530 | "pass": "Wartości atrybutu ARIA są poprawne.",
|
|---|
| 531 | "fail": {
|
|---|
| 532 | "singular": "Niepoprawna wartość atrybutu ARIA: ${data.values}",
|
|---|
| 533 | "plural": "Niepoprawne wartości atrybutu ARIA: ${data.values}"
|
|---|
| 534 | },
|
|---|
| 535 | "incomplete": {
|
|---|
| 536 | "noId": "Identyfikator elementu atrybutu ARIA nie istnieje na stronie: ${data.needsReview}",
|
|---|
| 537 | "noIdShadow": "ID elementu atrybutu ARIA nie istnieje na stronie lub jest potomkiem innego drzewa shadow DOM: ${data.needsReview}",
|
|---|
| 538 | "ariaCurrent": "Wartość atrybutu ARIA jest niepoprawna i będzie traktowana jako \"aria-current=true\": ${data.needsReview}",
|
|---|
| 539 | "idrefs": "Nie można określić, czy atrybut ARIA element ID istnieje na stronie: ${data.needsReview}",
|
|---|
| 540 | "empty": "Wartość atrybutu ARIA jest ignorowana, gdy jest pusty: ${data.needsReview}"
|
|---|
| 541 | }
|
|---|
| 542 | },
|
|---|
| 543 | "aria-valid-attr": {
|
|---|
| 544 | "pass": "Nazwa atrybutu ARIA jest poprawna.",
|
|---|
| 545 | "fail": {
|
|---|
| 546 | "singular": "Niepoprawna nazwa atrybutu ARIA: ${data.values}.",
|
|---|
| 547 | "plural": "Niepoprawne nazwy atrybutów ARIA: ${data.values}."
|
|---|
| 548 | }
|
|---|
| 549 | },
|
|---|
| 550 | "braille-label-equivalent": {
|
|---|
| 551 | "pass": "Atrybut aria-braillelabel jest użyty w elemencie z dostępnym tekstem.",
|
|---|
| 552 | "fail": "Atrybut aria-braillelabel jest użyty w elemencie, który nie ma dostępnego tekstu.",
|
|---|
| 553 | "incomplete": "Nie można wyliczyć dostępnego tekstu."
|
|---|
| 554 | },
|
|---|
| 555 | "braille-roledescription-equivalent": {
|
|---|
| 556 | "pass": "Atrybut aria-brailleroledescription nie jest używany w elemencie, który nie ma dostępnego tekstu.",
|
|---|
| 557 | "fail": {
|
|---|
| 558 | "noRoleDescription": "Atrybut aria-brailleroledescription jest użyty w elemencie bez atrybutu aria-roledescription.",
|
|---|
| 559 | "emptyRoleDescription": "Atrybut aria-brailleroledescription jest użyty w elemencie z pustym atrybutem aria-roledescription."
|
|---|
| 560 | }
|
|---|
| 561 | },
|
|---|
| 562 | "deprecatedrole": {
|
|---|
| 563 | "pass": "Rola ARIA nie jest przestarzała",
|
|---|
| 564 | "fail": "Użyta rola jest przestarzała: ${data}"
|
|---|
| 565 | },
|
|---|
| 566 | "fallbackrole": {
|
|---|
| 567 | "pass": "Użyto tylko jednej wartości roli.",
|
|---|
| 568 | "fail": "Użyj tylko jednej wartości roli, ponieważ role rezerwowe nie są obsługiwane w starszych przeglądarkach.",
|
|---|
| 569 | "incomplete": "Używaj tylko roli 'presentation' lub 'none', ponieważ są one synonimami."
|
|---|
| 570 | },
|
|---|
| 571 | "has-global-aria-attribute": {
|
|---|
| 572 | "pass": {
|
|---|
| 573 | "singular": "Element ma ogólny atrybut ARIA: ${data.values}.",
|
|---|
| 574 | "plural": ": Element ma ogólne atrybuty ARIA: ${data.values}."
|
|---|
| 575 | },
|
|---|
| 576 | "fail": "Element nie ma ogólnego atrybutu ARIA"
|
|---|
| 577 | },
|
|---|
| 578 | "has-widget-role": {
|
|---|
| 579 | "pass": "Element ma rolę widżetu.",
|
|---|
| 580 | "fail": "Element nie ma roli widżetu."
|
|---|
| 581 | },
|
|---|
| 582 | "invalidrole": {
|
|---|
| 583 | "pass": "Rola ARIA jest poprawna.",
|
|---|
| 584 | "fail": {
|
|---|
| 585 | "singular": "Rola musi być jedną z poprawnych ról ARIA: ${data.values}.",
|
|---|
| 586 | "plural": ": Role muszą być jedną z poprawnych ról ARIA: ${data.values}."
|
|---|
| 587 | }
|
|---|
| 588 | },
|
|---|
| 589 | "is-element-focusable": {
|
|---|
| 590 | "pass": "Element przyjmuje fokus.",
|
|---|
| 591 | "fail": "Element nie przyjmuje fokusu."
|
|---|
| 592 | },
|
|---|
| 593 | "no-implicit-explicit-label": {
|
|---|
| 594 | "pass": "Nie ma rozbieżności między label a dostępną nazwą.",
|
|---|
| 595 | "incomplete": "Sprawdź, czy label nie musi być częścią nazwy pola ARIA ${data}."
|
|---|
| 596 | },
|
|---|
| 597 | "unsupportedrole": {
|
|---|
| 598 | "pass": "Rola ARIA jest obsługiwana.",
|
|---|
| 599 | "fail": "Zastosowana rola nie jest szeroko obsługiwana w czytnikach ekranu i technologiach wspomagających: ${data.values}."
|
|---|
| 600 | },
|
|---|
| 601 | "valid-scrollable-semantics": {
|
|---|
| 602 | "pass": "Element w porządku otrzymywania fokusu ma poprawną semantykę.",
|
|---|
| 603 | "fail": "Element w porządku otrzymywania fokusu ma niepoprawną semantykę."
|
|---|
| 604 | },
|
|---|
| 605 | "color-contrast-enhanced": {
|
|---|
| 606 | "pass": "Element ma wystarczający kontrast kolorów ${data.contrastRatio}",
|
|---|
| 607 | "fail": {
|
|---|
| 608 | "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}",
|
|---|
| 609 | "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}",
|
|---|
| 610 | "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}"
|
|---|
| 611 | },
|
|---|
| 612 | "incomplete": {
|
|---|
| 613 | "default": "Nie można określić współczynnika kontrastu.",
|
|---|
| 614 | "bgImage": "Nie można określić koloru tła elementu, ponieważ element ma obraz tła.",
|
|---|
| 615 | "bgGradient": "Nie można określić koloru tła elementu, ponieważ element ma gradientowe tło.",
|
|---|
| 616 | "imgNode": "Nie można określić koloru tła elementu, ponieważ element zawiera węzeł obrazu.",
|
|---|
| 617 | "bgOverlap": "Nie można określić koloru tła elementu, ponieważ nakłada się na niego inny element.",
|
|---|
| 618 | "fgAlpha": "Nie można określić koloru pierwszego planu elementu z powodu przezroczystości alfa.",
|
|---|
| 619 | "elmPartiallyObscured": "Nie można określić koloru tła elementu, ponieważ jest on częściowo zasłonięty przez inny element.",
|
|---|
| 620 | "elmPartiallyObscuring": "Nie można określić koloru tła elementu, ponieważ częściowo nakłada się on na inne elementy.",
|
|---|
| 621 | "outsideViewport": "Nie można określić koloru tła elementu, ponieważ znajduje się on poza obszarem operacyjnym.",
|
|---|
| 622 | "equalRatio": "Element ma współczynnik kontrastu 1:1 z tłem.",
|
|---|
| 623 | "shortTextContent": "Treść elementu jest zbyt krótka, aby określić, czy jest to rzeczywista treść tekstowa.",
|
|---|
| 624 | "nonBmp": "Treść elementu zawiera tylko znaki nietekstowe.",
|
|---|
| 625 | "pseudoContent": "Nie można określić koloru tła elementu, ponieważ jest to pseudoelement."
|
|---|
| 626 | }
|
|---|
| 627 | },
|
|---|
| 628 | "color-contrast": {
|
|---|
| 629 | "pass": {
|
|---|
| 630 | "default": "Element ma wystarczający kontrast kolorów ${data.contrastRatio}",
|
|---|
| 631 | "hidden": "Element jest ukryty"
|
|---|
| 632 | },
|
|---|
| 633 | "fail": {
|
|---|
| 634 | "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}",
|
|---|
| 635 | "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}",
|
|---|
| 636 | "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}"
|
|---|
| 637 | },
|
|---|
| 638 | "incomplete": {
|
|---|
| 639 | "default": "Nie można określić współczynnika kontrastu.",
|
|---|
| 640 | "bgImage": "Nie można określić koloru tła elementu, ponieważ element ma obraz tła.",
|
|---|
| 641 | "bgGradient": "Nie można określić koloru tła elementu, ponieważ element ma gradientowe tło.",
|
|---|
| 642 | "imgNode": "Nie można określić koloru tła elementu, ponieważ element zawiera węzeł obrazu.",
|
|---|
| 643 | "bgOverlap": "Nie można określić koloru tła elementu, ponieważ nakłada się na niego inny element.",
|
|---|
| 644 | "fgAlpha": "Nie można określić koloru pierwszego planu elementu z powodu przezroczystości alfa.",
|
|---|
| 645 | "elmPartiallyObscured": "Nie można określić koloru tła elementu, ponieważ jest on częściowo zasłonięty przez inny element.",
|
|---|
| 646 | "elmPartiallyObscuring": "Nie można określić koloru tła elementu, ponieważ częściowo nakłada się on na inne elementy.",
|
|---|
| 647 | "outsideViewport": "Nie można określić koloru tła elementu, ponieważ znajduje się on poza obszarem operacyjnym.",
|
|---|
| 648 | "equalRatio": "Element ma współczynnik kontrastu 1:1 z tłem.",
|
|---|
| 649 | "shortTextContent": "Treść elementu jest zbyt krótka, aby określić, czy jest to rzeczywista treść tekstowa.",
|
|---|
| 650 | "nonBmp": "Treść elementu zawiera tylko znaki nietekstowe.",
|
|---|
| 651 | "pseudoContent": "Nie można określić koloru tła elementu, ponieważ jest to pseudoelement."
|
|---|
| 652 | }
|
|---|
| 653 | },
|
|---|
| 654 | "link-in-text-block-style": {
|
|---|
| 655 | "pass": "Łącza mogą być odróżnione od sąsiadującego tekstu poprzez wizualną stylizację",
|
|---|
| 656 | "incomplete": {
|
|---|
| 657 | "default": "Sprawdź, czy łącze wymaga stylizacji, aby odróżnić je od sąsiadującego tekstu.",
|
|---|
| 658 | "pseudoContent": "Sprawdź, czy pseudostyl łącza jest wystarczający, aby odróżnić je od sąsiadującego tekstu."
|
|---|
| 659 | },
|
|---|
| 660 | "fail": "Łącze nie ma żadnej stylizacji (np. podkreślenia), która odróżniałaby je od sąsiadującego tekstu"
|
|---|
| 661 | },
|
|---|
| 662 | "link-in-text-block": {
|
|---|
| 663 | "pass": "Łącza można odróżnić od sąsiadującego tekstu w inny sposób niż za pomocą koloru.",
|
|---|
| 664 | "fail": {
|
|---|
| 665 | "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})",
|
|---|
| 666 | "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})"
|
|---|
| 667 | },
|
|---|
| 668 | "incomplete": {
|
|---|
| 669 | "default": "Nie można określić współczynnika kontrastu.",
|
|---|
| 670 | "bgContrast": "Nie można określić współczynnika kontrastu elementu. Sprawdź, czy nie ma odrębnego stylu stanów hover/fokus.",
|
|---|
| 671 | "bgImage": "Nie można określić współczynnika kontrastu elementu ze względu na obraz tła.",
|
|---|
| 672 | "bgGradient": "Nie można określić współczynnika kontrastu elementu ze względu na gradient tła.",
|
|---|
| 673 | "imgNode": "Nie można określić współczynnika kontrastu elementu, ponieważ element zawiera węzeł obrazu.",
|
|---|
| 674 | "bgOverlap": "Nie można określić współczynnika kontrastu elementu ze względu na nakładanie się elementów."
|
|---|
| 675 | }
|
|---|
| 676 | },
|
|---|
| 677 | "autocomplete-appropriate": {
|
|---|
| 678 | "pass": "Wartość autocomplete jest odpowiednia dla tego typu pola formularza.",
|
|---|
| 679 | "fail": "Wartość autocomplete jest niewłaściwa dla tego typu pola formularza."
|
|---|
| 680 | },
|
|---|
| 681 | "autocomplete-valid": {
|
|---|
| 682 | "pass": "Atrybut autocomplete jest sformatowany poprawnie.",
|
|---|
| 683 | "fail": "Atrybut autocomplete jest sformatowany niepoprawnie."
|
|---|
| 684 | },
|
|---|
| 685 | "accesskeys": {
|
|---|
| 686 | "pass": "Wartość atrybutu accesskey jest unikalna.",
|
|---|
| 687 | "fail": "Dokument ma wiele elementów z tym samym klawiszem dostępu."
|
|---|
| 688 | },
|
|---|
| 689 | "focusable-content": {
|
|---|
| 690 | "pass": "Element zawiera elementy przyjmujące fokus.",
|
|---|
| 691 | "fail": "Element powinien przyjmować fokus."
|
|---|
| 692 | },
|
|---|
| 693 | "focusable-disabled": {
|
|---|
| 694 | "pass": "W elemencie nie ma elementów przyjmujących fokus.",
|
|---|
| 695 | "incomplete": "Sprawdź, czy elementy, na których można ustawić fokus, natychmiast otrzymują wskaźnik fokusu",
|
|---|
| 696 | "fail": "Treść z możliwością ustawiania fokusu powinna być wyłączona lub usunięta z DOM."
|
|---|
| 697 | },
|
|---|
| 698 | "focusable-element": {
|
|---|
| 699 | "pass": "Element może przyjmować fokus.",
|
|---|
| 700 | "fail": "Element powinien przyjmować fokus."
|
|---|
| 701 | },
|
|---|
| 702 | "focusable-modal-open": {
|
|---|
| 703 | "pass": "Nie ma elementów przyjmujących fokus, gdy otwarte jest okno modalne.",
|
|---|
| 704 | "incomplete": "Sprawdź, czy elementy, które mogą przyjmować fokus, nie są tabulowane w aktualnym stanie."
|
|---|
| 705 | },
|
|---|
| 706 | "focusable-no-name": {
|
|---|
| 707 | "pass": "Element nie znajduje się w porządku tabulacji lub ma dostępny tekst.",
|
|---|
| 708 | "fail": "Element znajduje się w porządku tabulacji i nie ma dostępnego tekstu.",
|
|---|
| 709 | "incomplete": "Nie można ustalić, czy element ma dostępną nazwę."
|
|---|
| 710 | },
|
|---|
| 711 | "focusable-not-tabbable": {
|
|---|
| 712 | "pass": "Nie ma elementów przyjmujących fokus wewnątrz elementu.",
|
|---|
| 713 | "incomplete": "Sprawdź, czy elementy, na których można ustawić fokus, natychmiast otrzymują wskaźnik fokusu",
|
|---|
| 714 | "fail": "Treść przyjmująca fokus powinna mieć tabindex=-1 lub być usunięta z DOM."
|
|---|
| 715 | },
|
|---|
| 716 | "frame-focusable-content": {
|
|---|
| 717 | "pass": "Element nie ma potomków przyjmujących fokus",
|
|---|
| 718 | "fail": "Element ma elementy potomne przyjmujące fokus",
|
|---|
| 719 | "incomplete": "Nie można ustalić, czy element ma elementy potomne"
|
|---|
| 720 | },
|
|---|
| 721 | "landmark-is-top-level": {
|
|---|
| 722 | "pass": "Punkt orientacyjny ${data.role} jest na najwyższym poziomie.",
|
|---|
| 723 | "fail": "Punkt orientacyjny {data.role} jest wewnątrz innego obszaru kluczowego."
|
|---|
| 724 | },
|
|---|
| 725 | "no-focusable-content": {
|
|---|
| 726 | "pass": "Element nie ma potomków przyjmujących fokus",
|
|---|
| 727 | "fail": {
|
|---|
| 728 | "default": "Element ma elementy potomne przyjmujące fokus",
|
|---|
| 729 | "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')"
|
|---|
| 730 | },
|
|---|
| 731 | "incomplete": "Nie można ustalić, czy element ma elementy potomne"
|
|---|
| 732 | },
|
|---|
| 733 | "page-has-heading-one": {
|
|---|
| 734 | "pass": "Strona ma co najmniej jeden nagłówek 1. poziomu.",
|
|---|
| 735 | "fail": "Strona musi mieć nagłówek 1. poziomu."
|
|---|
| 736 | },
|
|---|
| 737 | "page-has-main": {
|
|---|
| 738 | "pass": "Dokument ma co najmniej jeden główny punkt orientacyjny.",
|
|---|
| 739 | "fail": "Dokument nie ma głównego punktu orientacyjnego."
|
|---|
| 740 | },
|
|---|
| 741 | "page-no-duplicate-banner": {
|
|---|
| 742 | "pass": "W dokumencie nie ma więcej niż jeden obszar kluczowy banner.",
|
|---|
| 743 | "fail": "W dokumencie jest więcej niż jeden obszar kluczowy banner."
|
|---|
| 744 | },
|
|---|
| 745 | "page-no-duplicate-contentinfo": {
|
|---|
| 746 | "pass": "W dokumencie nie ma więcej niż jeden obszar kluczowy contentinfo.",
|
|---|
| 747 | "fail": "W dokumencie jest więcej niż jeden obszar kluczowy contentinfo."
|
|---|
| 748 | },
|
|---|
| 749 | "page-no-duplicate-main": {
|
|---|
| 750 | "pass": "W dokumencie nie ma więcej niż jeden obszar kluczowy main.",
|
|---|
| 751 | "fail": "W dokumencie jest więcej niż jeden obszar kluczowy main."
|
|---|
| 752 | },
|
|---|
| 753 | "tabindex": {
|
|---|
| 754 | "pass": "Element nie ma wartości tabindex większej niż 0.",
|
|---|
| 755 | "fail": "Element nie ma wartości tabindex większą od 0."
|
|---|
| 756 | },
|
|---|
| 757 | "alt-space-value": {
|
|---|
| 758 | "pass": "Element ma poprawną wartość atrybutu alt.",
|
|---|
| 759 | "fail": "Element ma atrybut alt zawierający tylko znak spacji, który nie przez wszystkie czytniki ekranu jest ignorowany ."
|
|---|
| 760 | },
|
|---|
| 761 | "duplicate-img-label": {
|
|---|
| 762 | "pass": "Element nie powiela tekstu istniejącego w atrybucie alt elementu img.",
|
|---|
| 763 | "fail": "Element powiela tekst istniejący w atrybucie alt elementu img."
|
|---|
| 764 | },
|
|---|
| 765 | "explicit-label": {
|
|---|
| 766 | "pass": "Element formularza ma jawnie określoną label.",
|
|---|
| 767 | "fail": "Element formularza nie ma jawnie określonej label.",
|
|---|
| 768 | "incomplete": "Nie można określić, czy element formularza ma jawnie określoną label."
|
|---|
| 769 | },
|
|---|
| 770 | "help-same-as-label": {
|
|---|
| 771 | "pass": "Tekst pomocy (title lub aria-describedby) nie powiela tekstu etykiety.",
|
|---|
| 772 | "fail": "Tekst pomocy (title lub aria-describedby) jest taki sam jak tekst etykiety."
|
|---|
| 773 | },
|
|---|
| 774 | "hidden-explicit-label": {
|
|---|
| 775 | "pass": "Element formularza ma widoczną jednoznaczną etykietę label.",
|
|---|
| 776 | "fail": "Element formularza ma jednoznaczną etykietę label, która jest ukryta.",
|
|---|
| 777 | "incomplete": "Nie można określić, czy element formularza ma jawną etykietę (label), gdy jest ukryta."
|
|---|
| 778 | },
|
|---|
| 779 | "implicit-label": {
|
|---|
| 780 | "pass": "Element formularza ma dorozumianą etykietę (jest owinięty w label).",
|
|---|
| 781 | "fail": "Element formularza nie ma dorozumianej etykiety (nie jest owinięty w label).",
|
|---|
| 782 | "incomplete": "Nie można określić, czy element formularza ma dorozumianą etykietę (jest owinięty w label)."
|
|---|
| 783 | },
|
|---|
| 784 | "label-content-name-mismatch": {
|
|---|
| 785 | "pass": "Widoczny tekst elementu jest częścią dostępnej nazwy elementu.",
|
|---|
| 786 | "fail": "Widoczny tekst wewnątrz elementu nie jest częścią dostępnej nazwy."
|
|---|
| 787 | },
|
|---|
| 788 | "multiple-label": {
|
|---|
| 789 | "pass": "Pole formularza nie ma wielu label.",
|
|---|
| 790 | "incomplete": "Technologie wspomagające nie obsługują wystarczająco dobrze wielu elementów label. Upewnij się, że pierwsza etykieta zawiera wszystkie niezbędne informacje."
|
|---|
| 791 | },
|
|---|
| 792 | "title-only": {
|
|---|
| 793 | "pass": "Element formularza nie używa wyłącznie atrybutu title jako swojej etykiety.",
|
|---|
| 794 | "fail": "Tylko atrybut title jest używany do wygenerowania etykiety dla elementu formularza."
|
|---|
| 795 | },
|
|---|
| 796 | "landmark-is-unique": {
|
|---|
| 797 | "pass": "Punkty orientacyjne muszą mieć unikalną kombinację roli lub roli etykiety i tytułu (tj. dostępną nazwę).",
|
|---|
| 798 | "fail": "Punkt orientacyjny musi mieć unikalną aria-label, aria-labelledby lub title, aby był rozpoznawalny."
|
|---|
| 799 | },
|
|---|
| 800 | "has-lang": {
|
|---|
| 801 | "pass": "Element <html> ma atrybut lang.",
|
|---|
| 802 | "fail": {
|
|---|
| 803 | "noXHTML": "Atrybut xml:lang nie jest poprawny na stronach HTML, użyj atrybutu lang.",
|
|---|
| 804 | "noLang": "Element <html> nie ma atrybutu lang."
|
|---|
| 805 | }
|
|---|
| 806 | },
|
|---|
| 807 | "valid-lang": {
|
|---|
| 808 | "pass": "Wartość atrybutu lang jest na liście poprawnych kodów języków.",
|
|---|
| 809 | "fail": "Wartości atrybutu lang nie ma na liście poprawnych kodów języków."
|
|---|
| 810 | },
|
|---|
| 811 | "xml-lang-mismatch": {
|
|---|
| 812 | "pass": "Atrybuty lang i xml:lang mają ten sam język podstawowy.",
|
|---|
| 813 | "fail": "Atrybuty lang i xml:lang nie mają tego samego języka podstawowego."
|
|---|
| 814 | },
|
|---|
| 815 | "dlitem": {
|
|---|
| 816 | "pass": "Element listy opisowej ma element nadrzędny dl.",
|
|---|
| 817 | "fail": "Pozycja listy opisowej nie ma elementu nadrzędnego dl."
|
|---|
| 818 | },
|
|---|
| 819 | "listitem": {
|
|---|
| 820 | "pass": "Element listy ma ul, ol lub role=\"list\" jako bezpośredni element rodzicielski.",
|
|---|
| 821 | "fail": {
|
|---|
| 822 | "default": "Element listy nie ma nadrzędnego elementu ul lub ol.",
|
|---|
| 823 | "roleNotValid": "Element listy nie ma nadrzędnego elementu ul, ol, ani nadrzędnego elementu z role=\"list\"."
|
|---|
| 824 | }
|
|---|
| 825 | },
|
|---|
| 826 | "only-dlitems": {
|
|---|
| 827 | "pass": "Element dl ma wewnątrz tylko dozwolone jako bezpośrednie elementy potomne (dzieci) elementy dt lub dd.",
|
|---|
| 828 | "fail": "Element listy ma wewnątrz bezpośrednie elementy dzieci, które nie są dozwolone wewnątrz listy opisowej."
|
|---|
| 829 | },
|
|---|
| 830 | "only-listitems": {
|
|---|
| 831 | "pass": "Element lista ma wewnątrz tylko dozwolone jako bezpośrednie elementy potomne (dzieci) elementy li.",
|
|---|
| 832 | "fail": "Element listy ma bezpośrednie elementy potomne, które nie są dozwolone: ${data.values}"
|
|---|
| 833 | },
|
|---|
| 834 | "structured-dlitems": {
|
|---|
| 835 | "pass": "Gdy elemet dl nie jest pusty, ma zarówno elementy dt, jak i dd.",
|
|---|
| 836 | "fail": "Element nie jest pusty, ale nie ma co najmniej jednego elementu dt, po którym następuje co najmniej jeden element dd."
|
|---|
| 837 | },
|
|---|
| 838 | "caption": {
|
|---|
| 839 | "pass": "Element multimedialny ma ścieżkę z napisami rozszerzonymi.",
|
|---|
| 840 | "incomplete": "Sprawdź, czy istnieją napisy rozszerzone dla tego elementu."
|
|---|
| 841 | },
|
|---|
| 842 | "frame-tested": {
|
|---|
| 843 | "pass": "Ramka iframe została przetestowana z axe-core.",
|
|---|
| 844 | "fail": "Ramka iframe nie mogła być przetestowana z axe-core.",
|
|---|
| 845 | "incomplete": "Nadal wymagane jest przetestowanie ramki iframe z axe-core."
|
|---|
| 846 | },
|
|---|
| 847 | "no-autoplay-audio": {
|
|---|
| 848 | "pass": "Element <video> lub <audio> nie emituje dźwięku przez czas dłuższy niż dozwolony lub posiada mechanizm sterujący.",
|
|---|
| 849 | "fail": "Element <video> lub <audio> emituje dźwięk przez czas dłuższy niż dozwolony i nie posiada mechanizmu sterowania.",
|
|---|
| 850 | "incomplete": "Sprawdź, czy <video> lub <audio> nie emituje dźwięku dłuższej niż przez dozwolony czas lub czy ma mechanizm sterujący."
|
|---|
| 851 | },
|
|---|
| 852 | "css-orientation-lock": {
|
|---|
| 853 | "pass": "Wyświetlacz działa sprawnie, orientacja nie jest blokowana.",
|
|---|
| 854 | "fail": "Zastosowano blokadę orientacji wyświetlacza, w rezultacie wyświetlacz nie działa sprawnie.",
|
|---|
| 855 | "incomplete": "Nie można blokować orientacji wyświetlacza za pomocą ustawień CSS."
|
|---|
| 856 | },
|
|---|
| 857 | "meta-viewport-large": {
|
|---|
| 858 | "pass": "Znacznik <meta> nie ogranicza znacznego powiększenia na urządzeniach przenośnych.",
|
|---|
| 859 | "fail": "Znacznik <meta> znacznik ogranicza powiększanie na urządzeniach przenośnych."
|
|---|
| 860 | },
|
|---|
| 861 | "meta-viewport": {
|
|---|
| 862 | "pass": "Znacznik <meta> nie wyłącza powiększania na urządzeniach przenośnych.",
|
|---|
| 863 | "fail": "${data} w znaczniku <meta> wyłącza powiększanie na urządzeniach przenośnych."
|
|---|
| 864 | },
|
|---|
| 865 | "target-offset": {
|
|---|
| 866 | "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)",
|
|---|
| 867 | "fail": "Cel ma niewystarczające odsunięcie od najbliższego sąsiada: (${data.closestOffset}px, które powinno wynosić co najmniej ${data.minOffset}px)",
|
|---|
| 868 | "incomplete": {
|
|---|
| 869 | "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?",
|
|---|
| 870 | "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?"
|
|---|
| 871 | }
|
|---|
| 872 | },
|
|---|
| 873 | "target-size": {
|
|---|
| 874 | "pass": {
|
|---|
| 875 | "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)",
|
|---|
| 876 | "obscured": "Kontrolka jest ignorowana, ponieważ jest całkowicie zasłonięta i nie można jej kliknąć."
|
|---|
| 877 | },
|
|---|
| 878 | "fail": {
|
|---|
| 879 | "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)",
|
|---|
| 880 | "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)"
|
|---|
| 881 | },
|
|---|
| 882 | "incomplete": {
|
|---|
| 883 | "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?",
|
|---|
| 884 | "contentOverflow": "Rozmiar elementu nie mógł być dokładnie określony z powodu przepełnienia zawartości",
|
|---|
| 885 | "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?",
|
|---|
| 886 | "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?"
|
|---|
| 887 | }
|
|---|
| 888 | },
|
|---|
| 889 | "header-present": {
|
|---|
| 890 | "pass": "Strona ma nagłówek.",
|
|---|
| 891 | "fail": "Strona nie ma nagłówka."
|
|---|
| 892 | },
|
|---|
| 893 | "heading-order": {
|
|---|
| 894 | "pass": "Kolejność nagłówków jest poprawna.",
|
|---|
| 895 | "fail": "Kolejność nagłówków jest niepoprawna.",
|
|---|
| 896 | "incomplete": "Nie można określić poprzedniego nagłówka"
|
|---|
| 897 | },
|
|---|
| 898 | "identical-links-same-purpose": {
|
|---|
| 899 | "pass": "Nie ma żadnych innych łączy o tej samej nazwie, które kierują na inny adres URL.",
|
|---|
| 900 | "incomplete": "Sprawdź, czy łącza mają ten sam cel lub są celowo niejednoznaczne."
|
|---|
| 901 | },
|
|---|
| 902 | "internal-link-present": {
|
|---|
| 903 | "pass": "Znaleziono poprawne łącze pomijające.",
|
|---|
| 904 | "fail": "Nie znaleziono poprawnych łączy pomijających."
|
|---|
| 905 | },
|
|---|
| 906 | "landmark": {
|
|---|
| 907 | "pass": "Strona ma punkt orientacyjny (obszar kluczowy).",
|
|---|
| 908 | "fail": "Strona nie ma żadnego punktu orientacyjnego (obszaru kluczowego)."
|
|---|
| 909 | },
|
|---|
| 910 | "meta-refresh-no-exceptions": {
|
|---|
| 911 | "pass": "Znacznik <meta> nie powoduje natychmiastowego odświeżenia strony",
|
|---|
| 912 | "fail": "Znacznik <meta> tag wymusza czasowe odświeżenie strony"
|
|---|
| 913 | },
|
|---|
| 914 | "meta-refresh": {
|
|---|
| 915 | "pass": "Znacznik <meta> nie odświeża od razu strony.",
|
|---|
| 916 | "fail": "Znacznik <meta> wymusza odświeżenie strony."
|
|---|
| 917 | },
|
|---|
| 918 | "p-as-heading": {
|
|---|
| 919 | "pass": "Elementy <p> nie są stylizowane na nagłówki.",
|
|---|
| 920 | "fail": "Zamiast stylizowanych na nagłówki elementów <p> muszą być użyte nagłówki semantyczne.",
|
|---|
| 921 | "incomplete": "Nie można określić, czy elementy <p> są stylizowane na nagłówki"
|
|---|
| 922 | },
|
|---|
| 923 | "region": {
|
|---|
| 924 | "pass": "Cała treść strony jest zawarta w obszarach kluczowych.",
|
|---|
| 925 | "fail": "Pewna część strony znajduje się poza punktami orientacyjnymi."
|
|---|
| 926 | },
|
|---|
| 927 | "skip-link": {
|
|---|
| 928 | "pass": "Cel łącza pomijajacego istnieje.",
|
|---|
| 929 | "incomplete": "Cel łącza pomijania powinien być widoczny po aktywacji.",
|
|---|
| 930 | "fail": "Nie istnieje cel łącza pomijającego."
|
|---|
| 931 | },
|
|---|
| 932 | "unique-frame-title": {
|
|---|
| 933 | "pass": "Atrybut title elementu jest unikalny.",
|
|---|
| 934 | "fail": "Atrybut title elementu nie jest unikalny."
|
|---|
| 935 | },
|
|---|
| 936 | "duplicate-id-active": {
|
|---|
| 937 | "pass": "W dokumencie nie ma aktywnych elementów z takim samym atrybutem id.",
|
|---|
| 938 | "fail": "W dokumencie są aktywne elementy z tą samą wartością atrybutu id: ${data}."
|
|---|
| 939 | },
|
|---|
| 940 | "duplicate-id-aria": {
|
|---|
| 941 | "pass": "W dokumencie nie ma żadnych elementów, do których odwołuje się ARIA lub <label>, które mają ten sam atrybut id.",
|
|---|
| 942 | "fail": "W dokumencie jest wiele elementów, do których odnosi się ARIA z tym samym atrybutem id: ${data}."
|
|---|
| 943 | },
|
|---|
| 944 | "duplicate-id": {
|
|---|
| 945 | "pass": "W dokumencie nie ma wielu elementów statycznych z takim samym atrybutem id.",
|
|---|
| 946 | "fail": "W dokumencie jest wiele elementów statycznych z takim samym atrybutem id: ${data}."
|
|---|
| 947 | },
|
|---|
| 948 | "aria-label": {
|
|---|
| 949 | "pass": "Atrybut aria-label istnieje i nie jest pusty.",
|
|---|
| 950 | "fail": "Atrybut aria-label nie istnieje lub jest pusty."
|
|---|
| 951 | },
|
|---|
| 952 | "aria-labelledby": {
|
|---|
| 953 | "pass": "Atrybut aria-labelledby oraz elementy, do których się odwołuje, istnieją i są widoczne dla czytników ekranu.",
|
|---|
| 954 | "fail": "Atrybut aria-labelledby nie istnieje albo elementy, do których odwołuje atrybut aria-labelledby, nie istnieją lub są puste.",
|
|---|
| 955 | "incomplete": "Spowoduj, aby istniał element, do którego istnieje odwołanie w atrybucie aria-labelldeby."
|
|---|
| 956 | },
|
|---|
| 957 | "avoid-inline-spacing": {
|
|---|
| 958 | "pass": "Nie określono żadnych stylów wewnętrznych (inline) z '!important', które wpływają na odstępy w tekście.",
|
|---|
| 959 | "fail": {
|
|---|
| 960 | "singular": "Usuń dyrektywę '!important' ze stylu inline ${data.values}, ponieważ nadpisywanie tego nie jest obsługiwane przez większość przeglądarek.",
|
|---|
| 961 | "plural": "Usuń dyrektywy '!important' ze stylów inline ${data.values}, ponieważ nadpisywanie tego nie jest obsługiwane przez większość przeglądarek."
|
|---|
| 962 | }
|
|---|
| 963 | },
|
|---|
| 964 | "button-has-visible-text": {
|
|---|
| 965 | "pass": "Element ma tekst wewnętrzny widoczny dla czytników ekranu.",
|
|---|
| 966 | "fail": "Element nie ma wewnętrznego tekstu, który jest widoczny dla czytników ekranu.",
|
|---|
| 967 | "incomplete": "Nie można określić, czy element ma elementy potomne."
|
|---|
| 968 | },
|
|---|
| 969 | "doc-has-title": {
|
|---|
| 970 | "pass": "Dokument ma niepusty element <title>.",
|
|---|
| 971 | "fail": "Dokument nie ma niepustego elementu <title>."
|
|---|
| 972 | },
|
|---|
| 973 | "exists": {
|
|---|
| 974 | "pass": "Element nie istnieje.",
|
|---|
| 975 | "incomplete": "Element istnieje."
|
|---|
| 976 | },
|
|---|
| 977 | "has-alt": {
|
|---|
| 978 | "pass": "Element ma atrybut alt.",
|
|---|
| 979 | "fail": "Element nie ma atrybutu alt."
|
|---|
| 980 | },
|
|---|
| 981 | "has-visible-text": {
|
|---|
| 982 | "pass": "Element ma tekst, który jest widoczny dla czytników ekranu.",
|
|---|
| 983 | "fail": "Element nie ma tekstu, który jest widoczny dla czytników ekranu.",
|
|---|
| 984 | "incomplete": "Nie można określić, czy element ma elementy dzieci."
|
|---|
| 985 | },
|
|---|
| 986 | "important-letter-spacing": {
|
|---|
| 987 | "pass": "Odstępy między literami (letter-spacing) w atrybucie style nie są ustawione na !important lub spełniają minimum",
|
|---|
| 988 | "fail": "Odstępy między literami w atrybucie style nie mogą używać !important lub muszą mieć ${data.minValue}em (aktualnie: ${data.value}em)"
|
|---|
| 989 | },
|
|---|
| 990 | "important-line-height": {
|
|---|
| 991 | "pass": "Właściwość line-height w atrybucie style nie jest ustawiona na !important lub spełnia minimum.",
|
|---|
| 992 | "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)."
|
|---|
| 993 | },
|
|---|
| 994 | "important-word-spacing": {
|
|---|
| 995 | "pass": "Odstępy miedzy wyrazami (word-spacing) w atrybucie style nie są ustawione na !important lub spełniają minimum",
|
|---|
| 996 | "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)"
|
|---|
| 997 | },
|
|---|
| 998 | "is-on-screen": {
|
|---|
| 999 | "pass": "Element nie jest widoczny.",
|
|---|
| 1000 | "fail": "Element jest widoczny."
|
|---|
| 1001 | },
|
|---|
| 1002 | "non-empty-alt": {
|
|---|
| 1003 | "pass": "Element ma niepusty atrybut alt.",
|
|---|
| 1004 | "fail": {
|
|---|
| 1005 | "noAttr": "Element nie ma atrybutu alt.",
|
|---|
| 1006 | "emptyAttr": "Element ma pusty atrybut alt."
|
|---|
| 1007 | }
|
|---|
| 1008 | },
|
|---|
| 1009 | "non-empty-if-present": {
|
|---|
| 1010 | "pass": {
|
|---|
| 1011 | "default": "Element nie posiada atrybutu bez określonej wartości.",
|
|---|
| 1012 | "has-label": "Element ma atrybuty bez określonej wartości."
|
|---|
| 1013 | },
|
|---|
| 1014 | "fail": "Element ma atrybut wartości, a atrybut wartości jest pusty."
|
|---|
| 1015 | },
|
|---|
| 1016 | "non-empty-placeholder": {
|
|---|
| 1017 | "pass": "Element ma atrybut placeholder.",
|
|---|
| 1018 | "fail": {
|
|---|
| 1019 | "noAttr": "Element nie ma atrybutu placeholder.",
|
|---|
| 1020 | "emptyAttr": "Element ma pusty atrybut placeholder."
|
|---|
| 1021 | }
|
|---|
| 1022 | },
|
|---|
| 1023 | "non-empty-title": {
|
|---|
| 1024 | "pass": "Element ma atrybut title.",
|
|---|
| 1025 | "fail": {
|
|---|
| 1026 | "noAttr": "Element nie ma atrybutu title.",
|
|---|
| 1027 | "emptyAttr": "Element ma pusty atrybut title."
|
|---|
| 1028 | }
|
|---|
| 1029 | },
|
|---|
| 1030 | "non-empty-value": {
|
|---|
| 1031 | "pass": "Element ma atrybut z niepustą wartością.",
|
|---|
| 1032 | "fail": {
|
|---|
| 1033 | "noAttr": "Element nie ma atrybutu z wartością.",
|
|---|
| 1034 | "emptyAttr": "Element ma atrybut z pustą wartością."
|
|---|
| 1035 | }
|
|---|
| 1036 | },
|
|---|
| 1037 | "presentational-role": {
|
|---|
| 1038 | "pass": "Domyślna semantyka elementu została zastąpiona przez role=\"${data.role}\".",
|
|---|
| 1039 | "fail": {
|
|---|
| 1040 | "default": "Domyślna semantyka elementu nie została nadpisana przez role=\"none\" ani role=\"presentation\".",
|
|---|
| 1041 | "globalAria": "Rola elementu nie jest prezentacyjna, ponieważ ma on ogólny atrybut ARIA.",
|
|---|
| 1042 | "focusable": "Rola elementu nie jest prezentacyjna, ponieważ może on przyjmować fokus.",
|
|---|
| 1043 | "both": "Rola elementu nie jest prezentacyjna, ponieważ ma on ogólny atrybut ARIA i może przyjmować fokus.",
|
|---|
| 1044 | "iframe": "Użycie atrybutu \"title\" na elemencie ${data.nodeName} z rolą prezentacyjną zachowuje się niespójnie pomiędzy czytnikami ekranu."
|
|---|
| 1045 | }
|
|---|
| 1046 | },
|
|---|
| 1047 | "role-none": {
|
|---|
| 1048 | "pass": "Domyślna semantyka elementu została zastąpiona przez role=\"none\".",
|
|---|
| 1049 | "fail": "Domyślna semantyka elementu nie została nadpisana przez role=\"none\"."
|
|---|
| 1050 | },
|
|---|
| 1051 | "role-presentation": {
|
|---|
| 1052 | "pass": "Domyślna semantyka elementu została zastąpiona przez role=\"presentation\".",
|
|---|
| 1053 | "fail": "Domyślna semantyka elementu nie została nadpisana przez role=\"presentation\"."
|
|---|
| 1054 | },
|
|---|
| 1055 | "svg-non-empty-title": {
|
|---|
| 1056 | "pass": "Element ma dziecko, które jest tytułem.",
|
|---|
| 1057 | "fail": {
|
|---|
| 1058 | "noTitle": "Element nie ma dziecka, które jest tytułem.",
|
|---|
| 1059 | "emptyTitle": "Element title dziecka jest pusty."
|
|---|
| 1060 | },
|
|---|
| 1061 | "incomplete": "Nie można ustalić, czy element ma dziecko, które jest tytułem."
|
|---|
| 1062 | },
|
|---|
| 1063 | "caption-faked": {
|
|---|
| 1064 | "pass": "Pierwszy wiersz tabeli nie jest używany jako podpis.",
|
|---|
| 1065 | "fail": "Pierwszym elementem potomnym (dzieckiem) w tabeli powinien być caption zamiast komórki tabeli."
|
|---|
| 1066 | },
|
|---|
| 1067 | "html5-scope": {
|
|---|
| 1068 | "pass": "Atrybut scope jest używany tylko w elementach nagłówków tabeli (<th>).",
|
|---|
| 1069 | "fail": "W HTML 5, atrybuty scope mogą być używane tylko w elementach nagłówkowych tabeli (<th>)."
|
|---|
| 1070 | },
|
|---|
| 1071 | "same-caption-summary": {
|
|---|
| 1072 | "pass": "Treści atrybutu summary i elementu <caption> nie są powielane.",
|
|---|
| 1073 | "fail": "Treści atrybutu summary i elementu <caption> są identyczne.",
|
|---|
| 1074 | "incomplete": "Nie można określić, czy element <table> ma caption"
|
|---|
| 1075 | },
|
|---|
| 1076 | "scope-value": {
|
|---|
| 1077 | "pass": "Atrybut scope ma poprawną wartość.",
|
|---|
| 1078 | "fail": "Wartością atrybutu scope może być tylko 'row' lub 'col'."
|
|---|
| 1079 | },
|
|---|
| 1080 | "td-has-header": {
|
|---|
| 1081 | "pass": "Wszystkie niepuste komórki danych mają nagłówki tabeli.",
|
|---|
| 1082 | "fail": "Niektóre niepuste komórki danych nie mają nagłówków tabeli."
|
|---|
| 1083 | },
|
|---|
| 1084 | "td-headers-attr": {
|
|---|
| 1085 | "pass": "Atrybut headers jest używany wyłącznie w odniesieniu do innych komórek w tabeli.",
|
|---|
| 1086 | "incomplete": "Atrybut headers jest pusty.",
|
|---|
| 1087 | "fail": "Atrybut headers nie jest używany wyłącznie w odniesieniu do innych komórek w tabeli."
|
|---|
| 1088 | },
|
|---|
| 1089 | "th-has-data-cells": {
|
|---|
| 1090 | "pass": "Wszystkie komórki nagłówkowe tabeli odnoszą się do komórek danych.",
|
|---|
| 1091 | "fail": "Nie wszystkie komórki nagłówkowe tabeli odnoszą się do komórek danych.",
|
|---|
| 1092 | "incomplete": "Komórki danych tabeli są puste lub nie istnieją."
|
|---|
| 1093 | },
|
|---|
| 1094 | "hidden-content": {
|
|---|
| 1095 | "pass": "Wszystkie treści na stronie zostały przeanalizowane.",
|
|---|
| 1096 | "fail": "Były problemy z analizą treści na tej stronie.",
|
|---|
| 1097 | "incomplete": "Na tej stronie jest ukryta treść, która nie została przeanalizowana. Musisz uruchomić wyświetlanie tej treści, aby ją przeanalizować."
|
|---|
| 1098 | }
|
|---|
| 1099 | },
|
|---|
| 1100 | "failureSummaries": {
|
|---|
| 1101 | "any": {
|
|---|
| 1102 | "failureMessage": "Napraw następujące elementy: {{~it:value}}\n {{=value.split('\\n').join('\\n ')}}{{~}}"
|
|---|
| 1103 | },
|
|---|
| 1104 | "none": {
|
|---|
| 1105 | "failureMessage": "Napraw wszystkie poniższe: {{~it:value}}\n {{=value.split('\\n').join('\\n ')}}{{~}}"
|
|---|
| 1106 | }
|
|---|
| 1107 | },
|
|---|
| 1108 | "incompleteFallbackMessage": "AXE nie potrafił określić powodu. Czas użyć inspektora elementów!"
|
|---|
| 1109 | }
|
|---|