Release Notes for Safari Technology Preview 167

Safari Technology Preview Release 167 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 it 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: 261248@main…262124@main.

Web Inspector

  • Elements tab
    • Fixed editing CSS properties inside rules with nested rules causing the inner nested rules to be deleted (261329@main)
    • Fixed filtering styles to also match CSS at-rule identifiers (261804@main)
    • Fixed new CSS property unexpectedly getting dropped from an empty CSS rule (261861@main)
    • Fixed adding a new CSS rule in the Styles sidebar not appearing to add the rule on first attempt (261883@main)
  • Sources tab
    • Added pretty-printing support for various modern JavaScript syntax, including optional chaining, private class members, and optional assignment operators (261748@main)


  • Implemented CSS text-transform with multiple values (261419@main)
  • Added offsets into shape-outside Shapes (261331@main)
  • Added support for top-level & selector for CSS Nesting (261739@main)
  • Added support for counter() with @counter-style (261985@main)
  • Changed to apply basic font properties as font variation settings (261566@main)
  • Fixed CSS @imports in HTML missing quote marks getting mistakenly hidden from the Preload Scanner (261254@main)
  • Fixed calculating the CSSFilter geometry and clipping (261827@main)
  • Fixed border-image-repeat: round to match other browsers (261903@main)
  • Updated margin box for trimmed block-end boxes in block container and adjust the position of self-collapsing children (261750@main)


  • Added ClassSetCharacter syntax tests for RegExp v flag and fix issues found (261746@main)
  • Added more tests for RegExp v flag and fix issues found (261714@main)
  • Added ProxyObjectHas IC to optimize “has” trap (261628@main)
  • Aligned error message for non-callable ProxyObject’s “get” trap with its counterparts (261627@main)
  • Optimized Function.prototype.bind (261825@main)
  • Optimized Function#bind (261993@main)


  • Added support for anyref behind flag (261711@main)
  • Implemented cast operations behind flag (261445@main)
  • Implemented eqref and ref.eq behind flag (261663@main)
  • Implemented initial minimal JS API for Wasm GC behind flag (261544@main)


  • Fixed video in picture-to-picture snaps to incorrect size (261383@main)
  • Fixed a page with one document doing capture and another playing correctly handle remote commands (261414@main)
  • Fixed readyState to change back to HAVE_METADATA when removing a sample at the current playtime (261955@main)
  • Fixed SourceBuffer.buffered to return the same object if it’s not modified (261848@main)
  • Fixed video’s readyState incorrectly switching between HAVE_CURRENT_DATA and HAVE_METADATA (262112@main)
  • Skipped initial MSE buffering rate computation (261328@main)


  • Avoided conflicting interactions in the top layer (261317@main)
  • Made element.togglePopover() more interoperable (261386@main, 261436@main)
  • Implemented popover focusing steps (261400@main)
  • Implemented popovertarget & popovertargetaction attributes (261346@main)
  • Added an exception when calling on an open popover (261351@main)


  • Fixed mixed characters in right-to-left SVG text (261495@main)
  • Fixed margin-top getting ignored on elements with zero-height (and clear set) if they appear after floating elements (261926@main)


  • Added support for Apple Pay in cross-origin iframes with allow=payment attribute (262616@main)
  • Implemented Priority Hints (261689@main)
  • Changed to allow quota to be set based on disk space (261840@main)
  • Changed range.extractContents() to abort early if there’s a doctype in the range (261342@main)
  • Changed to include FetchMetadata on preflight requests (261587@main)
  • Fixed some Scroll To Text Fragment URLs not finding existing text on the page (261302@main)
  • Fixed the <summary> element not focusable with tabindex (261497@main)
  • Fixed problems changing multiple state <select> element to single state (261380@main)
  • Fixed Cross-Origin-Embedder-Policy incorrectly blocking iframes on cache hit (261924@main)
  • Fullscreen window size is incorrect for non-video elements (261904@main)
  • Optimized the HTML parser entity names table by omitting semicolons (261734@main)
  • Implemented the Response.json static method (261960@main)


  • Added support for code ARIA role (261640@main)
  • Implemented ‘generic’ role mapping (261894@main)
  • Fixed standalone spin buttons to be directly incrementable and decrementable (261396@main)
  • Fixed form controls taking the AX text of an ancestor label over their own inner text (261843@main)


  • Fixed not ignoring out-of-flow boxes while processing invalid MathML content (261841@main)


  • Fixed text transformation not starting on initial render (261408@main)