前端前線 2026 年 5 月 28 日

2026-05-28 — Safari TP 244 anchor 定位、Chrome 內建 AI API、CSS vs JS 動畫

primary=https://webkit.org/blog/17962/release-notes-for-safari-technology-preview-244/ primary=https://developer.chrome.com/blog/build-new-features-using-built-in-ai-in-chrome-io2026 primary=https://www.joshwcomeau.com/animation/css-vs-javascript/

Safari Technology Preview 244:anchor 定位增強、SharedWorker 巢狀 DedicatedWorker、TypedArray SIMD 加速

WebKit Blog · 2026-05-28

Safari Technology Preview 244 於 2026 年 5 月 21 日發布,支援 macOS Tahoe 與 macOS Sequoia,修正超過 80 項問題,涵蓋 CSS Anchor Positioning 規格對齊、MathML 存取性改進、Web API 規格缺口補齊,以及效能優化。

CSS Anchor Positioning 更新

position-anchor 屬性新增 normalnone 值,更接近 CSS Anchor Positioning 規格草案的完整語意。anchor-validanchor-visible 作為 position-visibility 的別名加入,讓開發者可依錨點可視狀態切換定位行為。transform-aware anchor positioning 支援在 CSS transform 影響的錨點元素上正確計算位置。

Web API 規格對齊

SharedWorker 現允許在內部建立 DedicatedWorker,與 HTML Standard 對齊。多個頁面共用的 SharedWorker 可再分派子任務至 DedicatedWorker,簡化需要共享計算基礎設施的複雜應用架構。MathML 元素補齊 tabindexfocus()blur()autofocus 屬性支援,改善數學公式的鍵盤導航與存取性。MathML 多字元運算子的排版問題也在本版本修正。

AnimationEvent 新屬性與 Web Extensions 手勢傳遞

AnimationEventTransitionEvent 新增 animation 屬性,讓事件處理程式可直接取得觸發事件的 Animation 物件,省去手動維護動畫參考的需求。Web Extensions 方面,使用者手勢現可透過 sendMessage()connect()postMessage()executeScript() 傳遞,解決跨 context 手勢遺失導致無法呼叫手勢敏感 API 的問題。

效能與正確性修正

  • TypedArray 反向搜尋(findLastfindLastIndex)啟用 SIMD 加速
  • 模組命名空間在多 export statement 情況下的建構邏輯修正
  • Worker parse error 現正確回報至主執行緒
  • IndexedDB 升級中止時的版本號處理修正
  • :has() 選擇器在動態 DOM 變更時的失效邏輯修正
  • flex 項目 aspect-ratio 計算與絕對定位 table 版面修正
  • SVG SMIL repeat()、stroke-dasharray 插值、glyph orientation vertical text 修正

原始來源:WebKit Blog — Safari Technology Preview 244 Release Notes


Chrome 內建 AI API:Prompt、Summarizer、Writer、Rewriter、Translator 五組介面的 On-Device 架構

Chrome for Developers (Google I/O 2026) · 2026-05-26

Google I/O 2026 期間,Chrome 團隊完整展示五組瀏覽器端 AI API,全以 on-device 模型執行,資料不送往雲端。本文整理各 API 的技術規格與部署架構。

Prompt API

Prompt API 支援 JSON Schema 指定輸出格式,讓回應可直接反序列化為應用程式所需的資料結構,省去輸出解析層。API 同時支援多模態輸入——傳入圖片像素,模型可自動產生 alt-text 或圖片描述,無需額外的視覺 API 呼叫。

Summarizer、Writer、Rewriter API

Summarizer API 接受 type(如 'headline')與 sharedContext 參數,提供 summarizeStreaming() 串流方法,適合長文即時顯示摘要進度。Writer API 將條列要點擴展為完整段落;Rewriter API 接受語氣指令(如「更輕鬆」、「更短」)原地改寫文字,適合 CMS 與文字編輯器整合。

Translator API

Translator API 在裝置端完成翻譯,不依賴 Cloud Translation API,適合處理使用者即時輸入的轉換需求。展示案例包含英文草稿即時翻譯為西班牙文與日文。

部署架構與 Fallback

所有 API 共享同一組 on-device 模型,利用裝置 GPU 加速推論。針對尚未支援的裝置(主要為行動裝置),Firebase AI Logic 提供雲端 fallback 路由,讓相同程式碼在不同裝置上自動切換。TypeScript 型別定義透過 @types/dom-chromium-ai npm 套件取得。

原始來源:Chrome for Developers — Build new features using built-in AI in Chrome (I/O 2026)


CSS 動畫與 JavaScript 動畫的技術選擇:合成執行緒、WAAPI 與效能分界線

Josh W Comeau · 2026-05-27

CSS 動畫與 JavaScript 動畫的邊界在現代瀏覽器中已不如過去清晰。Web Animations API(WAAPI) 讓 JavaScript 可驅動與 CSS 相同的底層合成引擎,而 CSS 的某些屬性仍需主執行緒運算,不保證流暢度。本文整理兩者的效能分界與適用場景。

合成執行緒的條件

只有 transformopacity 能保證完全在合成執行緒(compositor thread)執行,不阻塞主執行緒的 JavaScript 工作。filter 在部分瀏覽器可合成,clip-pathbackground-color 通常觸發 repaint,不論用 CSS 或 JS 驅動均在主執行緒處理。使用 DevTools 的 Rendering 面板可直接觀察各屬性的合成情況。

WAAPI 的優勢

WAAPI 透過 element.animate() 提供 Promise-based 介面(animation.finished),解決純 CSS 動畫難以在完成後觸發後續邏輯的問題。WAAPI 動畫同樣能進入合成執行緒(對支援合成的屬性),兼顧效能與 JavaScript 控制能力。

選擇準則

  • 靜態、無狀態動畫(hover effect、入場動畫):純 CSS,程式碼最少
  • 需要 JavaScript 協調或動態值:WAAPI,保留合成執行緒優勢
  • 複雜時間軸、物理模擬:Motion / GSAP 等函式庫,底層會優先使用 WAAPI
  • 觸控手勢驅動動畫:Scroll-Linked Animations API(@scroll-timeline

原始來源:Josh W Comeau — CSS vs. JavaScript animations


End of article
0
Would love your thoughts, please comment.x
()
x