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

# Safari Technology Preview 121 Release Notes

Preview the latest web technology updates including: Web Inspector, CSS, GPU Process, Media, Web API, JavaScript, WebAssembly, Accessibility, and Speech Recognition.

## Overview

[Safari Technology Preview](https://webkit.org/blog/6017/introducing-safari-technology-preview/) Release 121 is now [available for download](https://webkit.org/downloads/) for macOS Big Sur and macOS Catalina. 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 [271794-272845](https://trac.webkit.org/log?stop_rev=271794&rev=272845&limit=999).

### Web Inspector

- Sources
  - Collapsed blackboxed call frames in the Call Stack section ([r272371](https://trac.webkit.org/changeset/272371/webkit/))

### CSS

- Added support for `aspect-ratio` on grid items ([r272307](https://trac.webkit.org/changeset/272307/webkit/))
- Added support for logical variants of `scroll-padding` and `scroll-margin` ([r272035](https://trac.webkit.org/changeset/272035/webkit/))
- Added support for `color(a98-rgb ...)`, `color(prophoto-rgb ...)`, `color(rec2020 ...)`, `color(xyz ...)`, `hwb()` as part of CSS Color 4 ([r271992](https://trac.webkit.org/changeset/271992/webkit/), [r272125](https://trac.webkit.org/changeset/272125/webkit/), [r272123](https://trac.webkit.org/changeset/272123/webkit/), [r272311](https://trac.webkit.org/changeset/272311/webkit/), [r272344](https://trac.webkit.org/changeset/272344/webkit/))
- Added support for percentages when parsing `color(srgb ...)` and `color(display-p3 ...)` per-spec ([r271866](https://trac.webkit.org/changeset/271866/webkit/))
- Changed `sRGB` to `XYZ` conversion matrix values to match values in the latest spec ([r272498](https://trac.webkit.org/changeset/272498/webkit/))
- Fixed `max-height` percentages that are wrongly resolved for replaced grid items ([r272309](https://trac.webkit.org/changeset/272309/webkit/))
- Fixed grid item to fill the grid area for `stretch` or `normal` self alignment ([r272308](https://trac.webkit.org/changeset/272308/webkit/))
- Fixed animation of `rotate` or `scale` property to correctly account for static `translate` property ([r272201](https://trac.webkit.org/changeset/272201/webkit/))
- Fixed `font-stretch` to apply to `system-ui` ([r272073](https://trac.webkit.org/changeset/272073/webkit/))
- Fixed the nested grid container which has a replaced item with `max-height` incorrectly getting `width(0px)` ([r272338](https://trac.webkit.org/changeset/272338/webkit/), [r272711](https://trac.webkit.org/changeset/272711/webkit/))
- Implemented `scroll-snap-stop` for scroll snapping ([r272610](https://trac.webkit.org/changeset/272610/webkit/))
- Handled `aspect-ratio: auto m/n` for replaced elements ([r272360](https://trac.webkit.org/changeset/272360/webkit/))
- Handled `min-width: auto` or `min-height: auto` for `aspect-ratio` ([r272718](https://trac.webkit.org/changeset/272718/webkit/))
- Handled zero `aspect-ratio` width or height ([r271948](https://trac.webkit.org/changeset/271948/webkit/))
- Made `auto && <ratio>` use content `box-sizing` ([r272569](https://trac.webkit.org/changeset/272569/webkit/))

### GPU Process

- Enabled audio capture in GPUProcess by default ([r272735](https://trac.webkit.org/changeset/272735/webkit/))
- Enabled audio capture for speech recognition in GPUProcess ([r272434](https://trac.webkit.org/changeset/272434/webkit/))
- Enabled GPU WebRTC codecs in GPUProcess by default on macOS ([r272496](https://trac.webkit.org/changeset/272496/webkit/))
- Enabled video capture in GPUProcess by default on macOS ([r272810](https://trac.webkit.org/changeset/272810/webkit/))
- Fixed `<audio>` not loading when the URL ends with `.php` causing some tests to time out ([r272750](https://trac.webkit.org/changeset/272750/webkit/))
- Fixed implementation of WebGL power preference and discrete/internal GPU selection with ANGLE ([r271880](https://trac.webkit.org/changeset/271880/webkit/))

### Media

- Added intermediate volume icon states between “mute” and “max” ([r272375](https://trac.webkit.org/changeset/272375/webkit/))
- Changed media controls to show the total duration, only switching to time remaining when clicked ([r272373](https://trac.webkit.org/changeset/272373/webkit/))
- Changed MediaStream-backed video elements to not compute the mediaType based on track muted states ([r272583](https://trac.webkit.org/changeset/272583/webkit/))
- Connected MediaSession with MediaRemote and NowPlaying ([r272445](https://trac.webkit.org/changeset/272445/webkit/), [r272589](https://trac.webkit.org/changeset/272589/webkit/))
- Fixed sound on YouTube after switching back to foreground ([r272829](https://trac.webkit.org/changeset/272829/webkit/))
- Fixed playback of WebM/Opus generated from Chrome MediaRecorder ([r272822](https://trac.webkit.org/changeset/272822/webkit/))
- Fixed Picture-in-Picture video pauses when scrolling on Twitter ([r271870](https://trac.webkit.org/changeset/271870/webkit/))
- Updated media controls time scrubber styles ([r272352](https://trac.webkit.org/changeset/272352/webkit/), [r272438](https://trac.webkit.org/r272438))
- Updated media controls to use new SF Symbols ([r272339](https://trac.webkit.org/changeset/272339/webkit/))

### Web API

- Fixed the return key binding for date inputs conflicting with pressing return to submit a form ([r272495](https://trac.webkit.org/changeset/272495/webkit/)
- Fixed selecting a date on `datetime-local` inputs unexpectedly adding second and millisecond fields ([r272368](https://trac.webkit.org/changeset/272368/webkit/))
- Fixed rendering a pattern with an SVG image ([r272549](https://trac.webkit.org/changeset/272549/webkit/))
- Forbid “|” in URL hosts ([r271899](https://trac.webkit.org/changeset/271899/webkit/))
- Reduced the overhead of HTMLDocumentParser in `innerHTML` setter ([r272622](https://trac.webkit.org/changeset/272622/webkit/))

### JavaScript

- Added `@` in `Error#stack` even if function name does not exist ([r272139](https://trac.webkit.org/changeset/272139/webkit/))
- Added `Atomics` support for `BigInt64Array` and `BigUint64Array` behind a runtime flag (`JSC_useSharedArrayBuffer=1`) ([r272341](https://trac.webkit.org/changeset/272341/webkit/))
- Adjusted properties order of host JS functions ([r272099](https://trac.webkit.org/changeset/272099/webkit/))
- Changed `Object.assign` to throw for property creation on non-extensible `target` ([r272411](https://trac.webkit.org/changeset/272411/webkit/))
- Handled milliseconds in Date’s timezone without floating point rounding ([r272127](https://trac.webkit.org/changeset/272127/webkit/))
- Implemented `BigInt64Array` and `BigUint64Array` ([r272170](https://trac.webkit.org/changeset/272170/webkit/), [r272215](https://trac.webkit.org/changeset/272215/webkit/))
- Implemented private methods behind flag (`JSC_usePrivateMethods=1`)([r272580](https://trac.webkit.org/changeset/272580/webkit/))
- Made `JSON.parse` faster by using table for fast string parsing ([r272570](https://trac.webkit.org/changeset/272570/webkit/))

### WebAssembly

- Implemented `WebAssembly.instantiateStreaming` and `WebAssembly.compileStreaming` ([r271993](https://trac.webkit.org/changeset/271993/webkit/))
- Implemented streaming compilation/instantiation for the Blob type ([r272221](https://trac.webkit.org/changeset/272221/webkit/))
- Updated `WebAssembly.Global` to support `Funcref` and `Externref` ([r272071](https://trac.webkit.org/changeset/272071/webkit/), [r272081](https://trac.webkit.org/changeset/272081/webkit/), [r272119](https://trac.webkit.org/changeset/272119/webkit))
- Enabled Wasm bulk-memory and reference-types ([r272074](https://trac.webkit.org/changeset/272074/webkit/))

### Accessibility

- Exposed focusable elements even if the element or ancestor has `aria-hidden=true` ([r272390](https://trac.webkit.org/changeset/272390/webkit/))
- Fixed long narrow tables to not be made into data tables unnecessarily ([r272024](https://trac.webkit.org/changeset/272024/webkit/))

### Speech Recognition

- Used the user media permission prompt for Speech Recognition ([r272165](https://trac.webkit.org/changeset/272165/webkit/))

---

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)