Cached at:
07/22/26, 11:24 PM
# Release Notes for Safari Technology Preview 248
Source: [https://webkit.org/blog/18162/release-notes-for-safari-technology-preview-248/](https://webkit.org/blog/18162/release-notes-for-safari-technology-preview-248/)
[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\)