Prohlížeče konvergují ke standardům

Dnes už konečně můžeme říci, že webové standardy nacházejí v populárních prohlížečích dostatečnou podporu. V...


Dnes už konečně můžeme říci, že webové standardy nacházejí v populárních
prohlížečích dostatečnou podporu. Vývojáři se sice ani dnes neobejdou i bez
toho, aby věnovali pozornost rozdílům mezi nimi, avšak mohou už psát webové
aplikace z velké části založené na všeobecně používaných standardech, s nimiž
jsou kompatibilní poslední verze všech ve větším měřítku rozšířených
internetových browserů.

Vývoj technologií webových aplikací postupuje především v tom smyslu, že
uživatelé se mohou s pomocí kteréhokoliv prohlížeče připojit ke kterékoliv
webové aplikaci dodnes však nelze říci, že by toto tvrzení beze zbytku platilo
ve všech případech. Dříve byl univerzální přístup k Webu prostřednictvím
libovolného prohlížeče možný pouze díky nadlidskému úsilí webových vývojářů. Ti
v podstatě zacházeli až do krajnosti, když vytvářeli aplikace schopné rozpoznat
druh a verzi webového browseru uživatele a na základě tohoto údaje "za chodu"
nastavit interface odpovídající jeho možnostem. Není těžké si představit, že
muselo jít o dosti suchopárnou práci, která mj. vedla ke zvýšenému riziku
výskytu chyb, nemluvě o nutnosti neustále provádět revize vždy, když se
objevila nová verze kteréhokoliv z prohlížečů. Takovou činnost lze bez nadsázky
označit za mrhání časem, které by měly eliminovat veřejné standardy.
Za standardy vztahující se k webovým prohlížečům jsou zodpovědné organizace
World Wide Web Consortium (W3C) a European Computer Manufacturers Association
(ECMA). Navzdory tomu, že v komisi se účastní i výrobci browserů, jejich adopce
už schválených klíčových standardů byla (a nadále je) často velmi pomalá. Roli
hrají pochopitelně zejména konkurenční zájmy: Výrobci prohlížečů sice chtějí
vystupovat v roli těch, kdo podporují standardy, na druhou stranu však mají
snahu udržet si svůj stávající okruh loajálních uživatelů. Např. Microsoft a
Netscape nabízely ve snaze přilákat pozornost vývojářů zajímavé funkce,
specifické pro své vlastní prohlížeče. V té době však uživatelé běžně trvali na
používání browserů, které jim nejvíce vyhovovaly, a vyžadovali, aby aplikace
byly přizpůsobeny jejich volbám. To přirozeně vedlo k dalšímu zvýšení nároků na
webové vývojáře a webové aplikace přetékaly kódem, který musel vyhladit rozdíly
mezi prohlížeči.
S každým kolem uvedení nových verzí prohlížečů prodejci tradičně slibovali
nejlepší podporu standardů. Pokud by však browsery byly v souladu se standardy,
mohli by programátoři psát kód vždy pouze pro jediné webové aplikační rozhraní,
které by ve všech browserech vypadalo i fungovalo stejně. Vzrušení, které je
běžným průvodním znakem při uvádění novinek, se ale v nejednom případě obrátí
ve zklamání ve chvíli, kdy se ukáže, že problémy s kompatibilitou mezi
jednotlivými prohlížeči jsou tytéž jako obvykle.
Tentokrát je ale všechno jinak! Dnes se konečně mohou poslední verze oblíbených
browserů od společností jako Microsoft, Netscape Communications a Opera
Software pochlubit v alespoň v některých směrech excelentní podporou standardů.
To platí i pro relativně nového hráče, jímž je Konqueror, komponenta prohlížeče
linuxového desktopového prostředí KDE (K Desktop Environment). Nedá se říci, že
bychom se dostali do zaslíbené země plně standardizovaných prohlížečů, avšak
vývojáři již mohou zefektivnit tvorbu webových aplikací řídíce se souborem
stěžejních standardů.

Porozumění standardům
Standardy prohlížečů zahrnují dva aspekty webového front--endu: vzhled a
funkčnost. Standardy vzhledu zahrnují HTML 4.01 a CSS (Cascading Style Sheets)
Level 1 a 2 (za které odpovídá konsorcium W3C). HTML definuje základní
strukturu a formátování webového dokumentu, zatímco CSS přidává detailní
kontrolu nad atributy vztahujícími se ke vzhledu, mezi něž patří např. fonty,
barvy a layout. Standardy pro funkčnost ECMA-262 (také známý jako ECMAScript) a
CSS DOM (Document Object Model) konsorcia W3C ovládají skripty na klientské
straně a jejich schopnost měnit či vytvářet obsah webové stránky za běhu.
HTML 4.01 ratifikovaný konsorciem W3C v roce 1999 pokrývá pokud jde o webové
aplikace překvapivě malou oblast. Přesto je dobré vědět, že navzdory dalším
odlišnostem mezi prohlížeči je HTML 4.0, když ne přímo 4.01, všeobecně
podporováno. Ať už má uživatel nainstalovanou Operu, Netscape Navigator,
Internet Explorer nebo Konqueror, neměl by se při prohlížení HTML stránek
setkat s žádnými problémy alespoň pokud neobsahují nadstavby specifické pro
určitý druh browseru, jako např. ovladače Microsoftu ActiveX či plug-iny
Netscapu. Vývojáři, kteří chtějí zjistit, zda daná webová stránka odpovídá
příslušným standardům, ji mohou uploadovat a prověřit pomocí služby HTML
Validator na www.w3.org. Validator dokáže identifikovat veškeré nestandardní
prvky HTML, které nemusejí být prohlížečem správně zpracovány.

Stylové renderování
Standard CSS1 (CSS Level 1) byl organizací W3C definován v roce 1996, avšak
jeho implementace ze strany výrobců browserů se poněkud protáhla. Např.
prohlížeče Netscape předcházející verzi 6 trpěly nekompletní a nikoliv
bezchybnou podporou CSS1 a ani podpora v browseru Microsoftu nebyla do 6. verze
Exploreru dokonalá nyní už se však oba prodejci mohou pochlubit kompletní
podporou CSS1. K nim se posléze připojila i Opera 5 a Konqueror 2.2, které už
také vyhovují tomuto standardu. 5 let poté, co byl standard publikován, tedy
lze hovořit o jeho všeobecné podpoře.
Co tato skutečnost znamená pro webové vývojáře? Každý HTML element na stránce
včetně těch viditelných, jako titulky a odkazy, je zobrazován s vlastnostmi
CSS1 stylu, který je k nim přidružen. CSS1 a DOM (zmiňovaný níže) umožňují
programátorům měnit tyto vlastnosti v případě potřeby rychle i během provozu
poté, co je stránka zobrazena. Konzistentní implementace CSS1 ve všech
prohlížečích je pro vývojáře velkou výhrou.
V roce 1998 schválilo W3 konsorcium standard CSS2 (CSS Level 2), který ještě
zesiluje možnosti kaskádových stylů tím, že přidává mimo jiné takové vlastnosti
jako schopnost umístění textových a grafických elementů kdekoliv na stránce.
Možnosti polohování jsou už naštěstí součástí posledních verzí většiny
populárních prohlížečů.

Podpora skriptování
Jazyk JavaScript společnosti Netscape s přispěním JScriptu (Microsoft) se stal
základem standardu ECMA--262 v prosinci 1999 ECMA schválila třetí verzi
ECMA--262, na kterou je běžně odkazováno jako na ECMAScript. Ten dnes podporují
všechny běžné prohlížeče, přičemž ty od Netscapu a Microsoftu plně vyhovují
poslední, třetí verzi. Nicméně vývojáři dodnes používají množství kódu na
klientské straně, který využívá pro ECMAScript nestandardní vlastnosti
JavaScriptu a JScriptu. V ideálním případě by programátoři měli překontrolovat
své skripty a přepsat ty části kódu, které jsou specifické jen pro určitý typ
prohlížeče, ačkoliv to není zcela nevyhnutné. JavaScript i JScript lze v mnoha
případech poměrně jednoduše transformovat na skripty vyhovující ECMA standardu
(ECMAScriptu), jehož funkce je nezávislá na typu browseru. Návštěvníkům
webových stránek tak často podstatně ulehčíte žitvot.
Podporu skriptování je relativně jednoduché přidat do prohlížeče, spojení mezi
kódem skriptu a webovým dokumentem jsou už náročnějším problémem a právě zde se
nachází nejvíce rozdílů mezi jednotlivými prohlížeči. Všechny populární
browsery podporují některé vlastnosti DOM1 (DOM Level 1) a DOM2 (DOM Level 2) a
poskytují jednoduchý přístup skriptu k elementům HTML a vlastnostem CSS.
Internet Explorer, Navigator a Konqueror ve svých posledních verzích plně
implementují DOM1, zatímco Opera v tomto směru trpí podstatnými omezeními to se
týká především možností přidání nebo vyjmutí HTML elementů v zobrazované
stránce.

V zóně jistoty
V celkovém pohledu má podpora standardů v prohlížečích stále daleko k
dokonalosti, avšak dnes už mohou weboví vývojáři počítat s podporou alespoň
těch základních vlastností ve všech populárních browserech.
Dá se říci, že prvním krokem při realizaci nového webového vývojového projektu
(nebo kteréhokoliv projektu, jehož cílem je migrace existujícího kódu webové
aplikace směrem ke standardům) je přesvědčit se, že uživatelé provedli upgrade
na poslední dostupné verze. Historie nás už naučila, že např. po uživatelích
Navigatoru nelze vyžadovat, aby přešli na Internet Explorer, ale obvykle je
možné bez problémů je přimět k tomu, aby si nainstalovali poslední verzi svého
vyvoleného prohlížeče.
Dokud Konqueror nedospěje a Mozilla se nedočká prvního oficiálního vydání,
většina uživatelů se bude s největší pravděpodobností logicky držet Internet
Exploreru, Netscape Navigatoru nebo Opery. Jestliže je vaším cílem eliminovat
detekci prohlížeče, je třeba se při psaní kódu držet možností, které nabízí
Opera 5 (jakožto browser s nejnižší úrovní podpory některých standardů ze všech
tří variant): ECMAScript 2, CSS1, částečná podpora CSS2 a nevyrovnaná podpora
DOM. Jestliže však Operu nebudeme brát v úvahu a vyjmeme ji z výše uvedeného
výčtu, můžete počítat s výhodami ECMAScriptu 3, s plnou podporou DOM1 i CSS1 a
částečnou podporou DOM2 a CSS2. Je třeba přitom věnovat pozornost tomu, ve
kterých oblastech se zmíněná částečná podpora DOM2 a CSS2 v Internet Exploreru
a Navigatoru překrývá, aby byla funkčnost vašich aplikací pro oba typy
prohlížečů beze zbytku zaručena.
V ideálním případě by podpora uvedených standardů měla být kritériem pro
posuzování a přijetí prohlížeče mezi uživateli, avšak realita je taková, že se
vždy najde dostatek těch, kteří zůstanou u starších verzí či u méně populárních
browserů. Jediným řešením tak nadále zůstává, že při detekci prohlížeče, který
nepodporuje funkce vyžadované vaší aplikací, bude uživatel přesměrován na
zjednodušenou verzi stránky (např. využívající pouze HTML).
1 1941 / wep









Komentáře
K tomuto článku není připojena žádná diskuze, nebo byla zakázána.