Twoja strona nie gęś - określ język

To pierwszy wpis z cyklu bardziej technicznych podstaw dostępności. To część, ze względu na ilość szczegółów technicznych kierowana głównie do osób tworzących strony.

Główny język dokumentu

Wytyczna nr 4 WCAG stanowi: "Sprecyzuj język naturalny". Powód? Zbitki tych samych liter w różnych językach brzmią inaczej. Człowiek spoglądając na tekst jest w stanie z dość dużą dozą prawdopodobieństwa podać język w jakim jest napisany. Automat np. czytnik ekranowy też jest w stanie to wykonać opierając się na pewnych przesłankach. Przy czym jeśli na stronie znajdą się elementy w innym niż całość dokumentu język (np. cytaty, reklamy, kawałek kodu) zgadywanka może przynieść nieoczekiwany rezultat.

Tak samo jednak jak w przypadku żywego odbiorcy wymaga to pewnego czasu i zasobów na analizę. A rozwiązanie jest trywialnie proste. Wystarczy określić główny język dokumentu. Rozwiązanie podpowiada samo rozwinięcie wytycznej: "Np: w HTML ustaw atrybut "lang" w elemencie HTML . W XML, użyj "xml:lang". Operatorzy serwerów powinni skonfigurować serwery aby wykorzystać mechanizmy negocjacyjne HTTP ([RFC2068],sekcja 14.13) po to by klienci mogli automatycznie uzyskać dokumenty w preferowanym języku."

O ile mechanizm negocjacji wersji dokumentu sprawdza się dobrze w przypadku bezpośrednich wielojęzycznych kopii serwisu (najczęściej występują w tej postaci dokumentacje, specyfikacje itp.). O tyle w przypadku mniejszego serwisu wystarczającym ułatwieniem będzie zastosowanie atrybutów określających język. Każdy język identyfikowany jest poprzez dwuliterowy kod zdefiniowany w normie ISO 639-1. Listę kodów możesz znaleźć między innymi w Wikipedii (czego tam nie ma :) ). Dla języka polskiego będzie to rzecz jasna "pl" więc w kodzie strony HTML powinno znaleźć się:

<html lang="pl">

Dzięki temu już na samym początku program będzie wiedział z jakim językiem ma do czynienia i włączy odpowiednią syntezę (jeśli obsługuje dany język).

Niektóre języki mają swoje odmiany, dialekty, czy uległy zmianie reguły w pewnym okresie czasu co pociąga za sobą zmianę wymowy. Dla tych języków dodatkowo określić można elementy różnicujące. Nie wdając się w daleko idące technikalia zainteresowanych odsyłam do dokumentacji na stronach W3C. Dla przykładu podam często wykorzystywane oznaczenia: język angielski w wersji brytyjskiej będzie miał oznaczenie "en-GB", w wersji amerykańskiej "en-US", francuski używany w Kanadzie "fr-CA". Polski w tej konwencji, choć nie mamy zamorskich kolonii więc i język wspólny, wyglądać będzie tak:

<html lang="pl-PL">

Zaznacz każdą zmianę języka

Ważniejsze od określenia głównego języka dokumentu, które znajduje się w składowych dopiero trzeciego priorytetu, jest oznaczanie każdorazowej zmiany języka - priorytet 1. Ilekroć cytujesz, umieszczasz nazwę, odpowiednik tekstowy czy jakikolwiek element w języku innym niż reszta dokumentu - musisz określić jego język. Inaczej artykulacja może nie być zrozumiała. Konwencja dokładnie ta sama jak przy określaniu języka głównego. W HTML atrybut "lang", w XHTML - "xml:lang". Skutek jest również taki jak przy określaniu języka naturalnego dokumentu. W miarę możliwości czytnik przestawi się na syntezator podanego języka.

Znaki specjalne zapisuj jako odwołania znakowe SGML

Wykorzystanie odwołań znakowych zamiast wprost znaków specjalnych pozwoli uniknąć ich błędnej interpretacji. Nie ma znaczenia, czy użyjesz ich postaci kodowej (np. &laquo;) czy zawierającej wartości numerycznej Unicode (np. &#171;).

Unikaj też wszelkich sztuczek polegających na zastępowaniu znaków specjalnych innymi znakam, którym za pomocą stylów nadany jest wygląd zbliżony do oczekiwanego np. <i><strike>L</strike></i> (L) zamiast £ (przykład zaczerpnąłem ze strony If you use multiple languages).

Z tego co zaobserwowałem WordPress, a dokładniej edytor WYSIWYG zamieni mi przy zapisie niektóre odwołania znakowe do postaci znaków specjalnych. Postaram się to zwalczyć i opisać.

Warto odwiedzić:

Posłowie

Miało być krótko, jako chwilowe oderwanie od dłuższego tekstu traktującego o technologii Flash, który rodzi się w bólach. Wyszło jak zwykle, a i tak okaże się szybko w komentarzach, że o czymś nie napisałem ;-)

  • Podziel się:
  • wykop.pl
  • gwar.pl
  • linkr
  • del.icio.us
  • digg.com
  • technorati

Skomentuj



O ile nie jest to stwierdzone inaczej, wszystkie materiały na stronie są dostępne na licencji Creative Commons Uznanie autorstwa 2.5 Polska.