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

# Safari Technology Preview 248 Release Notes

Learn about the latest web technology updates in Safari Technology Preview: Accessibility, CSS, Editing, Formes, Images, JavaScript, Media, Navigation, Networking, Rendering, SVG, Scrolling, Security, Storage, Web API, Web Inspector, WebDriver, and WebRTC.

## Overview

[Safari Technology Preview](https://webkit.org/blog/6017/introducing-safari-technology-preview/) Release 248 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: [315567@main…316817@main](https://github.com/WebKit/WebKit/compare/666fd351d376a96584c357fee973f74f701800be...84565916779faa5f54b09bc075add03a779723c1).

### Accessibility

#### Resolved Issues

- Fixed VoiceOver on Safari unable to navigate to content revealed by disclosure widgets using `hidden="until-found"`. ([315964@main](https://commits.webkit.org/315964@main))  (173228707)
- Fixed stale `aria-labelledby` when the referenced element dynamically changes its `aria-label`. ([316316@main](https://commits.webkit.org/316316@main))  (180319221)

### CSS

#### New Features

- Added support for forwarding missing color components when interpolating between analogous color spaces. ([315569@main](https://commits.webkit.org/315569@main))  (180239320)
- Added support for the `no-clamp` option on the CSS `progress()` function. ([315977@main](https://commits.webkit.org/315977@main))  (180473472)

#### Resolved Issues

- Fixed serialization of various CSS at-rules not escaping identifiers. ([315795@main](https://commits.webkit.org/315795@main))  (178750383)
- Fixed `:last-child` and related selectors incorrectly gating on parser state outside of style resolution. ([316495@main](https://commits.webkit.org/316495@main))  (178879939)
- Fixed changing the `color-scheme` of an `<iframe>` not invalidating the appearance of the embedded document. ([316467@main](https://commits.webkit.org/316467@main))  (179177141)
- Fixed CSS scroll snap re-snap to prefer the fragment-targeted (`:target`) snap area over other aligned snap targets. ([315880@main](https://commits.webkit.org/315880@main))  (180108825)
- Fixed the CSS preload scanner failing to preload `@import` rules that follow an `@layer` statement rule. ([315576@main](https://commits.webkit.org/315576@main))  (180170656)
- Fixed serialization of `CSSViewTransitionRule`. ([315614@main](https://commits.webkit.org/315614@main))  (180170814)
- Fixed `MediaList.deleteMedium()` to parse its argument as a media query and remove all matching queries. ([315579@main](https://commits.webkit.org/315579@main))  (180270019)
- Fixed `MediaList.appendMedium()` to parse its argument as a single media query and suppress duplicates. ([315594@main](https://commits.webkit.org/315594@main))  (180291283)
- Fixed grid items with `stretch` or `fit-content` preferred sizes computing incorrect minimum-content contributions when sizing tracks. ([316296@main](https://commits.webkit.org/316296@main))  (180748205)
- Fixed inserting a CSS rule while a view transition is active causing the group animation to snap to its final state. ([316436@main](https://commits.webkit.org/316436@main))  (181100818)
- Fixed CSS `var()` to only resolve its fallback when the first argument resolves to the guaranteed-invalid value. ([316280@main](https://commits.webkit.org/316280@main))  (181114298)
- Fixed navigating away from a render-blocked document before its first rendering opportunity incorrectly firing `pagereveal` and starting an outbound cross-document view transition. ([316446@main](https://commits.webkit.org/316446@main))  (181191512)

### Editing

#### Resolved Issues

- Fixed drag images of DOM elements with CSS transforms not rendering correctly. ([316077@main](https://commits.webkit.org/316077@main))  (99614217)
- Fixed opaque DOM mutations coming from dictation on iOS. ([316049@main](https://commits.webkit.org/316049@main))  (163454428)
- Fixed deletion in an editable table leaving an empty trailing table row behind. ([315990@main](https://commits.webkit.org/315990@main))  (180877315)
- Fixed vertical caret movement in editable content ignoring the requested editable-type parameter. ([316241@main](https://commits.webkit.org/316241@main))  (181000174)

### Forms

#### Resolved Issues

- Fixed the concentric inner-button corner radius on horizontal text form controls incorrectly ignoring the bottom inset. ([316022@main](https://commits.webkit.org/316022@main))  (180869927)

### Images

#### Resolved Issues

- Fixed a regression where RGB gain map images were decoded to 8 bits per channel, causing a color shift and incorrect brightness. ([316069@main](https://commits.webkit.org/316069@main))  (179152566)
- Fixed handling of the gain-map target pixel format when decoding HDR images to fall back safely when the format cannot be parsed. ([316405@main](https://commits.webkit.org/316405@main))  (181180757)

### JavaScript

#### New Features

- Added support for the TC39 BigInt Math proposal, exposing `Math`-equivalent methods on `BigInt` such as `BigInt.pow` and `BigInt.sqrt`. ([315974@main](https://commits.webkit.org/315974@main))  (152472996)

### Media

#### Resolved Issues

- Fixed `<audio>` and `<video>` controls rendering incorrectly when rotated via CSS transform. ([315718@main](https://commits.webkit.org/315718@main))  (37516619)
- Fixed subtitles and closed captions not appearing in fullscreen video on iPhone. ([315789@main](https://commits.webkit.org/315789@main))  (175298523)
- Fixed ArrayBuffer-backed YUV `VideoFrame` with a `visibleRect` rendering with offset chroma channels. ([315742@main](https://commits.webkit.org/315742@main))  (180202939)
- Fixed video playback of streams from certain sources such as security cameras not working. ([315774@main](https://commits.webkit.org/315774@main))  (180411019)
- Fixed transient device rotation resulting in captured video frames having the wrong orientation. ([315821@main](https://commits.webkit.org/315821@main))  (180429147)
- Fixed Media Source Extensions playback and seek by loosening the gap tolerance between buffered ranges. ([316146@main](https://commits.webkit.org/316146@main))  (180439090)

### Navigation

#### Resolved Issues

- Fixed a `<meta http-equiv="refresh">` to a URL differing only in fragment identifier being incorrectly treated as a page reload. ([316001@main](https://commits.webkit.org/316001@main))  (176933795)

### Networking

#### Resolved Issues

- Fixed URL path separators being encoded as `%2F` following a percent-encoded Armenian path segment. ([315627@main](https://commits.webkit.org/315627@main))  (180067095)

### Rendering

#### Resolved Issues

- Fixed the background of a composited `<html>` element not being repainted when the `<body>` background changed. ([316415@main](https://commits.webkit.org/316415@main))  (177975964)
- Fixed a regression where block-axis padding on a `flex` column container with `overflow: auto` was excluded from `scrollHeight`. ([315813@main](https://commits.webkit.org/315813@main))  (179376053)
- Fixed an issue where an `<img>` embedding an SVG with a near-integral intrinsic width rendered one device pixel narrower than expected. ([315807@main](https://commits.webkit.org/315807@main))  (180490343)
- Fixed elements with `filter: drop-shadow()` not being fully repainted when a child is resized. ([316450@main](https://commits.webkit.org/316450@main))  (181284741)

### SVG

#### Resolved Issues

- Fixed SVG SMIL length animations to reject invalid `to`, `from`, and `by` values such as those with leading whitespace. ([315949@main](https://commits.webkit.org/315949@main))  (118537155)
- Fixed Unicode text with complex scripts not rendering correctly along a curved `<textPath>`. ([316144@main](https://commits.webkit.org/316144@main))  (120284006)
- Fixed `SVGLength.convertToSpecifiedUnits()` failing when converting from `px` to `%`, `em`, or `ex`. ([315953@main](https://commits.webkit.org/315953@main))  (172056830)
- Fixed SVG geometry presentation attributes like `cx`, `cy`, `r`, `rx`, `ry`, `x`, `y`, `width`, and `height` being incorrectly applied to elements such as `<g>` on which they are not permitted. ([315946@main](https://commits.webkit.org/315946@main))  (175672111)
- Fixed an issue where the per-character `rotate` attribute was discarded on a `<textPath>`, so it now composes with the path tangent angle. ([315786@main](https://commits.webkit.org/315786@main))  (178044478)
- Fixed several SVG styling spec-compliance failures. ([316174@main](https://commits.webkit.org/316174@main))  (181052042)
- Fixed dynamic changes to `orient` and `markerUnits` on `<marker>` not repainting elements that reference it. ([316350@main](https://commits.webkit.org/316350@main))  (181106538)
- Fixed SVG SMIL `number`, `integer-optional-integer`, `number-optional-number`, and `path` animations to not apply when their `from`, `to`, or `by` values fail to parse. ([316468@main](https://commits.webkit.org/316468@main))  (181308150)

### Scrolling

#### Resolved Issues

- Fixed CSS scroll snap points inside zero-sized elements not working correctly. ([315948@main](https://commits.webkit.org/315948@main))  (172863699)
- Fixed CSS scroll snap re-snap to prefer a snap area that contains the focused or fragment-targeted element. ([315927@main](https://commits.webkit.org/315927@main))  (180707984)

### Security

#### Resolved Issues

- Fixed a regression where some websites failed to display and logged Content Security Policy errors in the console. ([316290@main](https://commits.webkit.org/316290@main))  (179684592)
- Fixed same-page navigations being incorrectly checked against Content Security Policy. ([315759@main](https://commits.webkit.org/315759@main))  (180342503)
- Fixed Content Security Policy `frame-ancestors` violations in report-only policies being ignored instead of reported. ([315753@main](https://commits.webkit.org/315753@main))  (180447621)
- Fixed Content Security Policy parsing to reject trailing characters after the closing quote on `nonce-source` and `hash-source` values. ([316008@main](https://commits.webkit.org/316008@main))  (180903857)
- Fixed Content Security Policy `trusted-types` expressions to reject trailing characters after keywords and the wildcard. ([316089@main](https://commits.webkit.org/316089@main))  (180973793)

### Storage

#### Resolved Issues

- Fixed an issue where IndexedDB transactions could be blocked for an extended period before starting when another page’s transaction was suspended in the background. ([315609@main](https://commits.webkit.org/315609@main))  (178769599)

### Web API

#### Resolved Issues

- Fixed the Async Clipboard API to request paste access asynchronously. ([315997@main](https://commits.webkit.org/315997@main))  (75969974)
- Fixed Digital Credentials to surface `OperationError` for platform-cancellation and unknown errors instead of `AbortError` or `UnknownError`. ([315973@main](https://commits.webkit.org/315973@main))  (174308268)
- Fixed Digital Credentials rejecting with the wrong error code and synchronously; rejections are now queued as a task with the correct error. ([315895@main](https://commits.webkit.org/315895@main))  (174895437)
- Fixed `KeyboardEvent.getModifierState("AltGraph")` and `MouseEvent.getModifierState("AltGraph")` always returning `false`. ([315804@main](https://commits.webkit.org/315804@main))  (180597374)
- Fixed `Credential.type` returning `"digital-credential"` instead of `"digital"` for digital credentials. ([315891@main](https://commits.webkit.org/315891@main))  (180618646)
- Fixed aborting `navigator.credentials.get()` leaving the digital-credentials document picker stuck on screen. ([316494@main](https://commits.webkit.org/316494@main))  (180812397)
- Fixed `FileReader.readAsText()` ignoring the `charset` parameter of the `Blob`’s MIME type. ([315996@main](https://commits.webkit.org/315996@main))  (180890703)

### Web Inspector

#### Resolved Issues

- Fixed showing ES2022 class private fields, methods, and accessors when inspecting object instances in the Console. ([316171@main](https://commits.webkit.org/316171@main))  (88527162)
- Fixed symbolic breakpoints in the debugger so they work with intrinsic functions. ([315713@main](https://commits.webkit.org/315713@main))  (99037335)
- Fixed a JavaScript breakpoint on a line containing only a semicolon not being triggered. ([316519@main](https://commits.webkit.org/316519@main))  (126707973)
- Fixed the Console REPL to allow redefinition of variables declared with `let` and `const`. ([316523@main](https://commits.webkit.org/316523@main))  (143140659)
- Fixed the Timeline exporting and importing the wrong timestamp for `performance.mark()` records. ([316073@main](https://commits.webkit.org/316073@main))  (145226764)
- Fixed local response overrides mapped to a file being interpreted as Latin-1 (ISO-8859-1) instead of their actual encoding. ([316074@main](https://commits.webkit.org/316074@main))  (149847746)
- Fixed the Media Logging setting not persisting across page loads. ([315758@main](https://commits.webkit.org/315758@main))  (154766890)
- Fixed symbolic breakpoints to work with native constructors such as `Array`, `Date`, `EventTarget`, and `Worker`. ([316262@main](https://commits.webkit.org/316262@main))  (157178256)
- Fixed missing stack traces for MIME type errors when importing modules. ([316529@main](https://commits.webkit.org/316529@main))  (169396940)
- Fixed the Accessibility sidebar being empty for nodes inside cross-origin iframes. ([316399@main](https://commits.webkit.org/316399@main))  (178562336)
- Fixed inline style invalidation to batch `DOM.getAttributes` commands per tick in cross-origin iframes instead of issuing one command per node. ([316487@main](https://commits.webkit.org/316487@main))  (178830496)
- Fixed DOM Storage read and write commands to resolve against the frame’s own origin in cross-origin iframes. ([316501@main](https://commits.webkit.org/316501@main))  (179249711)
- Fixed a moved breakpoint reverting to its original location after closing and reopening Web Inspector. ([315585@main](https://commits.webkit.org/315585@main))  (180083858)
- Fixed showing the formatted parameters string for prototype objects such as `Map.prototype`. ([315599@main](https://commits.webkit.org/315599@main))  (180298712)
- Fixed missing formatted parameter strings for object shorthand methods and arrow functions. ([315723@main](https://commits.webkit.org/315723@main))  (180466459)
- Fixed an unnecessary colon appearing in front of non-class function properties. ([315731@main](https://commits.webkit.org/315731@main))  (180476445)
- Fixed a self-canceling ternary that produced an incorrect cross-axis direction in the flex overlay. ([316429@main](https://commits.webkit.org/316429@main))  (181198803)
- Fixed the color picker force-converting picked colors to Display P3. ([316419@main](https://commits.webkit.org/316419@main))  (181201503)
- Fixed `Page.searchInResources` silently omitting cache-backed resources from search results. ([316421@main](https://commits.webkit.org/316421@main))  (181202027)
- Fixed duplicate invalid CSS declarations both incorrectly displaying as Active in the Styles sidebar. ([316418@main](https://commits.webkit.org/316418@main))  (181203080)
- Fixed adopted constructable stylesheets being misclassified as User Agent stylesheets in cross-origin iframes. ([316433@main](https://commits.webkit.org/316433@main))  (181204768)
- Fixed an unsigned underflow that caused the DOM agent to spuriously report power-efficient playback. ([316443@main](https://commits.webkit.org/316443@main))  (181205602)
- Fixed `Network.setExtraHTTPHeaders` to replace previously set headers instead of accumulating them. ([316444@main](https://commits.webkit.org/316444@main))  (181282814)

### 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 the WebProcess `AudioSession` to remain active while microphone capture is live. ([316394@main](https://commits.webkit.org/316394@main))  (180505014)
- Fixed the `configurationchange` event being dropped when a source-side change occurred while a `MediaStreamTrack` was muted; the event is now deferred until unmute. ([316301@main](https://commits.webkit.org/316301@main))  (180728609)

---

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)