Szerző: Gálffy Csaba

2015. március 30. 10:15:00

Mégsem lesz egységes érintős-böngészős API

Két fontos böngészős technológiában is irányt váltott múlt héten a Google. A Dart futtatómotor mellett az érintéses bevitelt kezelő API dolgában is meggondolta magát a cég, és mégis integrálni fogja a fejlett Pointer Events API-t a Chrome-ba.

A nagy Google-fordulatoké volt a múlt hét: miután a cég bejelentette, hogy stratégiát vált a Dart nyelv kapcsán, azt is közölte, hogy az abszolút kritikus beviteli API dolgában is meggondolta magát, és mégis implementálni fogja a Pointer Events API-t a Chrome-ba. Ez váratlan fordulat, a Google ugyanis tavaly augusztusban jelentette be, hogy az alternatív API-t, az Apple-féle Touch Events-et fogja teljes mellszélességgel támogatni, a Microsoft hátterű Pointer Events-től pedig megvonja a támogatást böngészőjében.

A pálfordulást röviden indokolta a Chromium levelezőlistáján Rick Byers, egy a Blink, Chrome és Chrome OS fejlesztésén dolgozó Google-mérnök. A levél szerint a webes fejlesztői közösség nyomására változott a vállalat politikája, "az [augusztusi döntés óta] folyamatosan kaptunk visszajelzést a webfejlesztőktől, keretrendszer-fejlesztőktől és más böngészők gyártóitól, amelyek azt mutatták, hogy a Pointer Events egy nagyra értékelt kiegészítése lenne a [webes] platformnak."

A levélben a Google gyakorlatilag elismeri, hogy döntése félrecsúszott: augusztusban a cég azt remélte, hogy a Touch Events exkluzív támogatásáról szóló bejelentését az iparág egységesen fogja követni, és felsorakozik az Apple-féle API mögött. Erről szó sincs, az eltelt időben a Pointer Events folyamatosan fejlődött és egyre szélesebb támogatást kapott a fejlesztők oldaláról, az API pedig lassan elindult a hivatalos webes szabvánnyá válás útján is, a W3C már hivatalosan is ajánlássá fogadta.

Mi a kontextus?

Az Apple mobilos Safari böngészőjében teljesen egyoldalúan vezette be a Touch Events API-t, az okostelefonos, később pedig a tabletes böngészési élmény javítására. A legtöbb weboldal ugyanis az egérrel való használatra épült, a böngészős technológiákból gyakorlatilag teljesen hiányzott az alternatív beviteli eszközök kezelése. A Touch Events-szel a weboldal fejlesztője támogathatott egyes gesztusokat (hosszú érintés, dupla érintés, kétujjas érintések, stb.), amelyeket a felhasználók a telefon más részein megszoktak és a böngészőben is elvárták annak működését, illetve a bevett egeres gesztusokat (például a mouse hover) helyettesíthették.

Machine learning és Scrum alapozó képzések indulnak! (x) A HWSW októberben induló gyakorlatorientált, 10 alkalmas, 30 órás online képzéseire most early bird kedvezménnyel lehet regisztrálni!

A Touch Events nem iparági szabvány, az Apple az általa kidolgozott API-t szabadalmakkal körbe is bástyázta. Ezért hiába született felkérés más szereplőktől a Touch Events szabványosítására, az Apple kategorikusan megtagadta a szabadalmak ilyenkor szükséges FRAND-licencelését, ezzel pedig hosszú időre megakasztotta a szabványosítási folyamatot. A World Wide Web Consortium azonban később úgy döntött, hogy a szabadalmak irrelevánsak, és a licencre így nincs szükség - ezzel elhárult az akadály a széleskörű támogatás és de facto iparági szabvánnyá válás elől.

Azt egyébként a Google sosem vitatta, hogy a Pointer Events, amely a Mouse Events API kiterjesztéseként jött létre, műszaki szempontból felsőbbrendű a Touch Eventshez képest (például a listener sosem blokkolja a görgetést). Azonban mivel az Apple mereven elzárkózik a Pointer Events implementálásától, a két API létezése fragmentációval fenyegette a webes platformot. A Google ilyen környezetben hozta meg a stratégiai döntést augusztusban: megvonja a támogatást a Pointer Eventstől, ezzel erőszakkal próbálva egységesíti a platformot, hiszen ha sem a mobilos Safari, sem a mobilos Chrome nem támogatja azt, akkor azzal a Pointer Events irrelevánssá válik a piacon - legalábbis erre számított a cég.

Ez még nem a vége

A keresőóriás továbbra sem elégedett a Pointer Events fejlettségével és számos komoly változást szeretne elérni az API működésében. Így a nagy kihívás most kitalálni egy olyan megoldást, amely ezeket a változásokat úgy tudja implementálni, hogy a meglévő, Pointer Events-kompatibilis weboldalak is működőképesek maradjanak. A Google ígérete szerint a jövőben szorosan együtt dolgoznak ennek érdekében a többi böngészőgyártóval a PEWG (Pointer Events Working Group) keretében, így várhatóan a Microsoft, a Mozilla és a Google együtt dolgoz majd ki egy Pointer Events API "2.0"-t. Az API-t a Google minden olyan platformon támogatni fogja, amelyre létezik a Blink böngészőmotor, így Windows, OS X, Linux, Chrome OS, Android és Android WebView is tudni fogja a képességet.

A webes fragmentációba tehát végül beleállt a Google, így a jövőben egészen biztosan két API-t kell támogatnia minden oldalnak, amely nem-egeres bevitelre is fel akar készülni. Az Apple-féle mobileszközök jelenetős piaci ereje miatt kötelező lesz a Touch Events, alternatív platformokon és böngészőkben pedig a Pointer Events lesz majd a de facto szabvány.

a címlapról