Limited Availability
30 featuresThe navigator.keyboard.lock() API allows you to capture keys that are normally reserved by the operating system. It can be used to provide an immersive fullscreen experience such as games.
The navigator.keyboard.getLayoutMap() API returns a map from key codes to human readable key names. It can be used to describe buttons to the user when using the keyboard as a set of buttons, such as in games.
The LanguageDetector API identifies the likely natural language that some text is written in. You can use this API to supplement machine translation when the source source language is not known.
The LanguageModel API prompts an on-device language model. Also known as the Prompt API.
The launch_handler web app manifest member, with the client_mode property, configure how web app launches behave when an instance of the app is already open. For example, you can choose to focus the existing app instance instead of launching a new one.
WebXR layer types, such as XRCylinderLayer, XRCylinderLayer, XREquirectLayer, XRProjectionLayer or XRQuadLayer, are managed by the system compositor, to reduce latency or resampling.
The layout-shift performance entry and LayoutShift API measures the layout stability of web pages based on movements of the elements on the page. They're used to calculate Cumulative Layout Shift (CLS), a common metric for perceived stability.
The loading="lazy" attribute for <video> and <audio> elements defers loading the media resource until the element is near the viewport. This matches the lazy-loading behavior for <img> and <iframe> elements.
The XRLightProbe and XRLightEstimate objects represent real-world environmental lighting conditions during a WebXR session.
The link-parameters CSS property, param() modifier for the url() CSS function, and the #:~:param(…) URL fragment set custom CSS environment variables on an external resource, such as an SVG image, allowing the external resource to adapt its presentation based on the variables.
The window.queryLocalFonts() method returns an array of locally-installed fonts, each represented by a FontData object.
The "local-network-access" user permission (and certain actions that imply this permission, such as a fetch() request with { targetAddressSpace: "local" }) allows a site to send requests to servers on a user's local network.
The long-animation-frame performance event type and the PerformanceLongAnimationFrameTiming API provide information about rendering updates that take longer than 50 milliseconds. Also known as LoAFs.
The longtask performance event type and the PerformanceLongTaskTiming API provides information about tasks that occupy the UI thread for 50 milliseconds or more, a metric for input latency, delayed animations, and other sources of "jank."
The Magnetometer API reads magnetic field sensor data from the device's magnetometer.
The ManagedMediaSource API is a MediaSource where the browser manages the memory of source buffers and may evict data if needed.
The display: grid-lanes or display: inline-grid-lanes CSS declaration creates a layout where items are tightly packed, like brickwork, in parallel lanes. Items are placed one by one in the lane that has the most available space.
MathML specifies several elements and attributes that are not included in MathML Core. Math applications outside of browsers may implement these features, but they are discouraged for web use.
The navigator.mediaSession API integrates with platform UI for media playback. It can be used to set metadata such as title and artwork, and to handle user actions like playing, pausing, or seeking.
The MediaSource API is a custom data source for media elements commonly used for adaptive streaming. Also known as Media Source Extensions (MSE).
The playback of multiple <video> or <audio> elements can be coordinated by a MediaController instance, for example to synchronize a sign-language interpreter track with the main video track.
The measureUserAgentSpecificMemory() method estimates the memory usage of a web application including all its iframes and workers.
Instructions accept 64-bit memory indexes.
A single module in WebAssembly can have multiple memories.
Mutation events like DOMSubtreeModified, DOMNodeInserted, or DOMNodeRemoved fire when DOM changes occur.
The navigator.connection API provides information about the network connection a device is using and fires events when the connection type changes.
Non-cookie storage access extends the requestStorageAccess() API to let content in cross-site iframes request access to first-party data beyond cookies.
The Notification() constructor shows a message to the user, typically using the notification system of the host operating system.