July 2026 stable releases

July brought Chrome 151, Firefox 153, and Safari 26.6 to the stable channel. Firefox 153 delivered the largest set of new primitives, while Chrome 151 filled in gaps across CSS, shadow DOM, and the networking layer.

Customizable <select> moves closer in Firefox 153

Firefox 153 changes how the HTML parser handles <select> elements. Where only <option>, <optgroup>, and <hr> could previously be parsed as children, all nested elements are now parsed into the DOM inside <select>, which lays the groundwork for customizable select elements across browsers.

ruby-overhang in Chrome 151

Chrome 151 supports the ruby-overhang CSS property, which controls whether ruby annotation text may overhang adjacent base characters. It accepts auto, spaces, or none. Per the CSS specification, none is aliased to spaces, allowing ruby text to overhang only whitespace and CJK punctuation — avoiding unnecessary layout gaps while preserving readability.

Support: Chrome 151, Edge 151, Safari 18.2.

Manual slot assignment for declarative shadow roots

The shadowrootslotassignment attribute on <template>, new in Chrome 151, lets declarative shadow roots opt into manual slot assignment rather than named assignment. Manual assignment was before this only possible imperatively through attachShadow({slotAssignment: "manual"}). The attribute takes named (the default) or manual, and is exposed to JavaScript as the shadowRootSlotAssignment property on HTMLTemplateElement.

Support: Chrome 151, Edge 151, Firefox 152, Safari 27.

Animation objects on event interfaces

Chrome 151 adds a read-only animation attribute to AnimationEvent and TransitionEvent, returning the underlying Animation object so listeners can query animation state directly.

Support: Chrome 151, Edge 151, Firefox 152, Safari 27.

Picture-in-Picture API on Firefox desktop

Firefox 153 brings the Picture-in-Picture API to desktop. The standard API lets sites toggle a <video> element between the page and a floating, always-on-top window, so playback continues while the user switches tabs or works in other applications.

Support: Chrome 69, Edge 79, Firefox 153, Safari 13.1.

Intl.Locale Info API

Firefox 153 implements the TC39 Intl.Locale info proposal, adding getters to Intl.Locale instances: getCalendars(), getCollations(), getHourCycles(), getNumberingSystems(), getTextInfo(), getTimeZones(), and getWeekInfo(). Developers can now inspect locale-specific conventions without pulling in external internationalization data libraries. These methods are now Baseline Newly available.

const jaJP = new Intl.Locale("ja-JP");
console.log(jaJP.getCalendars()); // ["gregory", "japanese"]

Support: Chrome 130, Edge 130, Firefox 153, Safari 17.

Bulk record retrieval in IndexedDB

Firefox 153 adds IDBObjectStore.getAllRecords() and IDBIndex.getAllRecords(). Both fetch all matching records — primary keys, index keys, and values — in a single request, removing the need for cursor iteration logic when reading dataset subsets or the full contents of an object store.

Support: Chrome 141, Edge 141, Firefox 153.

Rachel Andrew

Reading text directly from bodies

Chrome 151 adds textStream() to Response, Request, and Blob. The helper yields a readable stream of decoded text strings from binary body data, equivalent to piping body through a TextDecoderStream().

Support: Chrome 151, Edge 151.

<usermedia> capability element

Chrome 151 also introduces the declarative <usermedia> capability element. This browser-controlled element gives pages an explicit, user-initiated way to request camera and microphone access. Anchoring the permission prompt to an interaction with a trusted element improves prompt transparency and offers a straightforward recovery path when permission was previously denied. Chrome documents it in Introducing the HTML <usermedia> element.

Safari 26.6 fixes

Safari 26.6 was a stability release. It fixed ic length unit scaling under page zoom; position-area fallback behavior for fixed-positioned elements when the page body is scrollable; CSS zoom interaction with font-size, font-weight, font-style, and font-variant on iPad when requesting desktop sites; and deletion of partitioned cookies via cookie headers.

What's in beta

Chrome 152, Firefox 154, and Safari 27 entered beta this month, previewing features ahead of their stable releases.

  • Chrome 152: CSSPseudoElement support for ::backdrop, ::scroll-marker, and ::view-transition; the global autocorrect HTML attribute; media element pseudo-classes (:playing, :paused, :muted); the CSS Color 5 alpha() relative color function; the window-drag property; the CPU Performance API; and WebGPU subgroup size control.
  • Firefox 154: WebRTC transport improvements, including RTCIceTransport.getSelectedCandidatePair() and the selectedcandidatepairchange event, plus an error event on RTCDtlsTransport.
  • Safari 27: the ariaNotify API for screen reader announcements; contain: style for quote counters; a case-sensitive s modifier in attribute selectors; the stretch keyword for box sizing; :host:has() compound selectors; the :heading pseudo-class; the revert-rule keyword; transform-aware anchor positioning; color-mix() with more than two colors; and the no-clamp option on progress().