新春特別企画

2022年のブラウザとウェブ標準

この記事を読むのに必要な時間:およそ 3 分

2022年になりました。矢倉眞隆(@myakura)と申します。昨年に引き続き,新春特別企画のブラウザとウェブ標準を担当させていただきます。

なお,取り上げるトピックの数やインパクトの大きさもあり,CSSについては別記事となりました。あわせて読んでいただければ幸いです。

ChromeとFirefoxがバージョン100に到達

昨年の新春企画でもすこし触れましたが,今年はChromeとFirefoxのバージョンが100になります。

Chrome 100は,今年の3月29日にリリース予定です。もともとはもう少し先だったのですが,Chrome 94からリリースサイクルが4週間に短縮されたため,Chrome 100のリリースが早まりました。

Chromeよりも早く4週間のリリースサイクルに移行していたFirefoxも,5月3日にFirefox 100がリリース予定です。

バージョンが3桁になることで,User-Agentヘッダやnavigator.userAgentなどのUA文字列をみてブラウザ判別をするコードが意図通りに動かなくなる可能性があります。たとえばバージョンを取得する正規表現が2桁までしか考慮しておらず,バージョン100を10と扱ってしまうといったものです。

実際にどれほどの数のサイトに影響があるのかは未知数ですし,また起こる問題の深刻さもサイトごとに異なります。⁠サポート対象外です」といったメッセージがただ出るだけくらいであれば問題ないかもしれませんが,コンテンツが表示されない場合は問題です。

Mozillaが行っているウェブ互換性について報告するWebCompatプロジェクトでは,バージョン100になると影響が出るサイトの報告を募っています。

リリース前にウェブサイトとの互換性を把握する取り組みも行われています。Chrome 96からは,バージョン100のUA文字列を試す開発者用フラグが追加されています。Firefoxでも開発者向けビルドでバージョン100のUA文字列をテストしています。

壊れてしまうサイトが想定よりも多く,修正も現実的でない状況も想定されているようです。Chromeはメジャーバージョン部分を99に固定し,マイナーバージョンに本当のメジャーバージョンを表示するといったフラグも準備しています。

運営期間の長いサイトや,ブラウザ判別をするコードが多いサイトでは,バージョン100による影響が出てしまう可能性があります。管理・運用をしているサイトがバージョン100でも動作するか,ぜひチェックしてください。

ChromeのUA削減も進む

Chromeについては,バージョン100以外にもUA文字列関連でおさえておきたいトピックがあります。「UAの削減(User-Agent reduction⁠⁠」と呼ばれる,UA文字列から取得できるブラウザのバージョンやOSのバージョンについて,情報量を減らす取り組みです。

UA文字列にはブラウザの種類やバージョンだけでなく,OSのバージョンやCPUのアーキテクチャ,使っている端末名やモデル名など,さまざまな種類の情報が含まれています。これらの情報がフィンガープリンティングに用いられるため,ブラウザベンダーは以前よりそうした情報を削除したり,文字列を固定する取り組みを進めていました。

そうした流れもあり,Chromeは2020年1月に,UA文字列を完全に固定する意向を示しました。しかし互換性への懸念が多数寄せられたこと,そしてその後起こったパンデミックもあり,スケジュールを延期し,また固定ではなく削減へと舵を切っていました。

2021年9月に,UAの削減を7フェーズにわたり段階的に進める新たな移行計画が発表されました。2022年1月現在は第2フェーズにあり,削減されたUA文字列を試すオリジントライアル(サイト側が登録することで新しい機能を試せるChromeの機能)を開始している段階です。

現時点のスケジュールにおいては,Chrome 113で最終フェーズ,つまりUAの削減が完了する予定です。最終的にUA文字列から得られる情報は,メジャーバージョン,OSの種類,モバイルデバイスか否かといった程度になり,ブラウザのマイナーバージョンや端末モデルなど,細かい情報は取得できなくなります。

これでは困るというサイトやアプリのために,代替技術となるUser-Agent Client Hints(UA-CH)という仕組みがChromeチームを中心に提案されています。UA-CHではバージョンやOSの種別など単位ごとに分けられたHTTPヘッダを使うこと,デフォルトでは細かな情報をブラウザから送らないことで,使いやすさやデータが漏れるリスクの低減をはかっています。

しかし,導入される新しいヘッダ自体がフィンガープリンティングに使われてしまうことへの懸念などから,AppleやMozillaからよい感触は得られていません。SafariやFirefoxはChromeよりもUA文字列の固定・削減がされているため,UA-CHの有用性に対する温度感の違いがあるのでしょう。

UA-CHが他のブラウザで実装されるかは怪しいところですが,少なくともChromeについては,UA文字列から取得できる情報が今後減っていきます。UA文字列を使うサイトやアプリについては,削減されたUA文字列で大丈夫なのかを調べ,必要に応じてUA-CHを導入することが求められるでしょう。

HTMLのdialog要素がFirefoxやSafariでもサポート間近

HTMLにはdialog要素という,アプリケーションのダイアログをマークアップする要素とAPIがあります。長らくChromeのみの実装だったのですが,FirefoxやSafariでも実装が進んでいます。Safariでは昨年10月にリリースされた開発版で,dialog要素が有効にされており,近いメジャーアップデートもしくはマイナーアップデートでの導入が期待されます。

Firefoxも実装しているのですが,有効にしていない状態が長らく続いています。モーダルダイアログ表示時にフォーカスすべき要素を変更する提案がHTML仕様に行われていますが,これがまだ解決していないのです。この変更は主にアクセシビリティの観点から行われたもので,MozillaやAppleはこの提案を支持しています。Chromeでも実装を変更するパッチが出ているので,仕様での解決は近いかもしれません。待ち望まれている機能なので,FirefoxやSafariで早くリリースされればと思っています。

著者プロフィール

矢倉眞隆(やくらまさたか)

HTMLやCSSといったW3C/WHATWGのウェブ標準仕様やブラウザーのエンジンについて,20年ほどなんとなく追いかけている。現在は株式会社ピクセルグリッドに所属。

Twitter:@myakura

バックナンバー

新春特別企画

バックナンバー一覧