Safari Technology Preview Release 241 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: 309287@main…310186@main.
Accessibility
Resolved Issues
- Fixed an issue where calling
speechSynthesis.cancel()removed utterances queued by subsequentspeechSynthesis.speak()calls. (309349@main) (46151521) - Fixed an issue where incorrect bounding boxes were computed for MathML table rows and cells. (309640@main) (172851295)
- Fixed an issue where comboboxes did not forward focus to their
aria-activedescendant, preventing assistive technologies from interacting with list items. (309641@main) (172931277) - Fixed an issue where
aria-ownswas not respected when computing the accessible name from element content. (310020@main) (173249317)
Animations
Resolved Issues
- Fixed an issue where
animation-fill-modedid not correctly apply viewport-based units after the viewport was resized. (310007@main) (80075191)
CSS
New Features
- Added support for the
stretchkeyword in box sizing properties. (309405@main) (132539604) - Added stable support for CSS scroll anchoring. (310113@main) (171840378)
Resolved Issues
- Fixed an issue where U+2028 LINE SEPARATOR was not rendered as a forced line break per the CSS specification. (309701@main) (88470339)
- Fixed an issue where
outline-offsetwas inflated foroutline: autoon macOS. (309812@main) (94116168) - Fixed
font-familyserialization to preserve quotes around family names that match CSS-wide keywords or generic families. (309959@main) (125334960) - Fixed an issue where a font was downloaded despite no characters in the document falling within its
unicode-range. (309360@main) (140674753) - Fixed an issue where a flex item containing a percentage-height image did not shrink correctly around the image. (309544@main) (156902823)
- Fixed an issue where View Transition snapshots were incorrectly stored in sRGB, causing rendering issues with non-sRGB colors. (310012@main) (167634138)
- Fixed a performance issue where
contain: layoutcaused significantly slower forced layouts when all siblings created their own formatting context. (310173@main) (171545381) - Fixed an issue where underlines were split when a ruby base was expanded due to long ruby text. (309356@main) (171653095)
- Fixed an issue where changing
color-schemedid not repaint the background of composited iframes. (309567@main) (171658244) - Fixed an issue where nested children of a popover element failed to render when using
position: absolute. (310019@main) (171735933) - Fixed an issue where
color: initialresolved to the wrong color in dark appearance mode. (309430@main) (172320282) - Fixed an issue where an element with
display: contentsdid not establish an anchor scope when usinganchor-scope. (309946@main) (172355302) - Fixed a regression where media queries could fail to resolve correctly in the presence of viewport units and anchors, causing styles to not update on viewport changes. (309470@main) (172385594)
- Fixed a regression where absolutely positioned elements with intrinsic height incorrectly resolved percentage heights, causing content to not render on some sites. (309513@main) (172513516)
- Fixed
<general-enclosed>in media queries to reject content with unmatched close brackets per the<any-value>grammar. (309497@main) (172575115) - Fixed an issue where a right-floated table could overlap another table. (309316@main) (172655655)
- Fixed an issue where grid containers failed to avoid float boxes. (309317@main) (172655720)
- Fixed an issue where checkboxes could overlap with adjacent text. (310015@main) (172741572)
- Fixed an issue where the
rlhunit was double-zoomed with evaluation-time CSS zoom. (309654@main) (172798163) - Fixed
outline: autoto correctly respect zoom. (309926@main) (173068660) - Fixed
:active,:focus-within, and:hoverpseudo-classes to correctly account for elements in the top layer. (309755@main) (173145294) - Fixed the
shape()function to omit default control point anchors in computed value serialization per the CSS Shapes specification. (309851@main) (173233716) - Fixed: Updated SVG and MathML user agent style sheets to use
:focus-visibleinstead of:focus. (309912@main) (173321368) - Fixed an issue where view transition snapshots could capture stale transform values for accelerated CSS transform animations. (309982@main) (173323193)
- Fixed an issue where
lhandrlhunits resolved with double-zoom whenline-heightwas a number value. (310043@main) (173448638) - Fixed
outline-widthto be ignored whenoutline-styleisauto, matching the specification. (310145@main) (173567890) - Fixed
:in-rangeand:out-of-rangepseudo-classes for time inputs with reversed ranges. (310156@main) (173589851)
Canvas
Resolved Issues
- Fixed an issue where a 2D canvas element unnecessarily forced a compositing layer. (309599@main) (172864747)
Forms
Resolved Issues
- Fixed an issue where keyboard commands such as paste did not work in form fields that restrict input to numbers. (309300@main) (4360235)
- Fixed: Made the
<input type="checkbox" switch>control behave more like other controls with regards to native appearance CSS properties. (310143@main) (173487610)
HTML
New Features
- Added support for the
autokeyword in thesizesattribute on<img>elements, enabling automatic size calculation based on the rendered layout width. (309476@main) (172827205)
Resolved Issues
- Fixed an issue where an HTML
mapelement without anameattribute did not match its associated image using theidattribute. (309490@main) (12359382) - Fixed an issue where
replaceWith()stopped processing remaining nodes if a script in the replacement removed a sibling. (309411@main) (172753019) - Fixed an issue where HEIC images were incorrectly converted to JPEG when uploaded via drag-and-drop. (309872@main) (173206598)
- Fixed an issue where setting the
relattribute on an<a>element multiple times did not clear prior link relations. (310144@main) (173567839)
Images
Resolved Issues
- Fixed an issue where adopting a standalone
imgelement did not update its image data. (309523@main) (172856773)
JavaScript
Resolved Issues
- Fixed
Array.prototype.concatto correctly handle arrays with indexed accessors, preventing getter reentry from bypassingSymbol.isConcatSpreadablechecks. (309423@main) (172237596) - Fixed an issue where a greedy or non-greedy non-BMP character class in a regular expression could advance the index past the end of input. (309968@main) (172978772)
- Fixed TypedArray
[[Set]]to check the receiver before writing to the typed array. (309967@main) (173386404)
MathML
Resolved Issues
- Fixed an issue where symmetric non-stretchy large operators were not centered around the math axis. (309778@main) (170905663)
- Fixed an issue where
minsizeandmaxsizedefaults and percentages did not use the unstretched size as specified. (309764@main) (170908253)
Media
Resolved Issues
- Fixed an issue where
preservesPitchandplaybackRatewere not correctly handled on anHTMLMediaElementconnected to anAudioContextviacreateMediaElementSource. (310098@main) (93275149) - Fixed an issue where video captions could be hidden behind other elements during inline playback. (309505@main) (171023402)
- Fixed an issue where seeking in a WebM video did not work correctly while content was still loading. (309373@main) (172473039)
- Fixed an issue where media playback could not move to the next item in a playlist when the tab was in the background. (309879@main) (172676372)
- Fixed an issue where HDR video content appeared washed out due to colorspace information being lost during processing. (309502@main) (172721079)
Networking
Resolved Issues
- Fixed a regression where the referrer could be missing after a process-swap navigation. (309382@main) (169006635)
Printing
Resolved Issues
- Fixed an issue where animations were not rendered during print, causing missing content on animated pages. (309488@main) (36901701)
- Fixed an issue where printing light text on a dark background with backgrounds disabled could result in invisible text. (309604@main) (170070133)
Rendering
Resolved Issues
- Fixed an issue where the document background color did not align with the CSS specification, causing incorrect background colors when pinch-zooming out. (309332@main) (23607800)
- Fixed an issue where
WidthIteratorconsumed the first character twice, potentially causing incorrect text measurement. (309437@main) (128492167) - Fixed a regression where hovering over elements could leave repaint artifacts on the page. (309861@main) (169112402)
- Fixed an issue where Find in Page scrolled to the wrong location when matching text inside elements with
user-select: none. (309923@main) (170477571) - Fixed an issue where remote snapshotting could flip part of the page. (309441@main) (170868383)
- Fixed an issue where an anonymous block created for list markers was not properly collapsed when block content prevented line-box parenting. (309466@main) (172686060)
- Fixed an issue where elements flickered when scrolling. (309493@main) (172701438)
- Fixed an issue where U+2029 PARAGRAPH SEPARATOR was not treated as a forced line break. (309706@main) (173106856)
- Fixed an issue where tiles were missing after navigating back in history. (309966@main) (173288233)
SVG
Resolved Issues
- Fixed an issue where SVG animation did not clear the animated CSS property when
attributeNamewas dynamically changed. (309621@main) (97097883) - Fixed an issue where a CSS filter referencing an SVG filter via
url(#id)was not invalidated when the filter content changed. (309495@main) (101870430) - Fixed an issue where invalid SVG filter effects were rendered instead of being suppressed. (309463@main) (130951885)
- Fixed an issue where
getScreenCTM()did not include CSS transforms and zoom contributions in the legacy SVG rendering path. (309354@main) (171525696) - Fixed an issue where an SVG
<image>element was not repainted when thehrefattribute was removed. (309397@main) (172530834) - Fixed an issue where an invalid attribute type in one SVG animation group prevented all subsequent animation groups from running. (309436@main) (172593109)
- Fixed a regression where wheel events were not dispatched to an empty
<svg>root element. (310013@main) (172909441) - Fixed an issue where SMIL
parseClockValuedid not reject out-of-range minutes and seconds values per the SMIL timing specification. (310184@main) (173577212)
Deprecations
- Removed the
SVGLocatableandSVGTransformableinterfaces to align with the SVG2 specification. (309396@main) (104668934) - Removed the
viewTargetproperty fromSVGViewSpecto align with the SVG2 specification. (309424@main) (172590438)
Storage
New Features
- Added support for setting
maxAgein the Cookie Store API viacookieStore.set(). (309738@main) (166301541)
Web API
New Features
- Added support for fractional coordinates in
PointerEventandTouchEventproperties such asclientX/clientY,pageX/pageY,offsetX/offsetY, andscreenX/screenY, whileMouseEventvalues remain whole. (298383@main) (9564176)
Resolved Issues
- Fixed
NavigateEvent.navigationTypeto return"replace"when navigating to a URL that matches the active document’s URL. (309871@main) (169999046) - Fixed an issue where
navigation.currentEntry.keydid not change in private browsing windows after calling history.pushState(). (309489@main) (171147417) - Fixed a performance issue where
ResizeObservercallbacks became increasingly sluggish over time. (309376@main) (172718139) - Fixed an issue where
IntersectionObservercould get sluggish over time due to O(n^2) iteration when observing many elements. (309387@main) (172727210) - Fixed an issue where
navigation.currentEntry.iddid not change in private browsing windows after callinghistory.replaceState(). (309560@main) (172897962)
Web Inspector
Resolved Issues
- Fixed an issue where an active recording in the Timelines tab would stop when navigating or reloading the current page even when the setting to stop recording once the page loads was turned off. (309566@main) (169732727)
WebRTC
New Features
- Added support for the
RTCRtpCodecdictionary and related constructs. (309610@main) (172745579)
Resolved Issues
- Fixed an issue where
RTCDataChanneldid not check the SCTP buffered amount synchronously. (309322@main) (172386678) - Fixed an issue where
MediaStreamTrackcould have incorrect settings if the source settings changed while the track was being transferred. (309458@main) (172657570) - Fixed an issue where a remote WebRTC track was not unmuted when the first packet was received. (309987@main) (172904930)
- Fixed validation of RTC send encodings to better align with the specification. (310055@main) (172997814)