tronie istnieje element aria-errormessage: ${data.values}"
      }
    },
    "aria-hidden-body": {
      "pass": "Nie ma żadnego atrybutu aria-hidden w elemencie body dokumentu.",
      "fail": "Atrybut aria-hidden=true nie może być użyty w elemencie body dokumentu."
    },
    "aria-level": {
      "pass": "Wartość aria-level jest poprawna",
      "incomplete": "Wartości aria-level większe niż 6 nie są obsługiwane we wszystkich kombinacjach czytników ekranu i przeglądarek"
    },
    "aria-prohibited-attr": {
      "pass": "Atrybut ARIA jest dozwolony",
      "fail": {
        "hasRolePlural": "Atrybuty ${data.prohibited} nie mogą być używane z rolą \"${data.role}\".",
        "hasRoleSingular": "Atrybut ${data.prohibited} nie może być użyty z rolą \"${data.role}\".",
        "noRolePlural": "Atrybuty ${data.prohibited} nie mogą być używane w ${data.nodeName} bez poprawnego atrybutu roli.",
        "noRoleSingular": "Atrybut ${data.prohibited} nie może być użyty w ${data.nodeName} bez poprawnego atrybutu roli."
      },
      "incomplete": {
        "hasRoleSingular": "Atrybut ${data.prohibited} nie jest dobrze obsługiwany przez rolę \"${data.role}\".",
        "hasRolePlural": "Atrybuty ${data.prohibited} nie są dobrze obsługiwane przez role \"${data.role}\".",
        "noRoleSingular": "Atrybut ${data.prohibited} nie jest dobrze obsługiwany przez ${data.nodeName} bez poprawnego atrybutu roli.",
        "noRolePlural": "Atrybuty ${data.prohibited} nie są dobrze obsługiwane przez ${data.nodeName} bez poprawnego atrybutu roli."
      }
    },
    "aria-required-attr": {
      "pass": "Wszystkie wymagane atrybuty ARIA istnieją.",
      "fail": {
        "singular": "Wymagany atrybut ARIA nie istnieje: ${data.values}.",
        "plural": "Wymagane atrybuty ARIA nie istnieją: ${data.values}."
      }
    },
    "aria-required-children": {
      "pass": {
        "default": "Wymagane dzieci ARIA istnieją."
      },
      "fail": {
        "singular": "Wymagana rola dziecka ARIA nie istnieje: ${data.values}.",
        "plural": "Wymagane role dzieci ARIA nie istnieją: ${data.values",
        "unallowed": "Element ma dzieci, które nie są dozwolone: ${data.values}"
      },
      "incomplete": {
        "singular": "Należy dodać oczekiwaną rolę dziecka ARIA: ${data.values}.",
        "plural": "Należy dodać oczekiwane role dzieci ARIA: ${data.values}."
      }
    },
    "aria-required-parent": {
      "pass": "Wymagana rola rodzica ARIA istnieje.",
      "fail": {
        "singular": "Wymagana rola rodzica ARIA nie istnieje: ${data.values}.",
        "plural": "Wymagane role rodziców ARIA nie istnieją: ${data.values}."
      }
    },
    "aria-roledescription": {
      "pass": "Atrybut aria-roledescription jest używany z obsługiwaną rolą semantyczną.",
      "incomplete": "Sprawdź, czy aria-roledescription jest ogłaszany przez obsługiwane czytniki ekranu.",
      "fail": "Nadaj temu elementowi rolę, która obsługuje aria-roledescription."
    },
    "aria-unsupported-attr": {
      "pass": "Atrybut ARIA jest obsługiwany.",
      "fail": "Atrybut ARIA nie jest dostatecznie obsługiwany przez czytniki ekranu i inne technologie wspomagające: ${data.values}."
    },
    "aria-valid-attr-value": {
      "pass": "Wartości atrybutu ARIA są poprawne.",
      "fail": {
        "singular": "Niepoprawna wartość atrybutu ARIA: ${data.values}",
        "plural": "Niepoprawne wartości atrybutu ARIA: ${data.values}"
      },
      "incomplete": {
        "noId": "Identyfikator elementu atrybutu ARIA nie istnieje na stronie: ${data.needsReview}",
        "noIdShadow": "ID elementu atrybutu ARIA nie istnieje na stronie lub jest potomkiem innego drzewa shadow DOM: ${data.needsReview}",
        "ariaCurrent": "Wartość atrybutu ARIA jest niepoprawna i będzie traktowana jako \"aria-current=true\": ${data.needsReview}",
        "idrefs": "Nie można określić, czy atrybut ARIA element ID istnieje na stronie: ${data.needsReview}",
        "empty": "Wartość atrybutu ARIA jest ignorowana, gdy jest pusty: ${data.needsReview}"
      }
    },
    "aria-valid-attr": {
      "pass": "Nazwa atrybutu ARIA jest poprawna.",
      "fail": {
        "singular": "Niepoprawna nazwa atrybutu ARIA: ${data.values}.",
        "plural": "Niepoprawne nazwy atrybutów ARIA: ${data.values}."
      }
    },
    "braille-label-equivalent": {
      "pass": "Atrybut aria-braillelabel jest użyty w elemencie z dostępnym tekstem.",
      "fail": "Atrybut aria-braillelabel jest użyty w elemencie, który nie ma dostępnego tekstu.",
      "incomplete": "Nie można wyliczyć dostępnego tekstu."
    },
    "braille-roledescription-equivalent": {
      "pass": "Atrybut aria-brailleroledescription nie jest używany w elemencie, który nie ma dostępnego tekstu.",
      "fail": {
        "noRoleDescription": "Atrybut aria-brailleroledescription jest użyty w elemencie bez atrybutu aria-roledescription.",
        "emptyRoleDescription": "Atrybut aria-brailleroledescription jest użyty w elemencie z pustym atrybutem aria-roledescription."
      }
    },
    "deprecatedrole": {
      "pass": "Rola ARIA nie jest przestarzała",
      "fail": "Użyta rola jest przestarzała: ${data}"
    },
    "fallbackrole": {
      "pass": "Użyto tylko jednej wartości roli.",
      "fail": "Użyj tylko jednej wartości roli, ponieważ role rezerwowe nie są obsługiwane w starszych przeglądarkach.",
      "incomplete": "Używaj tylko roli 'presentation' lub 'none', ponieważ są one synonimami."
    },
    "has-global-aria-attribute": {
      "pass": {
        "singular": "Element ma ogólny atrybut ARIA: ${data.values}.",
        "plural": ": Element ma ogólne atrybuty ARIA: ${data.values}."
      },
      "fail": "Element nie ma ogólnego atrybutu ARIA"
    },
    "has-widget-role": {
      "pass": "Element ma rolę widżetu.",
      "fail": "Element nie ma roli widżetu."
    },
    "invalidrole": {
      "pass": "Rola ARIA jest poprawna.",
      "fail": {
        "singular": "Rola musi być jedną z poprawnych ról ARIA: ${data.values}.",
        "plural": ": Role muszą być jedną z poprawnych ról ARIA: ${data.values}."
      }
    },
    "is-element-focusable": {
      "pass": "Element przyjmuje fokus.",
      "fail": "Element nie przyjmuje fokusu."
    },
    "no-implicit-explicit-label": {
      "pass": "Nie ma rozbieżności między label a dostępną nazwą.",
      "incomplete": "Sprawdź, czy label nie musi być częścią nazwy pola ARIA ${data}."
    },
    "unsupportedrole": {
      "pass": "Rola ARIA jest obsługiwana.",
      "fail": "Zastosowana rola nie jest szeroko obsługiwana w czytnikach ekranu i technologiach wspomagających: ${data.values}."
    },
    "valid-scrollable-semantics": {
      "pass": "Element w porządku otrzymywania fokusu ma poprawną semantykę.",
      "fail": "Element w porządku otrzymywania fokusu ma niepoprawną semantykę."
    },
    "color-contrast-enhanced": {
      "pass": "Element ma wystarczający kontrast kolorów ${data.contrastRatio}",
      "fail": {
        "default": "Element ma niewystarczający kontrast kolorów ${data.contrastRatio} (kolor pierwszego planu: ${data.fgColor}, kolor tła: ${data.bgColor}, rozmiar czcionki: ${data.fontSize}, waga czcionki: ${data.fontWeight}). Oczekiwany współczynnik kontrastu: ${data.expectedContrastRatio}",
        "fgOnShadowColor": "Element ma niewystarczający kontrast kolorów ${data.contrastRatio} pomiędzy kolorem pierwszego planu a kolorem cienia tekstu (kolor pierwszego planu: ${data.fgColor}, kolor cienia tekstu: ${data.shadowColor}, rozmiar czcionki: ${data.fontSize}, waga czcionki: ${data.fontWeight}). Oczekiwany współczynnik kontrastu: ${data.expectedContrastRatio}",
        "shadowOnBgColor": "Element ma niewystarczający kontrast kolorów ${data.contrastRatio} pomiędzy kolorem cienia tekstu a kolorem tła (kolor cienia tekstu: ${data.shadowColor}, kolor tła: ${data.bgColor}, rozmiar czcionki: ${data.fontSize}, waga czcionki: ${data.fontWeight}). Oczekiwany współczynnik kontrastu: ${data.expectedContrastRatio}"
      },
      "incomplete": {
        "default": "Nie można określić współczynnika kontrastu.",
        "bgImage": "Nie można określić koloru tła elementu, ponieważ element ma obraz tła.",
        "bgGradient": "Nie można określić koloru tła elementu, ponieważ element ma gradientowe tło.",
        "imgNode": "Nie można określić koloru tła elementu, ponieważ element zawiera węzeł obrazu.",
        "bgOverlap": "Nie można określić koloru tła elementu, ponieważ nakłada się na niego inny element.",
        "fgAlpha": "Nie można określić koloru pierwszego planu elementu z powodu przezroczystości alfa.",
        "elmPartiallyObscured": "Nie można określić koloru tła elementu, ponieważ jest on częściowo zasłonięty przez inny element.",
        "elmPartiallyObscuring": "Nie można określić koloru tła elementu, ponieważ częściowo nakłada się on na inne elementy.",
        "outsideViewport": "Nie można określić koloru tła elementu, ponieważ znajduje się on poza obszarem operacyjnym.",
        "equalRatio": "Element ma współczynnik kontrastu 1:1 z tłem.",
        "shortTextContent": "Treść elementu jest zbyt krótka, aby określić, czy jest to rzeczywista treść tekstowa.",
        "nonBmp": "Treść elementu zawiera tylko znaki nietekstowe.",
        "pseudoContent": "Nie można określić koloru tła elementu, ponieważ jest to pseudoelement."
      }
    },
    "color-contrast": {
      "pass": {
        "default": "Element ma wystarczający kontrast kolorów  ${data.contrastRatio}",
        "hidden": "Element jest ukryty"
      },
      "fail": {
        "default": "Element ma niewystarczający kontrast kolorów ${data.contrastRatio} (kolor pierwszego planu: ${data.fgColor}, kolor tła: ${data.bgColor}, rozmiar czcionki: ${data.fontSize}, waga czcionki: ${data.fontWeight}). Oczekiwany współczynnik kontrastu: ${data.expectedContrastRatio}",
        "fgOnShadowColor": "Element ma niewystarczający kontrast kolorów ${data.contrastRatio} pomiędzy kolorem pierwszego planu a kolorem cienia tekstu (kolor pierwszego planu: ${data.fgColor}, kolor cienia tekstu: ${data.shadowColor}, rozmiar czcionki: ${data.fontSize}, waga czcionki: ${data.fontWeight}). Oczekiwany współczynnik kontrastu: ${data.expectedContrastRatio}",
        "shadowOnBgColor": "Element ma niewystarczający kontrast kolorów ${data.contrastRatio} pomiędzy kolorem  cienia tekstu a kolorem tła (kolor cienia tekstu: ${data.shadowColor}, kolor tła: ${data.bgColor}, rozmiar czcionki: ${data.fontSize}, waga czcionki: ${data.fontWeight}). Oczekiwany współczynnik kontrastu: ${data.expectedContrastRatio}"
      },
      "incomplete": {
        "default": "Nie można określić współczynnika kontrastu.",
        "bgImage": "Nie można określić koloru tła elementu, ponieważ element ma obraz tła.",
        "bgGradient": "Nie można określić koloru tła elementu, ponieważ element ma gradientowe tło.",
        "imgNode": "Nie można określić koloru tła elementu, ponieważ element zawiera węzeł obrazu.",
        "bgOverlap": "Nie można określić koloru tła elementu, ponieważ nakłada się na niego inny element.",
        "fgAlpha": "Nie można określić koloru pierwszego planu elementu z powodu przezroczystości alfa.",
        "elmPartiallyObscured": "Nie można określić koloru tła elementu, ponieważ jest on częściowo zasłonięty przez inny element.",
        "elmPartiallyObscuring": "Nie można określić koloru tła elementu, ponieważ częściowo nakłada się on na inne elementy.",
        "outsideViewport": "Nie można określić koloru tła elementu, ponieważ znajduje się on poza obszarem operacyjnym.",
        "equalRatio": "Element ma współczynnik kontrastu 1:1 z tłem.",
        "shortTextContent": "Treść elementu jest zbyt krótka, aby określić, czy jest to rzeczywista treść tekstowa.",
        "nonBmp": "Treść elementu zawiera tylko znaki nietekstowe.",
        "pseudoContent": "Nie można określić koloru tła elementu, ponieważ jest to pseudoelement."
      }
    },
    "link-in-text-block-style": {
      "pass": "Łącza mogą być odróżnione od sąsiadującego tekstu poprzez wizualną stylizację",
      "incomplete": {
        "default": "Sprawdź, czy łącze wymaga stylizacji, aby odróżnić je od sąsiadującego tekstu.",
        "pseudoContent": "Sprawdź, czy pseudostyl łącza jest wystarczający, aby odróżnić je od sąsiadującego tekstu."
      },
      "fail": "Łącze nie ma żadnej stylizacji (np. podkreślenia), która odróżniałaby je od sąsiadującego tekstu"
    },
    "link-in-text-block": {
      "pass": "Łącza można odróżnić od sąsiadującego tekstu w inny sposób niż za pomocą koloru.",
      "fail": {
        "fgContrast": "Łącze ma niewystarczający kontrast kolorów ${data.contrastRatio}:1 z sąsiadującym tekstem. (Minimalny kontrast to: ${data.requiredContrastRatio}:1, kolor tekstu łącza: ${data.nodeColor}, kolor sąsiadującego tekstu: ${data.parentColor})",
        "bgContrast": "Tło łącza ma niewystarczający kontrast kolorów ${data.contrastRatio} (Minimalny kontrast to:  ${data.requiredContrastRatio}:1, kolor tła łącza: ${data.nodeBackgroundColor}, sąsiadujący kolor tła: ${data.parentBackgroundColor})"
      },
      "incomplete": {
        "default": "Nie można określić współczynnika kontrastu.",
        "bgContrast": "Nie można określić współczynnika kontrastu elementu. Sprawdź, czy nie ma odrębnego stylu stanów hover/fokus.",
        "bgImage": "Nie można określić współczynnika kontrastu elementu ze względu na obraz tła.",
        "bgGradient": "Nie można określić współczynnika kontrastu elementu ze względu na gradient tła.",
        "imgNode": "Nie można określić współczynnika kontrastu elementu, ponieważ element zawiera węzeł obrazu.",
        "bgOverlap": "Nie można określić współczynnika kontrastu elementu ze względu na nakładanie się elementów."
      }
    },
    "autocomplete-appropriate": {
      "pass": "Wartość autocomplete jest odpowiednia dla tego typu pola formularza.",
      "fail": "Wartość autocomplete jest niewłaściwa dla tego typu pola formularza."
    },
    "autocomplete-valid": {
      "pass": "Atrybut autocomplete jest sformatowany poprawnie.",
      "fail": "Atrybut autocomplete jest sformatowany niepoprawnie."
    },
    "accesskeys": {
      "pass": "Wartość atrybutu accesskey jest unikalna.",
      "fail": "Dokument ma wiele elementów z tym samym klawiszem dostępu."
    },
    "focusable-content": {
      "pass": "Element zawiera elementy przyjmujące fokus.",
      "fail": "Element powinien przyjmować fokus."
    },
    "focusable-disabled": {
      "pass": "W elemencie nie ma elementów przyjmujących fokus.",
      "incomplete": "Sprawdź, czy elementy, na których można ustawić fokus, natychmiast otrzymują wskaźnik fokusu",
      "fail": "Treść z możliwością ustawiania fokusu powinna być wyłączona lub usunięta z DOM."
    },
    "focusable-element": {
      "pass": "Element może przyjmować fokus.",
      "fail": "Element powinien przyjmować fokus."
    },
    "focusable-modal-open": {
      "pass": "Nie ma elementów przyjmujących fokus, gdy otwarte jest okno modalne.",
      "incomplete": "Sprawdź, czy elementy, które mogą przyjmować fokus, nie są tabulowane w aktualnym stanie."
    },
    "focusable-no-name": {
      "pass": "Element nie znajduje się w porządku tabulacji lub ma dostępny tekst.",
      "fail": "Element znajduje się w porządku tabulacji i nie ma dostępnego tekstu.",
      "incomplete": "Nie można ustalić, czy element ma dostępną nazwę."
    },
    "focusable-not-tabbable": {
      "pass": "Nie ma elementów przyjmujących fokus wewnątrz elementu.",
      "incomplete": "Sprawdź, czy elementy, na których można ustawić fokus, natychmiast otrzymują wskaźnik fokusu",
      "fail": "Treść przyjmująca fokus powinna mieć tabindex=-1 lub być usunięta z DOM."
    },
    "frame-focusable-content": {
      "pass": "Element nie ma potomków przyjmujących fokus",
      "fail": "Element ma elementy potomne przyjmujące fokus",
      "incomplete": "Nie można ustalić, czy element ma elementy potomne"
    },
    "landmark-is-top-level": {
      "pass": "Punkt orientacyjny ${data.role} jest na najwyższym poziomie.",
      "fail": "Punkt orientacyjny {data.role} jest wewnątrz innego obszaru kluczowego."
    },
    "no-focusable-content": {
      "pass": "Element nie ma potomków przyjmujących fokus",
      "fail": {
        "default": "Element ma elementy potomne przyjmujące fokus",
        "notHidden": "Użycie ujemnej wartości tabindex  elementu wewnątrz interaktywnej kontrolki nie zapobiega ustawianiu na elemencie fokusu przez technologie wspomagające (nawet z 'aria-hidden=true')"
      },
      "incomplete": "Nie można ustalić, czy element ma elementy potomne"
    },
    "page-has-heading-one": {
      "pass": "Strona ma co najmniej jeden nagłówek 1. poziomu.",
      "fail": "Strona musi mieć nagłówek 1. poziomu."
    },
    "page-has-main": {
      "pass": "Dokument ma co najmniej jeden główny punkt orientacyjny.",
      "fail": "Dokument nie ma głównego punktu orientacyjnego."
    },
    "page-no-duplicate-banner": {
      "pass": "W dokumencie nie ma więcej niż jeden obszar kluczowy banner.",
      "fail": "W dokumencie jest więcej niż jeden obszar kluczowy banner."
    },
    "page-no-duplicate-contentinfo": {
      "pass": "W dokumencie nie ma więcej niż jeden obszar kluczowy contentinfo.",
      "fail": "W dokumencie jest więcej niż jeden obszar kluczowy contentinfo."
    },
    "page-no-duplicate-main": {
      "pass": "W dokumencie nie ma więcej niż jeden obszar kluczowy main.",
      "fail": "W dokumencie jest więcej niż jeden obszar kluczowy main."
    },
    "tabindex": {
      "pass": "Element nie ma wartości tabindex większej niż 0.",
      "fail": "Element nie ma wartości tabindex większą od 0."
    },
    "alt-space-value": {
      "pass": "Element ma poprawną wartość atrybutu alt.",
      "fail": "Element ma atrybut alt zawierający tylko znak spacji, który nie przez wszystkie czytniki ekranu jest ignorowany ."
    },
    "duplicate-img-label": {
      "pass": "Element nie powiela tekstu istniejącego w atrybucie alt elementu img.",
      "fail": "Element powiela tekst istniejący w atrybucie alt elementu img."
    },
    "explicit-label": {
      "pass": "Element formularza ma jawnie określoną label.",
      "fail": "Element formularza nie ma jawnie określonej label.",
      "incomplete": "Nie można określić, czy element formularza ma jawnie określoną label."
    },
    "help-same-as-label": {
      "pass": "Tekst pomocy (title lub aria-describedby) nie powiela tekstu etykiety.",
      "fail": "Tekst pomocy (title lub aria-describedby) jest taki sam jak tekst etykiety."
    },
    "hidden-explicit-label": {
      "pass": "Element formularza ma widoczną jednoznaczną etykietę label.",
      "fail": "Element formularza ma jednoznaczną etykietę label, która jest ukryta.",
      "incomplete": "Nie można określić, czy element formularza ma jawną etykietę (label), gdy jest ukryta."
    },
    "implicit-label": {
      "pass": "Element formularza ma dorozumianą etykietę (jest owinięty w label).",
      "fail": "Element formularza nie ma dorozumianej etykiety (nie jest owinięty w label).",
      "incomplete": "Nie można określić, czy element formularza ma dorozumianą etykietę (jest owinięty w label)."
    },
    "label-content-name-mismatch": {
      "pass": "Widoczny tekst elementu jest częścią dostępnej nazwy elementu.",
      "fail": "Widoczny tekst wewnątrz elementu nie jest częścią dostępnej nazwy."
    },
    "multiple-label": {
      "pass": "Pole formularza nie ma wielu label.",
      "incomplete": "Technologie wspomagające nie obsługują wystarczająco dobrze wielu elementów label. Upewnij się, że pierwsza etykieta zawiera wszystkie niezbędne informacje."
    },
    "title-only": {
      "pass": "Element formularza nie używa wyłącznie atrybutu title jako swojej etykiety.",
      "fail": "Tylko atrybut title jest używany do wygenerowania etykiety dla elementu formularza."
    },
    "landmark-is-unique": {
      "pass": "Punkty orientacyjne muszą mieć unikalną kombinację roli lub roli etykiety i tytułu (tj. dostępną nazwę).",
      "fail": "Punkt orientacyjny musi mieć unikalną aria-label, aria-labelledby lub title, aby był rozpoznawalny."
    },
    "has-lang": {
      "pass": "Element <html> ma atrybut lang.",
      "fail": {
        "noXHTML": "Atrybut xml:lang nie jest poprawny na stronach HTML, użyj atrybutu lang.",
        "noLang": "Element <html> nie ma atrybutu lang."
      }
    },
    "valid-lang": {
      "pass": "Wartość atrybutu lang jest na liście poprawnych kodów języków.",
      "fail": "Wartości atrybutu lang nie ma na liście poprawnych kodów języków."
    },
    "xml-lang-mismatch": {
      "pass": "Atrybuty lang i xml:lang mają ten sam język podstawowy.",
      "fail": "Atrybuty lang i xml:lang nie mają tego samego języka podstawowego."
    },
    "dlitem": {
      "pass": "Element listy opisowej ma element nadrzędny dl.",
      "fail": "Pozycja listy opisowej nie ma elementu nadrzędnego dl."
    },
    "listitem": {
      "pass": "Element listy ma ul, ol lub role=\"list\" jako bezpośredni element rodzicielski.",
      "fail": {
        "default": "Element listy nie ma nadrzędnego elementu ul lub ol.",
        "roleNotValid": "Element listy nie ma nadrzędnego elementu ul, ol, ani nadrzędnego elementu z role=\"list\"."
      }
    },
    "only-dlitems": {
      "pass": "Element dl ma wewnątrz tylko dozwolone jako bezpośrednie elementy potomne (dzieci) elementy dt lub dd.",
      "fail": "Element listy ma wewnątrz bezpośrednie elementy dzieci, które nie są dozwolone wewnątrz listy opisowej."
    },
    "only-listitems": {
      "pass": "Element lista ma wewnątrz tylko dozwolone jako bezpośrednie elementy potomne (dzieci) elementy li.",
      "fail": "Element listy ma bezpośrednie elementy potomne, które nie są dozwolone: ${data.values}"
    },
    "structured-dlitems": {
      "pass": "Gdy elemet dl nie jest pusty, ma zarówno elementy dt, jak i dd.",
      "fail": "Element nie jest pusty, ale nie ma co najmniej jednego elementu dt, po którym następuje co najmniej jeden element dd."
    },
    "caption": {
      "pass": "Element multimedialny ma ścieżkę z napisami rozszerzonymi.",
      "incomplete": "Sprawdź, czy istnieją napisy rozszerzone dla tego elementu."
    },
    "frame-tested": {
      "pass": "Ramka iframe została przetestowana z axe-core.",
      "fail": "Ramka iframe nie mogła być przetestowana z axe-core.",
      "incomplete": "Nadal wymagane jest przetestowanie ramki iframe z axe-core."
    },
    "no-autoplay-audio": {
      "pass": "Element <video> lub <audio> nie emituje dźwięku przez czas dłuższy niż dozwolony lub posiada mechanizm sterujący.",
      "fail": "Element <video> lub <audio> emituje dźwięk przez czas dłuższy niż dozwolony i nie posiada mechanizmu sterowania.",
      "incomplete": "Sprawdź, czy <video> lub <audio> nie emituje dźwięku dłuższej niż przez dozwolony czas lub czy ma mechanizm sterujący."
    },
    "css-orientation-lock": {
      "pass": "Wyświetlacz działa sprawnie, orientacja nie jest blokowana.",
      "fail": "Zastosowano blokadę orientacji wyświetlacza, w rezultacie wyświetlacz nie działa sprawnie.",
      "incomplete": "Nie można blokować orientacji wyświetlacza za pomocą ustawień CSS."
    },
    "meta-viewport-large": {
      "pass": "Znacznik <meta> nie ogranicza znacznego powiększenia na urządzeniach przenośnych.",
      "fail": "Znacznik <meta> znacznik ogranicza powiększanie na urządzeniach przenośnych."
    },
    "meta-viewport": {
      "pass": "Znacznik <meta> nie wyłącza powiększania na urządzeniach przenośnych.",
      "fail": "${data} w znaczniku <meta> wyłącza powiększanie na urządzeniach przenośnych."
    },
    "target-offset": {
      "pass": "Cel ma wystarczające odsunięcie od swojego najbliższego sąsiada: (${data.closestOffset}px, które powinno wynosić co najmniej ${data.minOffset}px)",
      "fail": "Cel ma niewystarczające odsunięcie od najbliższego sąsiada: (${data.closestOffset}px, które powinno wynosić co najmniej ${data.minOffset}px)",
      "incomplete": {
        "default": "Element z ujemnym tabindeksem ma niewystarczające odsunięcie od najbliższego sąsiada: (${data.closestOffset}px, które powinno wynosić co najmniej${data.minOffset}px). Czy to jest cel?",
        "nonTabbableNeighbor": "Cel ma niewystarczające odsunięcie od sąsiada z ujemnym tabindeksem: (${data.closestOffset}px, które powinno wynosić co najmniej ${data.minOffset}px). Czy sąsiad jest celem?"
      }
    },
    "target-size": {
      "pass": {
        "default": "Kontrolka ma wystarczający rozmiar (${data.width}px na ${data.height}px, który powinnien wynosić co najmniej ${data.minSize}px na ${data.minSize}px)",
        "obscured": "Kontrolka jest ignorowana, ponieważ jest całkowicie zasłonięta i nie można jej kliknąć."
      },
      "fail": {
        "default": "Cel ma niewystarczający rozmiar (${data.width}px na ${data.height}px, który powinnien wynosić co najmniej ${data.minSize}px na ${data.minSize}px)",
        "partiallyObscured": "Cel ma niewystarczający rozmiar, ponieważ jest częściowo przesłonięty (najmniejsza przestrzeń to ${data.width}px na ${data.height}px, powinna wynosić ${data.minSize}px na ${data.minSize}px)"
      },
      "incomplete": {
        "default": "Element z ujemnym tabindex ma niewystarczający rozmiar (${data.width}px na ${data.height}px, powinnien wynosić co najmniej ${data.minSize}px na ${data.minSize}px). Czy to jest cel?",
        "contentOverflow": "Rozmiar elementu nie mógł być dokładnie określony z powodu przepełnienia zawartości",
        "partiallyObscured": "Element z ujemnym tabindex ma niewystarczający rozmiar, ponieważ jest częściowo przesłonięty (najmniejsza przestrzeń to ${data.width}px na ${data.height}px, powinna wynosić co najmniej ${data.minSize}px na ${data.minSize}px). Czy to jest cel?",
        "partiallyObscuredNonTabbable": "Cel ma niewystarczający rozmiar, ponieważ jest częściowo przesłonięty przez sąsiada o ujemnym tabindeksie (najmniejsza przestrzeń to ${data.width}px na ${data.height}px, powinna wynosić co najmniej ${data.minSize}px na ${data.minSize}px). Czy sąsiad jest celem?"
      }
    },
    "header-present": {
      "pass": "Strona ma nagłówek.",
      "fail": "Strona nie ma nagłówka."
    },
    "heading-order": {
      "pass": "Kolejność nagłówków jest poprawna.",
      "fail": "Kolejność nagłówków jest niepoprawna.",
      "incomplete": "Nie można określić poprzedniego nagłówka"
    },
    "identical-links-same-purpose": {
      "pass": "Nie ma żadnych innych łączy o tej samej nazwie, które kierują na inny adres URL.",
      "incomplete": "Sprawdź, czy łącza mają ten sam cel lub są celowo niejednoznaczne."
    },
    "internal-link-present": {
      "pass": "Znaleziono poprawne łącze pomijające.",
      "fail": "Nie znaleziono poprawnych łączy pomijających."
    },
    "landmark": {
      "pass": "Strona ma punkt orientacyjny (obszar kluczowy).",
      "fail": "Strona nie ma żadnego punktu orientacyjnego (obszaru kluczowego)."
    },
    "meta-refresh-no-exceptions": {
      "pass": "Znacznik <meta> nie powoduje natychmiastowego odświeżenia strony",
      "fail": "Znacznik <meta> tag wymusza czasowe odświeżenie strony"
    },
    "meta-refresh": {
      "pass": "Znacznik <meta> nie odświeża od razu strony.",
      "fail": "Znacznik <meta> wymusza odświeżenie strony."
    },
    "p-as-heading": {
      "pass": "Elementy <p> nie są stylizowane na nagłówki.",
      "fail": "Zamiast stylizowanych na nagłówki elementów <p> muszą być użyte nagłówki semantyczne.",
      "incomplete": "Nie można określić, czy elementy <p> są stylizowane na nagłówki"
    },
    "region": {
      "pass": "Cała treść strony jest zawarta w obszarach kluczowych.",
      "fail": "Pewna część strony znajduje się poza punktami orientacyjnymi."
    },
    "skip-link": {
      "pass": "Cel łącza pomijajacego istnieje.",
      "incomplete": "Cel łącza pomijania powinien być widoczny po aktywacji.",
      "fail": "Nie istnieje cel łącza pomijającego."
    },
    "unique-frame-title": {
      "pass": "Atrybut title elementu jest unikalny.",
      "fail": "Atrybut title elementu nie jest unikalny."
    },
    "duplicate-id-active": {
      "pass": "W dokumencie nie ma aktywnych elementów z takim samym atrybutem id.",
      "fail": "W dokumencie są aktywne elementy z tą samą wartością atrybutu id: ${data}."
    },
    "duplicate-id-aria": {
      "pass": "W dokumencie nie ma żadnych elementów, do których odwołuje się ARIA lub <label>, które mają ten sam atrybut id.",
      "fail": "W dokumencie jest wiele elementów, do których odnosi się ARIA z tym samym atrybutem id: ${data}."
    },
    "duplicate-id": {
      "pass": "W dokumencie nie ma wielu elementów statycznych z takim samym atrybutem id.",
      "fail": "W dokumencie jest wiele elementów statycznych z takim samym atrybutem id: ${data}."
    },
    "aria-label": {
      "pass": "Atrybut aria-label istnieje i nie jest pusty.",
      "fail": "Atrybut aria-label nie istnieje lub jest pusty."
    },
    "aria-labelledby": {
      "pass": "Atrybut aria-labelledby oraz elementy, do których się odwołuje, istnieją i są widoczne dla czytników ekranu.",
      "fail": "Atrybut aria-labelledby nie istnieje albo  elementy, do których odwołuje atrybut aria-labelledby, nie istnieją lub są puste.",
      "incomplete": "Spowoduj, aby istniał element, do którego istnieje odwołanie w atrybucie aria-labelldeby."
    },
    "avoid-inline-spacing": {
      "pass": "Nie określono żadnych stylów wewnętrznych (inline) z '!important', które wpływają na odstępy w tekście.",
      "fail": {
        "singular": "Usuń dyrektywę '!important' ze stylu inline ${data.values}, ponieważ nadpisywanie tego nie jest obsługiwane przez większość przeglądarek.",
        "plural": "Usuń dyrektywy '!important' ze stylów inline ${data.values}, ponieważ nadpisywanie tego nie jest obsługiwane przez większość przeglądarek."
      }
    },
    "button-has-visible-text": {
      "pass": "Element ma tekst wewnętrzny widoczny dla czytników ekranu.",
      "fail": "Element nie ma wewnętrznego tekstu, który jest widoczny dla czytników ekranu.",
      "incomplete": "Nie można określić, czy element ma elementy potomne."
    },
    "doc-has-title": {
      "pass": "Dokument ma niepusty element <title>.",
      "fail": "Dokument nie ma niepustego elementu <title>."
    },
    "exists": {
      "pass": "Element nie istnieje.",
      "incomplete": "Element istnieje."
    },
    "has-alt": {
      "pass": "Element ma atrybut alt.",
      "fail": "Element nie ma atrybutu alt."
    },
    "has-visible-text": {
      "pass": "Element ma tekst, który jest widoczny dla czytników ekranu.",
      "fail": "Element nie ma tekstu, który jest widoczny dla czytników ekranu.",
      "incomplete": "Nie można określić, czy element ma elementy dzieci."
    },
    "important-letter-spacing": {
      "pass": "Odstępy między literami (letter-spacing) w atrybucie style nie są ustawione na !important lub spełniają minimum",
      "fail": "Odstępy między literami w atrybucie style nie mogą używać !important lub muszą mieć ${data.minValue}em (aktualnie: ${data.value}em)"
    },
    "important-line-height": {
      "pass": "Właściwość line-height w atrybucie style nie jest ustawiona na !important lub spełnia minimum.",
      "fail": "Właściwość line-height w atrybucie style nie może używać !important lub musi mieć ${data.minValue}em (aktualnie: ${data.value}em)."
    },
    "important-word-spacing": {
      "pass": "Odstępy miedzy wyrazami (word-spacing) w atrybucie style nie są ustawione na !important lub spełniają minimum",
      "fail": "Odstępy miedzy wyrazami (word-spacing) w atrybucie style nie mogą używać !important lub muszą mieć ${data.minValue}em (aktualnie: ${data.value}em)"
    },
    "is-on-screen": {
      "pass": "Element nie jest widoczny.",
      "fail": "Element jest widoczny."
    },
    "non-empty-alt": {
      "pass": "Element ma niepusty atrybut alt.",
      "fail": {
        "noAttr": "Element nie ma atrybutu alt.",
        "emptyAttr": "Element ma pusty atrybut alt."
      }
    },
    "non-empty-if-present": {
      "pass": {
        "default": "Element nie posiada atrybutu bez określonej wartości.",
        "has-label": "Element ma atrybuty bez określonej wartości."
      },
      "fail": "Element ma atrybut wartości, a atrybut wartości jest pusty."
    },
    "non-empty-placeholder": {
      "pass": "Element ma atrybut placeholder.",
      "fail": {
        "noAttr": "Element nie ma atrybutu placeholder.",
        "emptyAttr": "Element ma pusty atrybut placeholder."
      }
    },
    "non-empty-title": {
      "pass": "Element ma atrybut title.",
      "fail": {
        "noAttr": "Element nie ma atrybutu title.",
        "emptyAttr": "Element ma pusty atrybut title."
      }
    },
    "non-empty-value": {
      "pass": "Element ma atrybut z niepustą wartością.",
      "fail": {
        "noAttr": "Element nie ma atrybutu z wartością.",
        "emptyAttr": "Element ma atrybut z pustą wartością."
      }
    },
    "presentational-role": {
      "pass": "Domyślna semantyka elementu została zastąpiona przez role=\"${data.role}\".",
      "fail": {
        "default": "Domyślna semantyka elementu nie została nadpisana przez role=\"none\" ani role=\"presentation\".",
        "globalAria": "Rola elementu nie jest prezentacyjna, ponieważ ma on ogólny atrybut ARIA.",
        "focusable": "Rola elementu nie jest prezentacyjna, ponieważ może on przyjmować fokus.",
        "both": "Rola elementu nie jest prezentacyjna, ponieważ ma on ogólny atrybut ARIA i może przyjmować fokus.",
        "iframe": "Użycie atrybutu \"title\" na elemencie ${data.nodeName} z rolą prezentacyjną zachowuje się niespójnie pomiędzy czytnikami ekranu."
      }
    },
    "role-none": {
      "pass": "Domyślna semantyka elementu została zastąpiona przez role=\"none\".",
      "fail": "Domyślna semantyka elementu nie została nadpisana przez role=\"none\"."
    },
    "role-presentation": {
      "pass": "Domyślna semantyka elementu została zastąpiona przez role=\"presentation\".",
      "fail": "Domyślna semantyka elementu nie została nadpisana przez role=\"presentation\"."
    },
    "svg-non-empty-title": {
      "pass": "Element ma dziecko, które jest tytułem.",
      "fail": {
        "noTitle": "Element nie ma dziecka, które jest tytułem.",
        "emptyTitle": "Element title dziecka jest pusty."
      },
      "incomplete": "Nie można ustalić, czy element ma dziecko, które jest tytułem."
    },
    "caption-faked": {
      "pass": "Pierwszy wiersz tabeli nie jest używany jako podpis.",
      "fail": "Pierwszym elementem potomnym (dzieckiem) w tabeli powinien być caption zamiast komórki tabeli."
    },
    "html5-scope": {
      "pass": "Atrybut scope jest używany tylko w elementach nagłówków tabeli (<th>).",
      "fail": "W HTML 5, atrybuty scope mogą być używane tylko w elementach nagłówkowych tabeli (<th>)."
    },
    "same-caption-summary": {
      "pass": "Treści atrybutu summary i elementu <caption> nie są powielane.",
      "fail": "Treści atrybutu summary i elementu <caption> są identyczne.",
      "incomplete": "Nie można określić, czy element <table> ma caption"
    },
    "scope-value": {
      "pass": "Atrybut scope ma poprawną wartość.",
      "fail": "Wartością atrybutu scope może być tylko 'row' lub 'col'."
    },
    "td-has-header": {
      "pass": "Wszystkie niepuste komórki danych mają nagłówki tabeli.",
      "fail": "Niektóre niepuste komórki danych nie mają nagłówków tabeli."
    },
    "td-headers-attr": {
      "pass": "Atrybut headers jest używany wyłącznie w odniesieniu do innych komórek w tabeli.",
      "incomplete": "Atrybut headers jest pusty.",
      "fail": "Atrybut headers nie jest używany wyłącznie w odniesieniu do innych komórek w tabeli."
    },
    "th-has-data-cells": {
      "pass": "Wszystkie komórki nagłówkowe tabeli odnoszą się do komórek danych.",
      "fail": "Nie wszystkie komórki nagłówkowe tabeli odnoszą się do komórek danych.",
      "incomplete": "Komórki danych tabeli są puste lub nie istnieją."
    },
    "hidden-content": {
      "pass": "Wszystkie treści na stronie zostały przeanalizowane.",
      "fail": "Były problemy z analizą treści na tej stronie.",
      "incomplete": "Na tej stronie jest ukryta treść, która nie została przeanalizowana. Musisz uruchomić wyświetlanie tej treści, aby ją przeanalizować."
    }
  },
  "failureSummaries": {
    "any": {
      "failureMessage": "Napraw następujące elementy: {{~it:value}}\n {{=value.split('\\n').join('\\n ')}}{{~}}"
    },
    "none": {
      "failureMessage": "Napraw wszystkie poniższe: {{~it:value}}\n {{=value.split('\\n').join('\\n ')}}{{~}}"
    }
  },
  "incompleteFallbackMessage": "AXE nie potrafił określić powodu. Czas użyć inspektora elementów!"
}
