O webu
Musí být web validní?

Někdy kolem roku 2005 bylo hodně populární mít web validní a pochlubit se o tom prostřednictvím ikonek.

Validní XHTML

Validní HTML 4.01

Validní CSS

Tyto ikony odkazovaly na validátor – nástroj pro kontrolu, zda je stránka validní.

Vzhledem k tomu, že HTML a CSS jsou velmi tolerantní k chybám (tj. i nevalidní web se zpravidla bez vážných potíží zobrazí), někteří tvůrci webů se kdysi validitou svých stránek snažili odlišit od amatérů, pro které byla zelená hláška z validátoru těžko dosažitelná.

Zelená hláška z Českého validátoru

Jelikož informace o validitě stránky návštěvníky obvykle nezajímají, zbytečné ikonky odkazující na validátor z internetu pomalu mizí. A to je dobře.

Verse (X)HTML

V dřívější době bylo běžné rozlišovat pro účely validování různé verse HTML, které se stanovovaly prostřednictvím značky <!doctype> na začátku kódu stránky.

Vzhledem k tomu, že prohlížeče nikdy různé verse HTML nerozlišovaly, od jejich uvádění se upustilo a jako doctype se uvádí prosté:

<!doctype html>

Uvádět tento <!doctype> se hodí zejména pro starší prohlížeče, kde slouží pro zapnutí standardního režimu.

XHTML

Příznivci maximálně přísných pravidel dříve dokonce psali v XHTML. To se od HTML syntaxe liší hlavně ve 2 věcech:

  1. XHTML značky musí být psány malými písmeny a být uzavřené. I takové, které mají v HTML uzavírací značku volitelnou – třeba <p> nebo <li>.

    Značky bez obsahu (např. <img> nebo <input>) se uzavírají pomocí lomítka:

    <input name="policko" />
  2. XHTML atributy musejí mít uvedenu svou hodnotu v uvozovkách. Atributy, které jsou sami o sobě hodnotou, se v XHTML potom musí psát jako atribut="atribut":

    <input required="required">

Tento zápis jde (volitelně) použít i v HTML, ale v XHTML je povinný.

Dokument splňující tato pravidla je potom možné parsovat jako XML.

V praxi se parsování XHTML pomocí XML parseru ale prakticky vůbec neuchytilo, protože:

  1. Jakákoliv chyba v XHTML způsobila nenačtení stránky. To se kromě chyby autora nebo zásahem do kódu ze strany provozovatele připojení mohlo stát i v případě, že se nestáhl celý XHTML kód. Nekompletní stránka je v X(HT)ML nevalidní, protože nemá uzavřené některé značky.

    I špatné zobrazení stránky bývá obvykle lepší než zobrazení žádné.

  2. Kvůli nutnosti zpracování stránky XML parserem se muselo před vykreslováním čekat na stažení celé stránky, aby šlo jasně určit, že je v pořádku.

  3. Některé vyhledávače měly problém s indexováním XHTML stránek.

  4. V té době rozšířený Internet Explorer 6 si s běžnou XHTML stránkou neporadil.

Kvůli těmto problémům se drtivá většina XHTML stránek neposílala s odpovídající hlavičkou:

Content-Type: application/xhtml+xml

Ale stejně jako běžné HTML stránky s typem text/html. Prohlížeče tyto rádoby XHTML weby potom zpracovávaly stejně jako obyčejné HTML. Kvůli nekompatibilitě HTML a XHTML se tyto „XHTML“ stránky potom zpracovávaly jako HTML s chybami, s kterými si ale prohlížeče poradily.

Musí být web validní?

Nemusí.

Validátor je ale celkem užitečný nástroj pro odhalení případných chyb, které by mohly dělat problémy. Problematické je zejména špatné zanoření značek nebo zapomenutí uzavíracího tagu:

Ideální je používat HTML linter – nástroj pro okamžité zobrazování případných problémů rovnou v editoru. Existuje přímo plugin do Sublime Text.

Chyby v HTML jde tak odhalit ihned po jejich vytvoření.

Validní web a SEO

Některé SEO příručky doporučují, aby HTML kód stránky byl validní.

Rozhodně nelze obecně tvrdit, že by validita stránky byla významným prvkem v hodnocení stránek vyhledávači. Záleží ale na typu prohřešku proti validátoru, který web obsahuje.

Nesprávně zanořené/ukončené značky mohou vést k špatnému zobrazení stránky a potažmo špatnému pochopení ze strany robota vyhledávače.

Při pouhém použití třeba neznámého atributu, je ale risiko minimální.

Podle vyjádření z Google může nevalidní kód způsobit špatné pochopení strukturovaných dat:

Validní CSS

Zatímco dosáhnout validního HTML nemusí být úplně problém, u CSS je to prakticky nemožné, chce-li člověk používat novější konstrukce nebo nestandardní postupy zlepšující chování v některých prohlížečích.