Nejisto kolem webových standardů

5. května 2009

Postihnout dění okolo webových standardů není úplně jednoduché. Jedná se o téma, v němž nechybí zápletky a zvraty, přičemž ani v současnosti není situace plně uspokojivá a snadno vysvětlitelná – nelze například šmahem určit jednoho univerzálního viníka, jak mnozí pitomci rádi činí.

O značkovacích jazycích

Začátkem devadesátých let sepsal Tim Berners-Lee návrh hypertextového projektu, z něhož později vznikl HTML. První oficiální specifikací tohoto jazyka se stala specifikace HTML 2, kterou vydala v roce 1995 organizace Internet Engineering Task Force. V ní HTML definovala jako podmnožinu SGML. Další specifikace už vydávalo W3C, byly však brány čistě formálně, všichni je uznávali, leč nikdo je nedodržoval.

Poslední platná verze HTML nese pořadové číslo 4, vyšla v roce 1997 a od té doby W3C rezignovalo na další vývoj HTML. Místo něj uvedlo koncem roku 1999 XHTML, což ovšem byl zase starý HTML 4, jen převlečený do XML kabátu. Jenže spousta zařízení na různých platformách odmítla XHTML podporovat. De facto se mezi ně zařadil i Internet Explorer, což bylo pro osud XHTML klíčové. Navíc se řada kodérů obávala větší přísnosti XML, ne zcela neoprávněně. Mezitím vzplanul v internetových diskusích mohutný boj mezi příznivci a odpůrci XHTML. Před smířlivou a konstruktivní debatou byli jeho účastníci chráněni zejména tou okolností, že problematice příliš nerozuměli. Kdyby si byli skutečně vědomi toho, že jejich super HTML a XHTML (zasílané s MIME typem text/html!) kódy jsou zpracovávány jakýmisi pseudoHTML parsery, které nerozlišují (sic!) mezi XHTML, správně sestaveným (well formed) HTML a ultraprasárnou, jistě by disputace ztratily mnoho ze své prudkosti.

Vedení webu k jeho plnému potenciálu se Konsorciu čím dál víc vymykalo z rukou, vývoj webu spěl kupředu tempem přímo ďábelským a W3C na něj nedokázalo ani reagovat, natož tento vývoj usměrňovat, proto se iniciativy chopila skupina WHATWG napojená na tvůrce alternativních prohlížečů a další zainteresované subjekty. Neudržitelnost situace přiměla W3C k tomu, že přijalo projekt skupiny WHATWG za svůj a na HTML 5 se tedy nyní pracuje opět pod hlavičkou W3C.

Připravovaná norma se vyznačuje přístupem naprosto odlišným od toho dosavadního, reflektuje současný stav a nabízí nápravu a vylepšení řady věcí. A co vlastně tak zásadního přináší?

  • transformaci HTML – SGML základ se neujal, kodifikací pravidel utvořených dlouhodobým evolučním procesem se proto konstituuje základ nový
  • zlepšení a obohacení sémantiky
  • přidání nových funkcí – kontrola zadaných údajů před odesláním formuláře, možnost vlastních kontextových menu, canvas a mnoho dalších věcí, které programátory webových aplikací jistě potěší

Jak to bude do budoucna? Prosadí se HTML, nebo XHTML? Specifikace HTML 5 řeší tuto otázku koexistenčně, zřejmě se však situace vyvíjí ve prospěch HTML.

O kaskádových stylech

U CSS nebyl rozdíl mezi specifikacemi a implementacemi tak propastný jako u HTML, ale měl vážnější důsledky, protože IE a alternativní prohlížeče se ani částečně nesjednotili na nějakém svém etalonu (u HTML se jim to v zásadě zčásti povedlo), takže rozdíly v zobrazení webových stránek v IE a v alternativních prohlížečích bývaly značné. Rozpory se dařilo řešit jen za pomoci podmíněných komentářů, CSS hacků, workaroundů a podobných obezliček.

Ještě jedna pozoruhodnost: Zatímco HTML totálně rozložily prohlížeče, o chaos v CSS se důkladně staralo samotné W3C. CSS standardy, které připravilo, měly mnohé závažné nedostatky – bezpečnostní komplikace, rozpor se zavedenou praxí, šlendrián, nutnost revizí apod. Na druhé straně je nutné dodat, že specifikace se neobjevují jen tak nečekaně ze dne na den. Dlouhou dobu se na nich pracuje. Vývojáři prohlížečů měli tudíž čas se se standardy předem důkladně seznámit a buď se jim podřídit, nebo je připomínkovat – už vzhledem k faktu, že firmy, které prohlížeče vyvíjejí, jsou členy W3C, měly by připomínky dozajista potřebnou váhu.

Noční můrou webdesignérů byl v minulosti IE se svými implementačními a renderovacími chybami. V současnosti, kdy se už ani IE standardům nevzpírá, je nejožehavějším problémem CSS neskutečně pomalá práce na třetí verzi (resp. úrovni). Tento problém se projevuje nejistotou, jak budou nové vlastnosti nakonec přesně specifikované. Například kdyby vývojáři prohlížečů teď implementovali vlastnost box-sizing v nynější navrhované podobě a ve finální fázi by došlo ke změně, mohlo by být třeba rozhodnuto, že vlastnost bude dědičná (inherit), způsobilo by to nesmírné komplikace. Proto se s implementacemi nových CSS vlastností tolik váhá. V případě box-sizing je to dvojnásobná škoda, neboť čím dříve bude tato vlastnost implementovaná, tím dříve bude možné se rozloučit s matrjoškovou konstrukcí.

Prozatímním řešením může být vendor prefix – předpona pro proprietální CSS vlastnosti (příklad: -moz-box-sizing), mírnou nevýhodou je fakt, že různé prohlížeče mají různý vendor prefix, pro prohlížeče s jádrem Gecko platí -moz-, pro prohlížeče s jádrem Webkit platí -webkit, pro Operu platí -o a pro IE 8+ bude platit -ms. Později se nové CSS vlastnosti, až bude zřejmá jejich definitivní podoba, budou moci implementovat bez vendor prefixu, vlastnost opacity (v CSS 3 zajišťuje průhlednost a ve většině prohlížečů funguje už i bez vendor prefixu) budiž příkladem.

Má vlastně smysl začít implementovat nedokončené CSS 3, když ještě není implementováno všechno z CSS 2.1? Asi ano, když se tak děje. Některé prohlížeče mají už dokonce implementované téměř všechny selektory. A dlužno dodat, že webdesignéři prostě potřebují takové věci jako oblé rohy nebo sloupcování.

Ke světlým zítřkům

Závěrem bychom si mohli dovolit trochu optimismu. S tím, jak se zvyšuje kázeň prohlížečů a jak se do nich implementují nové funkce, rostou možnosti webdesignérů a programátorů webových aplikací. Zároveň pomalu ale jistě klesá podíl IE 6. Jediným strašákem do budoucna je to, že na přípravě webových standardů nadmíru často pracují lidé, kteří na to nemají čas (jsou příliš zaneprázdněni jinými pracovními povinnostmi) nebo jsou poněkud odtrženi od problematiky (například v pracovní skupině pro CSS bychom nenašli mnoho webdesignérů).

Odkazy a zdroje

Starší komentáře ke článku

Pokud máte zájem o starší komentáře k tomuto článku, naleznete je zde.

Štítky: Články

Mohlo by vás také zajímat

Nejnovější

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *