Zrozumiałość · Poziom AA

3.1.2 Język części

Fragment w innym języku powinien być oznaczony w kodzie.

Krótko

Jeśli polska strona zawiera zdanie, akapit albo przycisk po angielsku, oznacz ten fragment na przykład `lang="en"`. Nie trzeba oznaczać pojedynczych nazw własnych, kodów ani słów, których języka nie da się określić.

Problem w praktyce

Na polskiej stronie pojawia się komunikat „Payment failed. Try again later.” bez oznaczenia języka. Czytnik ekranu może przeczytać angielski tekst polską wymową, co utrudnia zrozumienie.

3.1.2 nie dotyczy jakości tłumaczenia. Nie wymaga też oznaczania każdej nazwy firmy, produktu, skrótu lub imienia.

Kogo to dotyczy

  • Osób korzystających z syntezy mowy.
  • Osób uczących się lub słuchających treści w kilku językach.
  • Użytkowników narzędzi tłumaczenia i sprawdzania pisowni.
  • Osób, które potrzebują poprawnej wymowy komunikatów, instrukcji i cytatów.

Dobry przykład

  • Angielski akapit na polskiej stronie ma `lang="en"`.
  • Cytat po niemiecku ma `lang="de"`.
  • Przycisk w angielskiej wersji widgetu ma oznaczony język, jeśli widget jest osadzony na polskiej stronie.
  • Cały blok dokumentu w innym języku ma oznaczony język na elemencie obejmującym blok.

Zły przykład

  • Długie zdanie po angielsku bez `lang="en"` na polskiej stronie.
  • Komunikat błędu po niemiecku bez oznaczenia języka.
  • Oznaczanie każdej nazwy własnej, choć nie jest to potrzebne.
  • Ustawienie `lang` na całej stronie, gdy tylko jeden fragment jest w innym języku.

Przykłady kodu

Dobry przykład: zdanie po angielsku

Fragment ma własny język.

Kod — HTML

<p>
  System zwrócił komunikat:
  <span lang="en">Payment failed. Try again later.</span>
</p>

Dobry przykład: blok cytatu

Język można ustawić na całym bloku.

Kod — HTML

<blockquote lang="de">
  <p>Dieser Dienst ist barrierefrei zugänglich.</p>
</blockquote>

Zły przykład: brak języka fragmentu

Czytnik ekranu może użyć wymowy głównego języka strony.

Kod — HTML

<p>
  System zwrócił komunikat:
  Payment failed. Try again later.
</p>

Przykład graficzny

Źle

Payment failed. Try again later.

Tekst jest po angielsku, ale kod nadal zakłada język polski.

Dobrze

<span lang="en">Payment failed...</span>

Technologia wspomagająca dostaje informację o zmianie języka.

Statyczne demo pokazuje, że oznaczamy fragmenty, a nie każdą pojedynczą nazwę własną.

Jak sprawdzić

  1. Znajdź dłuższe fragmenty w innym języku niż język strony.
  2. Sprawdź, czy obejmujący element ma poprawny `lang`.
  3. Nie oznaczaj pojedynczych nazw własnych, jeśli nie jest to potrzebne.
  4. Sprawdź komunikaty błędów, cytaty, widgety, przyciski i treści z systemów zewnętrznych.
  5. Nie myl oznaczenia języka z oceną jakości tłumaczenia.

Co sprawdzi automat, a czego nie

Automat może wykryć

  • część fragmentów wyglądających na inny język,
  • niepoprawne kody języków,
  • brak `lang` w oczywistych przypadkach.

Automat nie oceni pewnie

  • czy nazwa własna wymaga oznaczenia,
  • czy fragment jest cytatem, terminem technicznym czy tekstem w innym języku,
  • czy język fragmentu da się jednoznacznie określić.

Typowe błędy

  • Nieoznaczone angielskie komunikaty błędów w polskim formularzu.
  • Cały blok FAQ po angielsku bez `lang="en"`.
  • Oznaczanie skrótów i nazw produktów bez potrzeby.
  • Ustawianie `lang` na zbyt szerokim kontenerze.