Safari Technology Preview Release 245 is now available for download for macOS Tahoe and macOS Sequoia. 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: 312965@main…313358@main.
Accessibility
Resolved Issues
- Fixed VoiceOver’s “Skip redundant labels” setting not being respected on certain web pages. (312967@main) (176297111)
CSS
New Features
- Added support for the case-sensitive modifier
s in CSS attribute selectors. (313234@main) (126331481)
- Added support for the
:host:has() compound selector in CSS. (313350@main) (139799278)
Resolved Issues
- Fixed
aspect-ratio not being respected on flex children when the flex container has position: absolute. (313213@main) (117807518)
- Fixed
aspect-ratio not working correctly on flex children that also have overflow set. (313170@main) (118926827)
- Fixed image
aspect-ratio not being preserved when width: 100% and height: 100% are set but no ancestor has a defined width. (313003@main) (162373271)
- Fixed transferred min/max block-size constraints not being applied for intrinsic keyword widths on replaced elements. (313091@main) (173128588)
- Fixed serialization of multi-word font family names that were always incorrectly quoted due to treating the full string as a single identifier. (313271@main) (175522811)
- Fixed
CSSStyleDeclaration.setProperty() failing to apply !important priority to an existing inline style property when the value was an integer of 255 or lower. (313159@main) (176099619)
- Fixed an issue where elements using
stretch sizing inside anonymous block wrappers resolved to their intrinsic size instead of stretching to fill the available space. (313359@main) (176398251)
- Fixed
:has() style invalidation failing in complex nested cases involving :is(). (312966@main) (176719780)
- Fixed
-webkit-perspective not establishing a containing block for fixed-positioned descendants. (313020@main) (176729670)
- Fixed nested multi-column layouts with three or more levels failing to paginate content across pages. (312973@main) (176741498)
- Fixed
:has() selector performance by using scope selectors to limit style invalidation traversal for class, attribute, and pseudo-class changes. (313009@main) (176771971)
- Fixed non-replaced blocks with
aspect-ratio and a percentage max-width collapsing to zero width during intrinsic sizing. (313074@main) (176873776)
- Fixed percentage
max-width on elements with aspect-ratio resolving against the wrong axis in perpendicular writing modes. (313078@main) (176879597)
- Fixed
z-index not applying to statically-positioned display: -webkit-box items to align with Firefox and Chrome behavior. (313081@main) (176886461)
- Fixed flex containers using
box-sizing: border-box providing the wrong cross size to stretched flex items. (313175@main) (176989934)
- Fixed flex containers with
aspect-ratio-derived height not providing a definite cross size to their flex items. (313256@main) (177085129)
- Fixed SVG images with no intrinsic dimensions collapsing to zero height inside column flex containers. (313257@main) (177086497)
Editing
Resolved Issues
- Fixed a regression where Vietnamese and Korean keyboard input methods incorrectly exited modeless composition mode, requiring a double spacebar press to complete each word. (313286@main) (176847897)
- Fixed a recent regression that “Zhuyin – Traditional” input method stalling for multiple seconds when composing Chinese text. (313336@main) (177042301)
HTML
Resolved Issues
- Fixed a severe performance regression causing dynamic insertion of
<img> elements with a src attribute to be dramatically slower than other browsers. (313268@main) (166201075)
- Fixed nested calls to
requestClose() incorrectly firing multiple cancel events and causing a stack overflow. (313239@main) (174850509)
- Fixed
requestClose() incorrectly removing the open attribute when called on a disconnected dialog element. (313251@main) (174855725)
- Fixed
<a rel="ar"> elements wrapping <model> elements to correctly enter ARQL without extra steps and to display the AR badge. (313047@main) (176410897)
- Fixed the HTML preload scanner not preloading resources referenced by legacy
<image> tags. (312984@main) (176712749)
Images
Resolved Issues
- Fixed rendering performance of HDR images that have gain-maps by using GPU-backed surfaces. (313339@main) (176605566)
JavaScript
New Features
- Added support for static
import defer semantics. (313139@main) (176568369)
Resolved Issues
- Fixed the
Array ToPrimitive fast path incorrectly ignoring overrides of Object.prototype.valueOf. (313028@main) (175122250)
- Fixed input position corruption in regular expression backward matching when rewinding over a surrogate pair. (313026@main) (175122467)
MathML
New Features
- Added support for operator dictionary entries for multi-character operators to align with the MathML Core specification. (313083@main) (176543727)
Resolved Issues
- Fixed the MathML operator dictionary to correct the stretchy property for several operators, resolving Web Platform Test failures. (312993@main) (170901728)
- Fixed spacing values for prefix operators
+, −, ±, ∓, ∇, and infix operator ⋉ in the MathML Core operator dictionary. (312999@main) (176652211)
- Fixed the operator dictionary entry for the
∂ prefix operator to use the correct spacing values (3, 0) instead of (2, 1). (312997@main) (176693587)
- Fixed nonce-hiding support for MathML elements to align with the HTML specification. (313075@main) (176875058)
Media
Resolved Issues
- Fixed
timeupdate events being fired during seeking before the seek operation completes. (313165@main) (176861767)
- Fixed the
ended event not always firing when the MediaSource duration is changed to match the current playback position. (313141@main) (176863546)
- Fixed a MediaSource issue where the decode-key cleanup in coded frame processing was incorrectly removing non-orphaned samples. (313296@main) (176971800)
- Fixed
currentTime() returning a stale value after the playback rate was changed from zero to a non-zero value. (313249@main) (177046564)
Rendering
Resolved Issues
- Fixed an issue where a child element with
filter: blur() ignored border-radius overflow clipping from its parent. (312531@main) (175519148)
- Fixed
drop-shadow filters and transform: translate() incorrectly clipping nested elements after a regression. (313316@main) (175905543)
- Fixed a repaint issue where table rows did not repaint their previous position after a preceding row changed size, causing content to appear at both the old and new locations. (313168@main) (176172404)
SVG
Resolved Issues
- Fixed negative
stroke-dashoffset values rendering with incorrect offsets when stroke-dasharray has an odd number of values. (313353@main) (103596361)
- Fixed an issue where
@prefers-color-scheme in an SVG image will sometimes not follow the system color appearance. (313021@main) (176413340)
- Fixed
getScreenCTM() returning an incorrect matrix when the document is scrolled under a CSS-transformed ancestor. (313111@main) (176814876)
Web API
Resolved Issues
- Fixed missing custom element callbacks for the
role attribute. (312976@main) (176713992)
- Fixed incorrect URL parser invocation on the
Notification object. (312988@main) (176762955)
- Fixed
requestAnimationFrame() not providing sub-millisecond timestamp precision in cross-origin isolated contexts. (313153@main) (176967366)
Web Extensions
Resolved Issues
- Fixed cross-origin
XMLHttpRequest incorrectly triggering additional Web Extension permission requests. (313506@main) (154866064)
- Fixed loading Web Extensions breaking Cloudflare bot challenge pages. (313007@main) (176618014)
Web Inspector
New Features
- Added unique colors for style events such as “Style Invalidated” and “Style Recalculated” in the Timeline view to distinguish them from layout events. (312995@main) (176770197)
WebGPU
Resolved Issues
- Fixed a WGSL shader validation failure in binary arithmetic expressions. (313135@main) (176473479)
WebRTC
Resolved Issues
- Fixed outgoing video feeds freezing when the Safari window is obscured by another window while a virtual background is active. (312990@main) (170720729)
- Fixed screen sharing via
getDisplayMedia() starting at extremely low quality and taking up to 30 seconds to become legible for remote participants. (313072@main) (175425085)