Dostępność stron www – nagłówek DOCTYPE
Zgodnie ze standardami HTML i XHTML nagłówek DOCTYPE (skrót od document type declaration) informuje walidator o tym jakiej wersji (X)HTML używamy. Bez poprawnej deklaracji nagłówka nasz HTML oraz CSS nie będzie walidowalny. Oznacza to, że nie będziemy w stanie sprawdzić, czy przy pisaniu strony nie odeszliśmy od standardów W3C, czyniąc tym samym naszą stronę mniej dostępną.
Pisanie kodu (X)HTML zawsze zaczynamy od zdefiniowania nagłówka DOCTYPE właściwego dla naszej strony. Lista wszystkich znajduje się na stronie konsorcjum W3C. Najczęściej używanymi powinny być te, które definiują pracę w trybie Strict (jedynym słusznym jeżeli stosujemy standardy W3C). Innymi trybami są Transitional i Frameset. Pierwszy informuje walidator, że używamy przestarzałych atrybutów i elementów, a drugi służy do definiowania strony opartej o ramki.
Dla przykładu nagłówki, których powinniśmy użyć dla HTML4.01, XHTML1.0 oraz XHTML1.1 wyglądają odpowiednio:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
oraz
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
Użycie niepoprawnego nagłówka lub jego brak wprowadza przeglądarki takie jak IE ale i Mozilla w tryb „Quirks”, sprawiając, że próbują one interpretować nasz kod zgodnie z normami z późnych lat 90 ubiegłego wieku. Może to mieć tragiczne skutki jeśli chodzi o wygląd i działanie naszej napisanej zgodnie ze standardami strony, gdyż zmienia się sposób interpretacji kodu CSS jak i DOM (Document Object Model), a co za tym idzie skrypty napisane dla W3C standard DOM mogą (wielce prawdopodobne):
- przestać działać
- zacząć działać inaczej, czyli patrz punkt pierwszy.
Listę zmian, które wprowadza „Quirks mode” w stosunku do standardów, znaleźć można na stronie kursu browsehappy.
W przypadku IE „wracamy” do wersji 4. Dla ludzi, którzy nie mieli z tą wersją do czynienia: „good for you”, reszta wie, że to nie jest to co tygryski lubią najbardziej. Wystarczy, że musimy się użerać z szóstką z uwagi na jej „popularność” o której pisał Dawid w jednym z jego artykułów. Aby uniknąć tego typu problemów używajmy poprawnego nagłówka DOCTYPE.
Chcesz być na bieżąco? Zapisz się na nasz newsletter.
poniedziałek, 29 gru 2008, 11:53
Czy nie jest tak że poprawny plik XHTML powinien być wysłany z nagłowkiem
Content type: application/xhtml+xml
i jakakolwiek deklaracja DOCTYPE w pliku z nagłówkiem text/html powoduje tylko że plik jest czytany przez przeglądarkę jako HTML z błędami ?
Pozdrawiam
wtorek, 30 gru 2008, 12:45
To zależy co rozumiemy przez poprawny plik XHTML.
Dla XHTML1.0 (jest kompatybilny z XHTML4.01) MOŻNA użyć Content type: text/html, ale tylko jeśli dokument XHTML został stworzony zachowując zalecenia kompatybilności HTML (http://www.w3.org/TR/xhtml1/#guidelines)
Dla pozostałych dokumentów zdefiniowanych jako XHTML1.0 MUSIMY użyć Content type: application/xhtml+xml.
Dla XHTML1.1 POWINNIŚMY użyć Content type: application/xhtml+xml. Musu nie ma :)
Co do drugiej części pytania to rozumiem, że chodzi o deklaracje DOCTYPE XHTML z nagłówkiem text/html. Otóż coś w tym jest :) XHTML rozpozna jako poprawnie zamknięty znacznik a zaserwowane jako text/html bedzie to … bez znacznika zamykającego i wygeneruje pewnie troszkę błędów w walidatorze.
Pozdrawiam.
wtorek, 30 gru 2008, 13:11
uuu… chciałem zaserwować znacznik HTML-a i go “wycieło”
We fragmencie:
“XHTML rozpozna jako poprawnie zamknięty znacznik a zaserwowane jako text/html bedzie to … bez znacznika zamykającego”
brakuje 2 rzeczy… wstawie je zamieniając nawiasy na cudzysłowy. Będzie trzeba rozwiązac problem tagów HTML w komentarzach :)
Powinno byc tak:
XHTML rozpozna „p/” jako poprawnie zamknięty znacznik a zaserwowane jako text/html bedzie to „p”… bez znacznika zamykającego (obejmie całą resztę dokumentu).
czwartek, 12 mar 2009, 15:02
Według mnie o dostępności strony nie decyduje wyłącznie jej nagłówek. Dostępność stron kojarzy się z możliwością zapoznania się z jej zawartością również osobom niepełnosprawny, co jest normowane przez pewne zasady WCAG1.0 oraz WCAG2.0.
piątek, 13 mar 2009, 08:32
Emil – oczywiście masz rację. To tylko jeden z artykułów na temat dostępności, więcej – http://enzo.pl/category/projektowanie/dostepnosc-www/
poniedziałek, 16 mar 2009, 12:55
@Emil: tak, racja. Chciałbym tylko zwrócić uwagę, że w artykule nie ma nigdzie o tym, że nagłówek DOCTYPE jest jedynym wyznacznikiem dostępności strony. Ale jego poprawne zdefiniowanie jest na pewno pierwszym krokiem, który rozpoczyna drogę tworzenia (pisania kodu) „dostępnej strony”.