Dzisiejszy wpis będzie krótki, prosty i przyjemny - taka lekka odskocznia od relacji i zapowiedzi konferencji JavaScriptowych. O czym będzie? O tagu <head>, czyli nagłówku strony, który od (nie tak dawnych) czasów XHTML 1.0 bardzo się zmienił, zdecydowanie na lepsze. Jest to oczywista oczywistość, którą zna praktycznie każdy, jednak okazuje się, że nie wszyscy.

Niedawno na WebDesigner Depot pojawił się wpis o wdzięcznym tytule "How to create an HTML5 and CSS3 Ajax-based contact form". Temat ciekawy, bo formularz kontaktowy to dość popularny skrypt. Do tego "HTML5 and CSS3" brzmiało bardzo zachęcająco. Jak się niestety okazało - nic z tego. Nagłówek tej jakże nowoczesnej aplikacji internetowej prezentował się następująco:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html dir="ltr" xmlns="http://www.w3.org/1999/xhtml" xmlns:fb="http://www.facebook.com/2008/fbml" xml:lang="en" lang="en">
<head>
<title>HTML5/CSS Ajax Contact Form with jQuery</title>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<link href="styles.css" rel="stylesheet" type="text/css" />
</head>

Zobaczmy co jest z nim nie tak:
1. DOCTYPE, który miał być dla HTML5, a jest dla... XHTML 1.0 Transitional.
2. HTML, w którym nie wiadomo po co ktoś wrzucił Facebooka. Czyżby metoda pana Copy Paste'a?
3, Kodowanie znaków, a raczej jego zupełny brak (który w tym przypadku pewnie wyglądałby następująco: <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />).
4. Dodatkowa ciekawostka, czyli możliwość pomijania type="text/javascript" oraz type="text/css" odpowiednio dla script (skryptów JS) oraz link rel="stylesheet" (styli CSS).
5. Na jedyny plus zasługuje koncepcja pobierania jQuery z zewnętrznego źródła.

Ok, wiemy co jest źle, ale jak to powinno wyglądać? Na przykład tak:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>HTML5/CSS Ajax Contact Form with jQuery</title>
<link rel="stylesheet" href="styles.css" />
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
</head>

Prawda, że ładniej? Nareszcie DOCTYPE można napisać z pamięci, zamiast kopiować go z innej strony. Tylko prawdziwi twardziele potrafili napisać go z palca bez podglądania, co i tak nie było im zupełnie do niczego potrzebne.

Wracając do WebDesigner Depot - magazyn trzyma całkiem niezły poziom, więc można się domyślać, że był to artykuł napisany przez kogoś gościnnie. Najpierw pod wpisem zaczęły pojawiać się komentarze wytykające błędy, a po kilku godzinach od publikacji cały wpis zniknął z ich strony. Jak to dobrze, że Google Reader trzyma kopie wpisów z RSSa w swoim cache'u.