WWDC26 發表 Safari 27 beta:WebKit 引入 JSPI、Import Defer 與 CSS Anchor 全面升級
WebKit Blog · 2026-06-09
Apple 在 WWDC26 同步發布 Safari 27 beta,WebKit 引擎帶來一批早在 Safari Technology Preview 中試驗多時的功能,其中包括 WebAssembly JavaScript Promise Integration(JSPI)、完全重寫的 ESM 頂層 Await 載入器,以及 CSS 錨點定位的重大修正。本次發布涵蓋超過 525 項 bug fix,定位為品質優先。
JavaScript 與模組載入
Top-Level Await 的 ESM 載入器以 C++ 完整重寫,修正了模組執行順序與初始化錯誤;此前 Safari 在複雜模組依賴圖下有時會出現執行順序不一致的問題。Static import defer 語意正式納入 STP 245,允許模組在評估時機上延遲到第一次存取再執行,減少主線程阻塞。
WebAssembly JSPI 使原本以同步方式撰寫的 Wasm 程式碼可以掛起並等待 JavaScript Promise,對 Emscripten 編譯的 C/C++ 程式庫尤為重要,讓它們能在瀏覽器事件循環內正確執行非同步操作而不需要線程。
CSS:Anchor Positioning 修正與新增關鍵字
CSS Anchor Positioning 在本版修正了 Transform-Aware 定位:被定位元素現在會跟隨錨點的實際 transform 後位置,而非 pre-transform 的版面位置。新增 revert-rule 關鍵字,可精確地將 cascade 回滾到當前規則套用前的狀態,比 revert 更細粒度。
:heading偽類別:等同h1, h2, h3, h4, h5, h6的選擇器簡寫stretchbox-sizing 關鍵字:取代-webkit-fill-available,填滿可用空間並考量 margincontain: style支援 CSSquotes,將引號效果限制在子樹內srgb-linear、display-p3-linear色彩空間加入 Canvas/WebGL 預定義色彩
Web API 擴充
Service Worker Static Routing API 允許宣告式路由規則,讓特定請求完全繞過 service worker,減少不必要的 worker 啟動開銷。ReadableStream 新增 for await...of 非同步迭代、ReadableStream.from() 靜態方法,以及跨上下文轉移能力。Cookie Store API 現在支援 maxAge 參數。
<img sizes="auto"> 告知瀏覽器依據元素實際版面寬度自動計算尺寸,避免 srcset 選圖錯誤。shadowrootslotassignment 屬性可在宣告式 Shadow DOM 中設定 named 或 manual slot 分配模式。
visionOS Spatial Web
新的 <model> 元素與 JavaScript API 允許在 visionOS 上建立沉浸式網站環境;同一元素也在 iOS、iPadOS、macOS 上啟用互動式 3D 內容嵌入。dynamic-range-limit CSS 屬性控制 3D 內容的 HDR 渲染範圍。
Safari Technology Preview 245 新增功能
同日發布的 STP 245 包含 CSS 屬性選擇器 s 修飾符(區分大小寫)、:host:has() 複合選擇器支援,以及 :has() 作用域選擇器效能最佳化,減少樣式失效時的遍歷範圍。MathML 運算子字典項目對齊 MathML Core 規格;動態插入 <img> 的嚴重效能退化已修正。
原始來源:WebKit Blog — News from WWDC26、Safari Technology Preview 245 Release Notes