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

# Safari Technology Preview 249 Release Notes

Learn about the latest web technology updates in Safari Technology Preview: Accessibility, Animations, CSS, Editing, Forms, HTML, JavaScript, Media, Rendering, Spatial Web, Web API, Web Audio, Web Inspector, WebAssembly, WebDriver, and WebRTC.

## Overview

[Safari Technology Preview](https://webkit.org/blog/6017/introducing-safari-technology-preview/) Release 249 is now [available for download](https://developer.apple.com/safari/resources/) for macOS Golden Gate and macOS Tahoe. If you already have Safari Technology Preview installed, you can update it in System Settings under General → Software Update.

This release includes WebKit changes between: [316531@main…317820@main](https://github.com/WebKit/WebKit/compare/402dc1b3bf265f5afd15d1b68374ef0885824299...82913509604940fdfe247e5da3609c6de6e44d89).

### Accessibility

#### Resolved Issues

- Fixed an issue where an `aria-labelledby` relation was not built when its target element was inserted via `innerHTML`. ([316913@main](https://commits.webkit.org/316913@main))  (179677418)
- Fixed an issue where VoiceOver was silent during character navigation inside a local iframe. ([317264@main](https://commits.webkit.org/317264@main))  (182229891)
- Fixed an issue where web content somtimes appeared empty to assistive technology after navigation. ([317449@main](https://commits.webkit.org/317449@main))  (182544199)

### Animations

#### Resolved Issues

- Fixed an issue where calling `play()` on a finite scroll-driven animation timeline did not reset its start time to the current time. ([316745@main](https://commits.webkit.org/316745@main))  (181712713)
- Fixed an issue where `animation-timeline` did not use the last matching timeline when it matched multiple timelines. ([317330@main](https://commits.webkit.org/317330@main))  (182405676)
- Fixed an issue where `animation-timeline` could match a timeline outside the nearest `timeline-scope` element with that name. ([317376@main](https://commits.webkit.org/317376@main))  (182417407)

### CSS

#### New Features

- Added support for the `attr()` function. ([316672@main](https://commits.webkit.org/316672@main))  (173992627)
- Added support for `outline-offset: inset`. ([316677@main](https://commits.webkit.org/316677@main))  (180547604)
- Added support for the `@function` custom functions rule. ([316671@main](https://commits.webkit.org/316671@main))  (181625123)
- Added preview support for the `wrap-inside` property. ([317182@main](https://commits.webkit.org/317182@main))  (181751564)
- Added support for the `if()` function. ([316813@main](https://commits.webkit.org/316813@main))  (181806268)
- Added support for `calc-mix()`. ([316847@main](https://commits.webkit.org/316847@main))  (181839626)
- Added support for `justify-self` on block-level boxes. ([317212@main](https://commits.webkit.org/317212@main))  (181926245)
- Added preview support for `text-decoration-inset`. ([317230@main](https://commits.webkit.org/317230@main))  (182019037)
- Added preview support for the `content` property on the `::marker` pseudo-element. ([317211@main](https://commits.webkit.org/317211@main))  (182066124)

#### Resolved Issues

- Fixed an issue where setting `view-transition-name` dynamically did not create a stacking context. ([317310@main](https://commits.webkit.org/317310@main))  (178316558)
- Fixed an issue where CSS Grid items with a computed preferred size that behaves as `auto` did not correctly compute their minimum content contribution. ([316697@main](https://commits.webkit.org/316697@main))  (181146154)
- Fixed an issue where visually overflowing content in a CSS Grid item was not painted. ([316668@main](https://commits.webkit.org/316668@main))  (181277780)
- Fixed `anchor-center` in vertical writing modes not being scroll-adjusted along the block axis. ([316537@main](https://commits.webkit.org/316537@main))  (181413103)
- Fixed an issue where an empty editable flex container did not reserve a line’s worth of block size in vertical writing modes. ([317467@main](https://commits.webkit.org/317467@main))  (181485387)
- Fixed an issue where CSS Grid did not correctly increase track sizes to accommodate items spanning flexible tracks. ([317426@main](https://commits.webkit.org/317426@main))  (181635324)
- Fixed an issue where stretch alignment did not trigger stretch sizing for CSS Grid items. ([316949@main](https://commits.webkit.org/316949@main))  (181750071)
- Fixed an issue where CSS Grid items could retain stale block sizes after a subsequent layout. ([317166@main](https://commits.webkit.org/317166@main))  (182144347)
- Fixed an issue where `clip-path` shapes could render with incorrect arcs. ([317397@main](https://commits.webkit.org/317397@main))  (182443333)
- Fixed an issue where `::highlight()` and `::target-text` ignored `text-underline-offset`. ([317440@main](https://commits.webkit.org/317440@main))  (182466757)
- Fixed an issue where `::highlight()` decoration replaced the originating element’s decoration instead of layering over it. ([317439@main](https://commits.webkit.org/317439@main))  (182523249)

### Editing

#### Resolved Issues

- Fixed an issue that <font face> disallowed font names that were not a valid CSS identifiers. ([316948@main](https://commits.webkit.org/316948@main))  (51409819)
- Fixed the Edit menu’s Copy item being incorrectly enabled when there was no selection in the web page. ([316571@main](https://commits.webkit.org/316571@main))  (176061974)

### Forms

#### Resolved Issues

- Fixed an issue where the `datalist` popup menu was presented in the wrong place on a screen to the left of the main screen. ([316965@main](https://commits.webkit.org/316965@main))  (181967418)

### HTML

#### New Features

- Added support for `popover=hint`. ([317402@main](https://commits.webkit.org/317402@main))  (129495028)

### JavaScript

#### New Features

- Added support for the `Temporal` object. ([316742@main](https://commits.webkit.org/316742@main))  (181723535)

### MathML

#### Resolved Issues

- Fixed an issue where U+2016 (DOUBLE VERTICAL LINE) was missing the symmetric property in the MathML operator dictionary. ([316867@main](https://commits.webkit.org/316867@main))  (179558196)

### Media

#### Resolved Issues

- Fixed an issue where finding text starting from a selection could resolve to the wrong caption cue instead of the one nearest the video’s playhead. ([317168@main](https://commits.webkit.org/317168@main))  (182001231)

### Rendering

#### New Features

- Added support for dark mode in the XML document viewer. ([316832@main](https://commits.webkit.org/316832@main))  (122234600)

#### Resolved Issues

- Fixed an issue where `box-shadow` rendering broke when the page was zoomed. ([317080@main](https://commits.webkit.org/317080@main))  (169167365)

### Scrolling

#### Resolved Issues

- Fixed an issue where re-snapping did not select the snap area aligned in both axes when multiple targets were aligned. ([317294@main](https://commits.webkit.org/317294@main))  (182285397)
- Fixed an issue where `scroll-snap-align` was not respected when scrolling to an anchor or calling `scrollIntoView()`. ([317495@main](https://commits.webkit.org/317495@main))  (182544180)

### Spatial Web

#### Resolved Issues

- Fixed an issue where navigating back to a page with a previously active web environment left the UI stuck showing the environment as active. ([316891@main](https://commits.webkit.org/316891@main))  (180966321)
- Fixed an issue where the background color of `HTMLModelElement` did not match spec for non-opaque colors. ([316788@main](https://commits.webkit.org/316788@main))  (181641249)

### Web API

#### New Features

- Added support for subgroups in WebGPU. ([317145@main](https://commits.webkit.org/317145@main))  (154874391)
- Added support for close watchers, including the `closedby` attribute for `dialog` elements. ([316680@main](https://commits.webkit.org/316680@main))  (180105698)

#### Resolved Issues

- Fixed an issue where a user gesture authorization token was not properly verified for Digital Credentials requests. ([317228@main](https://commits.webkit.org/317228@main))  (174908839)
- Fixed `DOMMatrix` and `IntersectionObserver` correctly enforcing absolute-length unit requirements when parsing values. ([316532@main](https://commits.webkit.org/316532@main))  (181453666)
- Fixed an issue where Scroll To Text Fragment directives could run outside `text/html` and `text/plain` documents. ([316976@main](https://commits.webkit.org/316976@main))  (181763736)
- Fixed an issue where `replaceChildren()` could not replace a document’s children. ([316909@main](https://commits.webkit.org/316909@main))  (181921026)

### Web Audio

#### Resolved Issues

- Fixed Web Audio `PannerNode` orientation-only changes not updating the directional cone gain. ([316541@main](https://commits.webkit.org/316541@main))  (181413407)

### Web Inspector

#### New Features

- Added support for the range mappings proposal in source maps. ([316748@main](https://commits.webkit.org/316748@main))  (178564308)
- Added per-element `Layout Invalidated` events in Web Inspector to reflect the number of elements affected by a layout invalidation. ([317302@main](https://commits.webkit.org/317302@main))  (181243589)

#### Resolved Issues

- Fixed an issue where every `<input>` element showed a Scroll badge in the Elements tab. ([316773@main](https://commits.webkit.org/316773@main))  (101661656)
- Fixed an issue where search results did not select the corresponding source code line for fetched JSON. ([317499@main](https://commits.webkit.org/317499@main))  (118115749)
- Fixed an issue where search in Web Inspector did not find results inside the shadow DOM. ([317500@main](https://commits.webkit.org/317500@main))  (126458322)
- Fixed an issue where Web Inspector could crash when selecting a popover matching a nested `@scope` with a bare declaration. ([316987@main](https://commits.webkit.org/316987@main))  (181745000)
- Fixed an issue where Web Inspector mapped the `crimson` named color to the wrong RGB value. ([317047@main](https://commits.webkit.org/317047@main))  (182090064)
- Fixed an issue where the gradient editor in Web Inspector dropped explicit `0%` color stops and misparsed leading radial color stops. ([317192@main](https://commits.webkit.org/317192@main))  (182172439)
- Fixed an issue where autocompleting a vendor-prefixed value in Styles could duplicate the prefix, for example producing `-apple--apple-system`. ([317167@main](https://commits.webkit.org/317167@main))  (182178871)

### WebAssembly

#### Resolved Issues

- Fixed an issue where `Error` stack traces did not include names for modules instantiated with `WebAssembly.instantiateStreaming`. ([316642@main](https://commits.webkit.org/316642@main))  (181523735)

### WebDriver

#### New Features

- Added WebDriver support for the Digital Credentials API, including commands to simulate wallet payloads, indefinite waits, and user rejection. ([316435@main](https://commits.webkit.org/316435@main))  (168941907)

### WebRTC

#### Resolved Issues

- Fixed `OverconstrainedError` to inherit from `DOMException` and expose a `code` attribute per the Media Capture spec. ([316578@main](https://commits.webkit.org/316578@main))  (180728516)

---

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)