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 151, which releases on Jul. 30, 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:
- Microsoft Edge DevTools
- WebView2
- CSS features
- HTML features
- Web APIs
- Device event permission request API
- Duplicate successive navigations are ignored
- Cross-origin redirect timing in the Navigation Timing API
- LanguageDetector support for Traditional and Simplified Chinese
soft-navigationandinteraction-contentful-paintperformance entries- Exposed the
FontFaceSetinterface globally - Speculation rules:
form_submissionfield - Wheel event indicates whether a momentum scroll
- XML parsing in Rust for non-XSLT scenarios
textStream()method forResponse,Request, andBody
- Origin trials
Microsoft 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 ruby-overhang property
The ruby-overhang CSS property sets whether ruby annotations may overlap adjacent text.
The property accepts the auto, spaces and none values, to control overhang of ruby annotation text.
See also:
<ruby>HTML ruby annotation element at MDN.ruby-overhangCSS property at MDN.
Changed the position-anchor initial value to normal
The initial value for the position-anchor CSS property is now normal. Previously, the initial value was none.
This aligns Microsoft Edge with other browsers and with the anchor positioning specification.
- If
position-areais set tonone,normalbehaves likenone. - If
position-areais not set tonone,normalbehaves likeauto.
See also:
position-anchorCSS property at MDN.position-areaCSS property at MDN.
CSS alpha() function
The CSS alpha() function creates a new color by applying a specified alpha value to an existing color.
For example, alpha(from red / 0.5) creates a semi-transparent red color with 50% opacity.
See also:
- Relative Alpha Colors in CSS Color Module Level 5.
animation-trigger actions no longer auto-rewind
The values play, play-forwards and play-backwards of the animation-trigger CSS property instruct the animation trigger to play the animation.
These values don't automatically rewind the animation anymore: when the animation has already run to completion and play, play-forwards or play-backwards is used, the animation will not restart.
See also:
HTML features
The following new HTML features are included in Microsoft Edge.
<usermedia> element
The <usermedia> HTML element is a browser-provided button that, upon activation, toggles camera or microphone streams. If required, the button prompts the user to choose whether to grant the page access to the camera and microphone.
This browser-provided button enables a better user experience, because the permission prompt is directly linked to the user intent.
The <usermedia> element was previously available as an origin trial under the more generic <permission> element. Based on feedback from developers and other browser vendors, the <permission> element has been renamed to the specific <usermedia> element, to provide a more tailored and powerful developer experience.
See also:
<usermedia>element, in the "WICG / PEPC" repo.
Reference target
The referenceTarget property of a ShadowRoot object forwards attributes such as for, aria-labelledby, popovertarget, and commandfor to elements inside a shadow DOM. You can use this to, for example, link a <label> to its <input>, even if the <input> is in the shadow DOM of a web component.
When a shadow host specifies an element in its shadow tree to act as its reference target, all ID references that point to the shadow host are forwarded to the reference target element instead.
A reference target can also be set in HTML, by using the shadowrootreferencetarget attribute, like in the following example:
<label for="my-checkbox">Checkbox value</label>
<custom-checkbox id="my-checkbox">
<template shadowrootmode="open" shadowrootreferencetarget="real-checkbox">
<input id="real-checkbox" type="checkbox">
</template>
</custom-checkbox>
See also:
referencetarget, in Element:attachShadow()method, at MDN.Shadowroot.referencetarget, inShadowRoot, at MDN.shadowrootreferencetarget, in<template>HTML content template element, at MDN.
aria-actions attribute
The aria-actions HTML attribute exposes secondary actions for composite interactive widgets.
For example, you can use the aria-actions attribute to expose the close button of a tab, which is a secondary action for the tab widget, as follows:
<div class="tab" aria-actions="close-tab">
Tab title
<button id="close-tab">Close</button>
</div>
Secondary actions placed within composite interactive widgets is a common UI pattern. The aria-actions attribute allows you to expose these secondary action buttons directly, to improve discoverability for assistive technology (AT) users.
See also:
- Feature:
aria-actionsat Chrome Platform Status.
shadowrootslotassignment attribute for declarative shadow DOM
The shadowrootslotassignment attribute of the <template> element allows declarative shadow roots to use manual slot assignment.
Previously, manual slot assignment was only available via JavaScript, as follows:
attachShadow({slotAssignment: "manual"})
You can now declare manual slot assignment via HTML, as follows:
<template shadowrootslotassignment="manual">
</template>
See also:
Web APIs
The following new Web API features are included in Microsoft Edge.
Device event permission request API
You can call DeviceMotionEvent.requestPermission() and DeviceOrientationEvent.requestPermission() to ask the browser for device motion and orientation data to be shared with the webpage.
These methods return a promise that resolves to either granted or denied, based on whether the user has allowed the user agent to share sensor data with the page.
See also:
- DeviceMotionEvent: requestPermission() static method at MDN.
- DeviceOrientationEvent: requestPermission() static method at MDN.
Duplicate successive navigations are ignored
When a navigation is already in progress, Microsoft Edge now ignores a new navigation request to the same URL as the previous navigation request.
Duplicate navigations in quick succession are often caused by an accidental double-click. Duplicate navigations can waste resources by canceling the ongoing navigation and starting a new navigation. This optimization improves performance and improves the user experience.
See also:
- Experiment with keeping older navigation on duplicate navigation in the Chromium bug tracker.
Cross-origin redirect timing in the Navigation Timing API
The Timing-Allow-Origin header, when used in chains of cross-origin redirects, provides values for redirectCount, redirectStart and redirectEnd to the destination document, via the Navigation Timing API.
This lets you measure and optimize your cross-origin redirects.
See also:
- Navigation timing at MDN.
- Timing-Allow-Origin header at MDN.
LanguageDetector support for Traditional and Simplified Chinese
The LanguageDetector API can now detect and differentiate text that's written in Traditional Chinese or Simplified Chinese.
The LanguageDetector API returns the language code zh-Hant for Traditional Chinese, and zh-Hans for Simplified Chinese. Previously, the LanguageDetector API returned zh for both Traditional Chinese and Simplified Chinese.
See also:
soft-navigation and interaction-contentful-paint performance entries
The Performance API now includes two new PerformanceEntry types:
soft-navigation- Reports same-document history-state changes that are initiated by interactions.interaction-contentful-paint- Reports new contentful paints within parts of the page that were modified by a user interaction. This helps you understand interaction loading latency.
Use these new entries to measure the performance of soft navigations. A soft navigation is a JavaScript-driven navigation in a Single Page App (SPA).
See also:
- PerformanceEntry at MDN.
- Performance APIs at MDN.
Exposed the FontFaceSet interface globally
The FontFaceSet interface is now exposed globally.
Previously, the FontFaceSet interface was not exposed as a global property.
This change aligns Microsoft Edge with the CSS Font Loading spec, and with Safari and Firefox.
See also:
- FontFaceSet at MDN.
Speculation rules: form_submission field
You can now set the "form_submission": true field on a prerender rule in the Speculation Rules API, to allow the prerender to be activated by a form submission navigation.
Previously, form submissions could never activate a prerendered page. Now, setting "form_submission": true tells the browser to prepare the prerender, so that when the user submits a form whose result URL matches the prerendered URL, the prerender activates immediately.
This is useful for search forms where the result URL can be predicted in advance. For example, to prerender the result of a search form that navigates to /search?q=foo, use the following speculation rules:
<script type="speculationrules">
{
"prerender": [
{
"urls": ["/search?q=foo"],
"form_submission": true
}
]
}
</script>
See also:
- Speculation Rules API at MDN.
Wheel event indicates whether a momentum scroll
The WheelEvent interface now includes a momentum attribute, which indicates whether the event is part of a momentum scroll.
The momentum attribute is useful, for example, on a device that has a trackpad, where the user can perform a fling gesture to scroll content. Many devices continue to fire wheel events for a while after trackpad motion stops, to simulate scrolling inertia. The momentum attribute differentiates those simulated events from the events that are fired during the physical trackpad interaction.
See also:
- WheelEvent at MDN.
XML parsing in Rust for non-XSLT scenarios
Microsoft Edge now uses a Rust-based XML parser, in scenarios where XSLT processing isn't required.
The Rust XML parser improves security by eliminating memory-corruption bugs in XML parsing. This applies to:
- The DOMParser Web API.
- The
responseXMLproperty on anXMLHttpRequest(XHR) object. - SVG documents.
See also:
- DOMParser at MDN.
textStream() method for Response, Request, and Body
The Request, Response, and Blob interfaces now include a textStream() method.
The textStream() method provides a direct way to read text from a byte stream, without requiring first piping the stream through a TextDecoderStream().
See also:
- Request at MDN.
- Response at MDN.
- Blob at MDN.
- TextDecoderStream 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.
| Name | Description | Register |
|---|---|---|
| Soft navigation heuristics | Exposes soft-navigation heuristics for collecting performance metrics in single-page apps. | Register |
| URL and eval hashes in CSP script-src | Introduces url- and eval- hashes for script-src CSP directives, replacing hostname-based allowlists and unsafe-eval. |
Register |
| Web Install API | Allows a website to install another website as a web app by using navigator.install(). |
Register |
OpaqueRange |
Enables creating live ranges over text inside <input> and <textarea> elements that automatically update as the user edits. These ranges support geometry methods such as getBoundingClientRect() and the CSS Custom Highlight API, which enables use cases such as caret-positioned popups and inline spell-check highlighting directly on form controls, without cloning elements or exposing internal DOM structure. |
Register |
| Digital Credentials API - Issuance Support | Triggers issuance of user credentials from a credential issuer server to a digital wallet application. | Register |
prerender_until_script Speculation Rules API action |
A Speculation Rules API action that prerenders a page but switches to prefetching when a script executes. | Register |
| CPU Performance API | Exposes information about the user's device capabilities, for use with the Compute Pressure API. | Register |
| Connection allowlists | Restricts connections from a document or worker to a server-distributed allowlist of endpoints. | Register |
focus-without-user-activation permissions policy |
Gives an embedder control over programmatic focus from embedded content via the focus-without-user-activation permissions policy. When the policy is denied for a frame, programmatic focus calls (element.focus(), autofocus, window.focus(), dialog.showModal(), and popover focusing) are blocked unless triggered by user activation, or focus is being delegated. |
Register |
| Enhanced Canvas TextMetrics | Expands the TextMetrics Canvas API with selection rectangles, bounding-box queries, and glyph-cluster operations. | Register |
| WebAudio Configurable Render Quantum | Lets you specify a custom render quantum size when creating an AudioContext or OfflineAudioContext. |
Register |
| Prerendering cross-origin iframes | Prerenders cross-origin iframes via an opt-in response header, instead of delaying them until page activation. | Register |
| Container Timing | Monitors when an annotated DOM container is displayed and has finished its initial paint. | Register |
| Separate style and layout durations in the Long Animation Frame API | Adds styleDuration, forcedStyleDuration, layoutDuration, and forcedLayoutDuration properties for deeper CSS performance analysis. |
Register |
| Prompt API sampling parameters | The topK and temperature sampling parameters let you optimize model behavior per language model session. |
Register |
<install> HTML element |
Declaratively install other websites as web apps by using the <install> element. |
Register |
| Declarative CSS Module Scripts | Shares declarative stylesheets with shadow roots, including declarative shadow roots, using inline style modules. | Register |
| HTML in canvas | Enables rendering HTML in canvas with new drawing methods and the paint event. |
Register |
| Gamepad raw input event | Instead of relying on frequent polling via navigator.getGamepads(), web pages can listen for gamepadrawinputchanged events. These events are fired whenever changes are detected between input frames from the same device. |
Register |
| Autofill Event | Detects when browser autofill updates form controls, for adapting custom UI and validation. | Register |
| WebAssembly Custom Descriptors V2 | Stores data associated with source-level types more efficiently, in custom descriptor objects. | Register |
| Speculative Load measurement | performance.speculations exposes data about used and unused preloads, prefetches, and prerenders. This helps you measure the effectiveness of speculative loading strategies and optimize performance-versus-cost tradeoffs. |
Register |
| WebMCP | Enables your site to register tools for an in-browser agent to complete tasks on behalf of a user. | Register |
| Email Verification Protocol | Enables websites to verify email ownership by using cryptographic tokens that are issued by email providers. This reduces reliance on email one-time passcodes (OTPs), and streamlines sign-up, sign-in, and recovery flows. | Register |
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.