<!--
{
  "documentType" : "article",
  "framework" : "Safari Technology Preview Release Notes",
  "identifier" : "/documentation/Safari-Technology-Preview-Release-Notes/stp-release-140",
  "metadataVersion" : "0.1.0",
  "role" : "article",
  "title" : "Safari Technology Preview 140 Release Notes"
}
-->

# Safari Technology Preview 140 Release Notes

Preview the latest web technology updates including: Web Inspector, :has() Pseudo-Class, CSS, Web API, Web Animations, JavaScript, WebAssembly, Dialog Element, HTML, Media, WebAuthn, Accessibility, Content Security Policy, Privacy, SVG, Scrolling, and Web Extensions.

## Overview

[Safari Technology Preview](https://webkit.org/blog/6017/introducing-safari-technology-preview/) Release 140 is now [available for download](https://webkit.org/downloads/) for macOS Big Sur and of macOS Monterey. If you already have Safari Technology Preview installed, you can update in the Software Update pane of System Preferences on macOS.

This release covers WebKit revisions [287834-288438](https://trac.webkit.org/log?stop_rev=287834&rev=288438&limit=604).

**Note:** Tab Groups do not sync in this release.

### Web Inspector

- Elements Tab
  - Made CSS Alignment controls in the Styles Detail Sidebar accessible ([r288385](https://trac.webkit.org/changeset/288385/webkit/))
- Sources Tab
  - Added a contextual menu item to create a URL Breakpoint for resources initiated by script ([r288029](https://trac.webkit.org/changeset/288029/webkit/))
  - Fixed fully blackboxed stack traces to show the right top call frame ([r288266](https://trac.webkit.org/changeset/288266/webkit/))
- Timelines Tab
  - Added better names for newer CSS Animations, CSS Transitions, and Web Animations events ([r287945](https://trac.webkit.org/changeset/287945/webkit/))

### :has() Pseudo-Class

- Added support for `:has(:not(foo))` ([r288303](https://trac.webkit.org/changeset/288303/webkit/))
- Avoided complex style invalidation with repeated DOM mutations ([r288012](https://trac.webkit.org/changeset/288012/webkit), [r287973](https://trac.webkit.org/changeset/287973/webkit/))
- Fixed computing specificity ([r288196](https://trac.webkit.org/changeset/288196/webkit/))
- Changed to disallow nested `:has()` ([r288111](https://trac.webkit.org/changeset/288111/webkit/))
- Changed to ignore `:visited` inside `:has()` ([r288304](https://trac.webkit.org/changeset/288304/webkit/))

### CSS

- Added support for intrinsic sizes in `flex-basis` ([r288113](https://trac.webkit.org/changeset/288113/webkit/))
- Added support for intrinsic sizes to the `flex` shorthand ([r288184](https://trac.webkit.org/changeset/288184/webkit/))
- Added support for “missing“/“none” color components ([r288143](https://trac.webkit.org/changeset/288143/webkit/))
- Added support for interpolating colors with “missing”/“none” components via `color-mix()` ([r288427](https://trac.webkit.org/changeset/288427/webkit/))
- Added support for preloading of layered `@import` rules ([r288099](https://trac.webkit.org/changeset/288099/webkit/))
- Changed interpolation mode for CSS gradients to default to OKLab if any non-legacy color syntax colors are used in the stops ([r288071](https://trac.webkit.org/changeset/288071/webkit/))
- Changed to only apply automatic minimum block-size aspect-ratio rules to non-replaced elements ([r288003](https://trac.webkit.org/changeset/288003/webkit/))
- Fixed the `::backdrop` pseudo-element to react to associated element event listeners ([r287878](https://trac.webkit.org/changeset/287878/webkit/))
- Fixed the CSS `color()` function to not clamp channels to the 0-1 range ([r287838](https://trac.webkit.org/changeset/287838/webkit/))
- Fixed the height of `flex` items with `aspect-ratio` whenever the cross axis intrinsic size is larger than the viewport ([r287976](https://trac.webkit.org/changeset/287976/webkit/))
- Fixed rounding of distributed free space to flexible tracks ([r287977](https://trac.webkit.org/changeset/287977/webkit/))
- Fixed `position: fixed` layers to not allocate a backing buffer if all the children are offscreen ([r288429](https://trac.webkit.org/changeset/288429/webkit/))
- Fixed setting `content: normal` on a `::marker` to make the computed style return resolved values ([r288054](https://trac.webkit.org/changeset/288054/webkit/))

### Web API

- Added support for `FetchEvent.handled` API for Service Workers ([r287915](https://trac.webkit.org/changeset/287915/webkit/))
- Enabled `form.requestSubmit()` ([r288179](https://trac.webkit.org/changeset/288179/webkit/))
- Fixed `nextHopProtocol` exposed regardless of `Timing-Allow-Origin` ([r288219](https://trac.webkit.org/changeset/288219/webkit/))
- Fixed `input.labels` inside shadow DOM ([r288162](https://trac.webkit.org/changeset/288162/webkit/))
- Fixed canvas functions that take colors as strings to support all the syntax that CSS supports ([r288134](https://trac.webkit.org/changeset/288134/webkit/))
- Implemented `HTMLScriptElement.supports(type)` method ([r287996](https://trac.webkit.org/changeset/287996/webkit/))
- Improved computation of Service Worker `FetchEvent.resultingClientId` ([r288201](https://trac.webkit.org/changeset/288201/webkit/))

### Web Animations

- Added support for `animation-composition` CSS property ([r288433](https://trac.webkit.org/changeset/288433/webkit/))
- Changed `getKeyframes()` for a CSS Animation to not use computed style for keyframes ([r287835](https://trac.webkit.org/changeset/287835/webkit/))
- Fixed interpolation during animation of two empty transform lists to always yield “none” ([r287917](https://trac.webkit.org/changeset/287917/webkit/))

### JavaScript

- Fixed Date functions’ argument coercion ([r288066](https://trac.webkit.org/changeset/288066/webkit/))
- Relaxed `Date.parse` requirement ([r288411](https://trac.webkit.org/changeset/288411/webkit/))

### WebAssembly

- Fixed misc `WebAssembly.Table` issues ([r288064](https://trac.webkit.org/changeset/288064/webkit/))
- Fixed misc issues in `WebAssembly.Exception` ([r288065](https://trac.webkit.org/changeset/288065/webkit/))
- Fixed `WebAssembly.Global`’s typename for “anyfunc” ([r288049](https://trac.webkit.org/changeset/288049/webkit/))

### Dialog Element

- Added `visibility: visible` to modal dialogs in the user-agent stylesheet ([r288233](https://trac.webkit.org/changeset/288233/webkit/))
- Fixed some overflow and clipping issues with modal dialogs ([r288267](https://trac.webkit.org/changeset/288267/webkit/), [r287845](https://trac.webkit.org/changeset/287845/webkit/))

### HTML

- Fixed support for new lines in HTMLTextArea’s `placeholder` text ([r288005](https://trac.webkit.org/changeset/288005/webkit/))
- Fixed keeping the selected state of a select element when inserting a selected `<option>` ([r288174](https://trac.webkit.org/changeset/288174/webkit/))
- Prevented `contenteditable` anchors from being stuck ([r288420](https://trac.webkit.org/changeset/288420/webkit/))

### Media

- Fixed `gl.texImage2D` upload of getUserMedia streams via `<video>` element fails ([r288025](https://trac.webkit.org/changeset/288025/webkit/))
- Fixed MediaStream `canvas.captureStream()` playback ([r288435](https://trac.webkit.org/changeset/288435/webkit/))
- Fixed portrait video playback on HTML canvas elements ([r288053](https://trac.webkit.org/changeset/288053/webkit/))
- Fixed no VP9-SVS video stream from remote peer on some devices ([r287928](https://trac.webkit.org/changeset/287928/webkit/))
- Fixed “Add to Contact” menu item ([r287959](https://trac.webkit.org/changeset/287959/webkit/))
- Tightened the focus check for getUserMedia ([r288087](https://trac.webkit.org/changeset/288087/webkit/))

### WebAuthn

- Allowed single use of WebAuthn without user gesture for all relying parties ([r287957](https://trac.webkit.org/changeset/287957/webkit/))

### Accessibility

- Exposed toggle buttons using `role="button"` as form controls ([r288100](https://trac.webkit.org/changeset/288100/webkit/))
- Improved support for `aria-owns` in ARIA trees ([r288117](https://trac.webkit.org/changeset/288117/webkit/))

### Content Security Policy

- Improved handling of multiple policies ([r288132](https://trac.webkit.org/changeset/288132/webkit/))

### Privacy

- Fixed an issue where a website may be able to track sensitive user information ([r288078](https://trac.webkit.org/changeset/288078/webkit/))

### SVG

- Fixed calculations of `filterRegion` and `outsets` of the referenced SVG filter ([r288183](https://trac.webkit.org/changeset/288183/webkit/))
- Fixed referenced SVG filter always using sRGB color space for its result ([r287982](https://trac.webkit.org/changeset/287982/webkit/))

### Scrolling

- Fixed sometimes not being able to scroll after using a builtin trackpad ([r287997](https://trac.webkit.org/changeset/287997/webkit/))

### Web Extensions

- Fixed a crash when calling `browser.webNavigation.getAllFrames()` on an empty tab
- Fixed Active tab permissions for a tab to get removed if a matching per-site permission changes to “Deny”
- Fixed service worker background script errors to get reset each time they successfully load

---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)