Apple has released Safari Technology Preview 248, the latest version of its developer preview web browser. The preview version of Apple’s popular browser offers developers and other interested users the ability to try out features that may or may not, debut in future public release versions of Safari.
Safari Technology Preview 248 includes fixes and updates for Accessibility, CSS, Editing, Forms, Images, JavaScript, Media, Navigation, Networking, Rendering, SVG, Scrolling, Security, Storage, Web API, Web Inspector, WebDriver, and WebRTC.
The current Safari Technology Preview release is compatible with machines running macOS 26 Tahoe and macOS 27 Golden Gate, the newest version of macOS that will launch later this year.
The update is available through the Software Update mechanism in System Preferences or System Settings to anyone who has downloaded the browser from Apple’s website.
Overview
Safari Technology Preview Release 248 is now available for download 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.
Accessibility
Resolved Issues
- Fixed VoiceOver on Safari unable to navigate to content revealed by disclosure widgets using
hidden="until-found". (315964@main) (173228707)- Fixed stale
aria-labelledbywhen the referenced element dynamically changes itsaria-label. (316316@main) (180319221)CSS
New Features
- Added support for forwarding missing color components when interpolating between analogous color spaces. (315569@main) (180239320)
- Added support for the
no-clampoption on the CSSprogress()function. (315977@main) (180473472)Resolved Issues
- Fixed serialization of various CSS at-rules not escaping identifiers. (315795@main) (178750383)
- Fixed
:and related selectors incorrectly gating on parser state outside of style resolution. (316495@main) (178879939)last-child - Fixed changing the
color-schemeof an<iframe>not invalidating the appearance of the embedded document. (316467@main) (179177141)- Fixed CSS scroll snap re-snap to prefer the fragment-targeted (
:) snap area over other aligned snap targets. (315880@main) (180108825)target - Fixed the CSS preload scanner failing to preload
@importrules that follow an@layerstatement rule. (315576@main) (180170656)- Fixed serialization of
CSSView. (315614@main) (180170814)Transition Rule - Fixed
Mediato parse its argument as a media query and remove all matching queries. (315579@main) (180270019)List .delete Medium() - Fixed
Mediato parse its argument as a single media query and suppress duplicates. (315594@main) (180291283)List .append Medium() - Fixed grid items with
stretchorfit-contentpreferred sizes computing incorrect minimum-content contributions when sizing tracks. (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) (181100818)
- Fixed CSS
var()to only resolve its fallback when the first argument resolves to the guaranteed-invalid value. (316280@main) (181114298)- Fixed navigating away from a render-blocked document before its first rendering opportunity incorrectly firing
pagerevealand starting an outbound cross-document view transition. (316446@main) (181191512)Editing
Resolved Issues
- Fixed drag images of DOM elements with CSS transforms not rendering correctly. (316077@main) (99614217)
- Fixed opaque DOM mutations coming from dictation on iOS. (316049@main) (163454428)
- Fixed deletion in an editable table leaving an empty trailing table row behind. (315990@main) (180877315)
- Fixed vertical caret movement in editable content ignoring the requested editable-type parameter. (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) (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) (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) (181180757)
JavaScript
New Features
- Added support for the TC39 BigInt Math proposal, exposing
Math-equivalent methods onBigsuch asInt BigandInt .pow Big. (315974@main) (152472996)Int .sqrt Media
Resolved Issues
- Fixed
<audio>and<video>controls rendering incorrectly when rotated via CSS transform. (315718@main) (37516619)- Fixed subtitles and closed captions not appearing in fullscreen video on iPhone. (315789@main) (175298523)
- Fixed ArrayBuffer-backed YUV
Videowith aFrame visiblerendering with offset chroma channels. (315742@main) (180202939)Rect - Fixed video playback of streams from certain sources such as security cameras not working. (315774@main) (180411019)
- Fixed transient device rotation resulting in captured video frames having the wrong orientation. (315821@main) (180429147)
- Fixed Media Source Extensions playback and seek by loosening the gap tolerance between buffered ranges. (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) (176933795)Networking
Resolved Issues
- Fixed URL path separators being encoded as
%2Ffollowing a percent-encoded Armenian path segment. (315627@main) (180067095)Rendering
Resolved Issues
- Fixed the background of a composited
<html>element not being repainted when the<body>background changed. (316415@main) (177975964)- Fixed a regression where block-axis padding on a
flexcolumn container withoverflow: autowas excluded fromscroll. (315813@main) (179376053)Height - Fixed an issue where an
<img>embedding an SVG with a near-integral intrinsic width rendered one device pixel narrower than expected. (315807@main) (180490343)- Fixed elements with
filter: drop-shadow()not being fully repainted when a child is resized. (316450@main) (181284741)SVG
Resolved Issues
- Fixed SVG SMIL length animations to reject invalid
to,from, andbyvalues such as those with leading whitespace. (315949@main) (118537155)- Fixed Unicode text with complex scripts not rendering correctly along a curved
<text. (316144@main) (120284006)Path> - Fixed
SVGLengthfailing when converting from.convert To Specified Units() pxto%,em, orex. (315953@main) (172056830)- Fixed SVG geometry presentation attributes like
cx,cy,r,rx,ry,x,y,width, andheightbeing incorrectly applied to elements such as<g>on which they are not permitted. (315946@main) (175672111)- Fixed an issue where the per-character
rotateattribute was discarded on a<text, so it now composes with the path tangent angle. (315786@main) (178044478)Path> - Fixed several SVG styling spec-compliance failures. (316174@main) (181052042)
- Fixed dynamic changes to
orientandmarkeronUnits <marker>not repainting elements that reference it. (316350@main) (181106538)- Fixed SVG SMIL
number,integer-optional-integer,number-optional-number, andpathanimations to not apply when theirfrom,to, orbyvalues fail to parse. (316468@main) (181308150)Scrolling
Resolved Issues
- Fixed CSS scroll snap points inside zero-sized elements not working correctly. (315948@main) (172863699)
- Fixed CSS scroll snap re-snap to prefer a snap area that contains the focused or fragment-targeted element. (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) (179684592)
- Fixed same-page navigations being incorrectly checked against Content Security Policy. (315759@main) (180342503)
- Fixed Content Security Policy
frame-ancestorsviolations in report-only policies being ignored instead of reported. (315753@main) (180447621)- Fixed Content Security Policy parsing to reject trailing characters after the closing quote on
nonce-sourceandhash-sourcevalues. (316008@main) (180903857)- Fixed Content Security Policy
trusted-typesexpressions to reject trailing characters after keywords and the wildcard. (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) (178769599)
Web API
Resolved Issues
- Fixed the Async Clipboard API to request paste access asynchronously. (315997@main) (75969974)
- Fixed Digital Credentials to surface
Operationfor platform-cancellation and unknown errors instead ofError AbortorError Unknown. (315973@main) (174308268)Error - Fixed Digital Credentials rejecting with the wrong error code and synchronously; rejections are now queued as a task with the correct error. (315895@main) (174895437)
- Fixed
KeyboardandEvent .get Modifier State("Alt Graph") Mousealways returningEvent .get Modifier State("Alt Graph") false. (315804@main) (180597374)- Fixed
Credentialreturning.type "digital-credential"instead of"digital"for digital credentials. (315891@main) (180618646)- Fixed aborting
navigatorleaving the digital-credentials document picker stuck on screen. (316494@main) (180812397).credentials .get() - Fixed
Fileignoring theReader .read As Text() charsetparameter of theBlob’s MIME type. (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) (88527162)
- Fixed symbolic breakpoints in the debugger so they work with intrinsic functions. (315713@main) (99037335)
- Fixed a JavaScript breakpoint on a line containing only a semicolon not being triggered. (316519@main) (126707973)
- Fixed the Console REPL to allow redefinition of variables declared with
letandconst. (316523@main) (143140659)- Fixed the Timeline exporting and importing the wrong timestamp for
performancerecords. (316073@main) (145226764).mark() - Fixed local response overrides mapped to a file being interpreted as Latin-1 (ISO-8859-1) instead of their actual encoding. (316074@main) (149847746)
- Fixed the Media Logging setting not persisting across page loads. (315758@main) (154766890)
- Fixed symbolic breakpoints to work with native constructors such as
Array,Date,Event, andTarget Worker. (316262@main) (157178256)- Fixed missing stack traces for MIME type errors when importing modules. (316529@main) (169396940)
- Fixed the Accessibility sidebar being empty for nodes inside cross-origin iframes. (316399@main) (178562336)
- Fixed inline style invalidation to batch
DOMcommands per tick in cross-origin iframes instead of issuing one command per node. (316487@main) (178830496).get Attributes - Fixed DOM Storage read and write commands to resolve against the frame’s own origin in cross-origin iframes. (316501@main) (179249711)
- Fixed a moved breakpoint reverting to its original location after closing and reopening Web Inspector. (315585@main) (180083858)
- Fixed showing the formatted parameters string for prototype objects such as
Map. (315599@main) (180298712).prototype - Fixed missing formatted parameter strings for object shorthand methods and arrow functions. (315723@main) (180466459)
- Fixed an unnecessary colon appearing in front of non-class function properties. (315731@main) (180476445)
- Fixed a self-canceling ternary that produced an incorrect cross-axis direction in the flex overlay. (316429@main) (181198803)
- Fixed the color picker force-converting picked colors to Display P3. (316419@main) (181201503)
- Fixed
Pagesilently omitting cache-backed resources from search results. (316421@main) (181202027).search In Resources - Fixed duplicate invalid CSS declarations both incorrectly displaying as Active in the Styles sidebar. (316418@main) (181203080)
- Fixed adopted constructable stylesheets being misclassified as User Agent stylesheets in cross-origin iframes. (316433@main) (181204768)
- Fixed an unsigned underflow that caused the DOM agent to spuriously report power-efficient playback. (316443@main) (181205602)
- Fixed
Networkto replace previously set headers instead of accumulating them. (316444@main) (181282814).set Extra HTTPHeaders WebDriver
New Features
- Added WebDriver support for the Digital Credentials API, including commands to simulate wallet payloads, indefinite waits, and user rejection. (316435@main) (168941907)
WebRTC
Resolved Issues
- Fixed the WebProcess
Audioto remain active while microphone capture is live. (316394@main) (180505014)Session - Fixed the
configurationchangeevent being dropped when a source-side change occurred while aMediawas muted; the event is now deferred until unmute. (316301@main) (180728609)Stream Track
Apple’s aim with Safari Technology Preview is to gather feedback from developers and users on its browser development process. Safari Technology Preview can run side-by-side with the existing Safari browser and while it is designed for developers, it does not require a developer account to download and use.