Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
The following are the new web platform features and updates in Microsoft Edge 146, which releases on March 12, 2026.
To stay up-to-date and get the latest web platform features, download a preview channel of Microsoft Edge (Beta, Dev, or Canary); go to Become a Microsoft Edge Insider.
Detailed contents:
- Edge DevTools
- WebView2
- CSS features
- Web APIs
- MIME type parameters are preserved in data URLs
Intl.Locale.prototype.variants- Iterator sequencing
- JSON and style support for
link rel=modulepreload - Playback Statistics API for WebAudio
- Preserving
dropEffectvalues fromdragovertodropevents - Sanitizer API
pathattribute on SVG<textPath>element- Web app scope system accent color
- Device Memory API limits
- WebGPU Compatibility mode
- WebGPU: Texture and Sampler
letbinding - WebGPU: Transient attachments
- Always negotiate data channels in WebRTC
- Populate
targetURLduring file handling - Stop re-queueing
LaunchParamson reload
- Origin trials
Edge DevTools
See What's new in Microsoft Edge DevTools.
WebView2
See Release notes for the WebView2 SDK.
CSS features
The following new Cascading Style Sheets (CSS) features are included in Microsoft Edge.
CSS update: decoupling of Width and Style properties
The behavior of border-width, outline-width, and column-rule-width properties has been updated to align with the latest CSS specifications.
Previously, if the corresponding border-style, outline-style, or column-rule-style property was set to none or hidden, the computed width would be forced to 0px, regardless of the value that you specified.
Now, the computed values of border-width, outline-width, and column-rule-width always reflect your specified values, independent of the corresponding *-style property. The resolved values that are returned by getComputedStyle() for outline-width and column-rule-width also reflect the values that you specified.
See also:
- border-width at MDN.
- outline-width at MDN.
- column-rule-width at MDN.
Scroll-triggered animations
Scroll-triggered animations let you control animations based on the scroll position. You can play, pause, or reset an animation when a certain scroll position is reached.
This feature eliminates the need to use JavaScript to manually detect when an element is in view and then trigger animations. Instead, you can define scroll-based animations declaratively in CSS, which allows the browser to optimize performance by running the animations on a worker thread.
See also:
- Timeline Triggers in CSS Animations Module Level 2.
hanging and each-line keywords for text-indent
The text-indent property now supports two optional keywords:
hanging: Indents all lines except the first line.each-line: Applies indentation to each line that's after a forced line break, instead of indenting only the first line.
These keywords give you more control over how text indentation is applied in different scenarios.
See also:
- text-indent at MDN.
Timeline named range "scroll"
In scroll-driven animations, view timelines now support a "scroll" named range, in addition to the existing named ranges ("entry", "exit", "cover", "contain").
The new "scroll" range refers to the full extent of the scroll container, rather than only the portion of the scroll container in which the animation subject is visible. This gives you more control over when animations start and stop within the scrollable area.
See also:
- animation-range at MDN.
trigger-scope
The trigger-scope property lets you control the scope of animation trigger names, similar to how anchor scoping works with the anchor-scope property.
Trigger names that are declared by properties such as timeline-trigger are global by default, which can lead to naming conflicts. Use trigger-scope to limit the visibility of trigger names to a specific scope, to prevent triggering unintended animations.
meta name="text-scale" element
The <meta name="text-scale" content="scale"> meta element makes your page's default font size scale with the user's operating system and browser text scale settings.
This is useful if your page uses font-relative units, such as rem or em. This <meta> element tells the browser that your page is built to scale well with different text-size preferences, so that the browser can disable its own text auto-sizing mechanisms.
Web APIs
The following new Web API features are included in Microsoft Edge.
MIME type parameters are preserved in data URLs
When you use data URLs, MIME type parameters (such as charset or boundary) are now preserved in the Content-Type header.
This change aligns data URL handling with the specification of the Fetch API and ensures that parameter information in data URLs is not lost during processing.
See also:
- data: URLs at MDN.
Intl.Locale.prototype.variants
The Intl.Locale.prototype.variants property returns the variants associated with a locale as a string of dash-separated identifiers.
You can also now pass "variants" in the options object when constructing an Intl.Locale.
See also:
- Intl.Locale.prototype.variants at MDN.
Iterator sequencing
The Iterator.concat() method creates a new iterator by combining multiple iterators in sequence.
You can pass any number of iterables to Iterator.concat(), and the resulting iterator will yield values from each iterable in order.
See also:
- Iterator.concat() at MDN.
JSON and style support for link rel=modulepreload
You can now use <link rel="modulepreload"> to preload JSON and CSS modules in addition to JavaScript modules.
Specify the module type using the as attribute:
<link rel="modulepreload" as="style" href="...">for CSS modules.<link rel="modulepreload" as="json" href="...">for JSON modules.
This brings feature parity across different module types for preloading.
See also:
- rel="modulepreload" at MDN.
Playback Statistics API for WebAudio
The AudioContext.playbackStats property provides statistics about your web audio playback, such as:
- Average latency.
- Minimum/maximum latency.
- Underrun duration.
- Underrun count.
Use this API to monitor audio quality and detect glitches in your audio playback.
This feature was previously called AudioContext.playoutStats. The feature has been renamed to AudioContext.playbackStats, to align with the final Web Audio API specification. The old name is still available as a deprecated alias, for backward compatibility.
See also:
- Web Audio API at MDN.
Preserving dropEffect values from dragover to drop events
When using the Drag and Drop API, the dropEffect value that's set in a dragover event is now preserved and available in the subsequent drop event.
Previously, the browser would overwrite the dropEffect value with its own negotiated operation, which prevented you from controlling the visual feedback and the final operation that's performed.
See also:
- HTML Drag and Drop API at MDN.
- DataTransfer: dropEffect property at MDN.
Sanitizer API
The Sanitizer API provides a simple and safe way to remove unsafe HTML content from user-supplied HTML strings.
Use this API to sanitize HTML input and reduce the risk of XSS (cross-site scripting) attacks when displaying user-generated content.
See also:
- HTML Sanitizer API at MDN.
path attribute on SVG <textPath> element
The <textPath> SVG element now supports a path attribute, which lets you define text path geometry inline, by using SVG path data.
Instead of always needing to reference a separate <path> element by using the href attribute, you can now include the path data directly in the <textPath> element's path attribute.
When both path and href are specified, the path attribute takes precedence.
See also:
- <textPath> at MDN.
Web app scope system accent color
The accent-color: auto CSS property is now scoped to only work within installed web apps. This aligns with the existing AccentColor and AccentColorText CSS system color keywords.
Previously, when accent-color was set to auto, form controls would adopt the system accent color in all contexts (both web pages and installed web apps). This change ensures that system accent colors are only available in installed web app contexts. This provides more consistent developer and user expectations, while adhering to fingerprinting restrictions.
See also:
- accent-color at MDN.
Device Memory API limits
The Device Memory API now reports updated values that better reflect modern device capabilities:
Android devices: 1, 2, 4, or 8 GB
Other platforms: 2, 4, 8, 16, or 32 GB
These new values replace the outdated values (0.25, 0.5, 1, 2, 4, 8 GB). This reduces fingerprinting risk, and provides better segmentation for high-end devices.
See also:
- Device Memory API at MDN.
WebGPU Compatibility mode
WebGPU Compatibility mode adds an opt-in, lightly restricted subset of the WebGPU API, that's capable of running older graphics APIs such as OpenGL and Direct3D11.
By opting into this mode and following its constraints, you can extend the reach of your WebGPU application to many older devices that don't have the modern, explicit graphics APIs that core WebGPU requires.
For a simple app, the only required change is to set the
featureLeveloption to"compatibility"when callingrequestAdapter().For a more advanced app, some modifications might be necessary, to accommodate for the Compatibility mode's restrictions. However, because Compatibility mode uses a subset of the WebGPU API, your app will also work on browsers that don't support Compatibility mode.
See also:
- WebGPU API, at MDN.
WebGPU: Texture and Sampler let binding
In WGSL, a let declaration can now store an object of type texture or sampler, thanks to the texture_and_sampler_let language feature.
This allows for:
- More flexible shader code organization.
- Reusing texture and sampler bindings.
WebGPU: Transient attachments
Use the new TRANSIENT_ATTACHMENT GPU texture usage flag to create render pass attachments that can stay in tile memory. This avoids VRAM traffic, and potentially avoids VRAM allocation for the textures.
When a texture is declared as transient (or "memoryless"), the GPU knows that the contents of that texture are only needed temporarily within the current render pass.
Since the texture contents are discarded after the render pass, the driver might not need to allocate space for that texture in the main VRAM. Even without hardware support for transient attachments, this hint can be used to reuse texture allocations between passes, reducing peak memory usage.
See also:
- WebGPU API at MDN.
Always negotiate data channels in WebRTC
The new alwaysNegotiateDataChannels option for RTCPeerConnection allows you to negotiate data channels in the SDP offer before creating a data channel. The data channel m-line is placed before any audio or video m-lines.
Use this option when creating a peer connection, to ensure that data channels are always negotiated:
const pc = new RTCPeerConnection({
alwaysNegotiateDataChannels: true
});
const offer = await pc.createOffer();
See also:
- RTCPeerConnection at MDN.
Populate targetURL during file handling
When a Progressive Web App (PWA) is launched via file handling, the LaunchParams.targetURL property is now properly populated in the launch queue.
Previously, this property was null when a file launch was directed to an existing window.
Now, the URL from your manifest action field is available to the launchQueue consumer. This provides consistency with other launch triggers, such as shortcut launches and navigation capturing.
This allows you to better understand the intent of the launch, and handle specific routing logic even when the primary payload is a set of file handles.
See also:
- Web App Launch Handler API at MDN.
Stop re-queueing LaunchParams on reload
The launchQueue no longer re-sends the last LaunchParams (including file handles) when a user reloads the page in a PWA.
Previously, a page refresh triggered the launch consumer again with data from the original launch, which often led to unexpected behavior.
For example, an app might prompt users with "Save changes?" or "Overwrite this file?", every time they refreshed the page.
This change ensures that a reload is treated as a standard navigation, rather than as a re-launch, and the launchQueue will only be populated when a new file launch event actually occurs.
See also:
- Web App Launch Handler API at MDN.
Origin trials
The following are origin trials for new experimental APIs that are available in Microsoft Edge.
Origin trials let you try experimental APIs on your own live website for a limited time. To learn more about origin trials, see Use origin trials in Microsoft Edge.
For the full list of available origin trials, see Microsoft Edge Origin Trials.
Web Install API
Expires on July 14, 2026.
The Web Install API allows a website to install other websites as web apps on the user's device, by using navigator.install().
Digital Credentials API - Issuance Support
Expires on July 14, 2026.
The Digital Credentials API enables triggering the issuance of user credentials from a credential issuer server to a digital wallet application. For example, this API can be used to trigger the provisioning of a new driver's license, or a verified academic degree, from a government or university server to a user's digital wallet.
WebAssembly Custom Descriptors
Expires on June 16, 2026.
WebAssembly Custom Descriptors allows WebAssembly to store data that's associated with source-level types more efficiently, in new custom descriptor objects.
PrerenderUntilScript
Expires on September 8, 2026.
The PrerenderUntilScript origin trial introduces prerender_until_script, a new action for the Speculation Rules API that provides a middle ground between prefetch and prerender.
Use this action when you want the browser to prerender a page, but stop and switch back to prefetching after a specific script starts executing.
Enhanced Canvas TextMetrics
Expires on August 11, 2026.
The Enhanced Canvas TextMetrics origin trial expands the TextMetrics Canvas API to support:
- Selection rectangles.
- Bounding box queries.
- Operations based on a glyph cluster.
This new functionality enables complex text-editing applications to have accurate selection, caret positioning, and hit testing. Also, cluster-based rendering facilitates sophisticated text effects, such as:
WebNN
Expires on July 14, 2026.
The WebNN origin trial lets you experiment with an abstraction layer over the ML acceleration capabilities provided by the platform.
WebNN helps you understand:
How well real-world models map to the operations that are supported by WebNN.
How well WebNN can map those operations to various hardware.
WebAudio Configurable Render Quantum
Expires on September 8, 2026.
With the WebAudio Configurable Render Quantum origin trial, you can specify a renderSizeHint option when creating an AudioContext or OfflineAudioContext, to request a particular render quantum size.
UserMediaElement
Expires on July 14, 2026.
The UserMediaElement origin trial introduces the <usermedia> HTML element.
The <usermedia> HTML element is a browser-controlled element for requesting camera or microphone access.
Using a semantic HTML element instead of JavaScript:
Provides better clarity to users about the permission request.
Improves accessibility.
Prevents manipulative UI patterns.
Streamlines the workflow, by directly providing the media stream to your application. This eliminates the need for separate API calls.
Local Network Access from non-secure contexts
Expires on May 19, 2026.
Local Network Access from non-secure contexts temporarily allows for access to resources on local networks to originate from non-secure contexts. This gives you more time to migrate Local Network Access requests so that they originate from a secure context.
For restrictions on Local Network Access, see New permission prompt for Local Network Access. This origin trial can only be enabled through HTTP header-provided origin tokens.
Note
Portions of this page are modifications based on work created and shared by Chromium.org and used according to terms described in the Creative Commons Attribution 4.0 International License.