Chrome 團(tuán)隊(duì):2020 年了,瀏覽器兼容性還是一個(gè)大問(wèn)題
根據(jù) 2019 年 Web 開(kāi)發(fā)人員需求評(píng)估(Web Developer Needs Assessment,DNA)調(diào)查,來(lái)自世界各地的 28,000 多名開(kāi)發(fā)者所反饋的最大需求是瀏覽器兼容性問(wèn)題——網(wǎng)站在不同網(wǎng)絡(luò)瀏覽器上的外觀或行為方式不同,這給開(kāi)發(fā)人員帶來(lái)不少痛苦。
因此,MDN 在 2020 年 3 月進(jìn)行了一項(xiàng)針對(duì)瀏覽器兼容性的后續(xù)調(diào)查。這次調(diào)查揭示了 Web 開(kāi)發(fā)人員在瀏覽器兼容性方面遇到的痛點(diǎn)。Chrome 團(tuán)隊(duì)通過(guò)一篇博客文章將其分享出來(lái),并談?wù)摿?Chrome 本身在這些問(wèn)題上所做的努力。
FlexboxFlexbox 是用于網(wǎng)絡(luò)布局的工具,它提供了一種符合人機(jī)工程學(xué)的方式來(lái)定義可以在不同大小的視口上正常響應(yīng)的布局。但是,如果不能在所有瀏覽器中都使用此功能 ,它的體驗(yàn)就不是很好。
Chrome 團(tuán)隊(duì)表示,F(xiàn)lexbox 是他們今年實(shí)現(xiàn)瀏覽器兼容性的首要任務(wù)之一,并已經(jīng)在其中投入了大量資金。
具體來(lái)說(shuō),Chrome 渲染團(tuán)隊(duì)在現(xiàn)代 LayoutNG 布局引擎的基礎(chǔ)上,對(duì) Chromium flexbox 實(shí)現(xiàn)的架構(gòu)進(jìn)行了重新設(shè)計(jì)。這項(xiàng)工作預(yù)計(jì)會(huì)在 Chrome 84 中引入,它有望解決 Chromium 中的許多 Flexbox 兼容性問(wèn)題。
他們也正致力于在今年內(nèi)為 Chromium 提供 flex-gap 和 fieldset+flex 支持。flex-gap 也將在 Chrome 84 中可用。
Scrolling(滾動(dòng))在多個(gè)瀏覽器上正確滾動(dòng)不是一件易事(例如,需要整個(gè)庫(kù)來(lái)一致地鎖定正文滾動(dòng))。Chrome 團(tuán)隊(duì)仍在研究有關(guān)滾動(dòng)兼容性的反饋,目前為止,有幾個(gè)關(guān)鍵領(lǐng)域很突出:
虛擬鍵盤(pán)如何影響(或不影響)不同瀏覽器中的視口單元。(Chrome 團(tuán)隊(duì)溫馨提示:Microsoft Edge 在 VirtualKeyboard API 上的最新工作可能對(duì)此有所幫助。)
與輸入相關(guān)的事件以及與之交互的結(jié)果缺乏一致性。
難以控制跨瀏覽器的滾動(dòng)行為(例如,通過(guò)滾動(dòng)錨定)。
表單控件表單是 Web 中一個(gè)非常古老的部分,甚至早于 CSS。表單控件旨在模仿本機(jī)平臺(tái)的外觀,但它們未能始終如一地做到這一點(diǎn),也未能滿(mǎn)足現(xiàn)代 Web 開(kāi)發(fā)的需求。兼容性調(diào)查在這方面揭示了兩個(gè)主要問(wèn)題:跨瀏覽器中的風(fēng)格和行為不一致。
在樣式表單控件方面,Microsoft Edge 和 Google Chrome 團(tuán)隊(duì)最近完成了這一項(xiàng)目,更新了基于 Chromium 的瀏覽器中的默認(rèn)表單樣式。
就行為而言,人們似乎普遍擔(dān)心表單控件的行為未得到很好的指定,或者瀏覽器未始終遵循這些規(guī)范。一些具體示例是,當(dāng)在包含表單的頁(yè)面之間來(lái)回導(dǎo)航時(shí),它們支持某些類(lèi)型、自動(dòng)填充行為和內(nèi)容恢復(fù)行為。
CSS Grid
像 Flexbox 一樣,CSS Grid 是現(xiàn)代布局的重要組成部分。調(diào)查結(jié)果顯示,似乎 Chromium 中對(duì) CSS Grid 的支持還不錯(cuò)。但有一項(xiàng)例外——Chromium 仍然不支持 subgrid。
Chrome 團(tuán)隊(duì)透露,Microsoft Edge 的一個(gè)團(tuán)隊(duì)正在重新構(gòu)造 Chromium 的 Grid 支持,以使用新的 LayoutNG 引擎。作為此計(jì)劃的一部分,Chrome 也打算添加對(duì) subgrid 的支持。
最后,Chrome 團(tuán)隊(duì)指出,當(dāng)涉及到瀏覽器兼容性時(shí),仍然有太多缺少的功能和邊緣錯(cuò)誤。如果瀏覽器供應(yīng)商可以理解到這些造成麻煩的原因,并采取措施解決問(wèn)題,一切將會(huì)變得更好。在接下來(lái)的時(shí)間里,Chrome 也將變得更加兼容。