Safari Technology Preview 248 Released

Hacker News Top Tools

Summary

Safari Technology Preview 248 is now available with various fixes and new features for accessibility, CSS, and editing.

No content available
Original Article
View Cached Full Text

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\)

Similar Articles

Apple is using AI to fix Safari’s extension problem

The Verge

Apple is introducing AI-powered features in Safari that allow users to generate browser extensions via natural language descriptions and automatically organize tabs into groups, addressing long-standing gaps compared to rival browsers.

Apple announces iOS 27

The Verge

Apple announced iOS 27 at WWDC 2026, featuring a new Siri AI with conversational capabilities, Apple Intelligence improvements, a Liquid Glass opacity slider, and upgraded apps like Safari and Passwords.

Quoting Bobby Holley

Simon Willison's Blog

Firefox 150 shipped with 271 security fixes found by Anthropic’s Claude Mythos Preview, marking a major AI-driven win for defensive security.

New accessibility features powered by Apple Intelligence

Hacker News Top

Apple announced new accessibility features powered by Apple Intelligence, including enhanced VoiceOver and Magnifier with image exploration and natural language queries, improved Voice Control, on-device auto-generated subtitles, and Apple Vision Pro wheelchair control. These updates are coming later this year.