HTML validátor W3C nejčastější chyby

Jelikož se mne pořád někdo ptá, co si to ten validátor dovoluje mu říkat, že tam má chybu, když tam žádná není a jestli tam prej je, tak stejně nechápe jaká a já už nemám nervy na to neustále opakovat „nauč se číst” (a pokud možno hned anglicky) tak radši dodám tenhle malý pomocník pro vychytávání chyb v kódu pomocí HTML validátoru. Různé validátory jsou v HTML editorech. Já budu psát přímo o validátoru W3C, je asi nejpoužívanější a jak název napovídá, bude i nejlepší :-)

Validátor W3C

Online validátor W3C nalezneme na adrese validator.w3.org. Práce s ním je jednoduchá. Na úvodní stránce je třeba sdělit validátoru, který soubor se bude validovat. Zvolit můžete buď Validate by URL, kde se do políčka Address zadá URL adresa stránky. Nebo můžete zvolit Validate by File Upload a pomocí tlačítka browse projít svůj disk a vybrat (a potvrdit tlačítkem check) soubor k validaci.

Address nebo URL

Do políčka Address (URL) stačí správně zadat URL adresu stránky, jejíž validitu konrolujeme a odentrovat. Adresu můžeme zadávat bez úvodního http://, pokud je v klasickém tvaru, např. www.example.com. Pokud je ve tvaru bez www, např. validace.example.com, je třeba zadávat ve tvaru http://validace.neco.cz. Pokud URL adresu zadáte špatně, objeví se hlášení ve žlutém rámečku:

Sorry, this type of URL scheme (undefined) is not supported by this service. Please check that you entered the URL correctly.

(Zpět se vrátíme tlačítkem zpět v prohlížeči). Pokud omylem napíšete neexistující URL, validátor vyhodí chybu:

500 Can't connect to www.example.com:80 (Bad hostname 'www.example.com')

Encoding

Určuje kódování dokumentu. Výchozí hodnotou je detect automatically (automaticky zjistit). Pokud máte kódování správně nastavené, není třeba nic měnit, v opačném případě si kódování doplňte, není hezké ani čitelné, když se místo českých znaků zobrazují čtverečky. Pokud to chcete opravit až se všemi ostatními chybami najednou, vyberte požadované kódování a validátor bude chybu ignorovat. Pokud kódování není správně nastavené, zobrazí se chyba:

The HTTP Content-Type header sent by your web browser (unknown) did not contain a "charset" parameter …

nebo:

No Character Encoding Found! Falling back to …

Doctype

Pokud není uveden DOCTYPE (tedy označení předpisu, podle kterého jsou stránky tvořené, tj. jestli HTML 4.0 nebo třeba XHTML 1.0), těžko může validátor stránku zvalidovat, když neví, podle čeho. Pokud tedy nedoplníte DOCTYPE do stránky, vyberte příslušnou specifikaci z nabídky. Ohlášení chyby chybějícího DOCTYPE zní takto:

No DOCTYPE Found! Falling Back to …

Errors

Číslo udává počet chyb v kódu stránky.

Chyby v kódu

element "HTLM" undefined

Použili jste element, který neexistuje. Často to bývá prostě překlep nebo opravdu používáte něco, co v XHTML není, třeba tag font.

end tag for "img" omitted, but OMITTAG NO was specified

Nějaký tag, v tomto případě img není uzavřený, ačkoliv uzavření tagu je povinné (u XHTML musí být uzavřený každý tag). Nepárový tag tedy uzavřeme takto: <img />. U párových tagů doplníme chybějící koncový tag. Chybu mohou způsobit i překřížené tagy.

start tag was here

Ukazuje místo, kde se nachází počáteční tag, který byl v minulé chybě ohlášen jako neukončený. Errorová hláška se tedy odstraní napravením předchozí chyby.

there is no attribute "ALIGN"

Používáte atribut, který v dané specifikaci nebo pro daný element neexistuje. Ve většině případů se bude jednat o formátovací atributy, ty nahraďte CSS vlastnostmi.

Více: CSS vlastnosti

required attribute "alt" not specified

U tagu vám chybí nějaký povinný atribut, v tomto případě alt u obrázku.

cannot generate system identifier for general entity "id"

Chyba je v odkaze, kde nemáte ampersand zapsaný jako HTML entitu. Validátor se ampersand následnou proměnnou pak snaží chápat jako HTML entitu, ale žádnou takovou samozřejmě nezná. Místo & tedy musíte napsat &amp;.

Více: HTML entity