AppleがiOS 16・iPadOS 16・macOS Ventura・macOS Monterey・macOS Big Sur向けにSafari 16.4を2023年3月28日にリリースしました。このSafari 16.4のレンダリングエンジンであるWebKitのアップデート内容を、AppleのWebKit開発陣がブログでまとめています。

WebKit Features in Safari 16.4 | WebKit

https://webkit.org/blog/13966/webkit-features-in-safari-16-4/



・iOSおよびiPadOSでのウェブプッシュ通知

iOS 16.4からウェブプッシュ通知が可能になることは、2023年2月に告知されていた通りで、ウェブサイトからユーザーに通知を送信可能になります。

iOS 16.4で「ウェブサイトからのプッシュ通知」が可能になることが判明 - GIGAZINE



・ウェブアプリの改善

Badging APIのサポートが追加されることで、ウェブアプリでもアプリの上に通知数を表示するバッジカウントが表示できるようになります。また、サードパーティーのウェブブラウザで共有メニューから「ホーム画面に追加」を選択することで、ウェブサイトのショートカットアイコンを追加できるようになるとのこと。

・ウェブコンポーネントの改善

Declarative Shadow DOM のサポートが追加され、開発者はJavaScriptを使用せずにシャドウDOMを定義できるようになります。また、Imperative Slot APIがサポートされるようになったことで、開発者はスロットに割り当てられたノードをJavaScriptで指定して、柔軟性を高めることができます。

・CSS

margin-trimによる余白の調整、タイポグラフィやCSSプロパティのカスタマイズ性向上、相対カラー構文やウェブアニメーションのサポートの追加、メディアクエリーの構文の改善などが行われています。



・HTML

動画などの埋め込みに使われるインラインフレームが改善されています。

・JavaScriptとWebAssemblyの機能追加

Safari 16.4から、正規表現の後読みが可能になるRegExp Lookbehind、JavaScriptで取得するモジュールのURLを制御できるJavaScript Import Mapsなどに対応しました。

・ウェブAPI

OffscreenCanvas、Full Screen、ScreenOrientation、画面起動ロック、UserActivation、Compression StreamsなどのAPIのサポートが追加されました。また、WebGLのキャンバスがDisplay P3広色域の色空間をサポートするようになりました。

・画像、ビデオ、およびオーディオ

映像編集やビデオ会議、映像のリアルタイム処理を行うアプリケーションに役立つWebCodecs APIのビデオ部分のサポートが追加されました。Safari 16.4では、他にもビデオ会議の音声品質の向上やAVCaptureの仮想カメラのサポート追加などが行われています。

・WKWebView

iOSおよびiPadOS 16.4のWKWebViewで使われるWKPreferenceで、印刷時にページの背景を含めることをオプトインできる「shouldPrintBackgrounds API」のサポートが追加されました。

・開発者ツール

WKWebViewまたはJSContextをサポートするすべてのプラットフォームで「isInspectable」という新しいプロパティが利用できるようになりました。デフォルトはfalseとなっており、trueに設定することでアプリのリリースビルドでもWeb Inspectorを使ってコンテンツを検査できるようにするオプトインが可能になります。



また、Safari 16.4をsafaridriverで自動化する際に、シャドウルート内の要素を取得するコマンドと、要素の役割とラベルを取得するアクセシビリティコマンドがサポートされました。

・Web Inspector

Web Inspectorにタイポグラフィ検査機能が追加されました。適切なスタイルを提供しないフォントに対してレンダリングエンジンがこれらのスタイルを生成しなければならない場合、警告が表示されるようになるとのこと。



また、CSSの追加ツールやHTML要素にバッジを付けられる機能が追加されました。これにより、サードパーティー製の強力なフレームワーク・サービスを利用し開発する際の一助となることが期待されます。



・Safari 拡張機能

宣言型Net Request APIの機能が強化されました。また、拡張機能のアイコンとしてSVG画像がサポートされるようになったほか、scripting.registerContentScript APIのサポートが導入され、開発者はプログラムで登録・更新・削除できる動的コンテンツのスクリプトを作成できるようになります。

・Safariコンテンツブロッカー

Safariコンテンツブロッカーのルールで「:has()」セレクターがサポートされ、コンテンツブロックの可能性が大きく広がったとのこと。開発者はウェブページの特定の部分をターゲットにしたより正確なルールを作成できるようになり、ユーザーのブラウジング体験を維持しながら不要なコンテンツをブロックすることが簡単になります。

・ロックダウンモードの新しい制限

きわめて高度なサイバー攻撃の標的になった時にデバイスの機能を厳しく制限するロックダウンモードで、無効にするAPIが追加されました。

・その他の改善

Safari 16.4では、テキストファイルのダークモードをサポートするようになります。また、「data:」「about:」で始まるURLへのリダイレクトを防ぐようになりました。他にもSafari 16.4のWebKitでは、さまざまなバグの修正やフィードバックが行われています。