前端前線 2026 年 5 月 12 日

2026-05-12 — Safari 26.5 帶來 :open 偽類、element-scoped random() 與結構化 Origin API

primary=https://webkit.org/blog/17938/webkit-features-for-safari-26-5/

Safari 26.5 落地 :open 偽類、element-scoped random() 關鍵字與結構化 Origin API

WebKit Blog · 2026-05-11

WebKit 團隊於 2026-05-11 發布 Safari 26.5 的功能說明,包含 :open 偽類、CSS random() 函式的規格修訂、SVG 漸層色彩空間支援,以及全新的 Origin APIToggleEvent.source 屬性。

:open 偽類

:open 偽類統一了可切換元素的樣式鉤,取代過去需要混用 [open] 屬性選擇器、JavaScript 偵測等不同手段的狀況。它在四類元素上一致生效:<details> 展開時、<dialog> 透過 showModal()show() 顯示時、<select> 下拉清單展開時,以及 <input type="date"> / type="color" 關聯選擇器可見時。

這個偽類屬於 CSS Pseudo-Classes Level 4 規格。Firefox 已在早期版本支援;Safari 26.5 補齊後,主流三大瀏覽器達到行為一致。

random():element-scoped 關鍵字與全局快取語意

CSS random() 的命名隨機值作用域規格發生重大翻轉。舊規格:命名值每個元素各自獨立產生(element-scoped);新規格:命名值全局共享同一結果(globally cached)。若仍需舊行為,需明確加上 element-scoped 關鍵字:

/* 新規格:全局快取,所有元素同一值 */
width: random(--w, 100px, 200px);

/* 明確指定每元素獨立 */
width: random(--s element-scoped, 100px, 200px);

/* 無名稱:每次使用產生新值 */
width: random(100px, 200px);

Safari 26.5 同步移除已棄用的 element-shared 關鍵字,使用舊語法的樣式表需要更新。

SVG color-interpolation 與 Scroll-Driven Animations 修復

SVG 漸層元素現在支援 color-interpolation="linearRGB" 屬性。預設 sRGB 空間因非線性特性,在兩個飽和色之間過渡時視覺上容易出現暗沉的「泥濘感」;切換至線性 RGB 空間後,梯度感知上更均勻。Scroll-Driven Animations 修復了四個問題:animation-play-state 暫停行為、0%/100% 進度值準確回報、scroll timeline 範圍名稱支援,以及 back-forward cache 還原後動畫狀態正確恢復。

ToggleEvent.source 與 Origin API

新增的 ToggleEvent.source 屬性直接暴露觸發 popover 或可切換元素的按鈕參照,省去手動維護觸發者關聯的工作。Origin API 提供結構化的 origin 物件,Origin.from(value) 可從字串或 MessageEvent 等內建物件建構實例,並支援 same-site 比較,以及對 opaque origin(序列化為 "null" 字串)的正確語意處理——這個邊界情況在過去幾乎無法安全判斷。

此版本共修復 63 個錯誤,涵蓋無障礙性、表單、HTML、JavaScript、媒體、網路、儲存、WebGL 與 WebRTC。

原始來源:WebKit Blog — WebKit Features for Safari 26.5


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