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.
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:
CSSPseudoElementsupport for::backdrop,::scroll-marker, and::view-transition; the globalautocorrectHTML attribute; media element pseudo-classes (:playing,:paused,:muted); the CSS Color 5alpha()relative color function; thewindow-dragproperty; the CPU Performance API; and WebGPU subgroup size control. - Firefox 154: WebRTC transport improvements, including
RTCIceTransport.getSelectedCandidatePair()and theselectedcandidatepairchangeevent, plus anerrorevent onRTCDtlsTransport. - Safari 27: the
ariaNotifyAPI for screen reader announcements;contain: stylefor quote counters; a case-sensitivesmodifier in attribute selectors; thestretchkeyword for box sizing;:host:has()compound selectors; the:headingpseudo-class; therevert-rulekeyword; transform-aware anchor positioning;color-mix()with more than two colors; and theno-clampoption onprogress().



