Často slýchávám názor, že Internet Explorer nepodporuje HTML5 technologie tolik, jako ostatní prohlížeče. Když přejdu, že technologie je výrobní postup a domyslím si, že je řeč o standardech, stejně se nemohu zbavit dojmu, že pravdou je opak. Míra podpory určitě nejde vyjádřit jedním číslem. A pokud ano, je zapotřebí se zamyslet nad tím, o čem takové číslo vypovídá. HTML5 je obrovská specifikace s mnoha všestranně užitečnými a mnoha jednostranně výhodnými věcmi.
Co říkají testy
Když navštívím html5test.com tak zjistím, že se mi někdo snaží nakukat, že IE na mém počítači nepodporuje JPEG XR. To je velice překvapivé zjištění, vzhledem k tomu, že právě s tímto formátem pracuji nejčastěji a této drobné vady jsem si nikdy nevšiml, nehledě na to, že jsem nikdy nepostřehl, že by byl JPEG XR součástí specifikace HTML5. I když kdo se dnes mimo vývojáře webových prohlížečů vyzná v tom, co všechno proběhlo za změny za těch 6 let, co je HTML5 pod křídly W3C.
Zaujalo mě také, že IE 11 údajně nepodporuje IndexedDB a Web Cryptography API. IndexDB měl IE od září 2012 a Web Cryptography API od října 2013. Pokud má tedy nějaké testování problémy s měřením, porovnání na jejich základě je pouze orientační, lze-li o nějaké vypovídající hodnotě vůbec mluvit. Tak třeba podpora gamepadu je podle testu stejně důležitá, jako podpora Pointer Events. Zatímco gamepad je užitečný jen pro Xbox One, dotykový displej má dnes každé moderní zařízení.
Podobná, i když ještě daleko horší, byla dřívější situace s Acid testem. Ten byl zaměřen zejména na chyby prohlížečů. Jeho skóre vyjadřoval počet úspěšných testů. Není na tom nic špatného, dokud na tomto měření nezačnete prohlížeče srovnávat. Zkoumané chyby nejsou rozprostřeny mezi prohlížeče rovnoměrně, nehledě na to, že některé chyby v prohlížečích jsou záměrné. Internet Explorer například nepodporoval SVG fonty a zaměřil se místo toho na WOFF. Podobně to bylo se SMIL animací v SVG, která ustoupila CSS3 animaci. Časem se stejně ukázalo, že to nikdo nepoužíval. Pracovní skupina SVG po čase tento fakt uznala a podporu těchto dvou věcí změnila na dobrovolnou. Ian Hickson poté test upravil a světe div se, všemi testy prošel i Internet Explorer 9.
Co znamená specifikace
HTML5 zatím nejde podporovat úplně. Je to specifikace, která se mění a která podléhá obchodním zájmům společností, které se na její tvorbě podílí. Výrobce implementuje nějakou neúplnou specifikaci, čímž získá zkušenosti z implementace a tím i silnější postoj k prosazení svých zájmů. Specifikace se v čase mění. Google s WebSocket dokázal dělat změny tak rychle, že se místo specifikace jednalo spíše o dokumentaci nočního sestavení. Testy by měly tyto změny reflektovat, ale tak se často neděje. Mnohdy testují zastaralou nebo příliš futuristickou verzi specifikace.
Dnes se HTML5 ohání kde kdo, ale použití CSS animace místo jQuery se vidí stále jen na WebExpo. Fakt, že 153 z 500 společností s největším obratem v zemi za Atlantikem podporuje HTML5, je pouze blábol. Podporovat HTML5 ze strany webového vývojáře je něco, čemu se nevyhne, ani kdyby chtěl. Prohlížeče totiž podle specifikace HTML5 upravují i své quirks vykreslovací režimy. O všech nejpoužívanějších prohlížečích dnes platí, že HTML5 prohlížeči, i když podle nedokončené specifikace, prostě jsou, protože v sobě nemají (až na Internet Explorer, kde je situace složitější) vykreslovací režim ustrnulý v době kamenné.
Co přináší vývojové cykly
Zato graf, který znázorňuje průběh výsledků měření za poslední roky, mě vysloveně zaujal. Ukazuje něco, co jsem chtěl pro jednu ze svých přednášek znázornit také. Vzhledem k tomu, že některé prohlížeče chytily určité linuxové tendence a vydávají nové verze každou chvíli, vypadají po většinu času opticky lépe, než jejich konkurence. Důležitější je však přehled o tom, na jakých zařízeních je kdy která verze dostupná. Nezřídka kdy se lze setkat s podivným obchodním rozhodnutím udělat místo důrazu na kompatibilitu se staršími prohlížeči zvláštní verzi webu pro iPad, který má menší tržní podíl než Internet Explorer 8.
Možná vás napadne, že Microsoft chce také držet krok s rychlým vydáváním, když zkracuje své vývojové cykly. Vůbec to s tím ale nesouvisí. Hlavní zájem je ekonomický. Mít pro každý softwarový výrobek jiný vývojový cyklus přináší velké náklady na udržení kompatibility mezi nimi. Když Microsoft vydá novou verzi Windows a Internet Exploreru současně, ušetří náklady na nezbytné úpravy starších Windows pro běh nového Internet Exploreru. A nejde jen o operační systém a prohlížeč, ale i o Visual Studio a další softwarové kolosy. Vývojář, který dříve pracoval na běhu nového prohlížeče na starém systému, může nyní pracovat na podpoře nové specifikace v nové verzi prohlížeče.
Co usnadní zpětná kompatibilita
Podpora nových důležitých funkcí pro všechny podporované verze tu byla přítomna vždy skrze Windows Update. Každý měsíc sleduji, co aktualizace pro Internet Explorer obsahují. Samozřejmě, že se jedná především o posílení bezpečnosti, což ve většině příkladů znamená zvýšení odolnosti překladačů proti chybovým vstupům. Často ale obsahují také opravy chybného vykreslování, tedy zvýšení kvality implementace nějakého standardu. Pravda, nikdy nepřibude například podpora nové úrovně CSS, protože není co přidávat.
Vývojáři Internet Exploreru se snaží specifikace podporovat buď v nejvyšší možné míře, nebo vůbec. Žádné mezistupně vydávané každých několik týdnů. Od částečné nebo pokusné podpory tu máme Preview verze, které vyjdou jen když je k tomu dobrý důvod. Novináři nemají o čem psát, reklama na co vábit, vývojáři co zkoumat. Má to však nespornou výhodu v tom, že pokud IE něco podporuje, tak je spoleh na to, že to funguje jak má. Tedy přesněji jak mělo v době, kdy implementace vznikala. Může se ještě někdy změnit. Příliš časná implementace standardu je riskování ztráty zpětné kompatibility v budoucnu. Její využití zavazuje vývojáře svůj web neustále hlídat, jestli ty nezbytné funkce, které dříve podporoval jen jeho oblíbený prohlížeč, stále fungují tak, jak fungovaly v minulé verzi.
Co je vlastně potřeba
Podívejte se na standardy, které skutečně potřebujete a dejte mi vědět, které IE nemá. Microsoft má velkou zkušenost s tím, z jakých komponent se naprostá většina uživatelského rozhraní aplikací skládá. Jsou ve Visual Studiu v panelu Toolbox. Nějaký ten HTML5 ekvivalent postrádá už jen Calendar, RichTextBox a Slider. Připomínám, že Grid už je díky Microsoftu součástí CSS3 a podporuje ho IE od verze 10. DirectX dostupné na webu máme, jen je přemapované na WebGL. Ostatně HTML5 aplikace je možné od Windows 7 slušně a od Windows 8 plně integrovat do operačního systému. Víte, že dříve pojem HTML5 zahrnoval užší skupinu specifikací jen okolo samotného HTML a ten s dalšími oblastmi jako CSS3, Connectivity, Offline & Storage nebo 3D, Graphics & Effects měl zastřešující název Web Applications? Až později se pojem HTML5 těšil takové oblibě, že nahradil Web Applications. A já se ptám: umožní mi Chrome OS, Firefox OS či OS X integrovat webovou aplikaci do operačního systému v takové míře, v jaké mi to teď umožňuje OS Windows?