繁體中文English
jason's blog關於網頁標準、瀏覽器與前端開發的觀察筆記

文章分類: Web Platform

Safari 26 新增的 CSS 與 Web API

整理 Safari 26 的 Anchor Positioning、捲動動畫、HDR、憑證與安全 API。

發布 2025/06/09

每次我興奮地看到一個新 CSS 功能,腦中都會很自動地冒出那句掃興的話:「Safari 呢?」這已經像前端圈的固定儀式了。Safari 26 一口氣補上不少能力時,我本來很開心,但下一秒還是忍不住去看舊 iPhone 的版本分布——做產品就是這麼現實,新版支援和可以刪掉 fallback,通常是兩個不同日期。

Safari 26 一次補進大量 WebKit 功能,清單長到不太適合逐條翻譯。若只挑和一般前端最有關的,我會先看下面幾項。

我覺得比較重大的更新

  • CSS Anchor Positioning: tooltip、popover 或選單可以直接跟著另一個元素定位,不必一直讀取座標再監聽 resize 和 scroll。它解決的是前端做浮層時非常老的一類問題。

  • Scroll-driven Animations: 動畫進度能跟捲動位置或元素可見範圍連動。簡單的閱讀進度、進場效果,不必再用大量 scroll listener 計算。

  • HDR 圖片與 dynamic-range-limit 支援 HDR 的螢幕可以呈現更亮、更廣的影像範圍,同時讓作者限制亮度。這對攝影和影音網站很有吸引力,但也更需要顧及素材與裝置差異。

  • Digital Credentials API: 網站可以在使用者同意下,向數位身分證件請求經驗證的資料。它牽涉隱私和敏感資訊,重點不只在「能讀到什麼」,還包括何時詢問、畫面怎麼說明。

  • URLPattern、Trusted Types 與更多平台 API: 前者讓 URL 比對更一致;Trusted Types 可協助降低 DOM XSS 風險。這些功能不一定直接改變畫面,卻補強了 routing 與安全工具能使用的底層能力。

真正開發時仍要查使用者的 Safari 版本,尤其舊 iPhone 不一定能升級。功能進入最新版 Safari,代表跨瀏覽器採用門檻下降,不代表專案裡的所有裝置在同一天突然支援。

我的看法

我最看好 Anchor Positioning。因為它不是只讓展示頁更炫,而是能少掉一段每個元件庫都重寫過的定位邏輯。Scroll-driven Animations 也很好用,但更適合當漸進增強:沒有動畫時,內容和操作仍應正常。

使用這類新功能時,我會優先用 @supports 做功能偵測,而不是猜瀏覽器名稱。新專案可以先用在不影響核心流程的地方;舊元件則不用因為 Safari 終於支援就連夜重寫,等產品的最低版本跟上再逐步簡化即可。

Safari 的版本號這幾年愈來愈大,但產品端最麻煩的仍是裝置分布。公司測試機可能全是最新版,使用者手上的 iPhone 卻因硬體限制停在舊系統。與其在需求單上寫「支援 Safari」,我更希望看到明確的最低版本,以及某個新功能失效時還剩下什麼體驗。

拿 Anchor Positioning 來說,第一階段可以保留既有浮層定位工具,只在支援時走原生路徑;等監控和流量都證明舊路徑很少使用,再移除依賴。平台功能真正幫忙省下程式碼,往往不是宣布支援的那一天,而是產品終於能放心刪掉 fallback 的那一天。