Web API
Baseline ReadyA practical reference for deciding whether a browser API is ready to use now.
- Widely available120APIs
- Newly available36APIs
- Limited support37APIs
Browse by category
queueMicrotask()
The queueMicrotask() method of the Window interface
requestAnimationFrame()
The window.
requestAnimationFrame() in workers
The cancelAnimationFrame() method of the DedicatedWorkerGlobalScope interface cancels an animation frame request previously scheduled through a call to requestAnimationFrame().
setInterval
The setInterval() method of the Window interface repeatedly calls a function or executes a code snippet, with a fixed time delay between each call.
setTimeout()
The setTimeout() method of the Window interface sets a timer which executes a function or specified piece of code once the timer expires.
structuredClone()
The structuredClone() method of the Window interface creates a deep clone of a value using the structured clone algorithm.
Credential management
The Credential interface of the Credential Management API provides information about an entity (usually a user) normally as a prerequisite to a trust decision.
isSecureContext
The isSecureContext read-only property of the Window interface returns a boolean indicating whether the current context is secure (true) or not (false).
Permissions
The permissions read-only property of the Navigator interface returns a
Web authentication
The AuthenticatorAssertionResponse interface of the Web Authentication API contains a digital signature from the private key of a particular WebAuthn credential.
Web Cryptography
The Crypto interface represents basic cryptography features available in the current context.
2D canvas
The CanvasGradient interface represents an opaque object describing a gradient.
Canvas createConicGradient()
The CanvasRenderingContext2D.
Canvas roundRect()
The CanvasRenderingContext2D.
captureStream() for <canvas>
The CanvasCaptureMediaStreamTrack interface of the Media Capture and Streams API represents the video track contained in a MediaStream being generated from a <canvas> following a call to HTMLCanvasElement.
ImageBitmapRenderingContext
The ImageBitmapRenderingContext interface is a canvas rendering context that provides the functionality to replace the canvas's contents with the given ImageBitmap.
Offscreen canvas
When using the <canvas> element or the Canvas API, rendering, animation, and user interaction usually happen on the main execution thread of a web application.
WebGL
The webglcontextcreationerror event of the WebGL API is fired if the user agent is unable to create a WebGLRenderingContext context.
WebGL2
The WebGL2RenderingContext interface provides the OpenGL ES 3.
Device orientation events
The DeviceMotionEvent interface of the Device Orientation Events provides web developers with information about the speed of changes for the device's position and orientation.
Gamepad
The Gamepad interface of the Gamepad API defines an individual gamepad or other controller, allowing access to information such as button presses, axis positions, and id.
Geolocation API
The Geolocation interface represents an object able to obtain the position of the device programmatically.
hardwareConcurrency
The navigator.
Media capabilities
The MediaCapabilities interface of the Media Capabilities API provides information about the decoding abilities of the device, system and browser.
Media capture
The InputDeviceInfo interface of the Media Capture and Streams API gives access to the capabilities of the input device that it represents.
MediaStream recording
The BlobEvent interface of the MediaStream Recording API represents events associated with a Blob.
pdfViewerEnabled
The pdfViewerEnabled read-only property of the Navigator interface indicates whether the browser supports inline display of PDF files when navigating to them.
Screen orientation
The ScreenOrientation interface of the Screen Orientation API provides information about the current orientation of the document.
Alerts
window.
BarProp
The BarProp interface of the Document Object Model represents the web browser user interface elements that are exposed to scripts in web pages.
hashchange
The HashChangeEvent interface represents events that fire when the fragment identifier of the URL has changed.
History
The History interface of the History API allows manipulation of the browser session history, that is the pages visited in the tab or frame that the current page is loaded in.
Location
The read-only location property of the Document interface returns a Location object, which contains information about the URL of the document and provides methods for changing that URL and loading another URL.
matchMedia
The Window interface's matchMedia() method
Page visibility
The Document.
Print events
The afterprint event is fired after the associated document has started printing or the print preview has been closed.
Screen
The Screen interface represents a screen, usually the one on which the current window is being rendered, and is obtained using window.
Scroll methods on elements
The scroll event fires when the document view has been scrolled.
scrollIntoView()
The scrollIntoView() method of the Element interface scrolls the element's ancestor containers such that the element on which scrollIntoView() is called is visible to the user.
Visual viewport API
The VisualViewport interface of the CSSOM view API represents the visual viewport for a given window.
Web animations
The Animation interface of the Web Animations API represents a single animation player and provides playback controls and a timeline for an animation node or source.
Window
The Window interface represents a window containing a DOM document; the document property points to the DOM document loaded in that window.
window.print()
Opens the print dialog to print the current document.
Constraint validation API
The checkValidity() method of the HTMLButtonElement interface returns a boolean value which indicates if the element meets any constraint validation rules applied to it.
CSS object model
The CSS interface holds useful CSS-related methods.
Dataset
The dataset read-only property
document.elementFromPoint() and document.elementsFromPoint()
The elementFromPoint()
DOM
The Attr interface represents one of an element's attributes as an object.
DOM Geometry
The DOMMatrix interface represents 4×4 matrices, suitable for 2D and 3D operations including rotation and translation.
DOMParser
The DOMParser interface provides the ability to parse XML or HTML source code from a string into a DOM Document.
Selection
The AbstractRange abstract interface is the base class upon which all DOM range types are defined.
XMLSerializer
The XMLSerializer interface provides the serializeToString() method to construct an XML string representing a DOM tree.
XPath
This method compiles an XPathExpression which can then be used for (repeated) evaluations.
XSLT
An XSLTProcessor applies an XSLT stylesheet transformation to an XML document to
Change event
The change event is fired for <input>, <select>, and <textarea> elements when the user modifies the element's value.
Composition events
The DOM CompositionEvent represents events that occur due to the user indirectly entering text.
Events
The CustomEvent interface can be used to attach custom data to an event generated by an application.
Focus events
The blur event fires when an element has lost focus.
input (event)
The input event fires when the value of an <input>, <select>, or <textarea> element has been changed as a direct result of a user action (such as typing in a textbox or checking a checkbox).
Keyboard events
The keydown event is fired when a key is pressed.
Mouse events
The auxclick event is fired at an Element when a non-primary pointing device button (any mouse button other than the primary—usually leftmost—button) has been pressed and released both within the same element.
Page transition events
The PageTransitionEvent event object is available inside handler functions for the pageshow and pagehide events, fired when a document is being loaded or unloaded.
Pointer Events
The gotpointercapture event is fired when an element captures a pointer using setPointerCapture().
Clipboard events
The ClipboardEvent interface of the Clipboard API represents events providing information related to modification of the clipboard, that is cut, copy, and paste events.
Compression streams
The CompressionStream interface of the Compression Streams API compresses a stream of data.
Drag and Drop
The DataTransfer object is used to hold any data transferred between contexts, such as a drag and drop operation, or clipboard read/write.
File API
The File interface provides information about files and allows JavaScript in a web page to access their content.
Streams
The ByteLengthQueuingStrategy interface of the Streams API provides a built-in byte length queuing strategy that can be used when constructing streams.
AudioWorklet
The AudioWorklet interface of the Web Audio API is used to supply custom audio processing scripts that execute in a separate thread to provide very low latency audio processing.
Encrypted media extensions
The encrypted event is fired when initialization data is found in the media that indicates it is encrypted.
Media playback quality
The HTMLVideoElement method
OfflineAudioContext
The OfflineAudioContext interface is an AudioContext interface representing an audio-processing graph built from linked together AudioNodes.
Speech synthesis
The SpeechSynthesis interface of the Web Speech API is the controller interface for the speech service; this can be used to retrieve information about the synthesis voices available on the device, start and pause speech, and other commands besides.
Text tracks
The read-only textTracks
Web Audio
The AnalyserNode interface represents a node able to provide real-time frequency and time-domain analysis information.
WebVTT cue settings
The align property of the VTTCue interface represents the alignment of all of the lines of text in the text box.
BroadcastChannel
The BroadcastChannel interface represents a named channel that any browsing context of a given origin can subscribe to.
Channel messaging
The MessageChannel interface of the Channel Messaging API allows us to create a new message channel and send data through it via its two MessagePort properties.
Dedicated workers
The DedicatedWorkerGlobalScope object (the Worker global scope) is accessible through the self keyword.
messageerror
The messageerror event is fired on a DedicatedWorkerGlobalScope object when it receives a message that can't be deserialized.
postMessage
The postMessage() method of the DedicatedWorkerGlobalScope interface sends a message to the main thread that spawned it.
Push messages
The PushEvent interface of the Push API represents a push message that has been received.
Service workers
The Cache interface provides a persistent storage mechanism for Request / Response object pairs that are cached in long lived memory.
Abortable fetch
The read-only signal property of the Request interface returns the AbortSignal associated with the request.
AbortController and AbortSignal
The AbortController interface represents a controller object that allows you to abort one or more Web requests as and when desired.
Beacons
The navigator.
Fetch
The fetch() method of the Window interface starts the process of fetching a resource from the network, returning a promise that is fulfilled once the response is available.
Server-sent events
The EventSource interface is web content's interface to server-sent events.
WebRTC
The RTCCertificate interface of the WebRTC API provides an object representing a certificate that an RTCPeerConnection uses to authenticate.
WebRTC SCTP information
The sctp read-only property of the RTCPeerConnection interface returns an RTCSctpTransport describing the SCTP transport over which SCTP data is being sent and received.
WebRTC statistics
The getStats() method of the RTCPeerConnection interface returns a promise which resolves with data providing statistics about either the overall connection or about the specified MediaStreamTrack.
WebSockets
A CloseEvent is sent to clients using WebSockets when the connection is closed.
XMLHttpRequest
The FormData interface provides a way to construct a set of key/value pairs representing form fields and their values, which can be sent using the fetch(), XMLHttpRequest.
Intersection observer
The IntersectionObserver interface of the Intersection Observer API provides a way to asynchronously observe changes in the intersection of a target element with an ancestor element or with a top-level document's viewport.
MutationObserver
The MutationObserver interface provides the ability to watch for changes being made to the DOM tree.
Navigation timing
The PerformanceNavigationTiming interface provides methods and properties to store and retrieve metrics regarding the browser's document navigation events.
Paint timing
The PerformancePaintTiming interface provides timing information about "paint" (also called "render") operations during web page construction.
Performance
The Performance interface provides access to performance-related information for the current page.
Resize observer
The ResizeObserver interface reports changes to the dimensions of an Element's content or border box, or the bounding box of an SVGElement.
Resource size
The decodedBodySize read-only property returns the size (in octets) received from the fetch (HTTP or cache) of the message body after removing any applied content encoding (like gzip or Brotli).
Resource timing
The clearResourceTimings() method removes all performance entries with an entryType of "resource" from the browser's performance timeline and sets the size of the performance resource data buffer to zero.
IndexedDB
The indexedDB read-only property of the Window interface provides a mechanism for applications to
localStorage and sessionStorage
The localStorage read-only property of the window interface allows you to access a Storage object for the Document's origin; the stored data is saved across browser sessions.
Locks
The Lock interface of the Web Locks API provides the name and mode of a lock.
Origin private file system
The FileSystemDirectoryHandle interface of the File System API provides a handle to a file system directory.
Storage manager
The StorageManager interface of the Storage API provides an interface for managing persistence permissions and estimating available storage.
Base64 encoding and decoding
The atob() method of the Window interface decodes a
Console
The console object provides access to the debugging console (e.
Font loading
The fonts property of the Document interface returns the FontFaceSet interface of the document.
Language
The language read-only property of the Navigator interface returns a string representing the preferred language of the user, usually the language of the browser UI.
Navigator
The Navigator interface represents the state and the identity of the user agent.
Online status
The onLine property of the Navigator interface returns whether the device is connected to the network, with true meaning online and false meaning offline.
Text encoding and decoding
The TextDecoder interface represents a decoder for a specific text encoding, such as UTF-8, ISO-8859-2, or GBK.
URL
The URL interface is used to parse, construct, normalize, and encode URLs.
User agent sniffing
The Navigator.
Autonomous custom elements
The CustomElementRegistry interface provides methods for registering custom elements and querying registered elements.
Constructed stylesheets
The CSSStyleSheet() constructor creates a new CSSStyleSheet object which represents a single Stylesheet.
Form-associated custom elements
The ElementInternals interface of the Document Object Model gives web developers a way to allow custom elements to fully participate in HTML forms.
Imperative slot assignment
The assign() method of the HTMLSlotElement interface sets the slot's manually assigned nodes to an ordered set of slottables.
Shadow DOM
The attachShadow() method of the Element interface attaches a shadow DOM tree to the specified element and returns a reference to its ShadowRoot.
Web authentication easy public key access
The getAuthenticatorData() method of the AuthenticatorAttestationResponse interface returns an ArrayBuffer containing the authenticator data contained within the AuthenticatorAttestationResponse.
Canvas reset()
The CanvasRenderingContext2D.
Color management for WebGL
The WebGLRenderingContext.
Color management for WebGL2
The WebGL2RenderingContext.
willReadFrequently
The optional willReadFrequently parameter of a canvas's getContext() method permits the browser to optimize for frequent getImageData() calls by avoiding hardware acceleration. Also known as multiple readback.
Screen wake lock
The wakeLock read-only property of the Navigator interface returns a WakeLock interface that allows a document to acquire a screen wake lock.
Active view transition
The types read-only property of the
Navigation API
The Navigation interface of the Navigation API allows control over all navigation actions for the current window in one central place, including initiating navigations programmatically, examining navigation history entries, and managing navigations as they happen.
scrollend
The scrollend event fires when the document view has completed scrolling.
ARIA attribute reflection
The ariaActiveDescendantElement property of the Element interface represents the current active element when focus is on a composite widget, combobox, textbox, group, or application.
checkVisibility()
The checkVisibility() method of the Element interface checks whether the element is potentially visible.
document.caretPositionFromPoint()
The CaretPosition interface represents the caret position, an indicator for the text insertion point.
getHTML()
The getHTML() method of the Element interface is used to serialize an element's DOM to an HTML string.
Selection composed ranges
The Selection.
Trusted types
The trustedTypes read-only property of the Window interface returns the TrustedTypePolicyFactory object associated with the global object, providing the entry point for using the Trusted Types API.
Unsanitized HTML parsing methods
The parseHTMLUnsafe() static method of the Document object is used to parse HTML input, optionally filtering unwanted HTML elements and attributes, in order to create a new Document instance.
User activation
The read-only userActivation property of the Navigator interface returns a UserActivation object which contains information about the current window's user activation state.
Async clipboard
The Clipboard interface of the Clipboard API provides read and write access to the contents of the system clipboard.
ClipboardItem.supports()
The supports() static method of the ClipboardItem interface returns true if the given MIME type is supported by the clipboard, and false otherwise.
createImageBitmap
The createImageBitmap() method of the Window interface creates a bitmap from a given source, optionally cropped to contain only a portion of that source.
Readable byte streams
The ReadableByteStreamController interface of the Streams API represents a controller for a readable byte stream.
preservesPitch
The HTMLMediaElement.
requestVideoFrameCallback()
The requestVideoFrameCallback() method of the HTMLVideoElement interface registers a callback function that runs when a new video frame is sent to the compositor.
AbortSignal.any()
The AbortSignal.
AbortSignal.timeout()
The AbortSignal.
WebRTC encoded transform
The rtctransform event is fired at a worker's DedicatedWorkerGlobalScope object when an encoded video or audio frame has been queued for processing by a WebRTC Encoded Transform.
WebTransport
The WebTransport interface of the WebTransport API provides functionality to enable a user agent to connect to an HTTP/3 server, initiate reliable and unreliable transport in either or both directions, and close the connection once it is no longer needed.
Event timing
The EventCounts interface of the Performance API provides the number of events that have been dispatched for each event type.
Largest contentful paint (LCP)
The LargestContentfulPaint interface provides timing information about the largest image or text paint before user input on a web page.
Reporting API
The ReportingObserver interface of the Reporting API allows you to collect and access reports.
cookieEnabled
navigator.
Storage access
The hasStorageAccess() method of the Document interface returns a Promise that resolves with a boolean value indicating whether the document has access to third-party, unpartitioned cookies.
dialog.requestClose()
The requestClose() method of the HTMLDialogElement interface requests to close the <dialog>.
URL.canParse()
The URL.
URLPattern
The URLPattern interface of the URL Pattern API matches URLs or parts of URLs against a pattern.
:state()
The CustomStateSet interface of the Document Object Model stores a list of states for an autonomous custom element, and allows states to be added and removed from the set.
WebOTP
The OTPCredential interface of the WebOTP API is returned when a WebOTP navigator.
2D canvas opacity
The optional alpha parameter of a 2D canvas's getContext() method sets whether the canvas has an alpha transparency channel. If set to false, then this permits the browser to optimize compositing for an opaque canvas.
Color management for 2D canvas
The optional colorSpace parameter of a 2D canvas's getContext() method chooses the color representation, such as "srgb" or "display-p3".
contextlost and contextrestored
The CanvasRenderingContext2D.
Desynchronized 2D canvas
The optional desynchronized parameter of a canvas's getContext() method permits the browser to draw a 2D canvas independently of the event loop. This can reduce drawing latency.
Desynchronized WebGL canvas
The optional desynchronized parameter of a canvas's getContext() method permits the browser to draw a WebGL canvas independently of the event loop. This can reduce drawing latency.
Desynchronized WebGL2 canvas
The optional desynchronized parameter of a canvas's getContext() method permits the browser to draw a WebGL2 canvas independently of the event loop. This can reduce drawing latency.
WebGPU
The GPU interface of the WebGPU API is the starting point for using WebGPU.
Accelerometer
The Accelerometer interface of the Sensor APIs provides on each reading the acceleration applied to the device along all three axes.
Ambient light sensor
The AmbientLightSensor interface of the Sensor APIs returns the current light level or illuminance of the ambient light around the hosting device.
CPU compute pressure
The PressureObserver interface is part of the Compute Pressure API and is used to observe the pressure changes of system resources such as the CPU.
Gyroscope
The Gyroscope interface of the Sensor APIs provides on each reading the angular velocity of the device along all three axes.
Idle detection
The IdleDetector interface of the Idle Detection API provides methods and events for detecting user activity on a device or screen.
Magnetometer
The Magnetometer interface of the Sensor APIs provides information about the magnetic field as detected by the device's primary magnetometer sensor.
Screen capture
The CaptureController interface provides methods that can be used to further manipulate a captured display surface (captured via MediaDevices.
Web Bluetooth
The Bluetooth interface of the Web Bluetooth API provides methods to query Bluetooth availability and request access to devices.
Web MIDI
The MIDIAccess interface of the Web MIDI API provides methods for listing MIDI input and output devices, and obtaining access to those devices.
Web serial
The serial read-only property of the Navigator interface returns a Serial object, which represents the entry point into the Web Serial API.
WebHID
The HID interface provides methods for connecting to HID devices, listing attached HID devices and event handlers for connected HID devices.
WebUSB
The usb read-only property of the Navigator interface returns a USB object for the current document, providing access to WebUSB API functionality.
WebXR
The read-only xr property
Fullscreen API
The Document method
Window management
The change event of the Screen interface is fired on a specific screen when one or more of the following properties change on it:
CSS typed object model
The CSSImageValue interface of the CSS Typed Object Model API represents values for properties that take an image, for example background-image, list-style-image, or border-image-source.
EditContext
The EditContext interface represents the text edit context of an element that was made editable by using the EditContext API.
showPicker() for <input>
The HTMLInputElement.
showPicker() for <select>
The HTMLSelectElement.
Audio and video tracks
The AudioTrack interface represents a single audio track from one of the HTML media elements, <audio> or <video>.
captureStream() for <audio> and <video>
The captureStream() method of the HTMLMediaElement interface returns a MediaStream object that streams a real-time capture of the content being rendered in the media element.
fastSeek()
The HTMLMediaElement.
Media source
The MediaSource interface of the Media Source Extensions API represents a source of media data for an HTMLMediaElement object.
MediaController
The HTMLMediaElement.
Shared storage
The SharedStorage interface of the Shared Storage API represents the shared storage for a particular origin, defining methods to write data to the shared storage.
Local fonts
The FontData interface of the Local Font Access API represents a single local font face.
navigator.share()
The share() method of the Navigator interface invokes the native sharing mechanism of the device to share data such as text, URLs, or files.
Payment request
The Payment Request API's PaymentRequest interface is the primary access point into the API, and lets web content and apps accept payments from the end user on behalf of the operator of the site or the publisher of the app.
Scoped custom element registries
The CustomElementRegistry() constructor creates a new CustomElementRegistry object for scoped usage.