Co se starými browsery? (Aktualizováno)
V poslední době už mě několikrát napadla otázka, jak daleko podporovat staré a přežité prohlížeče.
Většinu různých záplat a náprav interpretačních chyb jednoho nejmenovaného majoritního prohlížeče už nyní řeším většinou separátním CSS souborem, připojeném podmíněnými komentáři. Některé konstrukce jsou totiž dost divoké a osobně nemám dost silnou povahu je servírovat i ostatním prohlížečům v regulérním stylopisu.
Idea oddělení dokumentu a vzhledu (a chování, samozřejmě) je pěkná, líbí se mi především to, že koncová zařízení, která „na to nemají“, zobrazí neostylovaný dokument. Tedy – měla by. A to je právě ten problém.
Osobně už jsem nějak nad věcí (ačkoliv na IE si nadávání ještě dost užívám), většinu starších prohlížečů, které mají polámanou podporu CSS, za to nijak moc neviním. Vycházely v době, kdy CSS bylo v raném stádiu vývoje a můžeme jim víceméně děkovat za to, že se CSS vůbec začalo šířeji implementovat a že ho tudíž můžeme dnes v celkem rozšířené podobě používat. Ono je asi obtížné vytvářet implementaci něčeho, co není ještě definitivně normalizováno. A nebo držet krok se změnami a novými standardy či opravovat chybnou interpretaci, pokud se jedná o produkt, který (bůh ví proč) prostě vyjde jednou za pár let v rámci operačního systému a pak už se záplatují jen kritické problémy bezpečnosti. Bohužel velké většině lidí to stačí tak, jak to je, protože „do toho nevidí“ a nepotřebují nic moc víc. To jen my weboví tvořiči si rveme vlasy…
Problém je ovšem ten, že tyto browsery se snaží v rámci svých zastaralých dovedností vykreslit i weby s rozsáhlým použitím kaskádových stylů, ačkoliv nemají tušení „co s tím“. Čistě teoreticky by neměla být potřeba se o to starat, jenže praxe bohužel ukazuje, že tahle starší podpora stylů může mnohdy zapříčinit nepoužitelný web. Stejně jako v minulém povídání o mobilních stylech – i tady se může vyskytnout například náhodné rozházení plovoucích prvků, přetékání bloků a podobné záležitosti, které jsou schopny zlikvidovat i vlastní obsah stránky.
Proto se může hodit různá šíře podpory různých částí CSS. Cílem je některé prohlížeče se špatnou podporou kaskádových stylů od CSS souborů zcela odstavit. Pěkný přehled různé podpory variant linkování stylopisů pomocí pravidla @import ukazuje Dihtered – CSS-only Filters Summary. Nemám rád používání @import přímo v elementu <style> v hlavičce dokumentu (nepřijde mi to moc systematické a v IE to navíc způsobuje FOUC), ale to nebrání tomu, aby importní pravidla byla v externím stylopisu, který funguje pouze jako „rozcestník“ pro připojení dalších stylů a k dokumentu je připojen tradičním elementem <link>.
Zajímavý je například
@import url('styl.css');
který od stylopisu odstaví IE5/Mac. Netscape Navigator 4 to sice zhroutí, ale to nám nemusí vadit, pokud bude pro připojení tohoto pomocného stylopisu použitý element <link> s uvedenými médii „all“ nebo „screen,projection“, které NN4 také ignoruje.
Další zajímavostí je také
@import'styles.css';
(bez mezer!), který vyfiltruje krom NN4 a IE5/Mac také IE5.0 a iCab 2.0.
Jak je vidět, není technický problém provést nějaké drobné upravení škály prohlížečů, které by měly být bez aplikovaných kaskádových stylů. Existují například i filtry pro kompletní odstavení IE6 atp., ale ty už nejsou tolik praktické, jako tyto výše uvedené.
Otázka je totiž úplně jiná, netýká se technického řešení…
Jaké prohlížeče by ještě měly být podporovány (a tudíž testovány pro daný web) a u kterých už je dostačující i plynule degradující neostylovaná verze?
Jasné jsou čtyřkové verze prohlížečů. Ale například u některých layoutů může být problém s IE5/Mac, většinou se dají chyby vyladit, ale vyžadují čas, zkušenosti a použití různých filtrů a hacků. Takový IE5/Win může mít také problémy, většinou ale spíš drobného vizuálního charakteru, než aby byl rendering nepoužitelný. Na druhou stranu, možná že většímu rozšíření moderních prohlížečů prospěje spíše ignorování těchto starších vykopávek, než jejich úmyslné odstavování…
Související:
- Individualizace stylopisů k eliminaci chyb prohlížečů
- Strategie podpory prohlížečů při tvorbě webových projektů
Update:
Na serveru imfo.ru se objevila přehledná tabulka importních filtrů.
Pondělí, 27. 6. 2005 0.00 | Trvalý odkaz | Trackback






[1] Vilém Málek
Podle mého názoru si aktivní podporu zaslouží prohlížeče MSIE6, Opera7+ a Firefox/Mozilla (pouze v nejnovější verzi). Aktivní podpora starších verzí je IMHO neadekvátně nákladná.
Samozřejmě, že „textový“ web by měl zůstat přístupný všem prohlížečům, které zvládají alespoň myšlenku více WWW serverů na jedné IP (což nás efektivně zbavuje problémů s MSIE3/Netscape3 a staršími ;-)
23. 5. 2005 14.30
[2] Jan Brašna
Vilém Málek) Tak nějak se to znažím provádět i já, s tím že mám v seznamu ještě Safari a Operu jen 7.50+… Zběžná kontrola ve starších IE je také většinou v pořádku. Ono bude ale záležet i na konkrétním projektu.
24. 5. 2005 14.16
[3] Honza
Dle mého názoru stačí, aspoň já to tak teda dělám, jen Internet Explorer 6, Firefox a Opera. Občas teda zkouším i Internet Explorer 5, ale to je tak všechno.
27. 5. 2005 15.12
[4] Nai Dzet Quiv
IE6, Opera7+, Mozilla/Firefox, Netscape (!!, jsou někteří staříci, co ho mají). Ale samozřejmě dodržuji standardy, sémantiku, přístupnost atd. NIKDY jsem „neodřezával“ styly od starých prohlížečů… (pozn.: web nedělám zas tak dlouho…)
27. 5. 2005 22.27
[5] Jan Brašna
Ještě jsem přidal dva zajímavé zdroje, které řeší stejnou záležitost.
27. 5. 2005 23.56
[6] Fred
Taky bych odstřihnul starší IE, ale přeci jen když se podívám na toplist global, tak IE5 je pořád častější než třeba Opera.
27. 6. 2005 7.52
[7] Honza Hučín
Dovolím si podotknout, že jsem o tom psal už před půl rokem. http://suplik.petnik.cz/index.php?…
27. 6. 2005 8.04
[8] Radek Hulán
Otázka jiná je jak výkonné podporovat počítače, zkusil jsem si tento web skrolovat na relativně obyčejném notebooku, a je to porod, asi by tu mělo být napsáno „jen pro CPU na 3000 MHz a více nebo ekvivalentním a s grafickou kartou s 3DMark05 minimálně 5.000 bodů“ ;)
27. 6. 2005 11.08
[9] llook
[8] Myslím, že s grafickou kartou to moc nesouvisí. Všechny mě známé webové prohlížeče používají čistě softwarový rendering. I když možná na Macu se nějak to OpenGL zapojuje, do toho nějak moc nevidím.
Myslím, že to je tím fixovaným pozadím. Vím, že to kdysi bylo vytýkáno i Občasnému O'blogu a příčina byla stejná.
Náročnost vykreslování by se v potaz brát měla, ale to je jiné téma. Nejčastěji se to týká flashů.
27. 6. 2005 12.49
[10] Radek Hulán
[9] jasně, problém je background:fixed, bohužel jej Firefox a vlastně ani Opera nerenderuje právě rychle..
27. 6. 2005 12.54
[11] Jan Brašna
Honza Hučín) Ono je to celkově hodně staré a známé, mě šlo spíš o ten předposlední odstavec, nakonec v tom ale nějak zaniknul :/
Radek Hulán) Mordae reportuje minimum zhruba jako DOOM3 ;)
27. 6. 2005 16.02
[12] Pachollini
Myslím, že ještě tak rok bude třeba dělat weby tak, aby vypadaly dobře i v IE5, alepsoň ty komerční.
27. 6. 2005 21.33
[13] Vašek
Staré prohlížeče bych odstavil, stejně jako například 16bitové aplikace.
A asi je lepší odstavení, než zobrazení stránky, která webovou stránku ani nepřipomíná.
ovšem pokud neděláte stráky typu w3c.org
28. 8. 2005 14.11