Validita výstupních stránek

Grafickým výstupem webových aplikací jsou webové stránky. Ty zasílá server prohlížeči jako odpověď na jeho jednotlivé dotazy. Základem webových stránek je značkovací jazyk HTML [16] respektive jeho v poslední době se rozšiřující následovník XHTML. Ten je založen na obecném značkovacím jazyce XML [18]. Stránky napsané v XHTML tedy musí dodržovat veškerá pravidla platná pro XML. Jedná se zejména o správnou strukturovanost a validitu výstupu.

Důsledné a validní vyznačování dokumentu umožňuje a zjednodušuje jeho automatizované zpracování navazujícími nástroji. Ač by se mohlo zdát, že u webových aplikací kromě samotného klientského prohlížeče, který je schopen většinu chyb sám opravit, žádný jiný nástroj do styku se stránkou nepřijde, opak je pravdou. Příkladem mohou posloužit fulltextové vyhledávače jako nejrozšířenější Google či české Jyxo. Jejich roboti neustále procházejí všechny stránky v Internetu a indexují jejich obsah. Značkování jim pomůže „pochopit“ význam jednotlivých částí naší stránky a co nejlépe ji zaindexovat.

Správné značkování má následně i vliv na umístění naší stránky ve výsledcích hledání klíčového slova [24]. Roboti například přiřazují větší důležitost slovům, která jsou ve stránce uzavřena do tagů <strong>, <em>, <title>, <h1> apod. Při vyhledávání těchto slov se pak stránka může umístit výše, než kdyby se tyto výrazy nacházely jen v rámci běžného textu. Je zřejmé, že pokud stránka není validní a obsahuje syntaktické chyby, pak nejsou roboti schopni stránku rozparsovat a jednoznačně určit, ke kterému textu se dané tagy vztahují. V takovém případě budou tyto tagy pravděpodobně ignorovat.

Validní výstup z aplikace lze použít i pro zajištění více různých výstupních formátů pro různé klienty s pomocí XSL transformací [5]. Ještě než server odešle stránku klientovi, předá ji některému XSLT procesoru. Ten jej na základě určené šablony přetransformuje do požadovaného formátu. Teprve poté se výsledný dokument zašle klientovi jako odpověď na jeho dotaz. Použití transformací samozřejmě umožňuje (a také tomu tak často je) aplikaci negenerovat primární výstup v XHTML, ale v některém svém vlastním vhodnějším značkovacím jazyce založeném na XML.

Validní a správně strukturovaný výstup aplikace většinou nezávisí přímo na používaném frameworku, ale zejména na schopnostech a znalostech webdesignéra. Od programovacích jazyků, vývojových prostředí, frameworků a šablonovacích systémů se často jen očekává, že nebudou některými svými „chybami“ validní výstup systémově znemožňovat.

Takové chyby vznikají zejména při automatickém vkládání či generování částí kódů, které nejsou validní. Ať už z důvodu velikosti znaků uvnitř tagu (XML je case–sensitive), nepovoleného obsahu jednotlivých elementů, chybějících či přebývajících atributů, neuvedení uzavíracího tagu apod. Například PHP funkce Nl2Br, která v zadaném řetězci nahrazuje znak nového řádku tagem pro odřádkování, dlouhou dobu vkládala pouze <br>. Správná podoba tohoto nepárového tagu <br /> je podporována relativně krátkou dobu. Nebo některé třídy pro generování formulářů vkládají vstupní pole přímo do elementu <form>, ačkoliv podle definice musí být obaleny ještě nějakými blokovými tagy, nejlépe <fieldset>. Jako další příklad lze uvést různé frameworkové funkce pro vytváření odkazů, které jako oddělovač jednotlivých atributů stále často používají jen znak & místo validní entity &amp;.

Některé programovací jazyky poskytují přímo podporu pro validaci či opravu výstupního kódu. Takové funkce v pozadí často volají knihovny podobné volně dostupné LibTidy. Například v PHP se jedná o množinu funkcí Tidy_*.