Artykuł traktuje Validatorze. Głównym wątkiem jest próba odpowiedzi na pytanie „Jak poprawić błędy wskazywane przez Validator W3C?”.
Wstęp
Wszystkie informacje o błędach są opisane na stronie .
Użycie
Strony testuje się on-line pod adresem .
- Validate by URL
- Sprawdzi stronę pod wskazanym adresem. Należy pamiętać o podaniu http:// w adresie.
- Validate by File Upload
- Sprawdzi wskazany plik wgrany z lokalnego dysku. W ten sposób nie można sprawdzić plików PHP.
Błędy znajduje także i dodatkowo próbuje naprawić HTML Tidy.
W Operze można automatycznie wysłać do Validatora każdą aktualnie otworzoną stronę skrótem klawiszowym Ctrl+Alt+V. Są dostępne umożliwiające sprawdzenie HTML i CSS.
Błędy
- Brak DOCTYPE
-
Obecnie jest wiele odmian i wersji języka HTML. Zarówno przeglądarka jak i validator, aby poprawnie zinterpretować stronę, muszą wiedzieć, z jaką odmianą języka mają do czynienia. Należy wybrać i umieścić w kodzie odpowiedni DOCTYPE (). Najbardziej tolerancyjny i najczęściej stosowany jest HTML4.01 Transistional. Zaleca się używanie XHTML/1.0 Strict, znacznie nowszego i kompatybilnego z XML, ale jego użycie często przerasta umiejętności webmasterów.
- there is no attribute „TOPMARGIN”, „BACKGROUND”, „HEIGHT”
-
To są niestandardowe atrybuty. Zamiast nich z powodzeniem można użyć ich odpowiedników w CSS.
-
Zamiast
TOPMARGIN="20"
wystarczy w arkuszu styli podać:body {margin-top: 20px; padding-top: 20px;} Padding jest teoretycznie poprawniejszy, ale tylko Opera go respektuje. Pozostałe przeglądarki używają margin, dlatego najlepiej jest podać obie wartości naraz. Ta różnica dotyczy wyłącznie tagu body.
Zamiast
<td background="tlo.jpg" bgcolor="#112233">
najlepiej użyć kodu HTML:<td class=”przyklad”> oraz CSS:
przyklad {background: #123 url(’tlo.jpg’);} - missing attribute TYPE
-
Zamiast
<script language="javascript">
należy użyć<script type=”text/javascript”> . VisualBasic nie powinien znaleźć się na WWW.
- missing attribute ALT
-
Wszystkie obrazki muszą mieć atrybut
ALT
krótko je opisujący. Jeśli obrazek jest elementem dekoracyjnym, to zamiast zbłędnego opisu typu „zielona kropka” należy podać pustyALT
.<img src=”przyklad.jpg” alt=”przykladowa opisana grafika”>
<img src=”kropka.gif” alt=” „> - HTML i skrypty
-
Mało kto zdaje sobie sprawę, że ciąg „
</
” nie ma prawa wystąpić w skrypcie (aby przeglądarki nierozumiejące treści skryptu mogły łatwo go ominąć). Są 2 rozwiązania:- Każde wystąpienie „
</
” zamienić na „<\/
„. np.document.write('<h1>hello<\/h1>');
- Otoczyć cały skrypt blokiem CDATA:
<script type=”text/javascript”> //<![CDATA[
treść skryptu
//]]> </script>Można zamiast bloku CDATA użyć komentarza HTML, ale wtedy w kodzie nie może wystąpić „–„, np.
var--;
. Trzeba także pamiętać, że komentarz otwarty wewnątrz<script>
musi być zamknięty – inaczej nie spełni swojego zadania, a wręcz spowoduje zignorowanie reszty strony przez niektóre przeglądarki.
- Każde wystąpienie „
- SGML entities
-
Wszystkie znaki „&” w adresach muszą być zamienione na „
&
„. Linki są także treścią HTML i jako takie muszą być w nim napisane. Jest to konieczne, aby uniknąć mylenia się parametrów w linkach ze znakami specjalnymi (encjami) HTML (np. gdyby link miał zawierać parametry nazwanenbsp
,amp
,pound
, itp.).Poprawianie „&” w linkach faktycznie może być uciążliwe. Na statycznych stronach można je automatycznie poprawić za pomocą . W PHP należy użyć funkcji
, np.
echo '<a href=".htmlspecialchars($url).'">link</a>';
Jeśli problem dotyczy twojej strony, najwygodniej zmienić system linków, używając w Apache. Zamiast strona/index.php?id=bla&bla, używać prostego strona.com/bla/bla.
Autor jest współtwórcą osiolki.net, web developer ideadesigners.co.uk