pondělí 23. srpna 2004

Mozilla a Document.all, ve jménu rozšíření

Staré pravdy neplatí, prohlížeče postavené na jádru Gecko budou v blízké budoucnosti podporovat propritární rozšíření document.all. Neoficiální tiskovou zprávu připravil server Czilla v článku Document.all - omezená podpora v Mozille s podtitulem a proč je použití document.all na Internetu špatné.

Zveřejnění této informace vyvolalo ohlas, ale nepodařilo se mi najít žádný relevantní komentář k této události. Zkusím Vám nabídnout dva pohledy na tuto událost.

Uživatelské hledisko

Ač si projekt Mozilla klade za cíl technickou evangelizaci, tím nejdůležitějším jsou pro něj spokojení uživatelé. Těžko si lze v dnešní době představit situaci, kdy bude striktní dodržování pravidel (standardů) znamenat přímou úměru k úspěšnosti prohlížeče, první bohužel. Úspěšnost a neúspěšnost prohlížeče se dnes především hodnotí podle toho, kolik jej používá uživatelů, druhé bohužel.

Tato "úspěšnost" kolísá u prohlížečů mimo rodinu Internet Exploreru, též hanlivě nazývaných alternativní, podle schopnosti poradit si s proprietárním rozšířením DHTML, které ve jménu pokroku přinesl právě Internet Explorer. V zájmu spokojených uživatelů, tedy i mě samotného, přinese podpora document.all samá pozitiva. Množina stránek, které dříve nefungovaly korektně, se zúží a přibude nových uživatelů.

Z pohledu uživatele velká jednička.

Aplikační hledisko

Pokud jsem z pohledu uživatele chválil, tak z aplikačního hlediska budu hanit. Pokud se partička kolem Brendna Eicha rozhodla zpřístupnit document.all, měla to udělat pořádně. Document.all v Mozille se nechová stejně jako v Internet Exploreru!

Chápu, že tento "hack" byl proveden se zacílením na koncového uživatele, ale implementace document.all mohla jít více do hloubky. Takhle jsme dostali do rukou něco co nefunguje pořádně, a je lhostejno že by se to nemělo používat. Desítky, stovky nezkušených vývojářů budou vystaveni kruté realitě při zkoumání přístupného, ale ne zcela funkčního document.all.

Chcete dva příklady, které vykazují rozdílné chování? Zkoušeno v Mozille 1.8.3 alfa a IE 5.0 SP3

 	
	function foo(){
		alert(document.all["first"].length);
	}
         
	.
	.
	.
	<div id="first">xyz</div>
	<div id="first">xyz</div>
 
 
   	function foo(){
		alert(document.all.length);
	}
         
	.
	.
	.
	<div id="first">xyz</div>
	<div name="second">xyz</div>
 

Jsem přesvědčen, že bychom našli i mnohem záludnější případy, ale cílem nebylo postihnout všechny nekompatibility. Chtěl jsem ukázat, že to co vypadá jako velice užitečné, se může ve výsledku obrátit a stát se pěkně záludným. Samozřejmě můžeme namítat, že document.all je pouze obezlička, která se nebude používat.Tak či onak, stará pravda, že document.all nefunguje v Mozille neplatí. Nyní musíme hledat cesty jak rozpoznat nekompatibility a včas na ně upozornit.

Související články

Dagblog - související