Apple has released Safari Technology Preview 241, 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 241 includes fixes and updates for Accessibility, Animations, CSS, Canvas, Forms, HTML, Images, JavaScript, MathML, Media, Networking, Printing, Rendering, SVG, Storage, Web API, Web Inspector, and WebRTC.
The current Safari Technology Preview release is compatible with machines running macOS Sequoia and macOS Tahoe, the newest version of macOS that launched earlier 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 240 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
speechremoved utterances queued by subsequentSynthesis .cancel() speechcalls. (309349@main) (46151521)Synthesis .speak() - 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 :, andfocus-within :pseudo-classes to correctly account for elements in the top layer. (309755@main) (173145294)hover - 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
:instead offocus-visible :. (309912@main) (173321368)focus - 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
:andin-range :pseudo-classes for time inputs with reversed ranges. (310156@main) (173589851)out-of-range 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
replacestopped processing remaining nodes if a script in the replacement removed a sibling. (309411@main) (172753019)With() - Fixed an issue where HEIC images were incorrectly converted to JPEG when using 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
Arrayto correctly handle arrays with indexed accessors, preventing getter reentry from bypassing.prototype .concat Symbolchecks. (309423@main) (172237596).is Concat Spreadable - 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
preservesandPitch playbackwere not correctly handled on anRate HTMLMediaconnected to anElement AudioviaContext create. (310098@main) (93275149)Media Element Source - 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
Widthconsumed the first character twice, potentially causing incorrect text measurement. (309437@main) (128492167)Iterator - 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
attributewas dynamically changed. (309621@main) (97097883)Name - 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
getdid not include CSS transforms and zoom contributions in the legacy SVG rendering path. (309354@main) (171525696)Screen CTM() - 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
parsedid not reject out-of-range minutes and seconds values per the SMIL timing specification. (310184@main) (173577212)Clock Value Deprecations
- Removed the
SVGLocatableandSVGTransformableinterfaces to align with the SVG2 specification. (309396@main) (104668934)- Removed the
viewproperty fromTarget SVGViewto align with the SVG2 specification. (309424@main) (172590438)Spec Storage
New Features
- Added support for setting
maxin the Cookie Store API viaAge cookie. (309738@main) (166301541)Store .set() Web API
New Features
- Added support for fractional coordinates in
PointerandEvent Touchproperties such asEvent client,X/client Y page,X/page Y offset, andX/offset Y screen, whileX/screen Y Mousevalues remain whole. (298383@main) (9564176)Event Resolved Issues
- Fixed
Navigateto returnEvent .navigation Type "replace"when navigating to a URL that matches the active document’s URL. (309871@main) (169999046)- Fixed an issue where
navigationdid not change in private browsing windows after calling history.pushState(). (309489@main) (171147417).current Entry .key - Fixed a performance issue where
Resizecallbacks became increasingly sluggish over time. (309376@main) (172718139)Observer - Fixed an issue where
Intersectioncould get sluggish over time due to O(n^2) iteration when observing many elements. (309387@main) (172727210)Observer - Fixed an issue where
navigationdid not change in private browsing windows after calling.current Entry .id history. (309560@main) (172897962).replace State() 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
RTCRtpdictionary and related constructs. (309610@main) (172745579)Codec Resolved Issues
- Fixed an issue where
RTCDatadid not check the SCTP buffered amount synchronously. (309322@main) (172386678)Channel - Fixed an issue where
Mediacould have incorrect settings if the source settings changed while the track was being transferred. (309458@main) (172657570)Stream Track - 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)
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.