Martin Michálek Martin Michálek  – 13. 7. 2014

Za devatero horami a devatero řekami bylo jedno království. A rytířský řád Vývojářů v tom království odjakživa bojoval s drakem. Ten když do království přišel měl jednu hlavu. Časem narostla další, další a další… Nakonec měl celých 17 hlav. Vývojáři se toho draka tak báli, až mu začali říkat — ehm — Webové prohlížeče.

Střih. „Prohlížeče, které mají méně než 5% podílu na trhu nepodporujeme.” Mohli jste kolegy z oboru slyšet říkat před pár lety. Nebo klidně minulý týden.

Bylo by krásné kdyby rozhodování o podpoře nebo nepodpoře prohlížečů bylo takhle jednoduché. Ale je to blbost. A byla to blbost vždycky.

Pokud byste tohle rozhodování aplikovali na dnešní prostředí, do škatulky Nepodporujeme by vám spadly všechny mobilní prohlížeče, na desktopu pak IE10, IE9 i Opera. Celkově vzato krásných 25% uživatelů.

Pojďme ale nejdřív na výlet do roku 2010. Tehdy měla prohlížečová saň výrazně méně hlav. Když jste se rozhodli, že budete podporovat všechny nad pětiprocentní podíl na trhu, vypadalo to asi takhle:

Duben 2010, prohlížeče s tržním podílem nad 5%
Firefox 3 (34,7%) IE8 (26,6%)
IE7 (17,7%) IE6 (7,8%)
Chrome 4 (4,9%) - Opera 10 (4,3%) -
Opera 9 (1,3%) -

Zdroj tržních podílů: Prohlizece.info

Když sečteme prohlížeče, které jste podporovali, vycházelo vám 86%. Ale taky 14% uživatelů prohlížečů ve škatulce Nepodporujeme.

Hmmm…? Neříkal jsem vám, že pětiprocentní hranice je možná jen v pohádkách?

Pojďme do roku 2014. Pokud máte problémy se srdcem když musíte ladit pro příliš mnoho prohlížečů, radši tabulku přeskočte. Vy ostatní — hluboký nádech!

Duben 2014, prohlížeče s tržním podílem nad 5%
Chrome (30,3%) Firefox (26,6%)
IE11 (12,4%) IE10 (3,8%) -
IE9 (3,6%) - IE8 (6,5%)
Opera (3,8%) - Safari (0,9%) -
Android 4.2 (0,5%) - Android 4.1 (3,2%) -
Android 4.0 (1,5%) - Android 2.3 (0,9%) -
Mob. Safari (2%) - Mob. Chrome (2%) -
IE Mobile 10 (0,3%) - Opera Mobile (0,3%) -
Opera Mobile (0,2%) -

Zdroj tržních podílů: Rankings.cz

V roce 2014 je to na jednu stranu jednodušší — všechny desktopové prohlížeče mají autoupdate nebo alespoň častý update. Na druhou stranu, prohlížečů je víc, nemluvě o specifikách těch mobilních.

Kdybychom tedy podporovali jen prohlížeče nad pětiprocentní podíl trhu, zahodíme tím skoro čtvrtinu uživatelů. Blbý, co?

Pojďme si limit snížit. Budeme podporovat jakýkoliv prohlížeč nad 2% trhu:

Duben 2014, prohlížeče s tržním podílem nad 2%
Chrome (30,3%) Firefox (26,6%)
IE11 (12,4%) IE10 (3,8%)
IE9 (3,6%) IE8 (6,5%)
Opera (3,8%) Safari (0,9%) -
Android 4.2 (0,5%) - Android 4.1 (3,2%)
Android 4.0 (1,5%) Android 2.3 (0,9%) -
Mob. Safari (2%) Mob. Chrome (2%)
IE Mobile 10 (0,3%) - Opera Mobile (0,3%) -
Opera Mobile (0,2%) -

Zdroj tržních podílů: Rankings.cz

Takhle nám utečou jen 4% uživatelů. To je lepší, ne? Jenže…

Na pohádky o procentech se raději vykašlete úplně

Model „koukáme se do statistik a rozhodujeme se o podpoře či nepodpoře konkrétních prohlížečů“ má totiž stejně jako model „na Twitteru psali, že IE8 už není potřeba podporovat, takže na něj pečeme“ docela dost problémů:

  1. Od webu vždy někoho odstřihnete — 4 procenta jsou lepší než 25. Pořád to ale mohou být důležitá 4%. A rozdíl v množství mezi čtyřmi a pětadvaceti procenty v případě, že všechny prohlížeče podporujeme plně je obrovský.
  2. Nezohledňují vaše konkrétní čísla — Může vám být úplně jedno jaká čísla vycházejí mě, mohou vám být ukradené české průměry, nemluvě o těch světových. Ty berte jako výchozí bod pro vaše úvahy, hodí se třeba k odsledování trendů. Ale statistiky sledujte svoje vlastní.
  3. Nezohledňují byznys strategii firmy — Z pohledu webaře a průměrných čísel je taková Opera Mini příšerná a ještě k tomu málo používaná. Než ji vyškrtnete, zamyslete se zda například vaše cílová skupina nesedí na venkově o obvzláště pomalého mobilního internetu a ráda tedy po Opeře Mini sáhne.
  4. Nevidí budoucí posuny na trhu — Windows Phone má dnes zanedbatelný podíl. OK. Opravdu ale Microsoftu nevěříte ani za rok, za dva? Většinu webu děláme s vyhlídkou na několik let dopředu. Další příklad: nebudeme podporovat zcela nový Android Browser 4.4 jen proto, že zatím má jen malý podíl trhu? Blbost.
  5. Černobílé vidění problému — Aneb příliš málo škatulek. Máme jen dvě: podporujeme a nepodporujeme. Ve škatuli podporovaných prohlížečů pak máme supermoderní Chrome hned vedle obstarožního IE8. Znamená to, že se náš web má v obou prohlížečích zobrazovat a chovat stejně?

Všechny prohlížeče podporujte, každý jinak a vylepšete pracovní postupy

Nemám ambici vám tady poradit konkrétní způsob rozhodování, které prohlížeče podporovat a jak. Pokud si z článku odnesete to, že „IE8 má pod pět procent, už ho podporovat nemusíme!” slušný webař neříká, budu hrozně spokojený. Následující část berte jako důsledek autorovy nechuti do negativních zakončení článků. :-)

Jak tedy dál? Zhruba to načrtneme.

V Yahoo už dávno vymysleli odstupňovanou podporu prohlížečů. Napíšete web pro průměrně schopný prohlížeč, pro nadprůměrně schopné uživatelský prožitek obohatíte, pro nadprůměrně neschopné uživatelský prožitek degradujete.

Tím bychom sice vyřešili problém z bodu 5. – zbavíme se černobílého vidění. Prohlížečů je dnes ale příliš mnoho. Mnoho je i jejich verzí a platforem. Tady se dotýkáme i problému s testováním – i kdybychom měli krtečkovy kalhoty a v kapsách tucty zařízení, vždy nám nějaká budou chybět a někde se nám ten web prostě rozpadne.

A tak je z pohledu vývojářského lepší strategie „Základní obsah a funkčnost všude. Cokoliv navíc podle aktuálních schopností prohlížeče.“, kterou načrtnu jen velmi zhruba:

  • Necílit na konkrétní prohlížeče, ale na technické vlastnosti a stupňovitou podporu určovat nikoliv pro celý web, ale pro jeho jednotlivé komponenty.
  • Používat rozumné pracovní postupy: progressive enhancement a detekci vlastností, nikoliv prohlížečů.
  • Klienty vzdělávat o odstupňované podpoře a trpělivě je učit, že v žádném případě na webu nemohou dostat stejné zobrazení/funkčnost všude.
  • Testovat na rozumném množství reálných zařízení.

Shrňme si tedy všechny myšlenky v článku:

  • Zapomeňte na pěti– nebo jakoukoliv jinou hranici pro nepodporu prohlížečů.
  • Zobrazení hlavního obsahu nebo funkčnosti zajistěte ve všech prohlížečích. Odstupňujte podporu na úrovni UI komponent. Používejte progressive enhancement a detekci vlastností.
  • Sledujte vlastní čísla, svou byznys strategii a trendy na trhu.

Abych se vrátil k pohádkovému příměru — porazíte draka nikoliv tím, že za ním půjdete a budete usekávat hlavy, ale tím, že budete konstruovat princezny co drakovi nechutnají.