Safari Technology Preview 163 Release Notes
Preview the latest web technology updates including: Web Inspector, Masonry Layout, CSS Custom Properties, :has() pseudo-class, Media Queries Level 4, CSS, CSS Typed OM, Forms, Rendering, JavaScript, WebAssembly, Gamepad API, Web API, WebGL, SVG, Scrolling, Media, Accessibility, WebDriver, and Safari Web Extensions.
Overview
Safari Technology Preview Release 163 is now available for download for macOS Monterey 12.3 or later and macOS Ventura. If you already have Safari Technology Preview installed, you can update in the Software Update pane of System Preferences on macOS Monterey, or System Settings under General → Software Update on macOS Ventura.
This release includes WebKit changes between: 258383@main…259548@main.
Web Inspector
General
Fixed Web Inspector not remembering which side of the window it was attached to (259320@main)
Fixed undocked Web Inspector windows being placed in a different window set from the window they are inspecting when using Stage Manager (258672@main)
Elements Tab
Fixed the ITAL variation axis slider showing NaN values in the Fonts details sidebar panel (259351@main)
Fixed “Inspect Element” not revealing the selected element in the DOM tree if the element was hidden behind the “Show All Nodes” button (258805@main)
Timelines Tab
Disabled the Screenshots timeline when inspecting targets that can’t support it (259326@main)
Masonry Layout
Enabled Masonry layout by default (2586925869, 259308@main)
Added the initial support for
align-tracksandjustify-tracks(258544@main)
CSS Custom Properties
Added dependency cycle handling that involves root style (258985@main)
Added detection for complex custom property cycles involving multiple loops (259506@main)
Added handling for computational dependencies in transform functions (259353@main, 259298@main)
Changed rules in shadow trees to be ignored (258880@main)
Updated CSS custom properties containing
var()to update when the referenced property is animated (258786@main)Fixed failing to provide intialValue in registerProperty with non-universal syntax should throw (258909@main)
Fixed “
<color> | <color>+” to match “yellow blue” (259166@main)Ensured
transition-propertyvalues fill with a custom property when other transition CSS properties are used with a longer list of items (258770@main)
:has() pseudo-class
Added invalidation support for
:bufferingand:stalledpseudo-classes (258891@main)Made
:has()require valid selectors for all selectors in the selector list (258712@main)
Media Queries Level 4
Allowed negative values in media queries (258938@main)
Made “layer” an invalid media type name (258957@main)
CSS
Added support for
leading-trim(258766@main)Added support for using
currentcolorwithcolor-mix()(258970@main, 259145@main)Fixed
box-shadownot painting correctly on inline elements (258923@main)Made CSS animations participate in cascade (258514@main)
Fixed invalidation for class names within
:nth-child()selector lists (258917@main)Fixed focusing an element with scroll snap to not always result in snapping to that element (259381@main)
Fixed
font-facesrclist failing early if the component fails (258749@main, 258870@main)Fixed
font-facesrclocal()to invalidate CSS-wide keywords (258695@main)Fixed
text-decoration-thicknessproperty to always trigger a repaint when changed (258641@main)Fixed
overscroll-behavior: noneto prevent overscroll when the page is too small to scroll (259227@main)Fixed
appearance: slider-verticalto only apply to range inputs (258924@main)Fixed that initial whitespace breaks the query in
window.matchMedia()(259357@main)Fixed a bug that Disconnected
<fieldset>elements sometimes incorrectly match :valid / :invalid selectors (259422@main)Removed “specified hue” color interpolation method for gradients and
color-mix()(259190@main)Stopped requiring whitespace between
ofand the selector list in:nth-childand:nth-last-child(258703@main)
CSS Typed OM
Stopped treating
grid-row-start,grid-column-start,grid-row-end, andgrid-column-endas list properties (258764@main)
Forms
Fixed
input[type=submit],input[type=reset], andinput[type=button]to honor font-size/padding/height and to work with multi-line values (258754@main)
Rendering
Added a guard against zero or negative space shortage (258647@main)
Changed the default oblique angle from 20 degrees to 14 degrees to match other browsers (258722@main)
Fixed underlines not appearing and disappearing when expected (258914@main)
Fixed hairline on selection when bidi text is involved (259537@main)
Fixed incorrect paint of
translateproperty animation (259173@main)Fixed incorrect repaint when inline content shrinks vertically (259141@main)
Fixed scrolling through content hidden with
clip-pathnot propagating below (259368@main)Fixed
margin: autoto be the only rule resolved against the “available width adjusted with intrusive floats” (e.g. percent values are based on container width). (259125@main)Fixed lazy image loading failure when
overflow: clipwas set on just one axis (259007@main)Fixed scrolling for a fixed header inside overflow scroll with a transformed ancestor (259175@main)
Fixed incorrect custom pseudo-scrollbar sizes (259389@main)
Improved balancing for
border,padding, and empty block content (259246@main)
JavaScript
Fixed
Atomics.waitAsyncto be invocable from the main thread (258856@main)Fixed module scripts to always decode using UTF-8 (259251@main, 259261@main)
Fixed
toLocaleLowerCaseandtoLocaleUpperCaseto not throw an exception on empty string (259242@main)Optimized Number constructor calls further (259533@main)
Optimized
WebAssemblyInstance#exports(259017@main)Updated
Intl.DurationFormatto align with updated standards (259317@main)
WebAssembly
Added
ref.as_non_nullinstruction (259420@main)Added missing type expansion for GC arrays and structs (259042@main)
Added
struct.new_canon_default(258689@main)
Gamepad API
Added support for
vibrationActuator(258680@main)Added experimental support for “trigger-rumble” effect type behind a feature flag (259507@main)
Fixed
GamepadHapticActuator.playEffect()with a magnitude less than 0.1 having no effect (258874@main)Fixed how magnitude values passed to
GamepadHapticActuator.playEffect()(258988@main)Made
gamepad.vibrationActuator.playEffect()throw for invalid effect parameters (258752@main)Made
vibrationActuatorlimit the duration of vibration effects (258759@main)Made
vibrationActuatorstop vibrating when its document becomes hidden (258802@main)Made
Gamepad.vibrationActuatorwork with the GameController framework (258674@main)Made
Gamepad.vibrationActuatorreturnnullwhen the gamepad doesn’t support dual-rumble (258812@main)Set
Gamepad.vibrationActuator.typeto “dual-rumble” (258758@main)
Web API
Enabled default ARIA for custom elements (258743@main)
Implemented
StorageManager.estimate()(258610@main)Added support for Ed25519 keys to Web Crypto (259277@main, 259489@main)
Changed
queryCommandValue("stylewithcss")to always return an empty string (258777@main)Disabled DOMParser’s support for declarative shadow DOM (258768@main)
Fixed a bug that
FileSystemSyncAccessHandle’sclosefunction throws an exception on the second call (258736@main)Fixed data written via FileSystemSyncAccessHandle disappearing after creating a new FileSystemFileHandle (258876@main)
Fixed negative shadow repaint issue (259497@main)
Fixed getting
input.valuefor number inputs with over 39 characters returning an empty string (258614@main)Fixed right-to-left tab handling (259428@main, 259460@main)
Fixed
Clear-Site-DataHTTP header to obey origin partitioning (259466@main)Fixed a bug that a new SharedWorker will be dysfunctional after the old one terminated via
SharedWorkerGlobalScope.close()(259228@main)Fixed a bug that HTMLSelectElement’s value setter sets incorrect values if there are grouped options (259249@main)
Fixed stripping of leading slashes in
URL.hostnamesetter (259366@main)Fixed a bug that
formDisabledCallback()is sometimes called even when disabledness hasn’t changed (259372@main)Made autofilling form to trigger
inputevent in addition tochangeevent (259434@main)Moved
oncopy,oncut, andonpasteto GlobalEventHandlers (258390@main)Removed the
precision="float"attribute on<input type="range">(258625@main)Removed
HTMLHeadElement.profile(258397@main)Removed
HTMLPreElement.wrap(258445@main)Removed
SVGFEMorphologyElement.setRadius(radiusX, radiusY)(258733@main)Removed
HTMLFrameElement.location(259067@main)Updated Content Security Policy when the header is sent as part of a 304 response (258931@main)
WebGL
Enabled
WEBGL_provoking_vertexby default (259499@main)
SVG
Fixed
rotate: xandtransform: rotate(x)yielding different behavior with SVG (258882@main)Fixed SVG
textLength(258921@main)Handled animation freeze when
repeatDuris not a multiple ofdur(259212@main)Fixed the bug that SVG sometimes doesn’t repaint when resolving color changes (259082@main)
Fixed computing the
keyTimesindex correctly for discrete values animations (258939@main)
Scrolling
Fixed page scrolling more than one screenful when pressing Space or Fn+Down (259146@main)
Media
Enabled
AudioSessionAPI by default with a reduced subset (259074@main)Moved Media Source API settings back into the Experimental Features (258853@main)
Changed to try using low latency for the WebRTC HEVC encoder, if available (259128@main)
Fixed HLS videos sometimes failing to reach “ended” state and not able to be restarted (259342@main)
Fixed MediaStreamTrack ending due to a capture failure when using bluetooth headsets (259150@main)
Fixed
AudioBufferSourceNode.startwith a duration sometimes failing (259234@main)Fixed duplicate
timeupdateevents in Text Track Code (259023@main)Fixed a bug that video element pauses after bluetooth audio input is disconnected (259415@main, 259478@main)
Updated
MediaController.currentTimeto return the previously set position (259020@main)
Accessibility
Fixed
aria-controlsto be exposed as AXLinkedUIElements and not AXARIAControls (258922@main)Fixed VoiceOver when selecting “Sign in with Apple” on some websites (259147@main)
WebDriver
Fixed the Shift modifier key not applying to typed text (259039@main)
Safari Web Extensions
Added support for support
setExtensionActionOptions()in the declarativeNetRequest APIChanged
declarativeNetRequestrules to default tofalseforisUrlFilterCaseSensitiveIncreased
browser.storage.sessiondata limit to 10MBFixed
:has()selector for Safari Content Blockers (259068@main)
See Also
2023
Safari Technology Preview 185 Release NotesSafari Technology Preview 184 Release NotesSafari Technology Preview 183 Release NotesSafari Technology Preview 182 Release NotesSafari Technology Preview 181 Release NotesSafari Technology Preview 180 Release NotesSafari Technology Preview 179 Release NotesSafari Technology Preview 178 Release NotesSafari Technology Preview 177 Release NotesSafari Technology Preview 176 Release NotesSafari Technology Preview 175 Release NotesSafari Technology Preview 174 Release NotesSafari Technology Preview 173 Release NotesSafari Technology Preview 172 Release NotesSafari Technology Preview 171 Release Notes