Vášně kolem webových standardů

21. dubna 2009

Webové standardy jsou výtečnou věcí jednak pro vývojáře webových aplikací, kteří nemusí vymýšlet vícero verzí svých výtvorů, a jednak pro uživatele, kteří si mohou vybrat a používat prohlížeč dle svého vkusu a ne již podle toho, který z nich je nejvíce kompatibilní s jejich oblíbenými weby. Problém však nastává v případě, když je určitý standard zjevně špatný. Vyvstává pak otázka: Je lépe jej principielně dodržet, nebo pragmaticky porušit?

O prohlížečích a W3C

V prvopočátcích své existence mělo W3C velmi slabou autoritu. Takzvaná válka prohlížečů tehdy zuřila naplno a na oficiální standardy se nebraly ohledy. To by ani tolik nevadilo, neboť webmaster je odjakživa tvor přizpůsobivý a je schopen řídit se i neoficiálními standardy, navíc se ukazovalo, že vývojáři prohlížečů dovedou mnohé vymyslet lépe než nepraktičtí standardizátoři Konsorcia. Potíž spočívala v tom, že oba protagonisté války prohlížečů, Netscape a Internet Explorer, se nevydali stejnou cestou. Preferovali vlastní tagy, vlastní objektový model dokumentu atp. Propuknuvši schizma přesvědčivě prokázalo, jak moc je zapotřebí jednotných a respektovaných standardů. Právě zde je nutné hledat počátek růstu obliby W3C, který později u některých jedinců přerostl až v neskrývanou adoraci. Autoři webových stránek přirozeně nebyli potěšeni vyhlídkou, že budou muset upravovat webové stránky zvlášť pro každý prohlížeč.

Po drtivém vítězství IE se zdálo, že schizma skončilo. Brzy se však na kolbišti etablovali noví bojovníci a nehodlali se pokorně podrobit standardům a` la IE. Alternativní prohlížeče projevily příchylnost ke standardům W3C (samozřejmě ne důslednou, bylo nutné zachovat zpětnou kompatibilitu se starými stránkami). Tím se situace znovu zkomplikovala. Autoři webových stránek si zprvu ulehčovali osud tím způsobem, že lišácky optimalizovali své výtvory jen pro majoritní prohlížeč. Uživatelé tak byli tlačeni k tomu, aby používali Internet Explorer. Navzdory tomu obliba alternativních prohlížečů, zejména Firefoxu, rychle rostla a už je nebylo možné jen tak ignorovat, přesto se o to někteří aktivně snažili, například na straně serveru kontrolovali, jestli uživatel používá správný prohlížeč. Opera těmto snahám čelila tím, že se maskovala za Internet Explorer (falšovala user-agent string). Firefox se zase tvářil, že podporuje document.all, aby obelstil klientské skripty, jež začínaly řádkou
if (document.all) {

Sílící kritika IE za despekt ke standardům nezůstala bez odezvy. IE 6, vydaný v roce 2001, byl i se všemi svými chybami tehdy bezkonkurenčně nejkvalitnějším prohlížečem. Rovněž jeho příklon ke standardům jevil se uspokojivě. Nejzásadnější věcí bylo přijetí W3C box modelu. Konečně také bylo možné horizontálně centrovat stránky pomocí margin: 0 auto. Webdesignéři jsou však veskrze nevděčná verbež, postupně žádali stále víc a víc: opravu bugů, podporu alfa kanálu v PNG, další CSS selektory atd. Jenže Microsoft tou dobou už sladce spal na vavřínech, teprve před několika lety byl probuzen nápadně rychle slábnoucí dominancí IE a energicky se zase pustil do práce. Nové verze se opět výrazně přibližují standardům. Nejnovější IE 8 dokonce splňuje Acid 2 test.

O kyselých testech

Patrně nejvýznamnějším projevem evangelizační kampaně jsou Acid testy. Proč nejvýznamnějším? Články o nových verzích prohlížečů jsou většinou povrchní, popisují hlavně GUI a málokdy zacházejí až do odborné roviny, protože, obecně vzato, jak autoři, tak čtenáři nemají potřebné odborné znalosti. K pochopení Acid testu však odborné erudice není třeba, do článku stačí vložit screenshot a připojit k němu krátký zjednodušený výklad. Tímto způsobem se dostávají standardy do povědomí širší veřejnosti, „zasvěceně“ se diskutuje o tom, nakolik je který prohlížeč dodržuje, a tím se vytváří silný stimul pro vývojáře prohlížečů, neboť dnes je moderní představovat produkt s tím, že odpovídá příslušným standardům. Není se tedy čemu divit, že byl brzy pokořen i Acid 3 test. Jsou však kyselé testy spolehlivým indikátorem toho, do jaké míry prohlížeč splňuje webové standardy? Asi ne. Tyto testy jsou sestavovány na základě znalosti nedostatků jednotlivých prohlížečů, testování tedy není komplexní, prohlížeče se testují jen na známé chyby. Vůči nejrozšířenějším prohlížečům to je dost nespravedlivé, poněvadž obecně platí, že počet objevených chyb v programu má tendenci být přímo úměrný pozornosti, která se na něj upírá. To může být mimochodem jeden z důvodů, proč v závodech o překonání Acid testů zůstávají pozadu prohlížeče s jádry Trident a Gecko.

Každopádně Acid testy jsou pravděpodobně nejúčinnější zbraní v boji za dodržování standardů. Webdesignéři a programátoři webových aplikací totiž sice občas fňukají, že ten či onen prohlížeč se nechová, jak má, ale vždy své výtvory prohlížečům přizpůsobí, zatímco Acid test zůstává nevlídný, dokud se nepřizpůsobí prohlížeče. Neznamená to ovšem, že prohlížeč, který projde každým Acid testem, perfektně dodržuje standardy, nicméně důvod k radosti to snad je.

Pokračování příště

Zestručněné a zobecněné vylíčení historie mělo za úkol poukázat na konsekvence, které nedodržování standardů v minulosti mělo, a tím i nepřímo zodpovědět otázku položenou v úvodu. Standardy zjevně nebyly, nejsou (a pravděpodobně nikdy nebudou) ideální a z tohoto hlediska lze chápat snahu zavést svá a lepší pravidla, zároveň je ale potřeba důrazně připomenout, že takový přístup se stal v minulosti zdrojem četných problémů a podnětem k vášnivým diskusím.

Příště se podíváme na vývoj konkrétních specifkací, který se zhruba před deseti lety poněkud zadrhnul, a na komplikace, které to přináší.

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 *