WHATWG 修正 HTML 規範:<select> 開啟選單前得先確認是滑鼠事件
WHATWG HTML Living Standard · 2026-08-28
WHATWG 於 2026-08-28 對 HTML Living Standard 提交規範修正 4aa7694,調整 <select> 元素判斷滑鼠按鍵、決定是否開啟原生下拉選單的演算法。作者 josepharhar 指出,該演算法同時處理鍵盤與滑鼠事件,卻沒有先檢查事件型別就直接讀取 button 屬性,且判斷用的數值本身也寫反了。
核心改動
這次修改只動了規範原始檔(source)的兩處,共 +3 -3 行。第一處把「event.button 不等於 1 才觸發」改成「不等於 0 才觸發」——0 才是滑鼠左鍵、1 是中鍵,舊寫法等於讓左鍵以外的按鍵都能開啟選單。第二處則在讀取 button 屬性前加上「僅當事件是 MouseEvent」的型別守門,避免鍵盤觸發的同一段演算法去讀取一個不存在的屬性。
- If event's button is not 1, then return.
+ If event is a MouseEvent and event's button is not 0, then return.影響範圍
這屬於規範文字層級的澄清,不會立即改變現有瀏覽器行為,但會成為各引擎日後修 bug、驗證 Web Platform Tests 時的依據。對前端開發者而言,實務上仍應假設只有滑鼠左鍵點擊會開啟原生下拉選單,右鍵或中鍵點擊 <select> 不應觸發選單彈出。
Vue 3.6.0-rc.6 發布:Vapor Mode 再修一輪穩定性問題
Vue Core Releases · 2026-08-28
Vue 團隊於 2026-08-28 釋出 v3.6.0-rc.6(對應 commit b281c7a),是 Vue 3.6 正式版前的又一顆候選版本,內容集中在 Vapor Mode 的錯誤修正與效能微調。Vapor 是 Vue 3.6 新增的編譯模式,開發者在 <script vapor> 中撰寫元件時,編譯器會直接產生操作真實 DOM 的程式碼,跳過 Virtual DOM 的建立與 diff 步驟。
核心改動
本次 rc 的修正全數集中在 runtime-vapor 與相關子系統:
#15341修正屬性更新流程會跳過初始 DOM prop 設定的問題(64671b5)#15340讓表單重置能還原欄位值,改以屬性方式設定 value(23a2b2c)#15364修正v-for用在非物件來源時,索引別名沒有清除的錯誤(f945b0e)#15343讓 DOM prop 更新邏輯與既有 VDOM 版本行為對齊(84833e2)- HMR:以更新旗標保護 vapor 快速路徑重載,更新失敗時重置狀態(
991a885)
效能面則優化了離開 hydration 邊界時的掃描邏輯,避免二次方級的重複掃描(9905d7d),並加入樣板 adopt target 的快取(29ed4b0)。
影響範圍
這些修正都落在 Vapor 執行期,尚未啟用 vapor 編譯選項的既有 Options/Composition API 專案不受影響。已在嘗鮮 Vapor 的專案,特別是重度使用 v-for、表單元件與 HMR 的場景,建議升級以避開上述已知問題。
Safari Technology Preview 251:corner-shape、Iterator helper 與 Memory64 一次到齊
WebKit Blog · 2026-08-26
WebKit 團隊於 2026-08-26 推出 Safari Technology Preview 251,涵蓋 WebKit 版本區間 317935@main 至 319386@main 的變更,同步支援 macOS Golden Gate 與 macOS Tahoe。此版本一次加入多項 CSS 與 JavaScript 提案的實作,功能密度是近期版本中較高的一次。
規格細節
CSS 方面最受關注的是新屬性 corner-shape:它與既有的 border-radius 分工,border-radius 決定圓角範圍大小,corner-shape 決定該範圍要畫成什麼曲線,例如 squircle(等同 superellipse(2),也就是 iOS 圖示常見的「方圓」造型)、scoop、bevel、notch。此屬性目前仍屬 CSS Borders and Box Decorations Module Level 4 的編輯草案階段。
| 領域 | 本次新增 |
|---|---|
| CSS | @supports at-rule()、corner-shape、object-view-box、@container 逗號並列條件 |
| JavaScript | Iterator.prototype.chunks() / windows()、Iterator.zip()、WebAssembly Memory64 |
| Web API | Navigation API 的 NavigationTransition.to、fetch 上傳背壓、WebCodecs ImageDecoder |
| 移除項目 | SVGPathSegList、SVGPathSeg、-webkit-line-clamp 的非標準百分比值 |
影響範圍
JavaScript 端新增的 Iterator helper(chunks()、windows()、zip()、zipKeyed())補上了 TC39 Iterator Helpers 提案在 WebKit 的實作進度,讓開發者不必先靠 Array.from() 轉成陣列,就能直接對惰性疊代器分塊或配對處理。而 SVGPathSegList 等介面被移除,代表長年標記為非標準的舊版 SVG 路徑 API 正式在 WebKit 除役,仍相依這批 API 的程式碼需改用 getPathData() 等現代替代方案。