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

# Safari Technology Preview 160 Release Notes

Preview the latest web technology updates including: Web Inspector, CSS, Rendering, Web Animations, SVG, Media, JavaScript, WebAssembly, Service Workers, Accessibility, Editing, and Web API.

## Overview

[Safari Technology Preview](https://webkit.org/blog/6017/introducing-safari-technology-preview/) Release 160 is now [available for download](https://webkit.org/downloads/) for macOS Monterey 12.3 or later and macOS Ventura. If you already have Safari Technology Preview installed, you can update in the Software Update pane of System Preferences on macOS Monterey, or System Settings under General → Software Update on macOS Ventura.

This release includes WebKit changes between: [256265@main…257350@main](https://github.com/WebKit/WebKit/compare/ec9adcfcd3db270348a5b7a95cdf500bdccbf088...5ec07d1125db2d13bd0cde752cf580d87d7ff9f7)

**Note:** Shared Tab Groups and syncing for Tab Groups, Website Settings, and Web Extensions are not enabled in this release.

### Web Inspector

- Elements Tab
  - Added emulation toggles for `prefers-reduced-motion` and `prefers-contrast` CSS media features  ([257197@main](https://commits.webkit.org/257197@main))
  - Fixed corrupted styles when adding a new property to a rule with a commented-out property in the Styles sidebar ([256410@main](https://commits.webkit.org/256410@main))
- Storage Tab
  - Fixed extensions showing a UUID instead of their name for cookie entries ([256695@main](https://commits.webkit.org/256695@main))

### CSS

- Added support for media queries level 4 including range queries ([257252@main](https://commits.webkit.org/257252@main))
- Fixed `-webkit-radial-gradient` parsing that treated a number of mandatory commas as optional ([256468@main](https://commits.webkit.org/256468@main))
- Fixed `transition-property: none` to disassociate CSS Transition from owning the element ([256666@main](https://commits.webkit.org/256666@main))
- Fixed `border-image-*` returning the initial keyword instead of the initial value when setting the `border-image` shorthand ([257119@main](https://commits.webkit.org/257119@main))
- Fixed `@font-face` `src` descriptor format parsing to only allow identifiers for specified formats ([256382@main](https://commits.webkit.org/256382@main))
- Fixed `font` shorthand to reset more longhand properties ([256349@main](https://commits.webkit.org/256349@main))
- Fixed legend tags not accepting the full range of `display` values ([256841@main](https://commits.webkit.org/256841@main))

### Rendering

- Added width and height content attributes to `<model>` ([257294@main](https://commits.webkit.org/257294@main))
- Changed to not apply aspect ratio scaling to gradient background images that don’t have a natural aspect ratio ([256256@main](https://commits.webkit.org/256256@main))
- Changed to use device pixel scaled backing store for `<canvas>` with `image-rendering: pixelated` ([256299@main](https://commits.webkit.org/256299@main))
- Changed to not paint a focus ring for anonymous block continuations ([257199@main](https://commits.webkit.org/257199@main))
- Changed to use unclamped `subgrid` track sizes to compute track positions, so that `gap` is accounted for correctly ([256621@main](https://commits.webkit.org/256621@main))
- Fixed Grid track sizing to reset the override width as well as height to compute intrinsic sizing ([256622@main](https://commits.webkit.org/256622@main))
- Fixed incorrect clipping when a layer is present between the column and the content layer ([256953@main](https://commits.webkit.org/256953@main))
- Fixed pixel-moving CSS filters with clipping ([256825@main](https://commits.webkit.org/256825@main))
- Fixed `<textarea>` placeholder text that does not disappear when inserting text without a user gesture ([257210@main](https://commits.webkit.org/257210@main))
- Fixed the incorrect static position of absolute-positioned elements inside relative-positioned containers ([256722@main](https://commits.webkit.org/256722@main))
- Fixed rendering for extreme `border-radius` ([256943@main](https://commits.webkit.org/256943@main))
- Fixed a positioned element with percentage padding to recalculate width when the containing block is changed ([256315@main](https://commits.webkit.org/256315@main))

### Web Animations

- Implement `KeyframeEffect.iterationComposite` ([257059@main](https://commits.webkit.org/257059@main))
- Fixed opacity to use unclamped values for `from` and `to` keyframes with `iterationComposite` ([257033@main](https://commits.webkit.org/257033@main))
- Implemented correct accumulation support for the `filter` property ([256952@main](https://commits.webkit.org/256952@main))
- Implemented correct additivity support for the `filter` property ([256955@main](https://commits.webkit.org/256955@main))
- Fixed to correctly accumulate and clamp `filter` values when blending with `"none"` ([256976@main](https://commits.webkit.org/256976@main))
- Fixed `filter` values containing a `url()` to animate discretely ([256970@main](https://commits.webkit.org/256970@main))
- Fixed support for blending mismatched `filter` lists ([256975@main](https://commits.webkit.org/256975@main))
- Fixed `baseline-shift` animation is incorrect ([256934@main](https://commits.webkit.org/256934@main))
- Fixed changing `writing-mode` or `direction` on an element that has an animation targeting a logical property to ensure animation resolution is scheduled ([256667@main](https://commits.webkit.org/256667@main))
- Fixed keyframes to be recomputed if the CSS variable that is used changes ([256893@main](https://commits.webkit.org/256893@main))
- Fixed `word-spacing` to support animating between percentage and fixed values ([256951@main](https://commits.webkit.org/256951@main))
- Fixed `Animation.commitStyles()` not changing the `style` attribute for individual CSS transform properties ([256728@main](https://commits.webkit.org/256728@main))

### SVG

- Changed the default for the `x1`, `y1`, and `y2` attributes to 0% for LinearGradient ([257032@main](https://commits.webkit.org/257032@main))

### Media

- Changed to keep MediaKeySystemAccess alive in a `createMediaKeys()` async task ([256442@main](https://commits.webkit.org/256442@main))
- Changed to ensure current time is not removed during automatic eviction ([256939@main](https://commits.webkit.org/256939@main))
- Changed to not seek with no seekable range ([256759@main](https://commits.webkit.org/256759@main))
- Changed to explicitly close an RTCNetworkManager on document teardown ([256319@main](https://commits.webkit.org/256319@main))
- Fixed web audio rendering becoming garbled when switching from speakers to headphones and vice-versa ([256712@main](https://commits.webkit.org/256712@main))
- Fixed rendering artifacts when presenting fullscreen video ([256251@main](https://commits.webkit.org/256251@main))
- Fixed RGBA data VideoFrame `copyTo` ([256534@main](https://commits.webkit.org/256534@main))
- Fixed enabling subtitles when tracks are added after the video is loaded  ([256408@main](https://commits.webkit.org/256408@main))
- Fixed the incorrect size of a video track’s settings in the second MediaStream created when the `aspectRatio` constraint is applied ([256433@main](https://commits.webkit.org/256433@main))
- Improved the coded frame eviction algorithm ([256441@main](https://commits.webkit.org/256441@main))

### JavaScript

- Enabled resizable ArrayBuffer ([257005@main](https://commits.webkit.org/257005@main), [256998@main](https://commits.webkit.org/256998@main), [256826@main](https://commits.webkit.org/256826@main))
- Added JIT optimizations for ResizableArrayBuffers ([257001@main](https://commits.webkit.org/257001@main))
- Added support for `Atomics.waitAsync` ([257061@main](https://commits.webkit.org/257061@main))
- Added binding generator support for async iterable ([257021@main](https://commits.webkit.org/257021@main))
- Aligned `Function#name` behavior with spec ([257114@main](https://commits.webkit.org/257114@main))
- Relaxed `Date` parsing to accept narrow-no-break-space ([256754@main](https://commits.webkit.org/256754@main))
- Fixed the thrown error type for `WebAssembly.Tag.getArg` ([256158@main](https://commits.webkit.org/256158@main))
- Fixed WeakMap and WeakSet constructors to accept symbols ([256758@main](https://commits.webkit.org/256758@main))
- Fixed `Array.prototype.indexOf` constant-folding to account for non-numeric index ([256590@main](https://commits.webkit.org/256590@main))
- Fixed `in` operator parsing inside `for` statement destructuring ([256497@main](https://commits.webkit.org/256497@main))
- Implemented `Array.fromAsync` ([257177@main](https://commits.webkit.org/257177@main))
- Implemented growable SharedArrayBuffer ([256524@main](https://commits.webkit.org/256524@main), [256766@main](https://commits.webkit.org/256766@main))
- Implemented `String#isWellFormed` and `String#toWellFormed` ([257250@main](https://commits.webkit.org/257250@main))
- Improved resizable TypedArray’s slice implementation’s spec conformance ([257018@main](https://commits.webkit.org/257018@main))
- Updated resizable ArrayBuffer based on spec update ([257178@main](https://commits.webkit.org/257178@main))
- Wired memory allocation reporting to ArrayBuffer resize and grow ([257042@main](https://commits.webkit.org/257042@main))

### WebAssembly

- Added support for subtyping declarations ([256243@main](https://commits.webkit.org/256243@main))
- Changed `call_ref` to take a type index ([256285@main](https://commits.webkit.org/256285@main))
- Fixed incorrect text in WASM error message ([256176@main](https://commits.webkit.org/256176@main))

### Service Workers

- Changed to make sure nested worker gets controlled if matching a service worker registration ([256637@main](https://commits.webkit.org/256637@main))
- Changed to not use the service worker preload for modified requests ([257110@main](https://commits.webkit.org/257110@main))
- Fixed service worker download in case of preloads ([256731@main](https://commits.webkit.org/256731@main))
- Removed the “Frame load interrupted” warning in Web Inspector when clicking a link to download a file served by a service worker with a fetch event handler ([256725@main](https://commits.webkit.org/256725@main))

### Accessibility

- Fixed dynamic `aria-disabled` changes not updating enabled status for descendants ([257159@main](https://commits.webkit.org/257159@main))
- Fixed to include AXKeyShortcutsValue in `accessibilityAttributeNames` when there is an `aria-keyshortcuts` attribute ([257274@main](https://commits.webkit.org/257274@main))
- Fixed listed size announced by VoiceOver despite use of `aria-setsize=-1` ([256861@main](https://commits.webkit.org/256861@main))
- Fixed a bug preventing Shadow DOM content from being exposed to accessibility clients when used in an `aria-modal` or dialog ([256531@main](https://commits.webkit.org/256531@main))

### Editing

- Fixed non-breaking space getting inserted instead of a normal space character between text nodes in `contenteditable` ([257136@main](https://commits.webkit.org/257136@main))

### Web API

- Enabled UserActivation API ([257214@main](https://commits.webkit.org/257214@main), [256572@main](https://commits.webkit.org/256572@main))
- Changed to only require a “transient” user activation for Web Audio rendering ([256721@main](https://commits.webkit.org/256721@main))
- Changed to not detach whitespace nodes when the previous sibling is an out-of-flow block ([256602@main](https://commits.webkit.org/256602@main))
- Changed to keep `br` element while replacing plain texts with content ending with newline ([257205@main](https://commits.webkit.org/257205@main))
- Changed to prevent hidden documents from locking the screen orientation ([257019@main](https://commits.webkit.org/257019@main))
- Changed to use `'self'` as the permission policy for Web Share ([256556@main](https://commits.webkit.org/256556@main))
- Fixed clearing floats added dynamically to previous siblings ([256238@main](https://commits.webkit.org/256238@main))
- Fixed content downloaded with `fetch()` API when `Content-Encoding: gzip` is set is not decompressed ([256755@main](https://commits.webkit.org/256755@main))
- Fixed dedicated worker and shared worker global scope to use the response URL ([256532@main](https://commits.webkit.org/256532@main))
- Fixed elements with `position: sticky` that jitter inside a container with `overflow-x: clip` ([256618@main](https://commits.webkit.org/256618@main))
- Fixed broken preferred widths optimization involving subtree layout roots ([256623@main](https://commits.webkit.org/256623@main))
- Fixed `CSS.supports` behaviour with regards to !important and whitespace ([257196@main](https://commits.webkit.org/257196@main), [257280@main](https://commits.webkit.org/257280@main), [257313@main](https://commits.webkit.org/257313@main))
- Fixed `CSSStyleValue.parse()` and `CSSStyleValue.parseAll()` for shorthand CSS properties ([256228@main](https://commits.webkit.org/256228@main))
- Fixed form association behavior when a form and a control with `form=` are removed from a document together ([256620@main](https://commits.webkit.org/256620@main))
- Fixed form-association for `<img>` ([256629@main](https://commits.webkit.org/256629@main))
- Fixed hidden buttons that can’t be used as the submitter in an implicit submission ([256813@main](https://commits.webkit.org/256813@main))
- Fixed screen sharing when constraints passed by `getDisplayMedia` contains the `ideal` parameter  ([256458@main](https://commits.webkit.org/256458@main))
- Fixed `notification.close()` ([257108@main](https://commits.webkit.org/257108@main))
- Fixed overlay regions sometimes getting stuck in the wrong place ([256504@main](https://commits.webkit.org/256504@main))
- Fixed clicking an email field on a sign-up form not allowing input until clicked a second time ([256581@main](https://commits.webkit.org/256581@main))
- Fixed WebSocket requests to include `Sec-Fetch-Mode=websocket` for FetchMetadata ([256527@main](https://commits.webkit.org/256527@main))
- Implemented input validation for CSSColorValues ([256229@main](https://commits.webkit.org/256229@main))
- Implemented `messageerror` event ([256896@main](https://commits.webkit.org/256896@main))
- Implemented support for `StylePropertyMap.append()` ([257123@main](https://commits.webkit.org/257123@main))
- Improved the speed of setting the value of `<textarea>` ([256596@main](https://commits.webkit.org/256596@main))
- Simplified early dedicated worker termination ([256949@main](https://commits.webkit.org/256949@main))
- Updated the streams WebIDL to match the latest specifications ([257279@main](https://commits.webkit.org/257279@main))

---

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)