Masarykova univerzita Fakulta informatiky
Porovnání renderování internetových prohlížečů pro různé operační systémy
Bakalářská práce Josef Mišák
Brno, jaro 2012
Prohlášení Prohlašuji, že tato práce je mým původním autorským dílem, které jsem vypracoval samostatně. Všechny zdroje, prameny a literaturu, které jsem při vypracování používal nebo z nich čerpal, v práci řádně cituji s uvedením úplného odkazu na příslušný zdroj.
Vedoucí práce: Mgr. Marek Grác
Poděkování Chtěl bych tímto poděkovat technickému vedoucímu práce Mgr. Ondřeji Skutkovi za cenné rady, ochotu a čas, který mi věnoval při vzniku této práce. Děkuji Mgr. Marku Grácovi za řešení formálních záležitostí s prací spjatých. Děkuji také své rodině a mé přítelkyni za to, že mi i přes mnohá úskalí v mém studiu nepřestali věřit.
Shrnutí Tato práce se zabývá problematikou vykreslování webových stránek na různých prohlížečích a závislostí tohoto procesu na operačním systému. Práce je zadána společností Red Hat a má za cíl pomoci minimalizovat testující matici operačních systémů a browserů a tím snížit režii při testování nových produktů.
Klíčová slova renderování, browser, operační systém, webové stránky, Google Chrome, Mozilla Firefox, Opera, Microsoft Windows, Mac OS X, Linux
Obsah 1 Úvod ........................................................................................................................................ 1 2 Výběr browserů a referenčních operačních systémů ............................................................... 2 2.1 Browsery ........................................................................................................................... 2 2.1.1 Metody získávání statistik .......................................................................................... 2 2.1.2 Nepřesnosti ve statistikách a jejich příčiny ................................................................ 3 2.1.3 Výsledky statistik ....................................................................................................... 4 2.1.4 Vybrané browsery ...................................................................................................... 5 2.2 Operační systémy .............................................................................................................. 6 2.2.1 Microsoft Windows .................................................................................................... 6 2.2.2 Mac OS X ................................................................................................................... 6 2.2.3 Linux .......................................................................................................................... 7 3. Metodologie ............................................................................................................................ 8 3.1 Zkoumání zdrojového kódu .............................................................................................. 8 3.2 Testovací internetové stránky ........................................................................................... 8 3.2.2 Testy a benchmarky prohlížečů.................................................................................. 9 3.3 Vyhledávání informací na Internetu ................................................................................. 9 4. Praktická část ........................................................................................................................ 11 4.1 Testovací internetové stránky ......................................................................................... 11 4.1.1 Acid3 ........................................................................................................................ 11 4.1.2 The HTML5 test ....................................................................................................... 12 4.1.3 Peacekeeper .............................................................................................................. 12 4.2 Vyhledávání informací na Internetu ............................................................................... 14 4.2.1 Internetové stránky záměrně odlišné pro různé kombinace OS/browser ................. 14 4.2.2 Renderování fontů .................................................................................................... 15 4.2.3 Controls .................................................................................................................... 19 5. Závěr ..................................................................................................................................... 23 5.1 Doporučení ...................................................................................................................... 23 5.2 Další možnosti ................................................................................................................ 23 Literatura .................................................................................................................................. 25
1 Úvod Každý, kdo se někdy zabýval vývojem internetových stránek či webových aplikací, se musel vypořádávat s problematikou vzájemné nekompatibility internetových prohlížečů a s problémy ve vykreslování jeho stránek či aplikací v různých prohlížečích. V počátcích internetové éry nebyl tento problém zdaleka tak aktuální jako dnes, kdy existují desítky internetových prohlížečů používajících odlišná vykreslovací jádra. Se vzrůstající popularitou Linuxu a příchodem alternativních prohlížečů na operační systém Mac OS X se rozrůstá množství kombinací operačních systémů a prohlížečů, na nichž potřebujeme internetové stránky testovat. V případě obyčejných internetových stránek není tento problém tak zásadní, jelikož v okamžiku otestování a uvedení stránek do provozu nám postačí občasná kontrola v případě vydání nové verze některého z prohlížečů. U webových systémů (různé podnikové systémy a také například redakční systémy) a nástrojů je však situace odlišná. Je to dáno jejich životním cyklem. Za ideálních podmínek by bylo vhodné každou novou verzi před jejím vydáním otestovat, zda se na námi vybraných browserech a operačních systémech zobrazuje správně. To by mohlo být problémem u dynamicky se rozvíjejících systémů a nástrojů, jejichž novější verze mohou vycházet i několikrát měsíčně a neustálé testování je náročné na zdroje. Je tedy vhodné minimalizovat počet prohlížečů a operačních systémů, na kterých provádíme testování. Z faktu, že různé prohlížeče používají odlišná vykreslovací jádra lze usoudit, že i jejich grafický výstup se může mírně lišit a je tudíž nutné provádět kontrolu vzhledu stránek na všech browserech. Co již však není jednoznačné, je chování jednoho konkrétního prohlížeče v různých operačních systémech, tedy jestli se jedno vykreslovací jádro chová stejně napříč platformami. Také nás zajímá, zda prohlížeč pro vykreslování používá nějaké nativní funkce operačního systému a do jaké míry se toto projevuje na výsledném renderování. Cílem této práce je prozkoumat vykreslování webových stránek internetovými prohlížeči v závislosti na použitém operačním systému. Tedy zjistit, zda se při použití jednoho konkrétního browseru na různých platformách můžeme spoléhat na to, že grafický výstup bude identický. Výsledky práce pomůžou firmě Red Hat (zadavatel práce) zredukovat velikost testovací matice, která obsahuje všechny prohlížeče a platformy, na kterých se musí nově vyvinutý produkt otestovat před jeho vydáním. Výsledky budou podloženy konkrétními rozdíly prezentovanými na námi určené referenční stránce.
1
2 Výběr browserů a referenčních operačních systémů V této kapitole provádíme průzkum trhu s internetovými prohlížeči a vybíráme vhodné kandidáty na testování. Také jsou zde určeny konkrétní operační systémy, na kterých budeme výzkum provádět.
2.1 Browsery Naším úkolem je vybrat tři nejrozšířenější internetové prohlížeče, které podrobíme dalšímu zkoumání. Zajímají nás pouze multiplatformní prohlížeče, tedy ty, které jsou dostupné alespoň pro dva operační systémy. 2.1.1 Metody získávání statistik Údaje o podílu rozšíření internetových prohlížečů lze získat dvěma způsoby: -
Statistiky přístupů na webové stránky Tyto informace zveřejňují některé společnosti. Získávají je shromažďováním statistik o přístupech na své internetové stránky. Příkladem takovéto společnosti je například sdružení Wikimedia Foundation, jež provozuje několik online projektů. Nejznámějším z nich je samozřejmě Wikipedia.org, která jako 6. nejnavštěvovanější stránka na světě[24] má jistě dostatek údajů k vytvoření odpovídajících statistik. Problémem takto získaných údajů je skutečnost, že složení návštěvníků internetové stránky je závislé na jejím obsahu. Ve statistikách internetových stránek zaměřených na počítačově zdatné jedince (programátorská fóra apod.) jistě mají alternativní prohlížeče větší procentuální zastoupení, než tomu je u internetových stránek cílených na běžného uživatele, který jednoduše používá výchozí browser svého operačního systému. Tento nedostatek se snaží eliminovat společnosti jako například W3Counter (w3counter.com) nebo Net Applications (marketshare.com). Tyto společnosti akumulují statistiky z desítek tisíc internetových stránek a teprve z těchto údajů vytváří vlastní statistiku. Takto získané údaje se pak více přibližují skutečnosti.
-
Statistiky výrobců prohlížečů Statistiky používání internetových prohlížečů mohou vytvářet také jejich samotní vydavatelé na základě počtu stažení nové verze, či nainstalování nejnovější aktualizace. Tyto údaje však nejsou příliš spolehlivé a v praxi se nepoužívají.
2
2.1.2 Nepřesnosti ve statistikách a jejich příčiny Statistiky rozšíření internetových prohlížečů mohou být často zavádějící. Stránky získávající statistiky mohou buďto podhodnocovat nebo nadhodnocovat. K těmto jevům dochází hned z několika příčin. [21] -
Nadhodnocování statistik: Ne všechny požadavky na internetové stránky jsou generovány uživateli. Možné případy: § Některé antivirové programy záměrně mění svoji user agent1 identifikaci za údaje nějakého z rozšířených internetových prohlížečů. Toto se děje za účelem obelstění útočné internetové stránky, která by antiviru zobrazovala pouze čistý obsah, ne však internetovému prohlížeči. Tento fakt popsal v roce 2008 britský deník The Register. V té době údajně provoz generovaný AVG Linkscannerem, používajícím identifikaci Internet Exploreru 6, předstihnul lidská kliknutí v poměru deset ku jedné. [3] § Uživatel, který navštíví stejnou stránku vícekrát v krátké době a změní mezitím prohlížeč nebo jeho verzi, může být některými metodami započítán vícekrát. § Internetové stránky také mohou být psány tak, aby aktivně blokovaly určité browsery. Jedním z běžných důvodů tohoto jevu může být fakt, že funkčnost stránky byla testována pouze na limitovaném počtu prohlížečů a nutí tak uživatele používat některý z testovaných browserů. Zkušenější uživatel si však dovede změnit identifikaci user agenta, a pokud s takto pozměněným prohlížečem navštíví nějakou stránku shromažďující statistiky, může tyto výsledky ovlivnit.
-
Podhodnocování statistik - Může také docházet k podhodnocování statistik a to z těchto příčin: § Opera a prohlížeče založené na jádru Gecko spouštějí JavaScriptový kód obsažený na internetových stránkách pouze při načtení těchto stránek z internetu nebo z cache na disku, nespustí jej v případě načtení stránek z DOM cache. To může mít vliv na servery, jejichž sběr statistických informací je založen na JavaScriptu. [4] § Zatímco u většiny browserů je přechod na některou z předchozích stránek z historie generován jako nové kliknutí na tuto stránku, některé prohlížeče (například Opera) použijí obsah z cache bez toho, aby poslaly jakýkoliv požadavek na server. [5]
1
User agent program, nejčastěji internetový prohlížeč, komunikující se serverem. User agent serveru předává informace o sobě, což zahrnuje název, verzi, operační systém atd.
3
§
-
Někteří internetoví poskytovatelé, převážně mobilní operátoři, v minulosti odstraňovali řetězec obsahující identifikaci user agenta za účelem snížení přenesených dat od uživatelů. To se samozřejmě na statistikách muselo také promítnout. [6]
Odlišné metody měření - Společnosti Net Application a W3Counter zaznamenávají při měření přístupů pouze unikátní přístupy. Uživatel, který stránku navštíví vícekrát, bude do statistiky započten pouze jednou. U společností a internetových stránek započítávajících pouze jednotlivé přístupy na stránky by však byl zaznamenán několikrát. Net application také používá vyvažování v závislosti na země, ze které uživatel pochází, na základě celkového internetového provozu dané země. [7]
2.1.3 Výsledky statistik Na základě předchozích srovnání a rozdílů přístupů k získávání statistik internetového provozu jsme se rozhodnli pro výběr nejpoužívanějších browserů použít statistiky společnosti W3Counter, protože na rozdíl od některých počítá pouze unikátní přístupy. Stejným způsobem sice statistiku získává také Net Applications a navíc jeho databáze čítá více informací, statistiky Net Applications se však velmi liší od statistik ostatních společností[21], a proto jsme se rozhodli vybrat společnost W3Counter, která se více blíží průměru. Z jejich statistik pro duben 2012 [1] jasně vyplývá, že internetovému trhu i nadále vládne prohlížeč Internet Explorer pohybující se těsně pod hranicí 30 %. Internet Explorer byl sice v některých předchozích verzích vyvíjen také pro platformu Mac OS X, kvůli nedostatečnému zájmu se však od tohoto upustilo a aktuální verze Internet Exploreru je tak dostupná pouze pro operační systém Microsoft Windows. Z tohoto důvodu pro nás nemá smysl se tímto prohlížečem zabývat. Google Chrome je nejmladší z porovnávaných browserů, ale na začátku roku 2012 předstihnul do té doby druhý nejrozšířenější prohlížeč Mozilla Firefox. V současnosti je jeho zastoupení na trhu přibližně 26 %. Browser Google Chrome je k dispozici jak pro Windows a Linux, tak pro Mac OS X. Mozilla Firefox je s 24 % třetím nejpoužívanějším prohlížečem. Tento browser je stejně jako předchozí zmíněný dostupný na všech třech platformách, je tedy zřejmé, že jej zahrneme do této práce. Prohlížeč Safari z dílen společnosti Apple se ve statistice umístil na čtvrtém místě s necelými sedmi procenty. Safari je vyvíjeno primárně pro operační systém Mac OS X,
4
navíc je dostupné také pro systém Windows. Jeho rozšíření na platformě Windows je ale natolik zanedbatelné[2], že jsme se rozhodli jej do této práce nezařadit. Browser Opera má dle této statistiky podíl na trhu dvě procenta a to z něj činí pátý nejpoužívanější prohlížeč. Opera je dostupná ve verzích pro Windows, Linux a Mac OS X a je tedy třetím a posledním prohlížečem, na který se v této práci zaměříme. Na základě statistik společnosti W3Counter bylo rozhodnuto zahrnout do práce webové prohlížeče Google Chrome, Mozilla Firefox a Opera, které jsou všechny dostupné ve verzích pro Windows, Linux i Mac OS X.
2.1.4 Vybrané browsery Na začátku této práce byly vybrány poslední verze internetových prohlížečů. Do práce nebyly zahrnuty vývojové a beta verze, ale pouze verze finální. Díky současnému progresivnímu vývoji browserů, především Google Chrome a Mozilly Firefox, již tyto verze nemusí být aktuální. Na výsledky a závěr práce by tento fakt neměl mít zásadní vliv, mohlo by to však být předmětem další diskuse. Pracovali jsme s těmito prohlížeči: -
Mozilla Firefox – Internetový prohlížeč Mozilla Firefox je zatím nejrozšířenější z námi vybraných prohlížečů. Firefox je vyvíjen společností Mozilla Corporation a je šířen v souladu s licencemi GNU GPL[9] a MPL (Mozilla Public Licence), což je licence vyvinutá a udržovaná společností Mozilla Foundation a je charakterizována jako hybrid mezi modifikovanou BSD licencí[10] a GNU GPL a snaží se najít ideální vyvážení mezi Open Source[11] a Proprietárním software[12]. Díky tomu je zdrojový kód Firefoxu veřejně dostupný a je možné jej využít při dalším zkoumání vlastností tohoto prohlížeče. Firefox je založen na renderovacím jádru Gecko, jehož vlastníkem je taktéž Mozilla Corporation. Vedle námi testovaných platforem je Firefox dostupný také na systémech FreeBSD a Solaris. My pracujeme s Firefoxem verze 12.
-
Google Chrome – Browser Google Chrome staví na projektu Chromium s otevřeným zdrojovým kódem. Chrome a Chromium identické s tím rozdílem, že Chromium nezahrnuje automatické aktualizace, vestavěný flash player a vlastní PDF reader. Tento prohlížeč je vyvíjen společností Google Inc. a šířen je pod licencí Google Chrome Terms of Service, jeho grafické jádro Webkit poté pod licencemi BSD a LGPL[13]. Prohlížeč je dostupný na stejných platformách jako předchozí a v roce 2012 navíc vyšla verze pro operační systém Android, konkrétně pro verze 4.0 a vyšší. V této práci používáme Google Chrome ve verzi 19.
5
-
Opera – Tento prohlížeč je nejstarším z vybraných prohlížečů, ale přesto je z nich nejméně rozšířený. Opera však podporuje více platforem než dva předchozí. Je dostupná na všech desktopových systémech, ve verzích Opera Mobile a Opera Mini podporuje navíc všechny nejrozšířenější mobilní operační systémy (Android, iOS, Symbian, Windows Mobile a BlackBerry) a dokonce je Opera Mini dostupná pro všechny mobilní zařízení schopné běhu Java Mobile Edition aplikací. Operu jako jediný z prohlížečů najdeme také na herním zařízení Nintendo DS a konzoli Wii. Opera je šířena jako proprietární freeware, open source jsou pouze některé její komponenty. U Opery tedy nemáme, na rozdíl od předchozích prohlížečů, možnost zkoumat její zdrojový kód, jelikož není volně dostupný. V této práci používáme Operu ve verzi 11.62 sestavení 1347.
2.2 Operační systémy Chování browserů bylo zkoumáno na třech nejpoužívanějších desktopových operačních systémech, tedy Microsoft Windows, Linux a Mac OS X.
2.2.1 Microsoft Windows
Operační systém Microsoft Windows je světově nejrozšířenějším systémem. Za svou popularitu vděčí především vysoké ceně produktů společnosti Apple a nízkému povědomí lidí o současných verzích Linuxu. Nejrozšířenější verzí systému Windows je stále verze XP [22], která se na trhu pohybuje již přes 10 let. Windows XP jsou již zastaralým systémem s ukončenou podporou, a proto byla pro účely této práce vybrána aktuální verze, tedy Windows 7. Tento operační systém je dostupný v několika verzích, z nichž jsme použili 32-bitovou variantu edice Professional s aktuálním servisním balíčkem SP1.
2.2.2 Mac OS X Operační systém Mac OS X je v pořadí desátým (proto označení X) operačním systémem americké společnosti Apple. Tento systém je světově druhý nejrozšířenější. Nejčastěji se s ním setkáme ve Spojených státech, ale stále větší oblibě se těší i u nás v Evropě. Mac
6
OS X vychází z Unixu a jinde, než na počítačích Macintosh[15], na něj nenarazíme. Díky striktně dané hardwarové konfiguraci počítačů, pro které je Mac OS X vyvíjen, jde o velmi stabilní a konzistentní systém. Pro práci byl použit Mac OS X ve verzi 10.7.4.
2.2.3 Linux Operační systém Linux je stejně jako Mac OS X založen na Unixu. Linux je dostupnýv mnoha různých distribucích od rozsáhlých serverových, přes klasické desktopové, až po minimalistické systémy, s nimiž se setkáváme například v síťových prvcích. Pro tuto práci byla vybrána Linuxová distribuce Fedora. Tato distribuce vznikla jako nekomerční odnož Red Hat Enterprise Linuxu a je vyvíjena za podpory firmy Red Hat [23]. Fedora sice v posledních letech ztrácí na oblíbenosti, stále se však řadí k nejrozšířenějším Linuxovým distribucím. Pro tuto práci byla vybrána Fedora ve verzi 16. Výběr distribuce by sice na výsledky průzkumu neměl mít zásadní vliv, bez dalšího průzkumu to však nemůžeme jednoznačně určit.
7
3. Metodologie V této kapitole popisuje memetody, pomocí kterých jsme zkoumali vybrané prohlížeče. Někdy tyto metody nejsou schopny fungovat naprosto samostatně a je vhodnější některé z nich kombinovat. Například pro možný problém zjištěný při internetovém průzkumu najdeme vhodnou referenční stránku, na které budeme moci otestovat, zda se nalezený problém projevuje i v aktuálních verzích prohlížečů a systémů.
3.1 Zkoumání zdrojového kódu Při hledání závislostí internetových prohlížečů na operačních systémech se jeví zkoumání zdrojového kódu jako velmi efektivní metoda. Jejím cílem je nalezení metod, které jsou nějakým způsobem závislé na operačním systému. Po nalezení takovýchto metod je nutno ověřit, zda a do jaké míry se tato závislost může projevit na samotném grafickém výstupu testovaného prohlížeče. U této metody jsme omezeni pouze na prohlížeče Mozilla Firefox a Google Chrome, jejichž zdrojový kód je k dispozici pro širokou veřejnost. U prohlížeče Opera jsme odkázáni pouze na zbylé metody. Zkoumání zdrojového kódu prohlížeče Mozilla Firefox jsem věnoval několik dní. Tato snaha však neměla žádné výsledky a musel jsem připustit, že orientace v tak rozsáhlém projektu, jakým je internetový prohlížeč je nad mé síly. Z tohoto důvodu jsme od této potenciálně slibné metody nakonec upustili.
3.2 Testovací internetové stránky Tato metoda je založena na kontrole grafického výstupu prohlížečů na námi vybrané internetové stránce. Nejdůležitější částí tohoto procesu je samotný výběr této vyhovující stránky. Je zřejmé, že výběr nevhodné stránky by měl za následek zkreslené a neprůkazné výsledky. Je více možností, jak tuto stránku zvolit. Můžeme najít referenční stránku s co možná nejvíce webovými elementy s různými parametry. Podobnou stránku také můžeme vytvořit, avšak s dnešními možnostmi webových technologií by bylo pouze šťastná náhoda, kdyby námi vytvořená stránka opravdu něco prokázala. Vhodnějším způsobem je výběr některé ze stránek, které přímo testují nějakou vlastnost, kupříkladu podporu standardu html5. V případě získání odlišných výsledků na různých platformách můžeme podle toho, ve které podkategorii se výsledky liší, odvodit, kde se vyskytuje problém.
8
Internetových nástrojů a aplikací pro ověření, zda se námi vytvořená webová stránka správně zobrazuje na všech různých prohlížečích, případně i na odlišných verzích operačního systému, je na internetu možné nalézt několik desítek. Pokud však chceme otestovat vlastní internetový prohlížeč, jsou naše možnosti značně omezeny. Žádnou vhodnou stránku referenční se nám nepodařilo objevit a její tvorba z výše zmíněného důvodu neměla smysl. Rozhodnuli jsme se proto tuto metodu vypustit.
3.2.2 Testy a benchmarky prohlížečů Vhodným nástrojem k odhalení rozdílů ve vykreslování webových stránek na různých platformách by mohly být také některé internetové testy a benchmarky webových prohlížečů. Tyto nástroje slouží pro ověření, do jaké míry dodržují prohlížeče určité webové standardy. Mezi takovéto nástroje patří například test Acid3, který hledá chyby v implementaci webových standardů. Jedná se o třetí verzi tohoto testu a oproti svým předchůdcům je komplexnější. Zaměřuje se kupříkladu na testování DOM[16], JavaScriptu[17], SVG[18] a CSS3[19]. Testovací stránka se skládá z tabulky, která obsahuje nějaké SVG obrazce a číslovky vyjadřující podíl dokončených testů. Aby internetový prohlížeč tento test splnil, musí proběhnout všech 100 podčástí testu. Animace by měla být plynulá a grafický výstup musí být naprosto identický se vzorovou stránkou. V případě, že některá část testu z nějakého důvodu neproběhne, je tuto možné dodatečně zobrazit. Dalšími nástrojem je The Html5 test (html5test.com), který se zaměřuje na podporu aktuální verze jazyka HTML, tedy HTML5. Test je rozdělen na přehledné kategorie, případné odchylky ve výsledcích je tedy velmi snadné dohledat a zjistit, ve které konkrétní podkategorii se prohlížeč na různých platformách neshodují. Posledním takto komplexním nástrojem je benchmark peacekeeper od společnosti Futuremark, která stojí také za nejznámějším benchmarky pro grafické karty (3DMark) a celý počítač (PCMark). Jedná se sice spíše o test výkonu a rychlosti prohlížeče, přesto jsme jej do práce zahrnuli, protože srovnání výkonu jednoho prohlížeče na více systémech by také mohlo poskytnout zajímavé výsledky.
3.3 Vyhledávání informací na Internetu Tento způsob se může zdát na první pohled triviální a neodborný, ale Internet je nedocenitelný zdroj informací a zkušeností milionů lidí z celého světa, bylo by tedy
9
pošetilé tuto možnost do práce nezahrnout. Tato metoda nemá žádný striktně daný postup a její náplní je vyhledávání informací pomocí vhodně zvolených klíčových slov a následné procházení stovek stránek textu. Důležitým faktorem u této metody je vyhodnocení relevance a věrohodnosti informací. Za ideální případ zdroje informací považujeme odborný text s odkazy na zdroje. Odborných textů zabývajících se takto specifickou tematikou však mnoho neexistuje a tak jsme byli odkázáni na ostatní zdroje. Jako další vhodné zdroje informací se ukázala internetová fóra s uživatelským hodnocením příspěvků, které jsou poté řazeny dle bodů, které jim byly uděleny. Příkladem takovéto stránky je stackoverflow.com, což je kolektivem čtenářů editovaná stránka otázek a odpovědí týkající se především programování. Takovéto systémy jsou schopné samostatné existence bez zásahů redaktorů. Informace zde získané samozřejmě nemůžeme automaticky považovat za věrné a je žádoucí je dále ověřit.
10
4. Praktická část V praktické části byl prováděn průzkum s použitím metod popsaných v předchozí kapitole. Tato část je rozdělena na podkapitoly podle metod, které zde byly aplikovány. U každé z metod je popsán způsob, jakým byl průzkum prováděn na jednotlivých internetových prohlížečích. Tato struktura byla zvolena z toho důvodu, že z některých metod vyplynuly výsledky vztahující se ke všem browserům.
4.1 Testovací internetové stránky Na tomto místě jsou prezentovány výsledky námi vybraných testů.
4.1.1 Acid3 Test Acid patří mezi nejznámější nástroje pro testování dodržování internetových standardů internetovými prohlížeči. Poslední vydanou verzí tohoto testu je Acid3 (acid3.acidtests.org). Přestože byl vydán již v roce 2008, stále se jedná o komplexní nástroj testující široké portfolio webových standardů a funkcí. Test je spuštěn na všech kombinacích browser/OS a jsou kontrolovány výsledky. Za úspěšný je test považován pouze v případě, kdy všechny jednotlivé části proběhnou v pořádku (100/100) a jen za předpokladu, že když je grafický výstup testu identický s referenční stránkou. -
Google Chrome – Test proběhnul v pořádku na všech námi testovaných platformách a grafický výstup byl vždy shodný s referenční stránkou.
-
Mozilla Firefox – Stejně jako u předchozího prohlížeče nebyl na žádném operačním systému zaznamenán žádný problém.
-
Opera – V prohlížeči Opera byl výsledek testu v naprostém pořádku pouze na operačním systému Windows. V systémech Linux a Mac OS X sice proběhly všechny části testu (100/100), grafický výstup testu se však lišil od referenční stránky. Chyba u obou prohlížečů byla obdobná. Spodní okraj tabulky a čísla (100/100) byly posunuty o něco výše než tomu bylo u referenční stránky. V Linuxu se jednalo o pouhý jeden pixel, zatímco v případě Mac OS X bylo posunu 5 pixelů.
11
Test Acid3 proběhnul na všech platformách naprosto v pořádku v browserech Mozilla Firefox a Google Chrome. Všechny prohlížeče na všech platformách získaly 100 bodů ze 100 možných. Grafický výstup testu Acid3 byl odlišný pouze u prohlížeče Opera, a to jak v Linuxu, tak v Mac OS X. Příčina tohoto problému je neznámá.
4.1.2 The HTML5 test
The HTML5 test je webová aplikace testující schopnost prohlížečů pracovat s technologií HTML5. Výsledkem tohoto testu je číselná hodnota vyjadřující součet získaných bodů v jednotlivých částech testu. Tato hodnota je přímo srovnatelná, takže již není potřeba ji dále zpracovávat, a může být použita k přímému porovnání. Maximální získatelný počet bodů je v současné době 500, což představuje splnění všech testů. -
Google Chrome: Výsledek testu byl na všech testovaných platformách shodný, a to 402 bodů s bonusovými 13 body.
-
Mozilla Firefox: Prohlížeč Mozilla získal v tomto testu na platformě Windows 330 bodů a 9 bonusových. V systémech Linux a Mac OS X získal o 15 bodů více, tedy 345. Zisk bonusových bodů zůstal shodný. Rozdíl ve výsledcích je dle podrobného popisu způsoben podporou technologie WebGL, konkrétně 3D obsahu, který není v systému Windows (dle testu) funkční.
-
Opera: Na všech platformách dosáhnul prohlížeč Opera shodného výsledku 338 (+9 bonusových) bodů.
V tomto testu získaly prohlížeče Chrome a Opera stejný počet bodů na všech systémech. Výsledný počet bodů získaný Firefoxem na platformě Windows se lišil od počtu bodů v ostatních operačních systémech. Problém mu způsobovala technologie WebGL.
4.1.3 Peacekeeper Peacekeeper není klasický test schopnosti prohlížečů zvládat odlišné webové technologie, ale benchmark, tedy výkonnostní test. Museli jsme tedy nejdříve zjistit, zda a do jaké míry jsou výsledky ovlivněny hardwarovou konfigurací systému. Podle informací vývojářů [14] je test ve velké míře závislý na výkonu procesoru a částečně také na použitém grafickém akcelerátoru. Jelikož nejsme schopni, především z důvodu omezených možností běhu systému Mac OS X na jiných konfiguracích než na počítačích
12
Apple, otestovat všechny prohlížeče na stejné hardwarové konfiguraci, rozhodnuli jsme se místo absolutního srovnání výsledků použít srovnání poměrové. Provedli jsme test ve všech prohlížečích na dané platformě a spočítali jsme poměr výsledků vůči sobě. Tento poměr byl poté srovnán s hodnotami získanými stejným postupem na zbylých platformách. Tímto postupem jsme byli do jisté míry schopni eliminovat zkreslení výsledků v závislosti na hardwarové konfiguraci. Jelikož je výstupem benchmarku pouze číslo, které je přímo porovnatelné s ostatními browsery, není žádný problém s realizací. Součástí benchmarku je také test standardu HTML5, který prověřuje schopnost prohlížeče pracovat s několika funkcemi této technologie. Výsledky této části mohou být přímo srovnány. -
-
-
-
Windows: § Chrome: Tento prohlížeč získal 1453 bodů a prošel ve všech sedmi HTML5 testech. § Firefox: Browser Mozilla Firefox prošel benchmarkem se ziskem 771 bodů. V HTML5 testu byl schopen pracovat s pěti ze sedmi funkcí. Nekompatibilní byl s webglSphere a nepodporuje videoCodecH264. § Opera: Opera byla ohodnocena 1363 body a v HTML5 testu dopadla stejně jako Mozilla Firefox. Tedy 5/7 s nekompatibilitou stejných funkcí jako Firefox. Linux: § Chrome: Google Chrome získal na platformě Linux 1463 bodů a stejně jako ve Windows prošel v pořádku testem HTML5. § Firefox: Bodový zisk tohoto prohlížeče činil 830 bodů. Na rozdíl od testu na platformě Windows prošel v Linuxu šesti ze sedmi částí HTML5 testu. V operačním systému Linux splnil navíc podporu s technologií webglSphere. § Opera: Prohlížeč Opera dosáhnul skóre 1097. Přidružený HTML5 test proběhnul shodně jako na platformě Windows. Mac OS X: § Chrome: Na platformě Mac OS X získal Google Chrome 2487 bodů a opět prošel přes všech 7 HTML5 testů. § Firefox: V tomto systému získal Firefox 1748 bodů a stejně jako v systému Linux získal 6 ze 7 bodů za podporu HTML5. Nepodporuje tedy pouze videoCodecH264. § Opera: Opera získala 1842 bodů a v HTML5 testu uspěla stejně jako na předchozích dvou systémech, tedy 5/7. Vyhodnocení výsledků: Poměr vyjadřujeme jako procentuální zisk bodů prohlížeče Google Chrome, jelikož je nejrozšířenější a v benchmarku také dopadl
13
nejlépe. Poměr je tedy reprezentován ve tvaru Chrome:Firefox:Opera s tím, že Chrome je brán jako základ a má tedy vždy 100 %. Windows: Linux: Mac OS X
poměr 100:53:94 poměr 100:57:75 poměr 100:70:74
Z výsledných poměrů lze jednoduše vyčíst, že test byl do jisté míry ovlivněn použitým operačním systémem. Opera ve Windows dopadla o 20 % lépe než na zbylých platformách. Naopak Firefox získal o 20 % bodů více na platformě Mac OS X. Z důvodu nedostatečné znalosti testu a jeho závislostí však z této části nebudeme vyvozovat žádné závěry. Z části testu týkající se podpory standardu HTML5 vyplývá, že jednotlivé technologie mohou být ovlivněny také operačním systémem, na kterém je benchmark Peacekeeper spuštěn. Prohlížeč Firefox měl v systému Windows problém s technologií webglSphere, jejíž test byl v ostatních systémech v pořádku. Tento fakt koresponduje s výsledkem předchozího testu, kde prohlížeč Firefox jako jediný získal odlišný počet bodů na jednom ze systémů. Jednalo se stejně jako v tomto testu o systém Windows, z čehož vyvozujeme, že prohlížeč Firefox má ve Windows problém s podporou technologie WebGL.
4.2 Vyhledávání informací na Internetu Tato podkapitola je členěna dle jednotlivých problémů odhalených průzkumem internetu. Některé z nich jsou natolik obecné, že nebylo žádoucí je rozdělovat podle jednotlivých prohlížečů. U zbylých problémů je popsáno chování jednotlivých browserů.
4.2.1 Internetové stránky záměrně odlišné pro různé kombinace OS/browser Možnou příčinou odlišného zobrazování internetové stránky na různých operačních systémech a internetových prohlížečích může být samotný zdrojový kód stránky, který je takto upraven záměrně. K tomu určený je například CSS Browser Selector[20], což je JavaScriptový kód, díky kterému je možné přiřadit libovolné kombinaci OS/Browser odlišný kaskádový styl, a tím způsobit naprosto odlišné zobrazování dle použitého prohlížeče a operačního systému. Skript informace získává z údajů, které internetové stránce předává při komunikaci klient. Podobně fungují podmíněné HTML tagy. Jejich princip je podobný podmíněnému větvení klasických programovacích jazyků. Na rozdíl
14
od předchozího skriptu jsou však možnosti této varianty značně omezeny. Účelem těchto technik je možnost přizpůsobení internetových stránek v případě použití kaskádového stylu, který by nemusel být zobrazen všemi prohlížeči stejně. Použití uvedených úprav ale může vést k problémům s kompatibilitou, které by nás nutily testovat stránky na všech možných konfiguracích, a je tedy obecně lepší se jim vyhnout.
4.2.2 Renderování fontů Renderování fontů písma je poměrně komplexní problematika. Výsledný vzhled je ovlivněn více faktory. Základním problémem může být použití hodně specifického a málo rozšířeného fontu. V případě, že tento font nebude v systému přítomen, nahradí jej prohlížeč předem určeným defaultním fontem. Tato záměna by se mohla do velké míry projevit na rozložení internetové stránky, je proto vhodné se takovým fontům vyhýbat. Dalším úskalím je vykreslování fontu. Každý operační systém používá jinou sadu nástrojů pro rozvržení a renderování fontu, což se projevuje na výsledném výstupu. Této problematice se věnuje například sedmidílná série článků na stránkách blog.typeit.com. Typeit je produkt společnosti Adobe. Jedná se o sadu fontů, které by měly maximalizovat kompatibilitu se všemi browsery a operačními systémy. Ve druhém díle série [25] je rozebírán právě vliv operačního systému na vykreslování fontu. Z článku vyplývá, že součástí operačních systémů Windows a Mac OS X (Linuxu se článek nevěnuje), je rozhraní API (rozhraní pro programování aplikací), které umožňuje prohlížečům volat přímo vykreslovací funkce systému. V případě operačního systému Mac OS X se jedná o Core Text a Core Graphics (Quartz) [26], v systému Windows pak DirectWrite[27] a GDI[28]. Tato rozhraní jsou zodpovědná za rasterizaci fontu a jeho samotné vykreslení. Rasterizací se rozumí převod grafiky z vektorové na rastrovou za účelem vykreslení grafickým jádrem. -
Mac OS X § Core Text – Toto rozhraní je určeno k rozvržení textu a k práci s fonty. Generuje vzhled znaků v závislosti na použitém grafickém fontu. Core Text tíhne spíše k respektování designového tvaru písma, což vede k tlustším písmenům. U písma vytvářeného tímto rozhraním se projevuje pouze nízké rozostření i v případě několikanásobného zvětšení. Tohoto je dosaženo pomocí antialiasingu (vyhlazování hran) ve směru osy y. Zmiňované rozhraní také používá technologii sub-pixel
15
antialiasing, která využívá jednotlivé třetiny barevného RGB pixelu ke ztrojnásobení horizontálního rozlišení písma. Lidské oko nerozlišuje barevné okraje a vnímá písmo ostřeji, než by tomu bylo bez sub-pixel antialiasingu. Někteří lidé však tyto barevné okraje písma registrují a mohou na ně působit rušivě. §
-
Core Graphics - Jedná se o renderovací jádro dostupné na systémech Mac OS X a také na mobilním iOS. Toto jádro je spolu s rozhraním Core Text součástí balíčku API rozhraní Core Foundation.
Windows § GDI – Graphics Device Interface je renderovací engine od Microsoftu dostupný ve všech verzích systému Windows počínaje verzí Windows XP. Současné verze nese označení GDI+, ale jelikož v dnešní době se již samotné GDI nepoužívá, nazýváme ho pouze GDI. Stejně jako Core Text, používá i GDI horizontální antialiasing. §
DirectWrite – Přístup Microsoftu je naprosto odlišný[28]. Zatímco Apple se snaží za každou cenu zachovat design písma i za cenu malého rozmazání okrajů písma, Microsoft prosazuje ořezání písma přesně podle hranic pixelů, aby tak zabránil rozmazání písma a zlepšil jeho čitelnost. DirectWrite je nejnovější a doposud nejlepší renderovací engine pro systém Windows a je dostupný pouze ve Windows Vista a 7. Jím vyrenderovaná písma jsou o poznání čistší a ostřejší v porovnání s rozhraním Core Text a staršími verzemi systémů Windows (GDI). DirectWrite používá dvojsměrný antialiasing a také využívá subpixelů k vyhlazování hran.
Microsoft dává uživatelům na výběr, zda a jaký antialiasing písma chtějí používat. Uživatel může vybírat ze tří nastavení: §
ClearType je varianta sub-pixel antialiasingu od společnosti Microsoft. Tato technologie je dostupná již ve Windows XP. ClearType bývá defaultně zapnut u Windows Vista a 7.
§
Standard (greyscale antialiasing) je technologie, která nepoužívá jednotlivé subpixely. Místo toho využívá k vyhlazování hran celé
16
pixely, jejichž barva je světlejší oproti těm uvnitř písma. Toto nastavení je defaultní u Windows XP. §
Antialiasing může být také úplně vypnut, v tom případě je pak text vykreslován pouze černobíle bez jakéhokoliv vyhlazování. [25]
-
Linux – Situace u operačního systému Linux je složitější. Uživatel může nejen bohatě nastavovat vlastnosti renderovacího rozhraní, ale také do systému doinstalovat rozhraní jiné s odlišnou funkcionalitou. My se zabýváme pouze Fedorou s výchozím nastavením. § Fontconfig – Fedora v základu používá pro správu a zobrazování fontů subsystém Fotoconfig. Ten zjednodušuje správu fontů a poskytuje pokročilou funkcionalitu, jako například vyhlazování hran. Fontconfig je používán automaticky pro aplikace programované s použitím grafických nástrojů. Qt 3 a GTK+ 2. Fotoconfig umožňuje aplikacím přímý přístup k systémovým fontům a použití knihovny rozhraní X FreeType (Xft) nebo jiný renderovací engine k vykreslení Fotoconfig fontů s pokročilými vlastnostmi. Grafické aplikace mohou používat Xft knihovnu s Fotoconfigem k vykreslování objektů na ploše. [30]
-
Vliv OS na výsledné písmo – Na tomto místě prezentujeme výsledek vykreslování fontu námi vybraných browserů na všech systémech. K tomuto účelu jsme použili stránky Typetester[31]. Na všech systémech a u všech browserů bylo zvoleno stejné nastavení – font Arial, ostatní nastavení bylo ponecháno výchozí. U systému Windows byl navíc testován vliv technologie ClearType na konečný výstup. Z důvodu úspory místa byl vybrán pouze malý výsek výstupu, který by však měl jako názorná ukázka stačit.
-
Google Chrome:
17
Obrázek 4.1:Chrome + Windows
Obrázek 4.2:Chrome + Fedora
Obrázek 4.3: Chrome + Mac OS X
-
Mozilla Firefox:
Obrázek 4.4: Firefox + Windows
Obrázek 4.5: Firefox + Fedora
Obrázek 4.6: Firefox + Mac OS X
18
-
Opera:
Obrázek 4.7: Opera + Windows
Obrázek 4.8: Opera + Fedora
Obrázek 4.9: Opera + Mac OS X
Z obrázků je patrné, že samotný operační systém má vliv na vykreslování fontů. Je to dáno rozdíly ve fontu samotném a v jeho zpracování jednotlivými technologiemi konkrétních systémů. Na výsledné struktuře testované stránky by se to ale nemělo projevit. Po bližším zkoumání grafického výstupu bylo zjištěno, že prohlížeč Google Chrome ignoruje nastavení Cleartype ve Windows a také antialiasing v systémech Mac OS X a Linux. Tento fakt byl zjištěn po několikanásobném zvětšení předchozích screenshotů. V žádném ze screenshotů nebyl patrný subpixel antialiasing typický pro Mac OS X a Clear type. Z tohoto zjištění je patrné, že prohlížeč Chrome používá pro vyhlazování hran svůj vlastní engine. 4.2.3 Controls
Controls (Ovládací prvky) jsou prostředky sloužící k interakci s uživatelem. Pomocí nich je možná manipulace s takzvanými formuláři. To se děje například zadáním textu do textového pole, vybráním některé z checkoboxých možností, odesláním odpovědi. Existuje několik druhů Ovládacích prvků:
19
-
-
Tlačítka – Tvůrce webu může vytvářet tři typy tlačítek. Submit button (tlačítko k odeslání odpovědi), reset button (uvede formulář do původního stavu) a push button (klasické tlačítko), které nemá žádnou výchozí akci. Může mu být přiřazena libovolná funkcionalita. Checkboxy – Typ tlačítka, který zaznamenává a indikuje, zda byla přidružená možnost vybrána. Přepínače – Přepínače jsou podobné checkboxům s tím rozdílem, že pokud několik přepínačů sdílí stejný název, pak může být vybrán pouze jeden z nich. Menu – Nabízí uživateli možnosti, ze kterých si může vybírat. Zvolené možnosti se objeví po kliknutí na tlačítko. Textový vstup – Je možnost vytvářet dva druhy textových polí pro vstup, jednořádkové a víceřádkové. Výběr souboru – Tento ovládací prvek slouží k načtení souboru, který poté může být předán formuláři. [31]
Všechny tyto prvky jsou renderovány nativním vykreslovacím jádrem operačního systému. Jejich vzhled tedy závisí na operačním systému, jeho verzi a také zvoleném tématu operačního systému. Vzhledu těchto prvků a možnostem jejich úpravy za použití kaskádových stylů se v několika článcích na svém webu[33] věnuje Roger Johansson. Zjišťuje, zda je možné za použití vhodného nastavení CSS dosáhnout toho, aby ovládací prvky vypadaly stejně na různých operačních systémech. Roger Johansson testoval různé parametry CSS aplikované na ovládací prvky a prezentoval výsledné screenshoty z jednotlivých prohlížečů a operačních systémů. Poslední revizi provedl v lednu 2007 [34], kde tato nastavení testoval na tehdy aktuálních prohlížečích a operačních systémech. Výsledky jeho testů byly zajímavé, jsou již ale 5 let neaktuální. Za tuto dobu vyšlo hned několik novějších verzí jak browserů, tak operačních systémů. Rozhodli jsme se proto použít jeho stránky vytvořené k testovacím účelům a otestovat na nich námi vybrané prohlížeče a systémy. Nejzajímavějších výsledků bylo dosaženo u checkboxů [35]:
20
Obrázek 4.10 Checkboxy vykreslené prohlížečem Google Chrome na operačních systémech (zleva) Microsoft Windows, Mac OS X a Fedora
Obrázek 4.11 Checkboxy vykreslené prohlížečem Mozilla Firefox na operačních systémech (zleva) Microsoft Windows, Mac OS X a Fedora.
21
Obrázek 4.12 Checkboxy vykreslené prohlížečem Opera na operačních systémech (zleva) Microsoft Windows, Mac OS X a Fedora. Na screenshotech je možné pozorovat různé chování prohlížečů na základě operačního systému, na němž byly stránky spuštěny. Výsledný vzhled checkboxů u Firefoxu je odlišný na každém z operačních systémů, ve Fedoře kupříkladu CSS úplně ignoruje. Google Chrome je na tom o něco lépe, vzhled ovládacích prvků a jejich uspořádání napříč operačními systémy se ale stále liší. Nejměně ovlivněn operačním systémem byl browser Opera, který, až na samotný styl checkboxových tlačítek, vykreslil tuto stránku se shodným rozložením na všech systémech. Rozložení a vzhled přepínačů[36] bylo shodné s checkboxy až na samotný vzhled prvku. U prohlížečů Google Chrome a Mozilla Firefox se nám podařilo ukázat příklad odlišného vykreslení stejné stránky na různých operačních systémech. Můžeme to tedy považovat za důkaz toho, že se tyto prohlížeče mohou chovat odlišně na různých platformách.
22
5. Závěr V práci bylo zjištěno, že vykreslování je závislé na operačním systému u fontů a ovládacích prvků. Odlišné fonty by neměly mít na výsledný vzhled webové stránky vliv, mohlo by však vinou mírně odlišného rozlišení fontu dojít k odlišnému zalomení řádků textu na různých systémech. V kapitole 4.3.3 bylo pomocí různých kaskádových stylů aplikovaných na ovládací prvky renderované operačním systémem ukázáno, že můžeme prohlížeče Google Chrome a Mozilla Firefox donutit, aby stejnou stránku vykreslily zcela odlišně na jiných platformách. Aplikované CSS styly jsou sice velmi netradiční a jejich použití je málo pravděpodobné, jejich použitím však bylo dokázáno, že se tyto prohlížeče mohou chovat různě v závislosti na použitém operačním systému. Opera v této části uspěla a výstup byl shodný na všech platformách. V testu Acid3 byla u prohlížeče Opera objevena drobná odchylka v jeho vykreslování při použití systémů Mac OS X a Fedory. Jaká byla příčina tohoto jevu, se nám nepodařilo zjistit. Je to však ukázka toho, že také prohlížeč Opera se může chovat odlišně na různých systémech.
5.1 Doporučení V této práci bylo u všech testovaných prohlížečů prokázáno, že se za určitých podmínek mohou chovat odlišně na různých platformách. Přestože v kapitole 4.3.3 bylo odlišného zobrazení docíleno použitím technik, u kterých se nepředpokládá, že by je někdo používal v praxi, dá se to považovat za důkaz faktu, že se tyto prohlížeče mohu na různých platformách chovat odlišně. Spolu s faktem, že prohlížeč Opera vykreslil testovací stránku Acid3 odlišně na různých operačních systémech, považujeme za vhodné i nadále testovat všechny prohlížeče na všech platfrmách.
5.2 Další možnosti V této práci nebyl zkoumán vliv použití 32-bitových systémů oproti 64-bitovým. Dá předpokládat, že tyto systémy budou používat stejné vykreslovací prvky pouze ve variantách pro konkrétní bitovou verzi systém. Jelikož jsme tento fakt nezkoumali, nemůžeme to potvrdit.
23
Možností dalšího výzkumu je zkoumání zdrojového kódu. Tuto metodu jsme nakonec do práce nezařadili, protože pochopení závislostí v tak rozsáhlém projektu bylo nad mé síly. Také jsme se nevěnovali rozdílům u jednotlivých verzí systému Microsoft Windows, tedy Windows XP, Vista a 7. Dá se sice přepokládat, že novější verze Windows budou obsahovat knihovny i z předchozích verzí systému (příkladem může být použití zastaralé grafické rozhraní GDI u Windows Vista a 7), bez dalšího průzkumu to však nemůžeme potvrdit. V poslední řadě jsme se nezabývali vlivem použité linuxové distribuce a případně odlišného jádra Linuxu. Opět můžeme předpokládat, že odlišné distribuce či jádra Linuxu by na renderování webových stránek neměly vliv. Jelikož se touto problematikou práce nezabývala, mohlo by to být předmětem dalšího zkoumání.
24
Literatura [1]
W3Counter – Global Web Stats [online], aktualizace 30.4.2012, [cit. 19.5.2012] Dostupné z:
[2]
WEB DEVELOPERS NOTES – Macintosh and Windows – Safari web browser statistics [online], aktualizace 10.7.2010, [cit. 19.5.2012]. Dostupné z:
[3]
THE REGISTER – AVG disquises fake tradic as IE6 [online], aktualizace 26.6.2008, [cit. 19.5.2012]. Dostupné z:
[4]
MOZILLA DEVELOPER NETWORK – Using Firefox 1.5 caching [online], aktualizace 6.5.2012, [cit. 19.5.2012]. Dostupné z:
[5]
SHAROVATOV’S WEBLOG – HTTP History Lists and Back Button [online], aktualizace 3.6.2008, [cit. 19.5.2012]. Dostupné z:
[6]
TECH CRUNCH – Vodafone in mobile web storm [online], aktualizace 21.9.2007, [cit. 19.5.2012]. Dostupné z:
[7]
NET MARKET SHARE – Net Market Share Frequently Asked Questions [online], [cit. 19.5.2012]. Dostupné z:
[8]
ST. LAURENT, ANDREW M. „3“ Understanding Open Source & Free Software Licensing. O’Reilly Media, 2004, p. 62-63 s. ISBN 978-0-596-00581-8.
[9]
Často kladené otázky o GNU GPL - Projekt GNU - Free Software Foundation (FSF) [online], [cit. 19.5.2012]. Dostupné z:
[10]
OPEN SOURCE INITIATIVE – The BSD License:Licensing [online], aktualizace 31.3.2010, [cit. 19.5.2012]. Dostupné z:
[11]
The Open Source Definition (Annotated) Open Source Initiative [online], [cit. 19.5.2012]. Dostupné z:
25
[12]
What is proprietary software definition and meaning [online], [cit. 19.5.2012]. Dostupné z:
[13]
GNU Lesser General Public License v3.0 - GNU Project - Free Software Foundation (FSF) [online], aktualizace 29.6.2007, [cit. 19.5.2012]. Dostupné z:
[14]
PEACEKEEPER, THE UNIVERSAL BROWSER TEST – Frequently Asked Questions [online], [cit. 19.5.2012]. Dostupné z:
[15]
Macintosh [online], aktualizace 17.5.2012, [cit. 19.5.2012], Wikipedia. Dostupné z:
[16]
W3C Document Object Model [online], aktualizace 19.1.2005, [cit. 19.5.2012]. Dostupné z:
[17]
JavaScript Tutorial [online], [cit. 19.5.2012]. Dostupné z:
[18]
W3C SVG Working Group [online], [cit. 19.5.2012]. Dostupné z:
[19]
CSS3 Tutorial [online], [cit. 19.5.2012]. Dostupné z:
[20]
CSS BROWSER SELECTOR [online], aktualizace 2.11.2010, [cit. 19.5.2012]. Dostupné z:
[21]
Usage share of web browsers [online], aktualizace 19.5.2012, [cit. 19.5.2012], Wikipedia. Dostupné z:
[22]
NET MARKET SHARE – Desktop Top Operating System Share Trend [online], [cit. 19.5.2012]. Dostupné z:
[23]
FEDORA – Co je Fedora [online], [cit. 19.5.2012]. Dostupné z:
[24]
ALEXA, THE WEB INFORMATION COMPANY – Top Sites [online], [cit. 19.5.2012]. Dostupné z:
26
[25]
TYPEKIT BY ADOBE – Type rendering: operating systems [online], aktualizace 15.10.2010, [cit. 19.5.2012]. Dostupné z:
[26]
MAC OS X DEVELOPER LIBRARY – Core Text Overview [online], aktualizace 3.3.2010, [cit. 19.5.2012]. Dostupné z:
[27]
MSDN – Introducing DirectWrite [online], aktualizace 7.3.2012, [cit. 19.5.2012]. Dostupné z:
[28]
MSDN – GDI+ [online], aktualizace 19.10.2010, [cit. 19.5.2012]. Dostupné z:
[29]
JOEL ON SOFTWARE – Font smoothing, anti-aliasing, and sub-pixel rendering [online], aktualizace 12.6.2007, [cit. 19.5.2012]. Dostupné z:
[30]
FEDORA DOCUMENTATION – C.4. Fonts [online], [cit. 19.5.2012]. Dostupné z:
[31]
Forms in HTML documents [online], [cit. 19.5.2012]. Dostupné z:
[32]
Forms in HTML documents [online], [cit. 19.5.2012]. Dostupné z:
[33]
456 Berea Street: Articles and news on web standards, accessibility, and usability [online], aktualizace 18.5.2012, [cit. 19.5.2012]. Dostupné z:
[34]
Styling form controls with CSS, revisited 456 Berea Street [online], aktualizace 9.1.207, [cit. 19.5.2012]. Dostupné z:
27
[35]
Styling checkboxes with CSS 456 Berea Street [online], aktualizace 9.1.207, [cit. 19.5.2012]. Dostupné z:
28