pl.json 49 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965
  1. {
  2. "lang": "pl",
  3. "rules": {
  4. "accesskeys": {
  5. "description": "Każdy atrybut accessskey jest unikalny.",
  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 roli elementu.",
  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-command-name": {
  21. "description": "Każdy przycisk, łącze i pozycja menu (menuitem) ARIA ma dostępną nazwę.",
  22. "help": "Polecenia ARIA muszą mieć dostępną nazwę."
  23. },
  24. "aria-dialog-name": {
  25. "description": "Każde okno dialogowe ARIA i węzeł alertdialog ma dostępną nazwę.",
  26. "help": "Okno dialogowe ARIA i węzły alertdialog muszą mieć dostępną nazwę."
  27. },
  28. "aria-hidden-body": {
  29. "description": "Element <body> nie ma atrybutu aria-hidden='true'.",
  30. "help": "Element <body> nie może mieć atrybutu aria-hidden='true'."
  31. },
  32. "aria-hidden-focus": {
  33. "description": "Elementy z aria-hidden nie mogą obejmować elementów przyjmujących fokus.",
  34. "help": "Ukryty element ARIA nie może zawierać elementów przyjmujących fokus."
  35. },
  36. "aria-input-field-name": {
  37. "description": "Każde pole wejściowe ARIA ma dostępną nazwę.",
  38. "help": "Pola wejściowe ARIA muszą mieć dostępną nazwę."
  39. },
  40. "aria-meter-name": {
  41. "description": "Każdy licznik (meter) oparty na ARIA ma dostępną nazwę.",
  42. "help": "Liczniki (meter) ARIA muszą mieć dostępną nazwę."
  43. },
  44. "aria-progressbar-name": {
  45. "description": "Każdy pasek postępu (progressbar) ARIA ma dostępną nazwę.",
  46. "help": "Paski postępu (progressbar) ARIA muszą mieć dostępną nazwę."
  47. },
  48. "aria-required-attr": {
  49. "description": "Elementy z rolami ARIA mają wszystkie wymagane atrybuty ARIA.",
  50. "help": "Wymagane atrybuty ARIA muszą istnieć."
  51. },
  52. "aria-required-children": {
  53. "description": "Elementy z rolą ARIA, które wymagają ról potomnych, zawierają je.",
  54. "help": "Niektóre role ARIA muszą obejmować określone dzieci."
  55. },
  56. "aria-required-parent": {
  57. "description": "Elementy z rolą ARIA, które wymagają ról nadrzędnych, są zawarte w elementach z takimi rolami.",
  58. "help": "Niektóre role ARIA muszą być wewnątrz określonych elementów rodziców."
  59. },
  60. "aria-roledescription": {
  61. "description": "Atrybut aria-roledescription jest używany tylko w elementach, które mają rolę określoną domyślnie lub jawnie.",
  62. "help": "Użyj aria-roledescription w elementach o roli semantycznej."
  63. },
  64. "aria-roles": {
  65. "description": "Wszystkie elementy z atrybutem roli używają prawidłowej wartości tego atrybutu.",
  66. "help": "Stosowane role ARIA muszą być zgodne z obowiązującymi wartościami."
  67. },
  68. "aria-text": {
  69. "description": "Atrybut \"role=text\" jest używany dla elementów, które nie mają potomków przyjmujących fokus",
  70. "help": "\"role=text\" nie powinien mieć potomków przyjmujących fokus."
  71. },
  72. "aria-toggle-field-name": {
  73. "description": "Każdy przełącznik (toggle) ARIA ma dostępną nazwę.",
  74. "help": "Przełączniki (toggle) ARIA muszą mieć dostępną nazwę."
  75. },
  76. "aria-tooltip-name": {
  77. "description": "Każda podpowiedź (tooltip) ARIA ma dostępną nazwę.",
  78. "help": "Podpowiedzi (tooltip) ARIA muszą mieć dostępną nazwę."
  79. },
  80. "aria-treeitem-name": {
  81. "description": "Każdy węzeł drzewa elementów (treeitem) ARIA ma dostępną nazwę.",
  82. "help": "Węzły drzewa elementów ARIA muszą mieć dostępną nazwę."
  83. },
  84. "aria-valid-attr-value": {
  85. "description": "Wszystkie atrybuty ARIA mają poprawne wartości.",
  86. "help": "Atrybuty ARIA muszą mieć poprawne wartości."
  87. },
  88. "aria-valid-attr": {
  89. "description": "Atrybuty, które rozpoczynają się od aria-, są poprawnymi atrybutami ARIA.",
  90. "help": "Atrybuty ARIA muszą być mieć poprawne nazwy."
  91. },
  92. "audio-caption": {
  93. "description": "Elementy <audio> mają napisy rozszerzone.",
  94. "help": "Elementy <audio> muszą mieć ścieżkę z napisami."
  95. },
  96. "autocomplete-valid": {
  97. "description": "Atrybut autocomplete jest poprawny i odpowiedni dla pola formularza.",
  98. "help": "Atrybut autocomplete musi być użyty poprawnie."
  99. },
  100. "avoid-inline-spacing": {
  101. "description": "Odstępy w tekście ustawione za pomocą atrybutów stylu mogą być regulowane za pomocą własnych arkuszy stylów.",
  102. "help": "Odstępy w tekście muszą być regulowane za pomocą własnych arkuszy stylów."
  103. },
  104. "blink": {
  105. "description": "Elementy <blink> nie są używane.",
  106. "help": "Elementy <blink> są przestarzałe i nie mogą być używane."
  107. },
  108. "button-name": {
  109. "description": "Przyciski mają odróżniający je tekst.",
  110. "help": "Przyciski muszą mieć odróżniający je tekst."
  111. },
  112. "bypass": {
  113. "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 się bloków treści."
  115. },
  116. "color-contrast": {
  117. "description": "Kontrast między kolorami pierwszego planu i tła spełnia progi kontrastu WCAG 2 AA.",
  118. "help": "Elementy muszą mieć wystarczający kontrast kolorów."
  119. },
  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. "css-orientation-lock": {
  125. "description": "Treść nie jest przypisana do żadnej konkretnej orientacji wyświetlacza i można ją obsługiwać we wszystkich orientacjach wyświetlacza.",
  126. "help": "Zapytania medialne nie są wykorzystywane do blokowania orientacji wyświetlacza."
  127. },
  128. "definition-list": {
  129. "description": "Elementy <dl> mają poprawną strukturę.",
  130. "help": "Elementy <dl> mogą bezpośrednio zawierać tylko odpowiednio uporządkowane grupy <dt> i <dd> oraz elementy <script>, <template> lub <div>."
  131. },
  132. "dlitem": {
  133. "description": "Elementy <dt> i <dd> znajdują się bezpośrednio w <dl>.",
  134. "help": "Elementy <dt> i <dd> są wewnątrz elementu <dl>."
  135. },
  136. "document-title": {
  137. "description": "Każdy dokument HTML ma niepusty element <title>.",
  138. "help": "Dokumenty muszą mieć element <title> pomagający w nawigacji."
  139. },
  140. "duplicate-id-active": {
  141. "description": "Wartość każdego atrybutu id aktywnych elementów jest unikalna.",
  142. "help": "ID aktywnych elementów muszą być unikalne."
  143. },
  144. "duplicate-id-aria": {
  145. "description": "Każdy atrybut id używany w ARIA i w etykietach jest unikalny.",
  146. "help": "Identyfikatory stosowane w ARIA i etykietach muszą być unikalne."
  147. },
  148. "duplicate-id": {
  149. "description": "Wartość każdego atrybutu id jest unikalna.",
  150. "help": "Wartość atrybutu id musi być unikalna."
  151. },
  152. "empty-heading": {
  153. "description": "Nagłówki mają odróżniający je tekst.",
  154. "help": "Nagłówki nie mogą być puste."
  155. },
  156. "empty-table-header": {
  157. "description": "Upewnij się, że nagłówki tabel mają opisowy tekst.",
  158. "help": "Tekst nagłówka tabeli nie może być pusty."
  159. },
  160. "focus-order-semantics": {
  161. "description": "Elementy w porządku otrzymywania fokusu mają odpowiednią rolę.",
  162. "help": "Elementy w porządku otrzymywania fokusu muszą mieć rolę odpowiednią dla treści interaktywnych."
  163. },
  164. "form-field-multiple-labels": {
  165. "description": "Pole formularza nie ma wielu etykiet (elementów label).",
  166. "help": "Pole formularza nie powinno zawierać wielu elementów label."
  167. },
  168. "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"
  171. },
  172. "frame-tested": {
  173. "description": "Elementy <iframe> i <frame> muszą być testowane ze skryptem axe-core.",
  174. "help": "Ramki muszą być testowane ze skryptem axe-core."
  175. },
  176. "frame-title-unique": {
  177. "description": "Elementy <frame> i <frame> mają unikalny atrybut title.",
  178. "help": "Ramki (frame) muszą mieć unikalny atrybut title."
  179. },
  180. "frame-title": {
  181. "description": "Elementy <iframe> i <frame> mają niepusty atrybut title.",
  182. "help": "Ramki muszą mieć atrybut title."
  183. },
  184. "heading-order": {
  185. "description": "Kolejność nagłówków jest semantycznie poprawna.",
  186. "help": "Poziomy nagłówków powinny wzrastać tylko o jeden."
  187. },
  188. "hidden-content": {
  189. "description": "Informuje użytkowników o ukrytych treściach.",
  190. "help": "Ukrytych treści na stronie nie można analizować."
  191. },
  192. "html-has-lang": {
  193. "description": "Każdy dokument HTML ma atrybut lang.",
  194. "help": "Element <html> musi mieć atrybut lang."
  195. },
  196. "html-lang-valid": {
  197. "description": "Atrybut lang elementu <html> ma poprawną wartość.",
  198. "help": "Element <html> musi mieć poprawną wartość atrybutu lang."
  199. },
  200. "html-xml-lang-mismatch": {
  201. "description": "Element HTML z poprawnym atrybutem lang xml:lang ma ten sam podstawowy język strony.",
  202. "help": "Element HTML z lang i xml:lang musi mieć ten sam język podstawowy."
  203. },
  204. "identical-links-same-purpose": {
  205. "description": "Łącza o tej samej dostępnej nazwie służą temu samemu celowi.",
  206. "help": "Łącza o tej samej nazwie mają ten sam cel."
  207. },
  208. "image-alt": {
  209. "description": "Elementy <img> mają atrybut alt lub rolę none albo presentation.",
  210. "help": "Obrazy muszą mieć tekst alternatywny."
  211. },
  212. "image-redundant-alt": {
  213. "description": "Tekst alternatywny obrazu nie jest powtarzany w tekście.",
  214. "help": "Alternatywny tekst obrazów nie powinien być powtarzany w tekście."
  215. },
  216. "input-button-name": {
  217. "description": "Przyciski input type=button mają odróżniający je tekst.",
  218. "help": "Przyciski input type=button muszą mieć odróżniający je tekst."
  219. },
  220. "input-image-alt": {
  221. "description": "Elementy <input type=\"image\"> mają tekst alternatywny.",
  222. "help": "Przyciski graficzne muszą mieć tekst alternatywny."
  223. },
  224. "label-content-name-mismatch": {
  225. "description": "Elementy oznakowane swoją treścią mają swój widoczny tekst jako część ich dostępnej nazwy",
  226. "help": "Elementy muszą mieć swój widoczny tekst jako część ich dostępnej nazwy."
  227. },
  228. "label-title-only": {
  229. "description": "Żaden element formularza nie jest oznaczony wyłącznie za pomocą atrybutu title lub aria-describedby.",
  230. "help": "Element formularza powinien mieć widoczną etykietę."
  231. },
  232. "label": {
  233. "description": "Każdy element formularza ma etykietę.",
  234. "help": "Element formularza musi mieć etykietę."
  235. },
  236. "landmark-banner-is-top-level": {
  237. "description": "Obszar banner jest obszarem kluczowym najwyższego poziomu.",
  238. "help": "Punkt orientacyjny banner nie może być zawarty wewnątrz innego obszaru kluczowego."
  239. },
  240. "landmark-complementary-is-top-level": {
  241. "description": "Obszar aside lub obszar z role=complementary są obszarami kluczowymi najwyższego poziomu.",
  242. "help": "Punkt orientacyjny complementary nie może być zawarty wewnątrz innego obszaru kluczowego."
  243. },
  244. "landmark-contentinfo-is-top-level": {
  245. "description": "Obszar kluczowy z role=contentinfo jest obszarem kluczowym najwyższego poziomu.",
  246. "help": "Punkt orientacyjny contentinfo nie może być zawarty wewnątrz innego obszaru kluczowego."
  247. },
  248. "landmark-main-is-top-level": {
  249. "description": "Obszar main jest obszarem kluczowym najwyższego poziomu.",
  250. "help": "Punkt orientacyjny main nie może być zawarty wewnątrz innego obszaru kluczowego."
  251. },
  252. "landmark-no-duplicate-banner": {
  253. "description": "Dokument ma co najwyżej jeden punkt orientacyjny banner.",
  254. "help": "Dokument nie może mieć więcej niż jednego obszaru kluczowego banner."
  255. },
  256. "landmark-no-duplicate-contentinfo": {
  257. "description": "Dokument ma co najwyżej jeden punkt orientacyjny contentinfo.",
  258. "help": "Dokument nie może mieć więcej niż jednego obszaru kluczowego contentinfo."
  259. },
  260. "landmark-no-duplicate-main": {
  261. "description": "Dokument ma co najwyżej jeden punkt orientacyjny main.",
  262. "help": "Dokument nie może mieć więcej niż jednego obszaru kluczowego main."
  263. },
  264. "landmark-one-main": {
  265. "description": "Dokument ma punkt orientacyjny main.",
  266. "help": "Dokument może mieć tylko jeden obszar kluczowy main."
  267. },
  268. "landmark-unique": {
  269. "help": "Punkty orientacyjne mają unikalną rolę lub kombinację roli/etykiety/tytułu (tj. dostępną nazwę).",
  270. "description": "Punkty orientacyjne (obszary kluczowe) są unikalne."
  271. },
  272. "link-in-text-block": {
  273. "description": "Łącza można rozróżniać bez opierania się na kolorze.",
  274. "help": "Łącza muszą być odróżnialne od otaczającego je tekstu w sposób, który nie opiera się na kolorze."
  275. },
  276. "link-name": {
  277. "description": "Łącza mają odróżniający je tekst.",
  278. "help": "Łącza muszą mieć odróżniający je tekst."
  279. },
  280. "list": {
  281. "description": "Listy mają poprawną strukturę.",
  282. "help": "Elementy <ul> i <ol> mogą bezpośrednio zawierać tylko elementy <li>, <script> lub <template>."
  283. },
  284. "listitem": {
  285. "description": "Elementy <li> są używane semantycznie.",
  286. "help": " Elementy <li> muszą być zawarte bezpośrednio w <ul> lub <ol>."
  287. },
  288. "marquee": {
  289. "description": "Elementy <marquee> nie są używane.",
  290. "help": "Elementy <marquee> są przestarzałe i nie mogą być używane."
  291. },
  292. "meta-refresh": {
  293. "description": "<meta http-equiv=\"refresh\"> nie jest stosowane.",
  294. "help": "Automatyczne odświeżenie strony nie może być stosowane."
  295. },
  296. "meta-viewport-large": {
  297. "description": "Element <meta name=\"viewport\"> umożliwia znaczne powiększanie.",
  298. "help": "Użytkownicy mogą powiększać i skalować tekst do 500%."
  299. },
  300. "meta-viewport": {
  301. "description": "Element <meta name=\"viewport\"> nie wyłącza skalowania i powiększania tekstu.",
  302. "help": "Powiększanie i skalowanie nie może być wyłączone."
  303. },
  304. "nested-interactive": {
  305. "description": "Zagnieżdżone interaktywne kontrolki nie są ogłaszane przez czytniki ekranu",
  306. "help": "Upewnij się, że kontrolki interaktywne nie są zagnieżdżone"
  307. },
  308. "no-autoplay-audio": {
  309. "description": "Elementy <video> lub <audio> nie odtwarzają automatycznie przez dłużej niż 3 sekundy dźwięku bez mechanizmu, który go zatrzymuje lub wycisza.",
  310. "help": "Elementy <video> lub <audio> nie odtwarzają dźwięku automatycznie."
  311. },
  312. "object-alt": {
  313. "description": "Elementy <object> mają tekst alternatywny.",
  314. "help": "Elementy <object> muszą mieć tekst zastępczy."
  315. },
  316. "p-as-heading": {
  317. "description": "Elementy p nie są stylizowane jako nagłówki.",
  318. "help": "Pogrubienie, kursywa i rozmiar czcionki nie są używane do stylizacji elementów p jako nagłówków."
  319. },
  320. "page-has-heading-one": {
  321. "description": "Strona, lub co najmniej jedna z jej ramek, zawiera nagłówek pierwszego poziomu.",
  322. "help": "Strona musi zawierać nagłówek poziomu 1."
  323. },
  324. "presentation-role-conflict": {
  325. "description": "Elementy z role=none lub role=presentation nie mogą kolidować z innymi rolami.",
  326. "help": "Elementy, które mają role=none lub role=presentation, nie mogą kolidować z innymi rolami."
  327. },
  328. "region": {
  329. "description": "Cała treść strony jest objęta przez punkty orientacyjne.",
  330. "help": "Cała treść strony musi być zawarta w obszarach kluczowych."
  331. },
  332. "role-img-alt": {
  333. "description": "Elementy z [role=\"img\"] mają tekst alternatywny.",
  334. "help": "Elementy z [role=\"img\"] muszą mieć tekst alternatywny."
  335. },
  336. "scope-attr-valid": {
  337. "description": "Atrybut scope w tabelach jest stosowany poprawnie.",
  338. "help": "Atrybut scope ma poprawną wartość."
  339. },
  340. "scrollable-region-focusable": {
  341. "description": "Elementy, których treść można przewijać, są osiągalne za pomocą klawiatury.",
  342. "help": "Obszary przewijane muszą być osiągalne z klawiatury."
  343. },
  344. "select-name": {
  345. "description": "Element select ma dostępną nazwę.",
  346. "help": "Element select musi mieć dostępną nazwę."
  347. },
  348. "server-side-image-map": {
  349. "description": "Graficzne mapy odnośników (mapy obrazkowe) obsługiwane po stronie serwera nie są używane.",
  350. "help": "Nie wolno używać map odnośników po stronie serwera."
  351. },
  352. "skip-link": {
  353. "description": "Wszystkie łącza pomijania mają cel przyjmujący fokus.",
  354. "help": "Cel łącza pomijającego powinien istnieć i przyjmować fokus."
  355. },
  356. "svg-img-alt": {
  357. "description": "Elementy svg z rolami img, graphics-document lub graphics-symbol mają dostępny tekst.",
  358. "help": "Elementy svg z rolą img mają tekst alternatywny."
  359. },
  360. "tabindex": {
  361. "description": "Wartości atrybutów tabindex nie są większe niż 0.",
  362. "help": "Elementy nie powinny mieć wartości tabindex większej niż zero."
  363. },
  364. "table-duplicate-name": {
  365. "description": "Tabele nie mają takiego samego streszczenia (summary) i podpisu (caption).",
  366. "help": "Atrybut summary w tabeli ma inny tekst niż element caption."
  367. },
  368. "table-fake-caption": {
  369. "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 podpisów."
  371. },
  372. "td-has-header": {
  373. "description": "Każda niepusta komórka danych w dużej tabeli ma jeden lub więcej nagłówków tabeli.",
  374. "help": "Wszystkie niepuste elementy td w tabelach danych większych niż 3 na 3 mają skojarzony nagłówek tabeli."
  375. },
  376. "td-headers-attr": {
  377. "description": "Każda komórka tabeli używająca atrybutu headers odwołuje się do innej komórki w tej tabeli.",
  378. "help": "Wszystkie komórki z atrybutem headers odnoszą się tylko do innych komórek tej samej tabeli."
  379. },
  380. "th-has-data-cells": {
  381. "description": "Każdy nagłówek tabeli w tabeli danych odnosi się do komórek danych.",
  382. "help": "Wszystkie elementy th i elementy z role=columnheader/rowheader mają komórki danych, które opisują."
  383. },
  384. "valid-lang": {
  385. "description": "Atrybuty lang mają poprawne wartości.",
  386. "help": "Atrybuty lang muszą mieć poprawną wartość."
  387. },
  388. "video-caption": {
  389. "description": "Elementy <video> mają napisy rozszerzone.",
  390. "help": "Elementy <video> muszą mieć napisy rozszerzone."
  391. }
  392. },
  393. "checks": {
  394. "abstractrole": {
  395. "pass": "Role abstrakcyjne nie są wykorzystywane.",
  396. "fail": {
  397. "singular": "Rola abstrakcyjna nie może być użyta bezpośrednio: ${data.values}.",
  398. "plural": ": Role abstrakcyjne nie mogą być używane bezpośrednio: ${data.values}."
  399. }
  400. },
  401. "aria-allowed-attr": {
  402. "pass": "Atrybuty ARIA są używane poprawnie dla zdefiniowanej roli.",
  403. "fail": {
  404. "singular": "Atrybut ARIA nie jest dozwolony: ${data.values}.",
  405. "plural": ": Atrybuty ARIA nie są dozwolone: ${data.values}."
  406. }
  407. },
  408. "aria-allowed-role": {
  409. "pass": "Rola ARIA jest dozwolona dla danego elementu.",
  410. "fail": {
  411. "singular": "Rola ARIA ${data.values} nie jest dozwolona dla tego elementu.",
  412. "plural": ": Role ARIA ${data.values} nie są dozwolone dla tego elementu."
  413. },
  414. "incomplete": {
  415. "singular": "Rola ARIA ${data.values} musi być usunięta, gdy element jest widoczny, ponieważ nie jest to dozwolone dla elementu.",
  416. "plural": ": Role ARIA ${data.values} muszą być usunięte, gdy element jest widoczny, ponieważ nie są one dozwolone dla elementu."
  417. }
  418. },
  419. "aria-errormessage": {
  420. "pass": "Istnieje aria-errormessage oraz elementy referencyjne widoczne dla czytników ekranowych, które wykorzystują wspieraną technikę aria-errormessage.",
  421. "fail": {
  422. "singular": "Wartość aria-errormessage `${data.values}` musi używać techniki ogłoszenia wiadomości (np. aria-live, aria-describedby, role=alert, etc.).",
  423. "plural": "Wartości aria-errormessage `${data.values}` muszą używać techniki ogłoszenia wiadomości (np. aria-live, aria-describedby, role=alert, etc.)."
  424. },
  425. "incomplete": {
  426. "singular": "Upewnij się, że wartość aria-errormessage `${data.values}` odnosi się do istniejącego elementu.",
  427. "plural": "Upewnij się, że wartości aria-errormessage `${data.values}` odnoszą się do istniejących elementów."
  428. }
  429. },
  430. "aria-hidden-body": {
  431. "pass": "Nie ma żadnego atrybutu aria-hidden w elemencie <body> dokumentu.",
  432. "fail": "Atrybutu aria-hidden=true nie może być w elemencie <body> dokumentu."
  433. },
  434. "aria-prohibited-attr": {
  435. "pass": "Atrybut ARIA jest dozwolony",
  436. "fail": "Atrybut ARIA nie może być użyty, dodaj atrybut role lub użyj innego elementu: ${data.values}",
  437. "incomplete": "Atrybut ARIA nie jest dobrze obsługiwany w elemencie i zamiast niego zostanie użyta treść tekstowa: ${data.values}"
  438. },
  439. "aria-required-attr": {
  440. "pass": "Wszystkie wymagane atrybuty ARIA istnieją.",
  441. "fail": {
  442. "singular": "Wymagany atrybut ARIA nie istnieje: ${data.values}.",
  443. "plural": "Wymagane atrybuty ARIA nie istnieją: ${data.values}."
  444. }
  445. },
  446. "aria-required-children": {
  447. "pass": "Wymagane dzieci ARIA istnieją.",
  448. "fail": {
  449. "singular": "Wymagana rola dziecka ARIA nie istnieje: ${data.values}.",
  450. "plural": "Wymagane role dzieci ARIA nie istnieją: ${data.values}."
  451. },
  452. "incomplete": {
  453. "singular": "Należy dodać oczekiwaną rolę dziecka ARIA: ${data.values}.",
  454. "plural": "Należy dodać oczekiwane role dzieci ARIA: ${data.values}."
  455. }
  456. },
  457. "aria-required-parent": {
  458. "pass": "Wymagana rola rodzica ARIA istnieje.",
  459. "fail": {
  460. "singular": "Wymagana rola rodzica ARIA nie istnieje: ${data.values}.",
  461. "plural": "Wymagane role rodziców ARIA nie istnieją: ${data.values}."
  462. }
  463. },
  464. "aria-roledescription": {
  465. "pass": "Atrybut aria-roledescription jest używany z obsługiwaną rolą semantyczną.",
  466. "incomplete": "Sprawdź, czy aria-roledescription jest ogłaszany przez obsługiwane czytniki ekranu.",
  467. "fail": "Nadaj temu elementowi rolę, która obsługuje aria-roledescription."
  468. },
  469. "aria-unsupported-attr": {
  470. "pass": "Atrybut ARIA jest obsługiwany.",
  471. "fail": "Atrybut ARIA nie jest dostatecznie obsługiwany przez czytniki ekranu i inne technologie wspomagające: ${data.values}."
  472. },
  473. "aria-valid-attr-value": {
  474. "pass": "Wartości atrybutu ARIA są poprawne.",
  475. "fail": {
  476. "singular": "Niepoprawna wartość atrybutu ARIA: ${data.values}.",
  477. "plural": "Niepoprawne wartości atrybutu ARIA: ${data.values}."
  478. },
  479. "incomplete": {
  480. "noId": "Identyfikator elementu atrybutu ARIA nie istnieje na stronie: ${data.needsReview}.",
  481. "ariaCurrent": "Wartość atrybutu ARIA jest niepoprawna i będzie traktowana jako aria-current=true: ${data.needsReview}."
  482. }
  483. },
  484. "aria-valid-attr": {
  485. "pass": "Nazwa atrybutu ARIA jest poprawna.",
  486. "fail": {
  487. "singular": "Niepoprawna nazwa atrybutu ARIA: ${data.values}.",
  488. "plural": "Niepoprawne nazwy atrybutów ARIA: ${data.values}."
  489. }
  490. },
  491. "fallbackrole": {
  492. "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."
  494. },
  495. "has-global-aria-attribute": {
  496. "pass": {
  497. "singular": "Element ma ogólny atrybut ARIA: ${data.values}.",
  498. "plural": ": Element ma ogólne atrybuty ARIA: ${data.values}."
  499. },
  500. "fail": "Element nie ma ogólnego atrybutu ARIA"
  501. },
  502. "has-widget-role": {
  503. "pass": "Element ma rolę widżetu.",
  504. "fail": "Element nie ma roli widżetu."
  505. },
  506. "invalidrole": {
  507. "pass": "Rola ARIA jest poprawna.",
  508. "fail": {
  509. "singular": "Rola musi być jedną z poprawnych ról ARIA: ${data.values}.",
  510. "plural": ": Role muszą być jedną z poprawnych ról ARIA: ${data.values}."
  511. }
  512. },
  513. "is-element-focusable": {
  514. "pass": "Element przyjmuje fokus.",
  515. "fail": "Element nie przyjmuje fokusu."
  516. },
  517. "no-implicit-explicit-label": {
  518. "pass": "Nie ma rozbieżności między <label> a dostępną nazwą.",
  519. "incomplete": "Sprawdź, czy <label> nie musi być częścią nazwy pola ARIA ${data}."
  520. },
  521. "unsupportedrole": {
  522. "pass": "Rola ARIA jest obsługiwana.",
  523. "fail": "Zastosowana rola nie jest szeroko obsługiwana w czytnikach ekranu i technologiach wspomagających: ${data.values}."
  524. },
  525. "valid-scrollable-semantics": {
  526. "pass": "Element w porządku otrzymywania fokusu ma poprawną semantykę.",
  527. "fail": "Element w porządku otrzymywania fokusu ma niepoprawną semantykę."
  528. },
  529. "color-contrast": {
  530. "pass": "Element ma wystarczający kontrast kolorów ${data.contrastRatio}.",
  531. "fail": "Element ma niewystarczający kontrast kolorów: ${data.contrastRatio} (foreground color: ${data.fgColor}, background color: ${data.bgColor}, font size: ${data.fontSize}, font weight: ${data.fontWeight}). Oczekiwany współczynnik kontrastu: ${data.expectedContrastRatio}.",
  532. "incomplete": {
  533. "default": "Nie można określić współczynnika kontrastu.",
  534. "bgImage": "Nie można określić koloru tła elementu, ponieważ element ma obraz tła.",
  535. "bgGradient": "Nie można określić koloru tła elementu, ponieważ element ma gradientowe tło.",
  536. "imgNode": "Nie można określić koloru tła elementu, ponieważ element zawiera węzeł obrazu.",
  537. "bgOverlap": "Nie można określić koloru tła elementu, ponieważ nakłada się na niego inny element.",
  538. "fgAlpha": "Nie można określić koloru pierwszego planu elementu z powodu przezroczystości alfa.",
  539. "elmPartiallyObscured": "Nie można określić koloru tła elementu, ponieważ jest on częściowo zasłonięty przez inny element.",
  540. "elmPartiallyObscuring": "Nie można określić koloru tła elementu, ponieważ częściowo nakłada się on na inne elementy.",
  541. "outsideViewport": "Nie można określić koloru tła elementu, ponieważ znajduje się on poza obszarem operacyjnym.",
  542. "equalRatio": "Element ma współczynnik kontrastu 1:1 z tłem.",
  543. "shortTextContent": "Treść elementu jest zbyt krótka, aby określić, czy jest to rzeczywista treść tekstowa.",
  544. "nonBmp": "Treść elementu zawiera tylko znaki nietekstowe.",
  545. "pseudoContent": "Nie można określić koloru tła elementu, ponieważ jest to pseudoelement."
  546. }
  547. },
  548. "color-contrast-enhanced": {
  549. "pass": "Element ma wystarczający kontrast kolorów ${data.contrastRatio}.",
  550. "fail": "Element ma niewystarczający kontrast kolorów: ${data.contrastRatio} (foreground color: ${data.fgColor}, background color: ${data.bgColor}, font size: ${data.fontSize}, font weight: ${data.fontWeight}). Oczekiwany współczynnik kontrastu: ${data.expectedContrastRatio}.",
  551. "incomplete": {
  552. "default": "Nie można określić współczynnika kontrastu.",
  553. "bgImage": "Nie można określić koloru tła elementu, ponieważ element ma obraz tła.",
  554. "bgGradient": "Nie można określić koloru tła elementu, ponieważ element ma gradientowe tło.",
  555. "imgNode": "Nie można określić koloru tła elementu, ponieważ element zawiera węzeł obrazu.",
  556. "bgOverlap": "Nie można określić koloru tła elementu, ponieważ nakłada się na niego inny element.",
  557. "fgAlpha": "Nie można określić koloru pierwszego planu elementu z powodu przezroczystości alfa.",
  558. "elmPartiallyObscured": "Nie można określić koloru tła elementu, ponieważ jest on częściowo zasłonięty przez inny element.",
  559. "elmPartiallyObscuring": "Nie można określić koloru tła elementu, ponieważ częściowo nakłada się on na inne elementy.",
  560. "outsideViewport": "Nie można określić koloru tła elementu, ponieważ znajduje się on poza obszarem operacyjnym.",
  561. "equalRatio": "Element ma współczynnik kontrastu 1:1 z tłem.",
  562. "shortTextContent": "Treść elementu jest zbyt krótka, aby określić, czy jest to rzeczywista treść tekstowa.",
  563. "nonBmp": "Treść elementu zawiera tylko znaki nietekstowe.",
  564. "pseudoContent": "Nie można określić koloru tła elementu, ponieważ jest to pseudoelement."
  565. }
  566. },
  567. "link-in-text-block": {
  568. "pass": "Łącza można odróżnić od otaczającego je tekstu w inny sposób niż za pomocą koloru.",
  569. "fail": "Łącza muszą być odróżnione od otaczającego je tekstu w inny sposób niż za pomocą koloru.",
  570. "incomplete": {
  571. "default": "Nie można określić współczynnika kontrastu.",
  572. "bgContrast": "Nie można określić współczynnika kontrastu elementu. Sprawdź, czy nie ma odrębnego stylu stanów hover/fokus.",
  573. "bgImage": "Nie można określić współczynnika kontrastu elementu ze względu na obraz tła.",
  574. "bgGradient": "Nie można określić współczynnika kontrastu elementu ze względu na gradient tła.",
  575. "imgNode": "Nie można określić współczynnika kontrastu elementu, ponieważ element zawiera węzeł obrazu.",
  576. "bgOverlap": "Nie można określić współczynnika kontrastu elementu ze względu na nakładanie się elementów."
  577. }
  578. },
  579. "autocomplete-appropriate": {
  580. "pass": "Wartość autocomplete jest odpowiednia dla tego typu pola wejściowego.",
  581. "fail": "Wartość autocomplete jest niewłaściwa dla tego typu pola wejściowego."
  582. },
  583. "autocomplete-valid": {
  584. "pass": "Atrybut autocomplete jest sformatowany poprawnie.",
  585. "fail": "Atrybut autocomplete jest sformatowany niepoprawnie."
  586. },
  587. "accesskeys": {
  588. "pass": "Wartość atrybutu accesskey jest unikalna.",
  589. "fail": "Dokument ma wiele elementów z tym samym klawiszem dostępu."
  590. },
  591. "focusable-content": {
  592. "pass": "Element zawiera elementy przyjmujące fokus.",
  593. "fail": "Element powinien przyjmować fokus."
  594. },
  595. "focusable-disabled": {
  596. "pass": "W elemencie nie ma elementów przyjmujących fokus.",
  597. "fail": "Treść z możliwością ustawiania fokusu powinna być wyłączona lub usunięta z DOM."
  598. },
  599. "focusable-element": {
  600. "pass": "Element może przyjmować fokus.",
  601. "fail": "Element powinien przyjmować fokus."
  602. },
  603. "focusable-modal-open": {
  604. "pass": "Nie ma elementów przyjmujących fokus, gdy otwarte jest okno modalne.",
  605. "incomplete": "Sprawdź, czy elementy, które mogą przyjmować fokus, nie są tabulowane w aktualnym stanie."
  606. },
  607. "focusable-no-name": {
  608. "pass": "Element nie znajduje się w porządku tabulacji lub ma dostępny tekst.",
  609. "fail": "Element znajduje się w porządku tabulacji i nie ma dostępnego tekstu.",
  610. "incomplete": "Nie można ustalić, czy element ma dostępną nazwę."
  611. },
  612. "focusable-not-tabbable": {
  613. "pass": "Nie ma elementów przyjmujących fokus wewnątrz elementu.",
  614. "fail": "Treść przyjmująca fokus powinna mieć tabindex=-1 lub być usunięta z DOM."
  615. },
  616. "frame-focusable-content": {
  617. "pass": "Element nie ma potomków przyjmujących fokus",
  618. "fail": "Element ma elementy potomne przyjmujące fokus",
  619. "incomplete": "Nie można ustalić, czy element ma elementy potomne"
  620. },
  621. "landmark-is-top-level": {
  622. "pass": "Punkt orientacyjny ${data.role} jest na najwyższym poziomie.",
  623. "fail": "Punkt orientacyjny {data.role} jest wewnątrz innego obszaru kluczowego."
  624. },
  625. "no-focusable-content": {
  626. "pass": "Element nie ma potomków przyjmujących fokus",
  627. "fail": "Element ma elementy potomne przyjmujące fokus",
  628. "incomplete": "Nie można ustalić, czy element ma elementy potomne"
  629. },
  630. "page-has-heading-one": {
  631. "pass": "Strona ma co najmniej jeden nagłówek 1. poziomu.",
  632. "fail": "Strona musi mieć nagłówek 1. poziomu."
  633. },
  634. "page-has-main": {
  635. "pass": "Dokument ma co najmniej jeden główny punkt orientacyjny.",
  636. "fail": "Dokument nie ma głównego punktu orientacyjnego."
  637. },
  638. "page-no-duplicate-banner": {
  639. "pass": "W dokumencie nie ma więcej niż jeden obszar kluczowy banner.",
  640. "fail": "W dokumencie jest więcej niż jeden obszar kluczowy banner."
  641. },
  642. "page-no-duplicate-contentinfo": {
  643. "pass": "W dokumencie nie ma więcej niż jeden obszar kluczowy contentinfo.",
  644. "fail": "W dokumencie jest więcej niż jeden obszar kluczowy contentinfo."
  645. },
  646. "page-no-duplicate-main": {
  647. "pass": "W dokumencie nie ma więcej niż jeden obszar kluczowy main.",
  648. "fail": "W dokumencie jest więcej niż jeden obszar kluczowy main."
  649. },
  650. "tabindex": {
  651. "pass": "Element nie ma wartości tabindex większej niż 0.",
  652. "fail": "Element nie ma wartości tabindex większą od 0."
  653. },
  654. "alt-space-value": {
  655. "pass": "Element ma poprawną wartość atrybutu alt.",
  656. "fail": "Element ma atrybut alt zawierający tylko znak spacji, który nie przez wszystkie czytniki ekranu jest ignorowany ."
  657. },
  658. "duplicate-img-label": {
  659. "pass": "Element nie powiela tekstu istniejącego w atrybucie alt elementu <img>.",
  660. "fail": "Element powiela tekst istniejący w atrybucie alt elementu <img>."
  661. },
  662. "explicit-label": {
  663. "pass": "Element formularza ma jawnie określoną <label>.",
  664. "fail": "Element formularza nie ma jawnie określonej <label>.",
  665. "incomplete": "Nie można określić, czy element formularza ma jawnie określoną <label>."
  666. },
  667. "help-same-as-label": {
  668. "pass": "Tekst pomocy (title lub aria-describedby) nie powiela tekstu etykiety.",
  669. "fail": "Tekst pomocy (title lub aria-describedby) jest taki sam jak tekst etykiety."
  670. },
  671. "hidden-explicit-label": {
  672. "pass": "Element formularza ma widoczną jednoznaczną <label>.",
  673. "fail": "Element formularza ma jednoznaczną <label>, która jest ukryta.",
  674. "incomplete": "Nie można określić, czy element formularza ma jednoznaczną ukrytą etykietę (<label>)."
  675. },
  676. "implicit-label": {
  677. "pass": "Element formularza ma dorozumianą etykietę (jest owinięty w <label>).",
  678. "fail": "Element formularza nie ma dorozumianej etykiety (nie jest owinięty w <label>).",
  679. "incomplete": "Nie można określić, czy element formularza ma dorozumianą etykietę (jest owinięty w <label>)."
  680. },
  681. "label-content-name-mismatch": {
  682. "pass": "Widoczny tekst elementu jest częścią dostępnej nazwy elementu.",
  683. "fail": "Tekst wewnątrz elementu nie jest częścią dostępnej nazwy."
  684. },
  685. "multiple-label": {
  686. "pass": "Pole formularza nie ma wielu <label>.",
  687. "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. },
  689. "title-only": {
  690. "pass": "Element formularza nie używa wyłącznie atrybutu title jako swojej etykiety.",
  691. "fail": "Tylko atrybut title jest używany do wygenerowania etykiety dla elementu formularza."
  692. },
  693. "landmark-is-unique": {
  694. "pass": "Punkty orientacyjne muszą mieć unikalną kombinację roli lub roli etykiety i tytułu (tj. dostępną nazwę).",
  695. "fail": "Punkt orientacyjny musi mieć unikalną aria-label, aria-labelledby lub title, aby był rozpoznawalny."
  696. },
  697. "has-lang": {
  698. "pass": "Element <html> ma atrybut lang.",
  699. "fail": {
  700. "noXHTML": "Atrybut xml:lang nie jest poprawny na stronach HTML, użyj atrybutu lang.",
  701. "noLang": "Element <html> nie ma atrybutu lang."
  702. }
  703. },
  704. "valid-lang": {
  705. "pass": "Wartość atrybutu lang znajduje się na liście poprawnych kodów języków.",
  706. "fail": "Wartości atrybutu lang nie ma na liście poprawnych kodów języków."
  707. },
  708. "xml-lang-mismatch": {
  709. "pass": "Atrybuty lang i xml:lang mają ten sam język podstawowy.",
  710. "fail": "Atrybuty lang i xml:lang nie mają tego samego języka podstawowego."
  711. },
  712. "dlitem": {
  713. "pass": "Element listy opisowej ma element nadrzędny <dl>.",
  714. "fail": "Pozycja listy opisowej nie ma elementu nadrzędnego <dl>."
  715. },
  716. "listitem": {
  717. "pass": "Element listy ma <ul>, <ol> lub role=\"list\" jako bezpośredni element rodzicielski.",
  718. "fail": {
  719. "default": "Element listy nie ma nadrzędnego elementu <ul> lub <ol>.",
  720. "roleNotValid": "Element listy nie ma nadrzędnego elementu <ul>, <ol>, ani nadrzędnego elementu z role=\"list\"."
  721. }
  722. },
  723. "only-dlitems": {
  724. "pass": "Element <dl> ma wewnątrz tylko dozwolone jako bezpośrednie elementy potomne (dzieci) elementy <dt> lub <dd> .",
  725. "fail": "Element listy ma wewnątrz bezpośrednie elementy dzieci, które nie są dozwolone wewnątrz listy opisowej."
  726. },
  727. "only-listitems": {
  728. "pass": "Element lista ma wewnątrz tylko dozwolone jako bezpośrednie elementy potomne (dzieci) elementy <li>.",
  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. }
  733. },
  734. "structured-dlitems": {
  735. "pass": "Gdy elemet <dl> nie jest pusty, ma zarówno elementy <dt>, jak i <dd>.",
  736. "fail": "Element nie jest pusty, ale nie ma co najmniej jednego elementu <dt>, po którym następuje co najmniej jeden element <dd>."
  737. },
  738. "caption": {
  739. "pass": "Element multimedialny ma ścieżkę z napisami rozszerzonymi.",
  740. "incomplete": "Sprawdź, czy istnieją napisy rozszerzone dla tego elementu."
  741. },
  742. "frame-tested": {
  743. "pass": "Ramka iframe została przetestowana z axe-core.",
  744. "fail": "Ramka iframe nie mogła być przetestowana z axe-core.",
  745. "incomplete": "Nadal wymagane jest przetestowanie ramki iframe z axe-core."
  746. },
  747. "no-autoplay-audio": {
  748. "pass": "Element <video> lub <audio> nie emituje dźwięku przez czas dłuższy niż dozwolony lub posiada mechanizm sterujący.",
  749. "fail": "Element <video> lub <audio> emituje dźwięk przez czas dłuższy niż dozwolony i nie posiada mechanizmu sterowania.",
  750. "incomplete": "Sprawdź, czy <video> lub <audio> nie emituje dźwięku dłuższej niż przez dozwolony czas lub czy ma mechanizm sterujący."
  751. },
  752. "css-orientation-lock": {
  753. "pass": "Wyświetlacz działa sprawnie, orientacja nie jest blokowana.",
  754. "fail": "Zastosowano blokadę orientacji wyświetlacza, w rezultacie wyświetlacz nie działa sprawnie.",
  755. "incomplete": "Nie można blokować orientacji wyświetlacza za pomocą ustawień CSS."
  756. },
  757. "meta-viewport-large": {
  758. "pass": "Znacznik <meta> nie ogranicza znacznego powiększenia na urządzeniach przenośnych.",
  759. "fail": "Znacznik <meta> znacznik ogranicza powiększanie na urządzeniach przenośnych."
  760. },
  761. "meta-viewport": {
  762. "pass": "Znacznik <meta> nie wyłącza powiększania na urządzeniach przenośnych.",
  763. "fail": "${data} w znaczniku <meta> wyłącza powiększanie na urządzeniach przenośnych."
  764. },
  765. "header-present": {
  766. "pass": "Strona ma nagłówek.",
  767. "fail": "Strona nie ma nagłówka."
  768. },
  769. "heading-order": {
  770. "pass": "Kolejność nagłówków jest poprawna.",
  771. "fail": "Kolejność nagłówków jest niepoprawna."
  772. },
  773. "identical-links-same-purpose": {
  774. "pass": "Nie ma żadnych innych łączy o tej samej nazwie, które kierują na inny adres URL.",
  775. "incomplete": "Sprawdź, czy łącza mają ten sam cel lub są celowo niejednoznaczne."
  776. },
  777. "internal-link-present": {
  778. "pass": "Znaleziono poprawne łącze pomijające.",
  779. "fail": "Nie znaleziono poprawnych łączy pomijających."
  780. },
  781. "landmark": {
  782. "pass": "Strona ma punkt orientacyjny (obszar kluczowy).",
  783. "fail": "Strona nie ma żadnego punktu orientacyjnego (obszaru kluczowego)."
  784. },
  785. "meta-refresh": {
  786. "pass": "Znacznik <meta> nie odświeża od razu strony.",
  787. "fail": "Znacznik <meta> wymusza odświeżenie strony."
  788. },
  789. "p-as-heading": {
  790. "pass": "Elementy <p> nie są stylizowane na nagłówki.",
  791. "fail": "Zamiast stylizowanych na nagłówki elementów p muszą być używane nagłówki semantyczne."
  792. },
  793. "region": {
  794. "pass": "Cała treść strony jest zawarta w obszarach kluczowych.",
  795. "fail": "Pewna część strony znajduje się poza punktami orientacyjnymi."
  796. },
  797. "skip-link": {
  798. "pass": "Cel łącza pomijajacego istnieje.",
  799. "incomplete": "Cel łącza pomijania powinien być widoczny po aktywacji.",
  800. "fail": "Nie istnieje cel łącza pomijającego."
  801. },
  802. "unique-frame-title": {
  803. "pass": "Atrybut title elementu jest unikalny.",
  804. "fail": "Atrybut title elementu nie jest unikalny."
  805. },
  806. "duplicate-id-active": {
  807. "pass": "W dokumencie nie ma aktywnych elementów z takim samym atrybutem id.",
  808. "fail": "W dokumencie są aktywne elementy z tą samą wartością atrybutu id: ${data}."
  809. },
  810. "duplicate-id-aria": {
  811. "pass": "W dokumencie nie ma żadnych elementów, do których odwołuje się ARIA lub <label>, które mają ten sam atrybut id.",
  812. "fail": "W dokumencie jest wiele elementów, do których odnosi się ARIA z tym samym atrybutem id: ${data}."
  813. },
  814. "duplicate-id": {
  815. "pass": "W dokumencie nie ma wielu elementów statycznych z takim samym atrybutem id.",
  816. "fail": "W dokumencie jest wiele elementów statycznych z takim samym atrybutem id: ${data}."
  817. },
  818. "aria-label": {
  819. "pass": "Atrybut aria-label istnieje i nie jest pusty.",
  820. "fail": "Atrybut aria-label nie istnieje lub jest pusty."
  821. },
  822. "aria-labelledby": {
  823. "pass": "Atrybut aria-labelledby oraz elementy, do których się odwołuje, istnieją i są widoczne dla czytników ekranu.",
  824. "fail": "Atrybut aria-labelledby nie istnieje albo elementy, do których odwołuje atrybut aria-labelledby, nie istnieją lub są puste.",
  825. "incomplete": "Spowoduj, aby istniał element, do którego istnieje odwołanie w atrybucie aria-labelldeby."
  826. },
  827. "avoid-inline-spacing": {
  828. "pass": "Nie określono żadnych stylów inline z '!important', które wpływają na odstępy w tekście.",
  829. "fail": {
  830. "singular": "Usuń dyrektywę '!important' ze stylu inline ${data.values}, ponieważ nadpisywanie tego nie jest obsługiwane przez większość przeglądarek.",
  831. "plural": "Usuń dyrektywy '!important' ze stylów inline ${data.values}, ponieważ nadpisywanie tego nie jest obsługiwane przez większość przeglądarek."
  832. }
  833. },
  834. "button-has-visible-text": {
  835. "pass": "Element ma tekst wewnętrzny widoczny dla czytników ekranu.",
  836. "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 dzieci."
  838. },
  839. "doc-has-title": {
  840. "pass": "Dokument ma niepusty element <title>.",
  841. "fail": "Dokument nie ma niepustego elementu <title>."
  842. },
  843. "exists": {
  844. "pass": "Element nie istnieje.",
  845. "incomplete": "Element istnieje."
  846. },
  847. "has-alt": {
  848. "pass": "Element ma atrybut alt.",
  849. "fail": "Element nie ma atrybutu alt."
  850. },
  851. "has-visible-text": {
  852. "pass": "Element ma tekst, który jest widoczny dla czytników ekranu.",
  853. "fail": "Element nie ma tekstu, który jest widoczny dla czytników ekranu.",
  854. "incomplete": "Nie można określić, czy element ma elementy dzieci."
  855. },
  856. "is-on-screen": {
  857. "pass": "Element nie jest widoczny.",
  858. "fail": "Element jest widoczny."
  859. },
  860. "non-empty-alt": {
  861. "pass": "Element ma niepusty atrybut alt.",
  862. "fail": {
  863. "noAttr": "Element nie ma atrybutu alt.",
  864. "emptyAttr": "Element ma pusty atrybut alt."
  865. }
  866. },
  867. "non-empty-if-present": {
  868. "pass": {
  869. "default": "Element nie posiada atrybutu bez określonej wartości.",
  870. "has-label": "Element ma atrybuty bez określonej wartości."
  871. },
  872. "fail": "Element ma atrybut wartości, a atrybut wartości jest pusty."
  873. },
  874. "non-empty-placeholder": {
  875. "pass": "Element ma atrybut placeholder.",
  876. "fail": {
  877. "noAttr": "Element nie ma atrybutu placeholder.",
  878. "emptyAttr": "Element ma pusty atrybut placeholder."
  879. }
  880. },
  881. "non-empty-title": {
  882. "pass": "Element ma atrybut title.",
  883. "fail": {
  884. "noAttr": "Element nie ma atrybutu title.",
  885. "emptyAttr": "Element ma pusty atrybut title."
  886. }
  887. },
  888. "non-empty-value": {
  889. "pass": "Element ma atrybut z niepustą wartością.",
  890. "fail": {
  891. "noAttr": "Element nie ma atrybutu z wartością.",
  892. "emptyAttr": "Element ma atrybut z pustą wartością."
  893. }
  894. },
  895. "presentational-role": {
  896. "pass": "Domyślna semantyka elementu została zastąpiona przez role=\"${data.role}\".",
  897. "fail": {
  898. "default": "Domyślna semantyka elementu nie została nadpisana przez role=\"none\" ani role=\"presentation\".",
  899. "globalAria": "Rola elementu nie jest prezentacyjna, ponieważ ma on ogólny atrybut ARIA.",
  900. "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."
  902. }
  903. },
  904. "role-none": {
  905. "pass": "Domyślna semantyka elementu została zastąpiona przez role=\"none\".",
  906. "fail": "Domyślna semantyka elementu nie została nadpisana przez role=\"none\"."
  907. },
  908. "role-presentation": {
  909. "pass": "Domyślna semantyka elementu została zastąpiona przez role=\"presentation\".",
  910. "fail": "Domyślna semantyka elementu nie została nadpisana przez role=\"presentation\"."
  911. },
  912. "svg-non-empty-title": {
  913. "pass": "Element ma dziecko, które jest tytułem.",
  914. "fail": {
  915. "noTitle": "Element nie ma dziecka, które jest tytułem.",
  916. "emptyTitle": "Tytuł elementu dziecka jest pusty."
  917. },
  918. "incomplete": "Nie można ustalić, czy element ma dziecko, które jest tytułem."
  919. },
  920. "caption-faked": {
  921. "pass": "Pierwszy wiersz tabeli nie jest używany jako podpis.",
  922. "fail": "Pierwszym elementem potomnym (dzieckiem) w tabeli powinien być caption zamiast komórki tabeli."
  923. },
  924. "html5-scope": {
  925. "pass": "Atrybut scope jest używany tylko w elementach nagłówków tabeli (<th>).",
  926. "fail": "W HTML 5, atrybuty scope mogą być używane tylko w elementach nagłówkowych tabeli (<th>)."
  927. },
  928. "same-caption-summary": {
  929. "pass": "Treści atrybutu summary i elementu <caption> nie są powielane.",
  930. "fail": "Treści atrybutu summary i elementu <caption> są identyczne."
  931. },
  932. "scope-value": {
  933. "pass": "Atrybut scope ma poprawną wartość.",
  934. "fail": "Wartością atrybutu scope może być tylko 'row' lub 'col'."
  935. },
  936. "td-has-header": {
  937. "pass": "Wszystkie niepuste komórki danych mają nagłówki tabeli.",
  938. "fail": "Niektóre niepuste komórki danych nie mają nagłówków tabeli."
  939. },
  940. "td-headers-attr": {
  941. "pass": "Atrybut headers jest używany wyłącznie w odniesieniu do innych komórek w tabeli.",
  942. "incomplete": "Atrybut headers jest pusty.",
  943. "fail": "Atrybut headers nie jest używany wyłącznie w odniesieniu do innych komórek w tabeli."
  944. },
  945. "th-has-data-cells": {
  946. "pass": "Wszystkie komórki nagłówkowe tabeli odnoszą się do komórek danych.",
  947. "fail": "Nie wszystkie komórki nagłówkowe tabeli odnoszą się do komórek danych.",
  948. "incomplete": "Komórki danych tabeli są puste lub nie istnieją."
  949. },
  950. "hidden-content": {
  951. "pass": "Wszystkie treści na stronie zostały przeanalizowane.",
  952. "fail": "Były problemy z analizą treści na tej stronie.",
  953. "incomplete": "Na tej stronie jest ukryta treść, która nie została przeanalizowana. Musisz uruchomić wyświetlanie tej treści, aby ją przeanalizować."
  954. }
  955. },
  956. "failureSummaries": {
  957. "any": {
  958. "failureMessage": "Napraw następujące elementy: {{~it:value}}\n {{=value.split('\\n').join('\\n ')}}{{~}}"
  959. },
  960. "none": {
  961. "failureMessage": "Napraw wszystkie poniższe: {{~it:value}}\n {{=value.split('\\n').join('\\n ')}}{{~}}"
  962. }
  963. },
  964. "incompleteFallbackMessage": "AXE nie potrafił określić powodu. Czas użyć inspektora elementów!"
  965. }