JustPaste.it

Validator ciągle się czepia!

Wstęp

Wszystkie informacje o błędach validatora są opisane na stronie Explanation of the error messages for the W3C Markup Validator.

Użycie

Strony testuje się on-line pod adresem validator.w3.org.

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 sprawdzać 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 dodatkowe przyciski dla Opery, 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 (lista doctype'ów na W3C). Najbardziej tolerancyjny i najczęściej stosowany jest HTML 4.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" w arkuszu stylów wystarczy podać:
body { 0; padding-top: 20px;}
Różne przeglądarki mają różne domyślne ustawienia margin i padding, więc gdy ustawia się jedno, należy też drugie.

Zamiast <td background="tlo.jpg" bgcolor="#112233"> najlepiej użyć kodu HTML:
<td class="przyklad">
oraz CSS:
.przyklad {background: #123 u rl('tlo.jpg');}

missing attribute TYPE

Zamiast <style> należy użyć <style type="text/css">.

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ć pusty ALT.
<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.
SGML entities

Wszystkie znaki "&" w adresach muszą być zamienione na "&amp;". Odnośniki są także treścią HTML i jako takie muszą być w nim napisane. Jest to konieczne, aby uniknąć mylenia się parametrów w odnośnikach ze znakami specjalnymi (encjami) HTML (np. gdyby odnośnik miał zawierać parametry nazwane nbsp, amp, pound, itp.).

Poprawianie "&" w odnośnikach faktycznie może być uciążliwe. Na statycznych stronach można je automatycznie poprawić za pomocą HTML Tidy. W PHP należy użyć funkcji htmlspecialchars(), np.
echo '<a href=''">link</a>';

Jeśli problem dotyczy twojej strony, najwygodniej zmienić system odnośników, używając mod_rewrite w Apache. Zamiast strona/index.php?id=bla&bla, używać prostego strona.com/bla/bla

Bariera językowa

Dla osób, które nie chcą się zmagać z anglojęzycznym validatorem W3C pomocny może być polski program Tagik. Niestety, nie obsługuje on wszystkich wersji HTML, dlatego nie może on zastąpić całkowicie validatora W3C.

 

Źródło: http://osiolki.net/faq/validator