Dejme MSIE6 pusu na dobrou noc
Často s kolegy od web designérského řemesla vedeme debaty, které nemají jasné vyústění. Jeden z oblíbených námětů takových debat je kupříkladu tento: „Měli bychom podporovat správné zobrazení a funkčnost v Microsoft Internet Exploreru 6?“ Lze se donekonečna dohadovat o tom, jestli ano, nebo ne, proč ano nebo proč ne, a především společně lkát nad tím, jaký je MSIE6 bastard. Anebo s tím konečně něco udělat.
Tzv. „zásadní“ argument pro podporu MSIE6 je v podstatě jediný: totiž, že ho pořád ještě někdo používá. Takže dokud ho pořád ještě „někdo“, resp. „dost lidí“ používá, zbývá nám jen brečet a čekat, až ho tzv. „nikdo“ používat nebude. (Nevyjasněné zůstává jen to, co nebo kdo je „nikdo“, pochopitelně. 10% lidí? 5% lidí? Ještě méně?)
Taková argumentace ale stojí na vodě. Prakticky jakoukoliv fosilní technologii bude vždy „někdo“ používat. Silnější argument totiž platí pro to, MSIE6 nepodporovat a dělat to aktivně.
MSIE6 je prokletím webdesignéra. Seznam jeho chyb a problémů je absurdně dlouhý. Neumí pracovat s průhlednými PNG obrázky, které tvoří páteř netriviálního web designu. Jakýkoliv netriviální layout je potřeba pro MSIE 6 speciálně ošetřovat. A tak dále, a tak dále, kdokoliv, kdo se zabývá web designem, vás podobným vyprávěním unudí k smrti.
Čas strávený laděním webových stránek a aplikací pro MSIE6 lze přitom využít daleko efektivnějším způsobem: přidat další funkce, vylepšit rozhraní nebo jít do lesa. Podpora pro MSIE6 je plýtváním časem, penězi a energií. Je to velmi, velmi špatná investice.
Poznámka: Pochopitelně, najdou se příklady, kdy je podpora MSIE6 zcela na místě a kde se může i „vyplatit“, ať už se jedná o široce navštěvovaný web, aplikaci psanou na míru konkrétního prostředí, atd. Shora uvedený „zásadní“ argument ale neplatí obecně. (Ostatně jako žádný jiný argument.)
Problém je v tom, že změnit situaci můžeme jen my, web designéři. Nikdo jiný to za nás neudělá — a fňukání ji nezmění každopádně. Tzv. „uživatelům“ — v IT nářečí označuje lidi — je prakticky jedno, jaký prohlížeč používají, někdy ani nevědí, co je to „prohlížeč“. Tím pádem ani nevědí, že používají zastaralý a chybový prohlížeč a že by jej mohli ve většině případů bez problémů aktualizovat.
Poznámka: argumentace, že „někdo MSIE6 používá z donucení v zaměstnání“, že korporace nemohou „najednou“ aktualizovat stovky počítačů, že mají jako výchozí systém Windows 2000 je podobně zmatečná jako argument o zastoupení uvedený níže. To jsou problémy korporací a Microsoftu, nikoliv tisícovek web designérů, kteří plýtvají časem a energií na jakous takous podporu MSIE6.
Je totiž dobře známo, že k aktualizaci software je potřeba nějaká motivace, a tou není žluté okénko v pravém dolním rohu, které uvádí, že „jsou dostupné aktualizace“. Lidé potřebují nějaký reálný, hmatatelný důvod, proč aktualizovat.
A takovým důvodem může být třebas právě jasná a nepřehlédnutelná informace: „Dovolujeme si vás upozornit, že používáte zastaralý prohlížeč, proto nemusí tato aplikace vypadat a fungovat tak, jak má. Stáhněte si prosím novější verzi.“
V poslední době se vyrojila celá řada iniciativ, které chtějí tuto pro všechny — tvůrce i „uživatele“ — nevýhodnou situaci řešit:
- RIP IE6.com aneb stylizovaný náhrobek pro MSIE6
- Bring Down IE 6 aneb iniciativa časopisu .net
- Push Up The Web, který míří i na zastaralé verze ostatních prohlížečů
Samotná řešení sahají od relativně nevtíravých upozornění až po odepření přístupu MSIE 6 k obsahu webu. Jedno z poslední doby, od studia ThoughtBot přichází například s „řešením“ docela radikálním: display:none pro celý web ve stylesheetu pro MSIE6 a zobrazení „alternativního layoutu“.
Takové řešení je však pro většinu webů a aplikací dost nevhodné. Je-li web nakódován a naprogramován správně, bude se v MSIE6 zobrazovat „divně“, některé interaktivní vlastnosti budou nedostupné nebo chybové, atd., ale lidé se dostanou k obsahu. To je pro současný web design zcela zásadní a prakticky si neumím představit důvod, proč — byť „na vlastní riziko“ — komukoliv odepřít obsah webu nebo přístup do aplikace.
Proto se mi zdá nejrozumnějším řešením varianta toho, co dělá Push Up The Web: zobrazit lidem jasné a nepřehlédnutelné varování, aby jim došlo, že pokud něco divně vypadá nebo divně funguje, není to náhoda.
Při práci na aktuálním projektu jsem se proto pokusil problém s MSIE6 konečně nějak ošetřit. Výsledek vypadá takto:
Mým cílem bylo, aby řešení bylo:
- minimální,
- průhledné,
- rozšiřitelné a flexibilní.
Výsledek je ke stažení v tomto Gistu:
Neprovádíme tedy „detekci“ prohlížeče, vystačíme si s „podmíněnými komentáři”, díky nimž natáhneme příslušné CSS a spustíme příslušný JavaScript, který do stránky vloží HTML kód s upozorněním (a ten tak „nezaclání“ v normálním HTML).
(PushUpTheWeb je kupříkladu moc hezký, ale z mého pohledu zhola zbytečně emuluje funkcionalitu v každé dnešní webové aplikaci beztak již zajištěnou pomocí Prototype/Scriptaculous, jQuery, MooTools, etc. Navíc provádí — pro mnoho použití relativně zbytečnou — detekci prohlížeče.)
Samozřejmě, toto řešení můžeme dál rozvíjet, hrát si si Effect.Appear(), hrát si s ukládáním cookie a zobrazovat tlačítko „v této relaci již nezobrazovat“, a tak dále a tak dále. Ale to už je vedlejší.
Pokud máte nějaké oblíbené řešení nebo vylepšení uvedeného řešení, budu rád, když je uvedete v komentářích.
