Modifica

Microsoft Edge 157 web platform release notes (Nov. 5, 2026)

The following are the new web platform features and updates in Microsoft Edge 157, which releases on Nov. 5, 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

See What's new in Microsoft Edge DevTools.

WebView2

See Release notes for WebView2.

CSS features

The following new Cascading Style Sheets (CSS) features are included in Microsoft Edge.

corner shorthand properties

The new corner CSS shorthand property sets both the radius and the shape of an element's corners in a single declaration, by combining the border-radius and corner-shape properties.

For example:

.card {
  /* Equivalent to: border-radius: 20px; corner-shape: squircle; */
  corner: 20px squircle;
}

The following additional shorthand properties let you set the radius and shape of specific corners:

  • Per-corner shorthands: corner-top-left, corner-top-right, corner-bottom-left, and corner-bottom-right.
  • Physical edge shorthands, such as corner-top and corner-bottom, which set the two corners of an edge.
  • Logical edge shorthands, such as corner-block-start and corner-block-end, which set the two corners of an edge, based on the writing mode.

See also:

text-decoration-inset property

The text-decoration-inset CSS property controls how far underlines, overlines, and line-through decorations are inset from or extended beyond the start and end edges of an element's text.

text-decoration-inset supports the following types of values:

  • auto, which lets the browser determine the appropriate inset based on the element's text and surrounding context.
  • A length value, such as 20px.
  • A percentage value, such as 10%.
  • Either one or two values. The first value sets the start offset. The second value, if specified, sets the end offset.

This lets you adjust decoration spacing and create reveal effects with native text decorations, instead of using background gradients or additional elements.

See also:

Custom string value for text-overflow

The text-overflow CSS property now accepts a string value, to specify the custom text that's displayed when the content of an element overflows and is clipped.

Previously, you could only use the clip or ellipsis values. A custom string lets you create overflow indicators that better fit your content, for example:

.summary {
  overflow: hidden;
  white-space: nowrap;
  text-overflow: " (more)";
}

See also:

position-visibility: anchor-valid and anchor-visible

When using CSS anchor positioning, the position-visibility CSS property controls when an anchor-positioned element is hidden. The position-visibility property now supports the following values:

  • anchor-valid (new) - The anchor-positioned element is only displayed if its default anchor element exists, and the element can therefore be positioned relative to it.

  • anchor-visible - The anchor-positioned element is only displayed if its default anchor element is at least partially visible. This value replaces the anchors-visible value.

The plural anchors-visible value is now deprecated, and is an alias of anchor-visible. Use anchor-visible instead.

See also:

HTML features

The following new HTML features are included in Microsoft Edge.

Icon-only mode for the <camera>, <microphone>, and <geolocation> elements

The <camera>, <microphone>, and <geolocation> HTML elements now support the displaymode attribute, which you can use to render these elements as compact, icon-only buttons, without text. For example:

<camera displaymode="icon-only"></camera>

Icon-only buttons are useful in space-constrained layouts, such as map controls or floating video toolbars. In icon-only mode, the elements keep the same security guarantees, and remain fully accessible to screen readers.

See also:

Web APIs

The following new Web API features are included in Microsoft Edge.

Updated HTML insertion and streaming methods

The following HTML insertion and streaming methods provide a more coherent way to dynamically insert HTML into an existing document:

  • Positional methods, which take HTML as an argument and effectively replace insertAdjacentHTML():
    • beforeHTML() and beforeHTMLUnsafe()
    • afterHTML() and afterHTMLUnsafe()
    • appendHTML() and appendHTMLUnsafe()
    • prependHTML() and prependHTMLUnsafe()
    • replaceWithHTML() and replaceWithHTMLUnsafe()
  • Streaming methods, which return a WritableStream object that parses the HTML text that you write to it:
    • streamHTML() and streamHTMLUnsafe()
    • streamAppendHTML() and streamAppendHTMLUnsafe()
    • streamPrependHTML() and streamPrependHTMLUnsafe()
    • streamReplaceWithHTML() and streamReplaceWithHTMLUnsafe()
    • streamBeforeHTML() and streamBeforeHTMLUnsafe()
    • streamAfterHTML() and streamAfterHTMLUnsafe()

Additionally, you can set the runScripts option to true when calling any of the unsafe HTML insertion or streaming methods, to allow the method to run scripts in a similar fashion to createContextualFragment().

Trusted Types policies can also override the scripting mode and the sanitizer that are used by these methods.

Before these methods, you could already update HTML dynamically from script by using multiple disjointed APIs, each with its own subtle differences. For example, you can:

  • Partially update an element by using insertAdjacentHTML().
  • Sanitize HTML by using setHTML().
  • Execute scripts by using createContextualFragment().
  • Stream HTML by using a detached document.

Such multiple, disjointed APIs can be confusing and hard to use. Such APIs can also cause security issues when not used well.

See also:

Sanitizer API: javascriptURLs option

The Sanitizer API now provides the javascriptURLs configuration option and the setJavascriptURLs() method, to control whether javascript: URLs that are used for navigation, such as in the href attribute of an <a> element, are removed when sanitizing HTML.

Previously, whether javascript: URLs were removed depended on the method that you used:

  • The safe methods, such as setHTML(), always removed javascript: URLs.
  • The unsafe methods, such as setHTMLUnsafe(), never removed javascript: URLs.

Now, removing javascript: URLs is an explicit part of the sanitizer configuration, which you can use with any method.

If you don't use the new option, the behavior is unchanged.

See also:

HTML-in-canvas

The HTML-in-canvas API lets you draw HTML elements into a <canvas> element, so that you can use the canvas to customize how HTML content is rendered, while keeping the content accessible, interactive, and correctly laid out.

For example, you can use HTML-in-canvas to render the following:

  • Styled text in charts.
  • Rich content in creative tools.
  • In-game menus.
  • HTML content on surfaces within a 3D scene.

HTML-in-canvas provides the following primitives:

  • Attributes to opt the descendants of a <canvas> element into layout and drawing.
  • Methods to draw elements into the canvas: drawElementImage() for 2D canvas contexts, and equivalent methods for WebGL and WebGPU.
  • A paint event, which fires when the drawn elements need to be updated in the canvas.
  • Methods to synchronize the geometry of the drawn elements with the DOM, for hit testing and accessibility.

See also:

Long Animation Frames API: style and layout durations

The Long Animation Frames API now reports how much time was spent on style and layout calculations, so that you can distinguish style time from layout time when analyzing slow frames:

  • PerformanceLongAnimationFrameTiming objects have the new styleDuration and layoutDuration properties, which report the time that's spent recalculating styles and updating layout, as part of the rendering update.
  • PerformanceScriptTiming objects have the new forcedStyleDuration and forcedLayoutDuration properties, which report the time that's spent on style and layout calculations that were forced synchronously by scripts.

See also:

CORS enforcement for the Background Fetch API

The Background Fetch API now enforces Cross-Origin Resource Sharing (CORS).

This ensures that Background Fetch requests are subject to the same security policies, such as Local Network Access checks. This prevents sites from bypassing CORS (and other security policy checks) by using Background Fetch instead of regular Fetch.

See also:

ProgressEvent in service workers

The ProgressEvent interface is now available in service workers. You can use the ProgressEvent() constructor in a service worker to create progress events with the lengthComputable, loaded, and total properties.

This aligns service workers with other worker contexts and with the XMLHttpRequest standard.

See also:

Web Bluetooth: BluetoothRemoteGATTServer is an EventTarget

The BluetoothRemoteGATTServer interface now inherits from EventTarget, and therefore exposes the addEventListener(), removeEventListener(), and dispatchEvent() methods.

This allows connection-level events to be dispatched directly on the GATT server object.

See also:

WebGPU: atomic-vec2u-min-max feature

The atomic-vec2u-min-max WebGPU feature allows you to use 64-bit atomic minimum and maximum operations on atomic<vec2u> values, in WebGPU Shading Language (WGSL) shaders.

This lets you implement algorithms that require 64-bit atomics, without requiring full support for 64-bit integers.

See also:

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
Gamepad raw input event Instead of relying on frequent polling via navigator.getGamepads(), webpages can listen for gamepadrawinputchanged events. These events are fired whenever changes are detected between input frames from the same device. Register
Control viewport heuristics in Speculation Rules API Lets you control the viewport heuristics that are used by speculation rules, to determine if different heuristics parameters give you better results than the default ones. Register
User Agent Image Replacement API Lets you observe when browser features replace images in your page's content. These browser features are currently limited to selected sites. Register
Autofill Event Detects when browser autofill updates form controls, for adapting custom UI and validation. Register
Prerendering cross-origin iframes Prerenders cross-origin iframes via an opt-in response header, instead of delaying them until page activation. 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
Prompt API sampling parameters The topK and temperature sampling parameters let you optimize model behavior per language-model session. Register
PrefetchAndPrerenderActivationBeacon Allows Edge to reliably report an activation beacon when a prefetch or prerendered page is activated. 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
JS Self-Profiling Markers Extends the JS Self-Profiling API with sample markers such as script, gc, style, layout, and paint. These markers identify the activity that the browser was doing at capture time. 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
WebAssembly Custom Descriptors V2 Stores data that's associated with source-level types more efficiently, in custom descriptor objects. Register
Declarative Performance Observer API Uses HTTP response headers to prove a reliable browser-managed telemetry system that reports performance metrics for the site, from navigation initiation to page termination. Register
WebMCP Enables your site to register tools for an in-browser agent to complete tasks on behalf of a user. Register
Connection Allowlist Embedded Enforcement Lets an embedder use the connectionallowlist attribute on an <iframe> element to require that the framed document restricts its outgoing network connections to a declared allowlist. If the framed document doesn't deliver a matching Connection-Allowlist header, its response is blocked. 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.