Pro webové vývojáře je k dispozici velké množství rozhraní. Tato prezentace poskytuje souhrnný přehled různých technologií, které jsou definované a mohou být i v prohlížeči dostupné.
Každé API je souhrn definic technologií, které by měl prohlížeč podporovat. Je však důležité podotknout, že ne každý prohlížeč podporuje každé API, některá mohou být podoporována třeba jen částečně a nebo vůbec.
DOM je objektová reprezentace stromové struktury XML (tedy i HTML nebo SVG) dokumentu. Každý uzel ve stromě je nějaký objekt reprezentující prvek dokumentu. Mnohá z rozhraní definovaných skrz DOM jsou zcela základní pro práci s webovou stránkou.
Základní rozhraní:
Toto rozhraní umožňuje přijímat informaci o změnách v intenzitě světla detekovaných pomocí senzoru. Změna intenzity osvětlení je oznámena pomocí DeviceLightEvent, který má hodnotu value, vyjadřující intenzitu osvětlení v luxech.
Toto API slouží ke čtení různých druhů čárových kódů. Poskytuje rozhraní BarcodeDetector, které nabízí metodu detect(). Ta přijímá jako argument obrázek daného čárového kódu a vrací promise, který naplní objekty detectedBarcode, které obsahují především rawValue, tedy řetězec s obsahem kódu.
Toto API slouží ke zjišťování stavu baterie zařízení, na kterém je stránka otevřena. Rozšiřuje window.navigator
o metodu navigator.getBattery(),
kter8 vrací objekt BatteryManager.
Tento objekt je vybaven sadou vlastností (jako charging) ukazující, zda se baterie nabíjí. Také poskytuje několik událostí týkajících se změn v nabití baterie.
Úkolem tohoto rozhraní je posílat požadavky na server těsně před zavřením stránky. Je tedy zaručeno, že požadavek bude odeslán ještě před tím, než je stránka opuštěna.
Hlavní využití tohoto API je posílání diagnostických dat a uživatelské aktivity. Hlavní metodou je navigator.sendBeacon(). Ta dostává argumenty url a data, které určují kam a co se má poslat. Výhodou této metody je, že zajišťuje spolehlivé odesílání dat, aniž by bylo nutné vyčkávat před nahráním nové stránky.
Jak název napovídá, toto API poskytuje rozhraní pro práci s okolními zařízeními pomocí protokolu bluetooth.
Hlavní rozhraní:
BluetoothDevice
;Toto API zprostředkovává komunikaci mezi dvěma browsing context ze stejného zdroje (origin). Tedy umožňuje komunikovat dvěma otevřeným oknům nebo panelům prohlížeče. Jediným rozhraním tohoto API je BroadcastChannel, který nabízí několik metod a událostí:
BroadcastChannel()
– slouží k vytvoření nového kanálu nebo připojení se k existujícímu;Podobně jako DOM slouží k manipulaci s HTML, CSSOM umožňuje provádět dynamické úpravy CSS.
Hlavní rozhraní:
window.screen
a poskytuje informace o obrazovce, na které je webová stránka otevřena.Toto API zjednodušuje práci s CSS ve skriptech, protože nabízí hodnoty z CSS reprezentované jako typované objekty. To je jak pro vývojáře, tak pro počítač snažší než používání obyčejných stringů pro definici CSS-hodnot.
Hlavní rozhraní:
parse()
, která převádí řetězcové reprezentace CSS-hodnot na objektové.Tento modul umožňuje práci s CSS-pravidlem @counter-style, které umožňuje definovat vlastní styl číslování (tedy například dovoluje definovat seznam s vlastním značením odrážek). Jediným rozhraním je CSSCounterStyleRule, které je potomkem CSSRule.
counter-style
se dá použít pouze ve Firefoxu, a to ještě ne zcela.
Toto rozhraní umožňuje práci s dynamickým nahráváním fontů podobně jako CSS-pravidlo @font-face.
Hlavní rozhraní:
Toto API nabízí worklet PaintWorklet, který dovoluje definovat vlastní CSS-funkci paint() vracící nějakou hodnotu typu image. Tento obrázek je v ní definován programem.
Praktické použití vypadá zhruba takto (nejprve je vytvořen nový paintWorklet pomocí funkce registerPaint()):
V hlavním HTML je uvnitř tagu <script>
následně nutno daný worklet registrovat:
Paint()
je potom možno přiřadit jako hodnotu jakémukoliv tagu, který přijímá obrázek (například background-image
).
Canvas API umožňuje kreslit obrázky s pomocí skriptu na HTML element canvas.
Hlavní rozhraní:
Toto API umožňuje komunikovat dvěma skriptům, které běží v různých browsing kontextech* ve stejném dokumentu. Komunikace probíhá přes jeden obousměrný kanál.
Hlavním komunikačním rozhraním je MessageChannel. Ten je vybaven dvěma porty (port1 a port2), které slouží ke komunikaci dvou skriptů. Port1 je na té straně, která kanál vytváří.
Porty jsou instancemi rozhraní MessagePort. To posílá zprávu pomocí metody postMessage() a poslouchá pomocí události onmessage
Toto API zajišťuje přístup k funkcím clipboardu (schránky), tedy ke cut, copy a paste. Dále umožňuje číst aktuální obsah schránky. K používání funkcí tohoto API je potřeba povolení uživatele.
Ke schránce se přistupuje skrz navigator.clipboard
, což je instance rozhraní clipboard. To umožňuje s pomocí funkcí read() a write() měnit a číst obsah schránky.
Zásadní složkou je také ClipboardEvent, tedy událost, která může být buď cut, copy nebo paste a informuje program o těchto příkazech.
Toto API umožňuje zaznamenávat informace do konzole, slouží tedy především k posílání debugovacích zpráv. Prakticky nabízí jediné rozhraní console, které nabízí celou řadu užitečných metod.
Některé metody console:
S pomocí tohoto API je možno vyzvat uživatele, aby sdílel nějaký z kontaktů uložených na jeho zařízení.
K hlavnímu rozhraní se přistupuje přes navigator.contacts
, jedná se o rozhraní ContactsManager. To nabízí metodu select(), která vyzve uživatele ke zvolení některého ze svých kontaktů.
Pomocí tohoto API mohou webové stránky ukládat přihlašovací údaje uživatelů. Je to spoj do správce hesel daného internetového prohlížeče.
Hlavní rozhraní:
Toto API pomáhá řešit různá kódování textu.
Hlavní rozhraní:
TextDecoder
.Toto API slouží k přehrávání obsahu chráněného DRM (digital restrictions management).
API obsahuje rozhraní MediaKeys, které poskytuje klíče pro rozkódování dat zobrazovaných pomocí HTMLMediaElement. Skrz toto rozhraní se také dá dostat k instanci MediaKeySession, která zprostředkovává výměnu zpráv s modulem pro rozšifrovávání (content decryption module).
MediaKeys
se získávají skrz rozhraní MediaKeySystemAccess, které je přístupné přes Navigator.
Toto API definuje metodu pro získávání zdrojů ze zvolené adresy. Obecně definuje požadavek a odpověď (Request a Response).
Hlavní metodou Fetch
je Window.fetch() / WorkerGlobalScope.fetch(), je tedy přístupná z prakticky všech kontextů. Jako argumenty přijímá buď výše zmíněný request, nebo URL hledaného zdroje. Vrací promise na Response.
Toto API jsou vlastně dvě API dohromady. Umožňují webovým aplikacím pracovat s virtuálním souborovým systémem (nepracuje se skutečnými soubory na počítači, ale vytváří si vlastní). Hlavní a častěji používané je asynchronní API, protože nemůže zablokovat celý prohlížeč. Synchronní API by se mělo používat méně, má stejná rozhraní jako asynchronní verze, jen je za jejich názvy vždy napsáno slovo Sync.
Hlavní rozhraní asynchronního API je:
window.requestFileSystem()
. Obsahuje odkaz na svůj root.FileSystem
, tedy pro adresář a soubor (FileSystemDirectoryEntry a FileSystemFileEntry).Toto API umožňuje webové stránce interagovat se soubory file-systému (místní disk nebo cloud). Slouží především k otevření dialogového okna, které uživateli umožní zvolit některý soubor nebo adresář.
Metody otevírající výběrová okna jsou Window.showOpenFilePicker() a Window.showDirectoryPicker().
S pomocí výše zmíněných metod se získává instance některého z potomků FileSystemHandle, který reprezentuje soubor nebo adresář (FileSystemFileEntry a FileSystemDirectoryEntry).
Toto API dále nabízí rozhraní FileSystemWritableFileStream, které umožňuje zapisovat do vybraného souboru. Získává se skrz FileSystemFileEntry.
Toto API umožňuje vybraný element zobrazovat na celou obrazovku.
API přidává po jedné metodě do rozhraní Document a Element:
Toto API umožňuje detekovat vstup gamepadů a podobných herních ovladačů.
Dalo by se říct, že hlavním rozhraním je Gamepad, které jako vlastnosti nabízí přístup k tlačítkům a páčkám daného ovladače a informace o jejich aktuálním stavu. Je možno získat jeho instanci dvěma metodami – za prvé je to díky události gamepadconnected, která podává zprávu o tom, jaký ovladač byl připojen, a za druhé je to skrz metodu Navigator.getGamepads(), která vrací pole ovladačů připojených do daného zařízení.
Toto API nabízí možnost zjistit aktuální geografickou polohu zařízení, na němž je webová stránka otevřena. Aby to bylo možné, musí být aktivováno povolení geolocation, pokud tomu tak není, je k povolení uživatel vyzván při použití metod z tohoto API.
Centrální třídou je Geolocation, ta se získává skrz navigator.geolocation. Její metody jsou:
Toto API umožňuje definovat prvky HTML s funkcí drag and drop, tedy prvky, které je možné uchopit myší a přetáhnout na nějaké jiné místo.
Součástí tohoto API je velké množství událostí, které popisují, co se zrovna děje se zadaným objektem. Prakticky se používají tím způsobem, že jsou vloženy do definice HTML. Součástí API je také rozhraní DataTransfer, které ukládá data o objektu, který je zrovna přetahován. Ukládá nejen to, co tento objekt obsahuje, ale také jaká ze tří akcí (move, copy, link) s ním má být provedena v cíli.
Příklad: Zde je vidět přiřazení několika událostem dvěma prvkům. Přetahovatelný prvek může být přenesen na místo, které povoluje akci move. Pokud se tak stane, dojde na událost ondrop.
Někdy je potřeba, aby webová aplikace dokázala pracovat s HTML vloženým ze strany klienta. Toto API slouží k tomu, aby to bylo bezpečné.
Rozhraním, které zajišťuje toto API, je Sanitizer. Nabízí dvě metody:
Toto API nabízí nástroje na procházení historie prohlížeče. Hlavním přístupovým bodem je rozhraní History. Obecně se instance získává skrz window.history. Nabízí několik metod:
Toto API slouží k zachycování obrázků a videí skrz fotoaparát. Zároveň se skrz toto API dá přistupovat k nastavení daného fotografického zařízení.
Základním krokem při používání tohoto API je zisk MediaStreamTrack. To je ukázáno na následujícím příkladu z MDN:
Následně je daný MediaStreamTrack předán nové instanci ImageCapture. Toto rozhraní obsahuje metodu takePhoto(), která přijme jako argument nastavení fotoaparátu a vrátí obrázek jako Blob.
Toto API umožňuje na straně klienta ukládat velká množství strukturovaných a indexovaných dat. Je to vlastně objektová databáze založená na JavaScriptu, každý objekt má svůj klíč, na jehož základě je možné ho nalézt.
Jedná se o obsáhlé API. Základním rozhraním je IDBDatabase, to reprezentuje připojení k dané databázi. Je přes něj možno požádat o databázovou transakci, která je reprezentována pomocí rozhraní IDBTransaction. Skrz toto rozhraní je možno žádat o další rozhraní, která spravují vkládání a hledání v databázi.
Toto API umožňuje sledovat, zda se dva prvky prolínají a hlavně jak moc je daný prvek viditelný. Toho se používá například při nahrávání stránek s nekonečným scrollováním, určování viditelnosti reklamy nebo rozhodování, zda má cenu přehrávat některé animace (zda jsou vůbec vidět).
Rozhraním, které toto API implementuje, je IntersectionObserver. Ten hlásí změny ve viditelnosti sledovaného prvku.
Toto API umožňuje zjistit informace o tom, zda daný typ média lze na zařízení přehrávat a jak efektivně. Cílem je využít co možná nejefektivněji možnosti zařízení při přehrávání daného média.
Praktické fungování je založeno na tom, že se definuje slovník typu MediaConfiguration, který popisuje daný video nebo audio soubor. Následně je možno tento slovník použít jako argument v metodách MediaCapabilities:
Informace jsou podávány pomocí rozhraní MediaCapabilitiesInfo, které obsahuje následující informace ve formátu boolean:
Skrz toto API je řízeno streamování videa a zvuku.
Jedná se o poměrně rozsáhlé API, zde je přehled jeho hlavních rozhraní:
Díky tomuto API může webová stránka poskytnou metadata o médiu, které přehrává. Díky tomu je možno uživateli snadno zobrazit, co je přehráváno. Dále je skrz toto API umožněno ovládání přehrávání standardními postupy, aniž by bylo nutno například danou stránku přímo otevírat.
Funkce tohoto API se získávají přes rozhraní MediaSession, které je přístupné na navigator.mediaSession
. To obsahuje metadata aktuálně přehrávaného média (ve formě rozhraní MediaMetadata) a stav, v jakém přehrávání aktuálně je (none, paused, playing). Skrz toto rozhraní je možno nastavit sledování akcí, jako je zastavení nebo spuštění přehrávání (pro všechny možnosti viz MediaSessionAction).
Toto API umožňuje streamovat mediální obsah, aniž by bylo nutné instalovat jakýkoliv plugin, pouze skrz prvky HTML video a audio.
Hlavním rozhraním je MediaSource, které reprezentuje celkově nějaké video či zvuk, který lze přehrát v HTML prvcích. Toto rozhraní obsahuje seznam rozhraní nazvaných SourceBuffer, což jsou jednotlivé kusy daného média, které jsou postupně přehrávány.
Také je pomocí tohoto API možno získat informace o kvalitě přehrávání, a to přes rozhraní VideoPlaybackQuality, jehož instance se vytváří pomocí HTMLVideoElement.getVideoPlaybackQuality()
. Obsahuje především informace o tom, kolik snímků bylo ztraceno.
Toto API úzce souvisí s Media Capture and Streams a WebRTC API. Umožňuje zachytit data generovaná MediaStream nebo HTMLMediaElement. Data převezme jediné hlavní rozhraní MediaRecorder a předá je k analýze, zpracování nebo uložení na disk.
Toto API poskytuje data, která se používají k měření výkonu webových stránek. Může být změřena například doba potřebná k uvolnění předchozí stránky nebo jak dlouho trvá vyhledávání domén atd. Shromážděné údaje o výkonu na straně klienta pak mohou být přenášeny na server pomocí XMLHttpRequest nebo jinými technikami. Navigation Timing zahrnuje rozhraní Performance, které předává dvě vlastnosti – timing a navigation.
Příklad: K výpočtu celkové doby potřebné k načtení stránky se může použít následující kód:
Rozhraní poskytuje informace o připojení systému (např. „Wifi“, „cellular“ atd.). To lze použít k výběru obsahu s vysokým nebo nízkým rozlišením na základě připojení uživatele. Celé API se skládá z NetworkInformation, ke kterému se přistupuje přes Navigator s jedinou vlastností – Navigator.connection.
Toto API poskytuje informace o aktuálním stavu viditelnosti stránky a kdy se dokument stane viditelným nebo skrytým. Když uživatel minimalizuje okno nebo přepne na jinou kartu, rozhraní API odešle visibilitychange událost o změně stavu stránky. Toto rozhraní přidává do rozhraní Document vlastnosti Document.hidden, Document.visibilityState a Document.onvisibilitychange.
Toto rozhraní má snížit počet kroků potřebných k provedení platby online. Jeho cílem je zapamatovat si údaje o uživateli, které jsou poté předány obchodníkovi bez nutnosti formuláře HTML. Obsažená rozhraní jsou PaymentAddress, PaymentRequest, PaymentRequestEvent, PaymentRequestUpdateEvent, PaymentMethodChangeEvent, PaymentResponse a MerchantValidationEvent.
Toto API podporuje měření latence na straně klienta v aplikacích. Definuje DOMHighResTimeStamp, který ukládá časovou hodnotu v milisekundách. Rozhraní osahuje dvě metody – now() a toJSON(). Metoda now() vrátí DOMHighResTimeStamp a toJSON() vrací serializovaný objekt Performance.
Do API patří mnoho dalších rozhraní – Performance, PerformanceEntry, PerformanceFrameTiming, PerformanceMark, PerformanceMeasure, PerformanceNavigationTiming, PerformanceObserver a PerformanceResourceTiming.
API definuje rozšíření k Performance rozhraní na podporu měření latence na straně klienta v aplikacích. Rozšíření poskytuje rozhraní k načtení metrik PerformanceEntry na základě konkrétních kritérií.
Úkolem tohoto API je vyhledávat a sledovat úlohy, které trvají "dlouho", tedy dle standardu 50 milisekund. Důvodem je, že takové úlohy zabírají příliš místa v hlavním vláknu.
Toto rozhraní vlastně rozšiřuje PerformanceObserver o možnost sledovat nový typ PerformanceEntry nazvaný PerformanceLongTaskTiming. Ten obshauje informace v rámci rozhraní TaskAttributionTiming.
Úkolem tohoto API je nabídnout vývojářům nástroje pro měření, kolik času trvá prohlížeči prokousat se skrz jeden snímek v event loop.
Základním nástrojem by mělo být PerformanceFrameTiming, které je rozšířením PerformanceEntry, a registruje se na měření nějaké metriky a shromažďuje informace. Následně je na tuto metriku (zde "frame") zaregistrován PerformanceObserver, který poté výsledky měření oznamuje.
Rozhraní poskytuje způsob registrace úkolů, které se mají spouštět v service worker v pravidelných intervalech se síťovým připojením. Úkoly se označují jako periodické požadavky na synchronizaci pozadí. API umožňuje webovým aplikacím upozornit svého servisního pracovníka na provádění libovolných aktualizací v pravidelných časových intervalech. Jsou poskytnuta rozhraní PeriodicSyncManager a PeriodicSyncEvent.
API poskytuje konzistentní programový způsob dotazování na stav oprávnění API přidělených aktuálnímu kontextu. Například, zda bylo uděleno nebo odepřeno oprávnění k přístupu ke konkrétnímu rozhraní API. Poskytovaná rozhraní jsou Navigator.permissions a WorkerNavigator.permissions, Permissions a PermissionStatus.
Rozhraní umožňuje webovým stránkám vytvářet pohyblivé okno videa nad ostatními okny. Uživatelé mohou pokračovat v konzumaci médií při interakci s jinými weby nebo aplikacemi v jejich zařízení. Poskytované rozhraní PictureInPictureWindow představuje pohyblivé okno videa. API přidává metody k rozhraní HTMLVideoElement a Document umožňující přepínání pohyblivého okna videa – HTMLVideoElement.requestPictureInPicture() a Document.exitPictureInPicture().
API rozšiřuje existující modely událostí ukazovacího zařízení, aby fungovala i jiná ukazovací zařízení než je myš (pero, dotyk, atd.). Události ukazatele jsou událostmi DOMu. Jsou navrženy tak, aby vytvářely jeden model události DOM pro zpracování vstupních ukazovacích zařízení. Primární rozhraní je PointerEvent. Standard také obsahuje rozhraní Element a Navigator.
API poskytuje vstupní metody založené na pohybu myši v čase, nejen na absolutní pozici. Dokáže uzamknout cíl událostí myši na jeden prvek, eliminovat omezení pohybu myši v jednom směru a odstranit kurzor. API je užitečné pro všechny aplikace, které vyžadují myš pro ovládání pohybů, otáčení objektů atd. Tlačítka se poté uvolní pro další akce. Mezi příklady patří aplikace pro prohlížení map nebo satelitních snímků.
API umožňuje zjistit, kdy se uživatel nachází v blízkosti zařízení, a reagovat na takovou změnu. Například vypnutí obrazovky smartphonu, když uživatel telefonuje se zařízením blízko ucha. Když senzor zjistí změnu mezi zařízením a objektem, upozorní prohlížeč. Prohlížeč dostane takové oznámení a vyhodí DeviceProximityEvent a v případě hrubší změny UserProximityEvent.
API dává webovým aplikacím možnost přijímat zprávy, které byly zaslány ze serveru, ať už je aplikace v popředí nebo aktuálně načtená v uživatelském agentu. To umožňuje vývojářům doručovat asynchronní oznámení a aktualizace uživatelům. Obsažená rozhraní jsou PushEvent, PushManager, PushMessageData a PushSubscription.
API umožňuje snadno sledovat a účinně reagovat na změny ve velikosti obsahu nebo ohraničovacího rámečku prvku. Obsahuje rozhraní ResizeObserver a ResizeObserverEntry.
API umožňuje načítání a analýzu podrobných údajů o časování sítě týkajících se načítání prostředků aplikace. Aplikace tyto informace může použít k určení doby, kterou trvá načtení konkrétního zdroje (jako je například obrázek nebo skript). Rozhraní PerformanceResourceTiming také obsahuje několik vlastností časování sítě. API obsahuje dvě metody, které rozšiřují rozhraní Performance – clearResourceTimings() a setResourceTimingBufferSize().
Rozhraní zavádí doplňky do rozhraní Media Capture a Streams API, které uživateli umožňují vybrat obrazovku nebo část obrazovky, a tento stream lze poté zaznamenat nebo sdílet s ostatními v síti. Jedinou metodou je MediaDevices.getDisplayMedia().
API poskytuje způsob, jak zabránit zařízením ve ztlumení nebo uzamčení obrazovky, když aplikace potřebuje pokračovat v provozu. Obsažená rozhraní jsou WakeLock, WakeLockSentinel a Navigator.wakelock.
API zpracováva připojení k serveru, příjem událostí/dat, chyby, ukončení připojení atd. Všechny funkce jsou definovány rozhraním EventSource.
API v zásadě funguje jako proxy server, který se nachází mezi webovými aplikacemi, prohlížečem a sítí (je-li k dispozici). Umožňuje například vytvářet efektivní offline prostředí, zachytávat požadavky na síť, provádět příslušné akce na základě dostupnosti sítě a synchronizovat data na pozadí. Obsažená rozhraní jsou Cache, Client, ServiceWorker a mnoho dalších.
Cílem tohoto API je umožnit vývojářům registrovat v prohlížeči služby, které jsou dostupné i offline. Jedná se například o služby jako předstažené novinové články a podobně.
Hlavním rozhraním je ContentIndex. Mezi jeho hlavní metody patří:
Toto API také rozšiřuje rozhraní ServiceWorker o možnost získat instanci ContentIndex.
API webům dává možnost zjistit, kolik místa mohou využívat a kolik již používají. Navíc upozorní web dříve, než uživatelský agent zlikviduje webová data, aby uvolnil místo pro jiné věci.
API poskytuje vloženému obsahu způsob, jak získat neomezený přístup k úložišti (obvykle přístup pouze v kontextu first-party). Metody tohoto API jsou implementovány na rozhraní Document. Prostřednictvím metody Document.requestStorageAccess() vyžaduje neomezený přístup k úložišti first-party a přístup kontroluje prostřednictvím metody Document.hasStorageAccess().
API umožňuje JavaScriptu programově přistupovat k datům přijatým po síti a zpracovávat je podle potřeby vývojáře. Streamování zahrnuje rozložení dat přijímaných po síti na malé bloky a jejich následné zpracování kousek po kousku. API obsahuje mnoho rozhraní. Pravděpodobně nejdůležitějšími, které slouží ke čtení a zapisování streamů, jsou ReadableStream a WritableStream.
API nabízí schopnost interpretovat aktivitu prstu (nebo stylusu) na dotykových obrazovkách nebo trackpadech. Rozhraní TouchEvent shrnuje všechny kontaktní body, které jsou v současné době aktivní, Touch pak představuje jeden kontaktní bod a jeho informace.
API je součást standardu URL. Definuje platný Uniform Resource Locator. Přistupuje a manipuluje s URL. Definuje koncepty domén, IP adresy atd. API zahrnuje rozhraní URL a URLSearchParams.
API nabízí možnost přístupu k vibračnímu hardwaru, který umožňuje softwarovému kódu poskytovat fyzickou zpětnou vazbu uživateli tak, že se zařízení třese. Vibrace se ovládá jedinou metodou a to Navigator.vibrate().
Příklad: Při zadání jedné hodnoty zavibruje hardware jednou, např. zde po dobu 200 ms:
Pro více hodnot (v podobě pole) zařízení střídavě vibruje a odpočívá.
API poskytuje explicitní mechanismus pro dotazování a úpravy vlastností vizuálního výřezu okna. Rozhraní VisualViewport představuje vizuální výřez pro dané okno.
API umožňuje synchronizovat a načasovat změny prezentace webové stránky, tj. animaci prvků DOM. API přidává některé nové funkce do rozhraní document a element, například Document.timeline a Element.animate(). Zahrnuje i mnoho dalších rozhraní. Například Animation poskytuje ovládací prvky a časovou osu pro zdroj animací.
API poskytuje výkonný a všestranný systém pro ovládání zvuku na webu. Vývojář může zvolit zdroj zvuku, přidávat efekty do zvuku, vytvářet zvukové vizualizace, aplikovat prostorové efekty a mnoho dalšího. API má mnoho rozhraní. Rozhraní, která definují zdroje zvuku jsou například AudioScheduledSourceNode, AudioBuffer nebo MediaStreamTrackAudioSourceNode. Dále například rozhraní AnalyserNode představuje uzel, který je schopen (pro účely analýzy a vizualizaci dat) poskytovat frekvenční a časové informace v reálném čase.
API je rozšířením Credential Management API. Umožňuje silné ověřování pomocí kryptografie veřejného klíče, umožňující ověřování bez hesla a bez SMS. API má dvě základní metody, které odpovídají registraci a přihlášení – navigator.credentials.create() a navigator.credentials.get(). Je zde zahrnuto monoho rozhraní, příkladem může být Credential, které poskytuje informace o entitě a důvěryhodnosti. Dále pak CredentialsContainer zpřístupňuje metody pro vyžádání přihlašovacích údajů a upozornění agenta uživatele, když dojde k událostem, jako je úspěšné přihlášení nebo odhlášení.
API umožňuje skriptu používat kryptografická primitiva k vytváření systémů pomocí kryptografie. Všechny metody jsou k dispozici na rozhraní SubtleCrypto.
API umožňuje webovým stránkám řídit zobrazení systémových oznámení koncovému uživateli. Lze je zobrazit, i když uživatel přepnul karty nebo přešel do jiné aplikace. Mezi důležité rozhraní patří Notification a ServiceWorkerRegistration. Notification definuje objekt oznámení a ServiceWorkerRegistration zahrnuje metody pro řízení zobrazování oznámení.
API poskytuje mechanismy, pomocí kterých mohou prohlížeče ukládat data mnohem intuitivnějším způsobem než pomocí souborů cookie. API rozšiřuje Window o dvě vlastnosti, prostřednictvím kterých jsou tyto mechanismy k dispozici – Window.sessionStorage a Window.localStorage. Vyvoláním jedné z nich se vytvoří instance Storage, pomocí které lze datové položky nastavit, načíst a odstranit.
API umožňuje spustit skript na pozadí odděleně od hlavního spuštění webové aplikace. Výhodou je, že pracné zpracování lze provádět v samostatném vlákně, což umožňuje spuštění hlavního nezpomaleného vlákna. Mezi důležitá rozhraní patří Worker, který představuje běžící pracovní vlákno. Dále například rozhraní WorkerLocation definuje absolutní cestu ke skriptu provedeného rozhraním Worker.
WebGL (Web Graphics Library) vykresluje vysoce výkonné interaktivní 3D a 2D grafiky v libovolném kompatibilním webovém prohlížeči bez použití plugins. API má velké množství rozhraní. Mezi důležitá patří WebGLRenderingContext a WebGL2RenderingContext. WebGLRenderingContext poskytuje rozhraní pro OpenGL ES 2.0 vykreslování grafiky pro HTML canvas element. WebGL 2 je hlavní aktualizace WebGL a je poskytována prostřednictvím rozhraní WebGL2RenderingContext, které je založeno na OpenGL ES 3.0 pro HTML canvas element.
WebRTC (Web Real-Time Communication) je technologie, která umožňuje webovým aplikacím a webům zaznamenávat a volitelně streamovat zvuková a obrazová média. Také umožňuje vyměňovat libovolná data mezi prohlížeči bez nutnosti použití prostředníka. Mezi nejdůležitější rozhraní patří RTCPeerConnection, které představuje spojení mezi místním počítačem a vzdáleným partnerem. Jakmile je spojení navázáno a otevřeno, lze k němu přidat mediální toky MediaStream nebo datové kanály RTCDataChannel.
API se používá k podpoře vykreslování 3D scén k reprezentaci virtuální reality. To má řadu zajímavých aplikací, od virtuálních prohlídek produktů a interaktivních tréninkových aplikací až po pohlcující hry z pohledu první osoby. Přístup k API zajišťuje vlastnost navigator.xr, která vrací objekt XRSystem. Pomocí rozhraní XRSystem lze vytvářet XRSession, které představují skutečné relace AR nebo VR.
API poskytuje podporu pro vytvoření virtuální reality. Informace o poloze a pohybu z displeje se převádějí do pohybu kolem 3D scény. API se již nedoporučuje a je v současné době nahrazeno WebXR Device API.
API slouží ke zobrazení časovaných textových stop (například titulků) pomocí prvku track. Využívají se dvě rozhraní – VTTCue interface a VTT Region interface. VTTCue interface se pomocí různých atributů používá k přípravě a změně. VTT Region interface použít k definování nového objektu k uložení.
API umožňuje otevřít obousměrnou interaktivní komunikační cestu mezi uživatelským prohlížečem a serverem. WebSocket je primární rozhraní pro připojení k serveru a následné odesílání a přijímání dat o připojení. WebSocket odesílá dvě události – CloseEvent při zavření připojení a MessageEvent při přijetí zprávy ze serveru.