Release Notes for Safari Technology Preview 244
Safari Technology Preview Release 244 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: 312008@main…313209@main.
Accessibility
Resolved Issues
- Fixed VoiceOver cursor positioning for elements focused via the
drawFocusIfNeeded()canvas API. (312024@main) (146323788) - Fixed an issue where interactive elements containing an
<svg>named by a child<title>element did not expose an accessible name. (312953@main) (172559238) - Fixed VoiceOver line-by-line reading skipping content in read-only documents. (312263@main) (174349841)
Animations
New Features
- Added the
animationproperty toAnimationEventandTransitionEventinterfaces. (312859@main) (176527591)
Resolved Issues
- Fixed CSS anchor-positioned elements not updating correctly when their anchors have their transform animated. (312752@main) (175896047)
CSS
New Features
- Added support for the
normalandnonevalues on theposition-anchorCSS property. (312378@main) (172097721) - Added support for transform-aware anchor positioning. (312317@main) (175401339)
Resolved Issues
- Fixed an issue where
-webkit-text-fill-colorincorrectly overrodetext-decoration-color. (312789@main) (47010945) - Fixed
shape-outsidecomputing incorrect text wrapping in RTL writing modes. (312516@main) (56890238) - Fixed CSS
zoominteracting incorrectly withfont-weight,font-style, andfont-varianton iPad. (312944@main) (152173269) - Fixed
FontFace.loadedto reject when alocal()font source fails to load. (312933@main) (174631384) - Fixed CSS trigonometric functions to correctly convert degrees to radians. (312860@main) (175575617)
- Fixed
sibling-index()andsibling-count()inside calc() functions to be correctly simplified. (312026@main) (175590806) - Fixed
sibling-index()andsibling-count()to correctly return 0 when used in cross-tree::part()styling. (312544@main) (175592607) - Fixed the CSS
resizehandle not working on an element when the handle overlaps a child iframe. (312099@main) (175621855) - Fixed flex container baseline alignment being incorrectly computed for scroll containers by clamping to the border edge. (312206@main) (175631095)
- Fixed an issue where inline-level boxes with
calc()margins or padding lost the fixed component during intrinsic width computation. (312081@main) (175669222) - Fixed floats with
margin-startincorrectly overlapping adjacent floats. (312083@main) (175669464) - Fixed
aspect-ratiocalculations for block-level elements with size constraints. (312084@main) (175669713) - Fixed
aspect-ratiocalculations for flex items with percentage cross-size constraints. (312085@main) (175669774) - Fixed an issue where
block-size: stretchresolved incorrectly for absolutely positioned elements with orthogonal writing modes. (312086@main) (175669844) - Fixed
aspect-ratiocalculations for flex items with definite cross-size values. (312108@main) (175690028) - Fixed
revert-layercomputing incorrectly when there is a leading empty or space substitution value. (312721@main) (175729680) - Fixed
:has()invalidation incorrectly resetting sibling relation bits, causing style invalidation failures for first-in-sibling-chain elements. (312221@main) (175738008) - Fixed an issue where absolutely positioned tables with content exceeding their declared CSS width were incorrectly positioned. (312197@main) (175755871)
- Fixed height calculations for absolutely positioned tables with percentage-sized children. (312204@main) (175762381)
- Fixed an issue where absolutely positioned tables with explicit percentage or fixed heights did not resolve correctly against their containing block. (312280@main) (175852400)
- Fixed absolutely positioned tables ignoring
min-heightand shrinking below their content height. (312313@main) (175883577) - Fixed absolutely positioned tables ignoring
max-heightconstraints. (312357@main) (175932457) - Fixed an issue where a flex item with
aspect-ratioandcontent-boxpadding computed the wrong height in a column flex container. (312441@main) (176033726) - Fixed an issue where flex items with explicit
min-height: min-contentwere incorrectly treated as scrollable, zeroing out their minimum size. (312517@main) (176173688) - Fixed
:has()invalidation performance when used inside nested:is()selectors. (312715@main) (176354723) - Fixed
sibling-count()&sibling-index()used in@keyframesto re-resolve when siblings change. (312895@main) (176531901)
Forms
Resolved Issues
- Fixed
<datalist>suggestions appearing with a white background on white text in dark mode after typing. (312889@main) (168676757) - Fixed the select picker appearing at an incorrect position when the
<select>element is anchor positioned. (312811@main) (175454476) - Fixed
field-sizing: contentclipping the placeholder on number inputs that have no value. (312936@main) (175883299) - Fixed
<option>and<optgroup>elements to match the:disabledpseudo-class when inside a disabled<select>. (312890@main) (176559708)
HTML
New Features
- Added support for
tabindex,focus(),blur(), andautofocuson MathML elements per the HTML Standard. (312609@main) (176258900)
Resolved Issues
- Fixed
history.pushState()andhistory.replaceState()URL rewriting to match the updated specification. (312738@main) (83203469) - Fixed sequential focus navigation to skip elements that do not meet the specification’s focusability requirements. (312032@main) (103370883)
- Fixed
innerTextto no longer emit newlines forvisibility: hiddenblock elements. (312010@main) (175569426) - Fixed
innerTextto correctly emit blank lines around<p>elements regardless of their CSSdisplayvalue. (312169@main) (175729427) - Fixed the speculative preload scanner to no longer incorrectly preload scripts inside SVG elements. (312327@main) (175800116)
- Fixed
innerTexton tables to no longer emit spurious trailing newlines and to preserve row-exit newlines after empty rows. (312941@main) (176635985)
Images
Resolved Issues
- Fixed
naturalWidthandnaturalHeightreturning incorrect values for SVG images without intrinsic dimensions. (312552@main) (141196049) - Fixed an issue where HDR images would flicker and lose their HDR appearance when overlapping layers animate. (312702@main) (163382580)
JavaScript
Resolved Issues
- Fixed an issue where parse errors in workers were not reported to the parent. (312701@main) (175610725)
- Fixed a performance issue with module resolution by limiting cache population to star-resolution and indirect-resolution cases. (312416@main) (175826413)
- Fixed a performance issue with
TypedArray.prototype.lastIndexOfby adding SIMD-accelerated reverse search for numeric types. (312383@main) (175904377) - Fixed a performance issue where building a module namespace with many
export *statements was significantly slower than necessary. (312370@main) (175949532) - Fixed
DataViewconstructor to match specification-defined argument validation order and error throwing behavior. (312483@main) (176110210) - Fixed an issue where
Array.prototype.concatcould produce incorrect results when combining arrays with incompatible indexing types. (312560@main) (176219964)
MathML
New Features
- Added support for multiple-character operators in MathML. (312867@main) (170907545)
Resolved Issues
- Fixed
paddingandborderrendering on<msqrt>and<mroot>elements and corrected token sizing formathvariant. (312902@main) (173081436) - Fixed absolute positioning of elements inside MathML by ensuring logical height is updated. (312905@main) (173088146)
- Fixed
tabIndexvalues not being set correctly for MathML elements. (312681@main) (174734133)
Media
New Features
- Added support for synchronized video playback on displays using genlock on macOS. (311815@main, 312166@main) (175197574)
Resolved Issues
- Fixed video playback failing when the declared MIME type in a
<source>element does not match the actual content type served by the server. (312399@main) (166181001) - Fixed
ImageCaptureto correctly queuetakePhoto()andapplyConstraints()requests to avoid concurrent capture session reconfiguration. (312196@main) (174950018) - Fixed
::cue()selectors to correctly match the WebVTT root object in addition to child nodes. (312292@main) (175550173) - Fixed
currentTimeon iOS to update more frequently during media playback. (312246@main) (175774587) - Fixed Media Source Extensions
readyStatenot being updated immediately when playback stalls due to a gap in buffered data. (312694@main) (176330683)
Networking
Resolved Issues
- Fixed
XMLHttpRequestincorrectly dropping the request body during redirects. (312092@main) (98459882) - Fixed an issue where partitioned cookies could not be deleted via
WKHTTPCookieStore. (312478@main) (174557252)
Rendering
New Features
- Added support for
anchor-validandanchor-visibleas aliases ofanchors-validandanchors-visibleinposition-visibility. (312080@main) (174438361) - Added support for the Dutch IJ digraph in
text-transform: capitalizeand::first-letter, correctly titlecasing “ij” to “IJ” at word starts when the content language is Dutch. (312335@main) (175912959)
Resolved Issues
- Fixed an issue where a block formatting context with
margin-startcould overlap an adjacent float. (312082@main) (93187697) - Fixed boxes in the top layer to use the initial containing block as their static-position rectangle. (312908@main) (155495104)
- Fixed an issue where form controls with
height: 100%in auto-height containers incorrectly resolved to zero height. (312526@main) (161699543) - Fixed text being incorrectly truncated in RTL containers when combined with
text-overflow: ellipsisand aninline-blockpseudo-element. (312799@main) (168875614) - Fixed an issue where
height: 100%was incorrectly calculated for replaced elements like images serving as grid items nested inside a flexbox. (312281@main) (169431440) - Fixed an issue where if a document in an iframe uses
@prefers-color-scheme, it does not follow thecolor-schemeset by grandparents of the iframe. (312212@main) (172229372) - Fixed an issue where list markers rendered on the wrong line when list items started with empty inline elements. (312356@main) (172762578)
- Fixed an issue where a child element with
filter: blur()ignoredborder-radiusoverflow clipping from its parent. (312531@main) (175519148) - Fixed incorrect event type mappings where
mousemoveandmouseupevent listener region types were reversed. (312142@main) (175651369) - Fixed an issue where containers with block-in-inline content did not expand when
max-heightwas removed. (312608@main) (175799547) - Fixed always-on scrollbar thumbs not rendering on the root element of nested documents with
display: flex. (312300@main) (175866046) - Fixed
scrollbar-gutterplacement on the root element in RTL layouts. (312360@main) (175939512) - Fixed an issue where numbered list item markers rendered with more spacing between the marker and list content than in other browsers. (312515@main) (176027025)
- Fixed an issue where block-level boxes nested within inline elements were not properly aligned when using
align-content: center. (312514@main) (176173122) - Fixed a regression where
height: stretchon children of flex items incorrectly resolved to viewport height instead of behaving asautowhen the flex container lacked an explicit height. (312916@main) (176288044) - Fixed intrinsic sizing for non-replaced elements with percentage dimensions. (312828@main) (176493856)
SVG
Resolved Issues
- Fixed SMIL
repeat(n)event conditions not triggering animations. (312346@main) (173599629) - Fixed
glyph-orientation-vertical: autoto use UTR#50 Vertical Orientation properties for correct character orientation in vertical text. (312008@main) (175064567) - Fixed the SMIL clock value parser to accept hours greater than 99 and reject malformed seconds values. (312350@main) (175593583)
- Fixed
stroke-dasharrayinterpolation to use least common multiple for list length matching and corrected composition behavior. (312055@main) (175598175) - Fixed an issue where
@prefers-color-schemein an SVG image will sometimes not follow the system color preference. (313021@main) (176413340)
Scrolling
Resolved Issues
- Fixed an issue on iOS where programmatic smooth scrolling with
scroll-snap-type: mandatoryfailed after the browser chrome was hidden. (312558@main) (100727098) - Fixed an issue on iOS where restored scroll position was incorrect after relaunching Safari. (312430@main) (127308062)
- Fixed
scrollTo()clamping incorrectly before layout completes, causing wrong scroll position after navigating back, as a quirk for x.com. (312749@main) (175565114) - Fixed an issue on iOS where scroll position was not preserved correctly when rotating the device on right-to-left pages. (312391@main) (175910769)
Security
Resolved Issues
- Fixed
Content-Security-Policyobject-srcwith an empty or invalid source list to block empty<object>and<embed>elements consistently withobject-src 'none'. (312899@main) (171298717)
Storage
Resolved Issues
- Fixed an issue where IndexedDB could incorrectly return a version 0 database after an abort during the initial
onupgradeneededevent. (312535@main) (176195526) - Fixed
FileSystemHandleserialization and deserialization when no storage is available. (312616@main) (176267344)
Web API
New Features
- Added support for creating dedicated workers inside shared workers per the HTML Standard. (312503@main) (118945089)
Resolved Issues
- Fixed the parent window’s
history.statebeing set tonullwhenhistory.pushStateis called from a child iframe. (312475@main) (50019069) - Fixed clicking on a scrollbar of an overflow container blurring the current
activeElement. (312924@main) (92367314) - Fixed calling
preventDefault()during apointerdownevent to correctly suppressmousedownandmouseupcompatibility events on iOS. (312396@main) (174864309) - Fixed an issue where an
Eventobject’stargetproperty could lose its JavaScript wrapper due to premature garbage collection. (312017@main) (175439759) - Fixed
FileSystemDirectoryHandle.resolve()to return the correct path array for child entries. (312061@main) (175645387) - Fixed
PerformanceNavigationTiming.domInteractiveanddomContentLoadedEventEndincorrectly returning 0 instead of the correct timestamps. (312500@main) (175739835) - Fixed
FileSystemDirectoryHandle.removeEntry()to correctly remove entries. (312193@main) (175745157) - Fixed
CryptoKeyto correctly remain associated with its secure context. (312502@main) (176157712) - Fixed: Improved cross-origin isolation enforcement for workers. (312518@main) (176175488)
- Fixed
SharedArrayBuffercloning and agent cluster ID assignment. (312800@main) (176465817)
Web Extensions
New Features
- Added support for propagating user gestures through
sendMessage(),connect(),postMessage(), andexecuteScript()APIs, enabling extensions to perform gesture-requiring actions like media playback. (312463@main) (175797617)
Resolved Issues
- Fixed an issue where web extension service worker registration database files accumulated on each Safari launch, causing performance degradation. (312231@main) (175484888)
Web Inspector
Resolved Issues
- Fixed an issue where the input field for recording canvas frames in the Graphics tab was sometimes too small to type in and only allowed typing one character at a time. (312433@main) (157787230)
- Fixed Timeline recordings showing unrelated events incorrectly nested inside longer events. (312649@main) (176309164)
WebAssembly
Resolved Issues
- Fixed a regression where
RegisterSet::normalizeWidths()lost vector-width information, causing v128 argument corruption in WebAssembly SIMD thunks. (312610@main) (176035764)
WebGL
Resolved Issues
- Fixed
compressedTexImagenot validating whether the compressed texture format extension has been enabled. (312180@main) (175652171) - Fixed some
texImagefunctions reporting errors with incorrect function names. (312156@main) (175652807) - Fixed some WebGL context state properties not being correctly reset on context loss. (312605@main) (176190808)
WebGPU
Resolved Issues
- Fixed
GPUDevice.onuncapturederrorevent handler attribute not working. (312043@main) (149577124) - Fixed: Restored
maxStorageBuffersInFragmentStageand related WebGPU limits. (312387@main) (160800947)