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

# Safari Technology Preview 247 Release Notes

Learn about the latest web technology updates in Safari Technology Preview: Accessibility, CSS, Fonts, Forms, HTML, Images, JavaScript, MathML, Media, Model Element, Networking, Rendering, SVG, Scrolling, Security, Spatial Web, Text, Web API, WebDriver, and WebGL.

## Overview

[Safari Technology Preview](https://webkit.org/blog/6017/introducing-safari-technology-preview/) Release 247 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: [314716@main…315846@main](https://github.com/WebKit/WebKit/compare/5826ce9b58c29fc5441c1e7c3fc1f981174c495e...bb9e30c2f7123d626ed9f0f271e31a0e0657d0e7).

### Accessibility

#### Resolved Issues

- Fixed VoiceOver jumping to the top of the page when navigating to an element that immediately becomes accessibility-ignored via JavaScript. ([315078@main](https://commits.webkit.org/315078@main))  (179065364)
- Fixed VoiceOver reporting the Recent Events table on parks.wa.gov as empty. ([314901@main](https://commits.webkit.org/314901@main))  (179156593)
- Fixed VoiceOver not exposing `aria-actions` custom actions when the action target is accessibility-ignored. ([315097@main](https://commits.webkit.org/315097@main))  (179286650)
- Fixed an `<a>` element with a click handler but no `href` not being exposed as a link. ([315102@main](https://commits.webkit.org/315102@main))  (179398579)

### CSS

#### New Features

- Added support for `calc-mix()`. ([314719@main](https://commits.webkit.org/314719@main))  (176199063)

#### Resolved Issues

- Fixed scroll overcompensation of fixed, nested anchor-positioned elements, so they no longer lose their position when scrolling. ([314757@main](https://commits.webkit.org/314757@main))  (174010503)
- Fixed an issue where `font-synthesis` incorrectly applied synthetic oblique to variable fonts declared with `@font-face`. ([314814@main](https://commits.webkit.org/314814@main))  (178698772)
- Fixed synthetic bold not being applied for a variable font whose `@font-face` `font-weight` descriptor explicitly restricts it to `normal`. ([314537@main](https://commits.webkit.org/314537@main))  (179001275)
- Fixed an issue where CSS math functions produced an incorrect signed zero for subtraction, `min()`, `max()`, `clamp()`, and `mod()`. ([315188@main](https://commits.webkit.org/315188@main))  (179534440)
- Fixed an issue where `input[type=hidden]` was not set to `display: none !important` in the user-agent stylesheet. ([315559@main](https://commits.webkit.org/315559@main))  (180137214)

### Fonts

#### Resolved Issues

- Fixed an issue where synthetic bold incorrectly added advance width to zero-advance glyphs. ([315157@main](https://commits.webkit.org/315157@main))  (179418570)

### Forms

#### Resolved Issues

- Fixed an issue where a positive `margin-top` on a `<legend>` element inside a `<fieldset>` did not shift the fieldset down. ([315391@main](https://commits.webkit.org/315391@main))  (141267953)

### HTML

#### Resolved Issues

- Fixed an issue where `<link rel=preload as=json>` incorrectly triggered a preload. ([315422@main](https://commits.webkit.org/315422@main))  (179843455)
- Fixed an issue where the deprecated `align="center"` attribute was not treated as identical to `align="middle"` per spec. ([315531@main](https://commits.webkit.org/315531@main))  (180128710)

### JavaScript

#### Resolved Issues

- Fixed an issue where `Temporal.Instant` operations were not aligned with the spec’s abstract operations. ([315377@main](https://commits.webkit.org/315377@main))  (179844859)

### MathML

#### New Features

- Added support for embellished operator detection through `mrow` for underover layout. ([314924@main](https://commits.webkit.org/314924@main))  (173192995)

#### Resolved Issues

- Fixed MathML operators routed through `MathOperator` being invisible when their glyph only exists in a fallback font. ([314928@main](https://commits.webkit.org/314928@main))  (178096170)
- Fixed MathML to use MathML Core fallback values for script layout constants. ([315004@main](https://commits.webkit.org/315004@main))  (179177178)

### Media

#### New Features

- Added support for overriding color space for hardware video decoders in WebCodecs. ([314887@main](https://commits.webkit.org/314887@main))  (178717498)
- Added support for mapping `nextslide` and `previousslide` MediaSession actions to `nexttrack` and `previoustrack` platform commands, so pressing next/previous track invokes a registered slide handler when no direct track handler is registered. ([314839@main](https://commits.webkit.org/314839@main))  (178744268)

#### Resolved Issues

- Fixed media controls not appearing when tapping videos in the LinkedIn feed on iPad. ([315049@main](https://commits.webkit.org/315049@main))  (171231918)
- Fixed an issue where the `MediaSource` text-track removal loop always processed only the last track. ([315310@main](https://commits.webkit.org/315310@main))  (179508398)
- Fixed an issue where `isValidVideoFrameBufferInit()` tested `displayWidth` and `displayHeight` presence against themselves instead of the correct properties. ([315401@main](https://commits.webkit.org/315401@main))  (179514279)
- Fixed an issue where `MediaMetadata` artwork `sizes` parsing read the wrong substring for the height value. ([315402@main](https://commits.webkit.org/315402@main))  (179523057)
- Fixed an issue where the `pictureInPictureElement` getter inverted the shadow-host connectivity check. ([315403@main](https://commits.webkit.org/315403@main))  (179675087)

### Model Element

#### Resolved Issues

- Fixed setting the `entityTransform` on a `<model>` element while the model is unloaded or hidden. ([314951@main](https://commits.webkit.org/314951@main))  (179114750)
- Fixed `<model>` elements losing gesture interactivity after the model player is reloaded (for example, when the model scrolls out of and back into the viewport). ([315026@main](https://commits.webkit.org/315026@main))  (179249565)

### Networking

#### Resolved Issues

- Fixed an issue where WebKit refused to load valid ASCII domains starting with `xn--` that did not pass strict IDNA 2008 validation, aligning behavior with the WHATWG URL Standard. `xn--` is the prefix of a punycode-encoded non-ASCII domain. ([314820@main](https://commits.webkit.org/314820@main))  (177686282)
- Fixed an issue where arbitrary `Content-*` headers from `304` responses were not used to update cached entries. ([315449@main](https://commits.webkit.org/315449@main))  (179864251)
- Fixed an issue where the `Cache-Control` request directives `max-age`, `min-fresh`, and `no-store` were not honored. ([315447@main](https://commits.webkit.org/315447@main))  (179865576)
- Fixed an issue where `Cache-Control: public` was not honored on responses with unknown status codes. ([315445@main](https://commits.webkit.org/315445@main))  (179870099)
- Fixed an issue where the HTTP cache did not store responses with explicit freshness for all status codes. ([315450@main](https://commits.webkit.org/315450@main))  (179871690)

### Rendering

#### Resolved Issues

- Fixed `text-wrap: balance` not being applied to content with `-webkit-line-clamp`. ([314783@main](https://commits.webkit.org/314783@main))  (172715503)
- Fixed an issue where text changes that did not modify the text element’s size in a flex layout on a new compositing layer did not trigger re-rendering. ([315173@main](https://commits.webkit.org/315173@main))  (179292409)
- Fixed an issue where an underline was drawn twice on `<sup>` elements. ([315220@main](https://commits.webkit.org/315220@main))  (179537119)
- Fixed an issue where an underline under a `<sup>` element was offset by one device pixel from the rest of the line on subpixel displays. ([315316@main](https://commits.webkit.org/315316@main))  (179586525)
- Fixed an issue where the `ex` unit in `text-box-edge` misplaced the propagated underline, causing it to be painted twice. ([315331@main](https://commits.webkit.org/315331@main))  (179769451)
- Fixed an issue where `min-width` was not honored over `max-width` when sizing a shrink-to-fit container around a replaced element. ([315396@main](https://commits.webkit.org/315396@main))  (179935558)

### SVG

#### Resolved Issues

- Fixed SVG applying `text-decoration` to elements with `display: contents`. ([314830@main](https://commits.webkit.org/314830@main))  (85691104)
- Fixed SVG `<text>` with `textLength` scaling each glyph separately when `x` or `y` is a list. ([315146@main](https://commits.webkit.org/315146@main))  (94161279)
- Fixed an issue where `box-shadow` was not drawn on fixed-positioned SVG elements. ([315468@main](https://commits.webkit.org/315468@main))  (97098951)
- Fixed an issue where an SVG filter applied via CSS to an element positioned below the viewport rendered a spurious black square at the viewport origin. ([315329@main](https://commits.webkit.org/315329@main))  (177482001)
- Fixed `IntersectionObserver` not computing intersections for SVG element roots. ([314837@main](https://commits.webkit.org/314837@main))  (177807041)
- Fixed SVG vertical `<text>` to honor the CSS `text-orientation` property instead of only the deprecated `glyph-orientation-vertical` presentation attribute. ([315080@main](https://commits.webkit.org/315080@main))  (178044217)
- Fixed an issue where `getRotationOfChar()` returned approximately 360° instead of 0° for full-turn rotations after normalisation into the [0°, 360°) range. ([315293@main](https://commits.webkit.org/315293@main))  (178044934)
- Fixed an issue where a non-BMP character before a `<tspan>` boundary shifted the `x` and `y` value lists by one position. ([315418@main](https://commits.webkit.org/315418@main))  (178360036)
- Fixed interpolation of arc flags in the `d` property to treat them as non-zero booleans. ([314745@main](https://commits.webkit.org/314745@main))  (178950624)
- Fixed `pathFromEllipseElement` to honor `auto` values for `rx` and `ry`, so APIs such as `getTotalLength()` return the correct length for ellipses. ([314846@main](https://commits.webkit.org/314846@main))  (178959205)
- Fixed animated GIFs freezing when presentation attributes are changed on an SVG image referenced by a `<use>` element. ([315094@main](https://commits.webkit.org/315094@main))  (179414226)
- Fixed an issue where `getBoundingClientRect()` on an SVG `<tspan>` element returned the bounds of the entire `<text>` element instead of the `<tspan>`’s own area. ([315234@main](https://commits.webkit.org/315234@main))  (179626476)
- Fixed an issue where a nested `clip-path` on a `<clipPath>` element ignored css zoom. ([315562@main](https://commits.webkit.org/315562@main))  (180162723)

### Scrolling

#### Resolved Issues

- Fixed an issue where `scrollIntoView` with `nearest` alignment incorrectly aligned to the far edge for an oversized target positioned before the scrollport. ([315225@main](https://commits.webkit.org/315225@main))  (106356373)
- Fixed a regression on macOS 26 where horizontal rubber-banding interfered with vertical scrolling. ([315424@main](https://commits.webkit.org/315424@main))  (165449829)
- Fixed an issue where scroll snapping selected a snap point that overshot the destination instead of the closest one in the scroll direction. ([315522@main](https://commits.webkit.org/315522@main))  (179549119)
- Fixed an issue where interrupting a smooth scroll with a new `scrollTo()` call to a different target fired the `scrollend` event at the wrong position. ([315471@main](https://commits.webkit.org/315471@main))  (179551854)
- Fixed an issue where re-snapping after a layout change moved away from a valid scroll position when the snap area was larger than the snapport. ([315291@main](https://commits.webkit.org/315291@main))  (179553122)

### Security

#### Resolved Issues

- Fixed an issue where Content Security Policy `'self'` did not match script sources in opaque-origin HTTP(S) documents. ([314912@main](https://commits.webkit.org/314912@main))  (178638597)
- Fixed an issue where Content Security Policy incorrectly applied `script-src` to JSON module imports instead of `connect-src`. ([315497@main](https://commits.webkit.org/315497@main))  (180006320)

### Spatial Web

#### Known Issues

- WebXR might not render when you use Simulator.  (178666073)
  
  **Workaround:** Use an Apple Vision Pro device instead of Simulator.

#### Resolved Issues

- Fixed an issue where transforming the camera instead of the model in a `<model>` element led to undesirable lighting effects. ([312407@main](https://commits.webkit.org/312407@main))  (179522538)

#### Deprecations

- Removed the Spatial Backdrop developer preview in favor of the Immersive API. ([315100@main](https://commits.webkit.org/315100@main))  (160271766)

### Text

#### Resolved Issues

- Fixed a line break appearing after a U+201D Right Double Quotation Mark. ([314829@main](https://commits.webkit.org/314829@main))  (177952069)

### Web API

#### Resolved Issues

- Fixed an issue where the URL Pattern tokenizer emitted a spurious zero-length `Regexp` token for empty regexp groups. ([315289@main](https://commits.webkit.org/315289@main))  (179452346)

### WebDriver

#### New Features

- Allow your agent to connect to a Safari browser for development and debugging via the Safari MCP server.  (176038457)

#### Resolved Issues

- Fixed an issue where the WebDriver full page screenshot was clipped to the viewport dimensions instead of the full page. ([315337@main](https://commits.webkit.org/315337@main))  (179840186)

### WebGL

#### Resolved Issues

- Fixed a regression where a WebGL canvas was filled with opaque content that hid stacked canvases beneath it. ([315018@main](https://commits.webkit.org/315018@main))  (175352260)

---

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)