デジタルマーケティングTips
Safari 18.0 仕様変更発表まとめ
Safari 18.0(正式版)の主要な仕様変更発表のまとめです。
要点
- 追加・拡張:
ベータ段階の新機能に加えて以下の機能が追加・拡張され、表現力・利便性が向上します
・強調要素やハイコントラストUI向けのCSS設定が拡張される
・Macで開発する際のiOS表示検証がやりやすくなる 等 - 廃止・削除:
ベータ段階の廃止予定機能に加えて、以下の機能が使用できなくなります
これを使用している場合は設定の移行等が必要になります
・WebViewの古い通知名が廃止される 等
メルマガでも情報を配信中です! ぜひご登録ください。
6月のWWDC発表時のベータ版情報に含まれなかった追加変更、および逆にWWDCで発表されたものの正式版発表に含まれなかった変更については以下の通りです。
追加・拡張(WWDC未発表)
以下の未発表機能が追加されました。
ブラウザ機能追加
気をそらす項目の制御
- アドレスバー内ページメニュー[気をそらす項目を非表示]で、オーバーレイ表示や常時表示要素をユーザー側で強制排除できます。要素を個別に非表示設定する必要があり、自動排除はしません。
ページメニュー[非表示の項目を表示]で、非表示設定を解除できます。
動画プレーヤー強化
- ページ側でインライン再生に設定している動画について、ページメニューから指定すると動画ビューアーで再生できます。タブを移動したりしてもピクチャーインピクチャー表示でそのまま再生し続けたりできます。
※ベータ時点ではmacOS限定機能として発表されていましたが、正式版ではmacOSに限定する記述がなくなっています
iPhoneミラーリング
- macOS SequoiaのiPhoneミラーリング機能を使って、iPhone版Safariでの表示検証をMacから行えるようになります。Web Inspectorと連携させることも可能です。
いちいち表示確認のためにiPhoneの実機画面を見る必要がなくなるため、MacでWebコーディング・検証を行う開発者にとっては効率化に繋がります。
※iPhoneミラーリングは、Apple T2セキュリティチップを搭載するMacで使用できます。
使用時は以下の条件があります。
- iPhone・Macとも共通のApple IDでサインイン(要2要素認証)
- iPhone・Macが近距離にありBluetoothもしくはWiFiで相互接続
- Mac側でAirPlayやSidecarを使用中でない
また、地域によっては対応していない場合があります。
CSS
accent-color
プロパティで強調用の色を設定する際に、半透過色指定(RGBA)ができるようになりました。- メディアクエリの
prefers-contrast
メディア特性(UI色設定でコントラストを通常より高くor低くする設定を行っているかの指定)について、値に[custom]を指定しても解析が機能するようになりました。(なおApple機器ではUIのコントラスト強制設定がないため判定結果はtrueになりません)
WWDCで発表後、正式版発表内不記載になった新機能
WWDC(ベータ版)時点で発表されていた以下の新機能は、今回(18.0)および17.6の更新発表には記載されていません。
WKWebView
- Writing Tools API…文章作成支援機能(誤字脱字チェックや修正・書き直し案の提示等をAPI経由でアプリが行う)
- Genmoji…Unicode定義外の独自の絵文字を作成し、テキスト内やリアクションに使用
廃止・削除
ベータ段階で発表されたものに加えて、以下の機能廃止が新たに行われました。
JavaScript
- Web標準の仕様変更を反映し、グローバルオブジェクトから
[[VarNames]]
への対応が除外されました。
WebView
以下の旧式の通知名が非推奨化されました。
修正・改善(WWDC未発表)
ベータ版時点では未発表であった以下のバグ・不具合が修正されました。
アクセシビリティ
- VoiceOverが非表示の関連ラベルを読み上げるよう修正しました。
- (macOS)VoiceOverの
aria-activedescendant
属性対応(子孫がフォーカス可能な要素のフォーカス関連の挙動)を修正しました。
Apple Pay
- 明細項目ごとの合計額表示が恣意的に8桁に制限されていたのを修正しました。
キャンバス
- 分離されたオフスクリーンキャンバスがイメージバッファに変換されないよう修正しました。
CSS
backdrop-filter: blur
で背景をぼかす際、ページ読み込み時に存在しない要素のレンダリングを修正しました。- 大型グリッドのパフォーマンスが向上しました。
- 一部のCSSプロパティが引用符リセットを起こしていたのを修正しました。
編集機能
- IMEで散発的に入力範囲が途切れる問題を修正しました。
- 空のフィールドにフォーカスしたあとでディクテーションを開始した際にディクテーションUIが表示されないのを修正しました。
フォーム
- 入力要素で[value]の内容を最初のフォールバックに使用するよう修正しました。
JavaScript
- 最適化された
TypedArray
が不正確な結果を出していたのを修正しました。 Intl.DurationFormat
について、数値および数字2桁の扱いを修正しました。
メディア
- メディアセッションでサイズのメタデータ情報が提供された場合に、最適なサイズのアートワークを決定するよう修正しました。
- ビューアー表示中にvideo要素を非表示にした場合のピクチャーインピクチャー表示を修正しました。
- ピクチャーインピクチャー表示で動画が一時停止中・再生中に戻るボタンが動作しない件を修正しました。
- ロックされたPDF文書に対して、コンテキストメニュー「プレビューで開く」が動作するよう修正しました。
レンダリング
- 複数の同名フォントがインストールされた状態で、フォントのグリフID指定間違いにより太字表示が不明瞭になっていた件を修正しました。
- 日本語の縦書き表示(
writing-mode: vertical-rl
)で、ルビを含むテキスト選択の挙動を修正しました。 - MathML(数式)で、
mfrac
要素(分数)・mspace
要素(空白挿入)にborder
・padding
・margin
を指定できるようになりました。
セキュリティ
- テキストフラグメント該当部分へのスクロール・強調表示を避けるためにURLからフラグメントを削除していたのを修正しました。
- CORS(オリジン間リソース共有)を
no-cors
(不許可)に指定しても、接続先指定に0.0.0.0
を使えば制限を迂回してlocalhostにアクセスできてしまう問題を修正しました。 - iframe内でリダイレクトによる別オリジンからのダウンロードを遮断するよう修正しました。
- リダイレクトによる別オリジンからのダウンロードについて、代わりにページのレンダリングを試みるよう修正しました。
テキスト
writing-mode
プロパティによる縦書き・横書き指定が、開閉要素のカウンタースタイル(三角の向き等)を考慮するよう修正しました。
Webアニメーション
display
プロパティをトランジションでdisplay: none
(非表示)に変化させる際の挙動を修正しました。
Web API
- IntersectionObserver(要素交差/画面内進入検知)の通知が発火しない場合があるのを修正しました。
display: grid
の編集可能なコンテナに対して入力サジェストが発行される件を修正しました。window.styleMedia
に対する警告メッセージを修正しました。
Web拡張機能
- ストレージから空のキーを取得するのを修正しました。
- サービスワーカーが開発メニュー・リモートWebインスペクタメニューに表示されなくなるのを修正しました。
declarativeNetRequest
のルール解析の影響でWeb拡張機能が起動しない件を修正しました。
Webインスペクタ
- ワーカーが入れ子になった際にWebインスペクタが表示してくれるよう修正しました。
- Webインスペクタで再読み込みした際に[ソース]タブのブレイクポイントリストが消失するのを修正しました。
- アクセシビリティチェックでスイッチコントロールの検証結果について[チェック:Tryue/False]の代わりに[状態:On/Off]をレポートするよう修正しました。
WebDriver
- マルチバイト文字を含むタイトルの取得処理を修正しました。
WebRTC
RTCEncodedVideoFrame
およびRTCEncodedAudioFrame
で映像・音声データを扱う際に、WebIDLの仕様に従うよう修正しました。
WWDCで発表後、正式版発表内不記載になった修正・改善
WWDC(ベータ版)時点で発表されていた以下の修正は、今回(18.0)および17.6の更新発表には記載されていません。
アクセシビリティ
- 午前午後指定コンポーネントにラベルを付与し、時間制御のアクセシビリティ問題を修正
認証関連
- 電子認証の属性名について「
response
」→「data
」に名称変更していたのを修正
CSS
text-spacing
プロパティがfont
プロパティに変換される件を修正
Webアニメーション
color-mix
(指定複数色の混色)のアニメーション処理を修正
そのほか、WWDC時点でベータ版として発表された以下の仕様変更も、正式版の変更点として発表されました。
追加・拡張(WWDCで発表済み)
Webアプリ
- ブラウザ以外のリンクURLがDockに登録されたWebアプリのscopeと一致する場合、リンクをデフォルトブラウザではなく該当Webアプリで開くようになります。(ブラウザ内のリンクで該当があっても同じブラウザ内で開きます)
- Safariで適用しているコンテンツブロッカーや拡張機能の設定について、他のWebアプリでも同様のカスタマイズができるようになりました。
CSS
- View Transitions API…ページ表示の切り替え時にトランジション(アニメーション効果)が使えるようになります。Safari 18ではCSS View Transitions Module Level 1の範囲に対応します。デフォルトではクロスフェードが適用されます。
- スタイルクエリ…コンテナクエリ内で、指定したスタイル(プロパティ値)に該当する場合のスタイル適用を指定できるようになります。
currentcolor
…[現在の色]を参照するキーワードです。CSSで相対色指定を行う際に、そのときのプロパティ値を基準にした色指定を作れるようになります。- システム設定色参照CSSで相対色指定を行う際に、システム上で設定されている各種指定色を参照したうえで、それを基準にした色指定を作れるようになります。
@starting-style
…トランジション変化前の値指定ができるようになります。- CSSでの背景フィルター指定(ぼかし等)について、従来は「
-webkit-backdrop-filter
」とプレフィックスつきでの記載が必要でしたが、プレフィックスなしの「backdrop-filter
」でも使えるようになります。
これによりChrome/EdgeやFirefoxと共通の記法が利用可能になり、相互運用性が向上します。 content-visibility
プロパティ…コンテンツが表示・描画対象かどうかを指定するプロパティです。visible
/auto
/hidden
のいずれかを値として指定でき、指定がない場合visible
がデフォルト値として適用されます。
特長は高速化・SEOとアクセシビリティの両立がしやすいことです。content-visibility: auto;
に指定された要素は以下の特性を持ちます。- 画面の表示範囲(の近く)に入るまでレンダリング処理対象にならず、表示処理を初期画面に集中できます。このため表示高速化・SEOに有効です。
- コンテンツがドキュメントモデルやアクセシビリティツリーで存在している扱いになり、アクセシビリティ上の予期しない悪影響を回避しやすくなります。(
aria-hidden="true"
属性をつければアクセシビリティツリーから消すことも可能)
WebXR/空間Web
- visionOS版Safari 18で、WebXRのサポートが追加されました。これにより、WebXRを使ったWebベースのVRコンテンツをApple Vision Proで表示できるようになります。
- transient-pointer入力モード…VR空間内で、オブジェクトをつまんだりするような入力をVR空間内でできるようになります。
関連情報:Introducing Natural Input for WebXR in Apple Vision Pro - ハンドトラッキング(手指モーションキャプチャー)デバイスを手に装着した場合、手や指関節の動きを取得して、VR空間内のユーザーアクションに反映させられるようになりました。
- visionOS 2版Safariで、Fullscreen APIを利用して、Web上で空間画像(立体視)やパノラマを実装できるようになりました。
- Apple Vision Pro/visionOSで空間に配置された要素が、タップ可能であることを示すため強調表示されるようになります。このときの表示スタイル(パディング追加や枠線の変更等)をCSSで指定できるようになりました。
- (visionOS版)全画面動画を周辺の環境(自分を取り巻く背景)内に取り込めるようになりました。クラウン回転で没入感の調整が可能です。
HTML
writingsuggestions
属性…フォーム入力時のインライン予測変換/サジェストの有無をWebサイト側で制御できるようになります。- (iOS版)スイッチやチェックボックスを切り替える際に、触覚フィードバックが追加されます。
- (macOS版)日時入力要素(
date
/datetime-local
/time
)のアクセシビリティ対応が強化され、VoiceOverでの動作が改善されます。 aria-braillelabel
属性 /aria-brailleroledescription
属性…アクセシビリティ機能として、要素に点字リーダー向けのARIAラベル付与や説明の記述ができるようになります。
JavaScript
- 正規表現に使用できる文字のうち、Unicode 15.1で加わる627種類の文字に対応します。
- 正規表現vフラグに対応し、キリル文字とラテン文字を分けたマッチング等が可能になります。
Web API
- Safariで宣言型シャドウルートの対応が拡大します。
shadowRootDelegatesFocus
・shadowRootClonable
IDL属性をtemplate
要素に付加できるようになります。shadowRootSerializable
属性・shadowRootSerializable
IDL属性をtemplate
要素に付加することにより、宣言型シャドウルートのシリアル化が可能になります。
PopStateEvent
/hasUAVisualTransition
…表示履歴が断片的に変更された際にトランジションが適用されるかを指定できるようになります。- モジュールスクリプトを外部ホスティングサーバー等からインポートする際に、サブリソースの整合性確認ができるようになります。
bytes()
メソッド…Request
・Response
・Blob
・PushMessageData
オブジェクトで、arrayBuffer()
の代替手段としてbytes()
メソッドによるバイトデータ処理ができるようになります。- テキストフラグメント(URL内で始点終点を指定してテキストをハイライトする機能)がブラウザでサポートされているかどうかを、
document.fragmentDirective
プロパティの機能検出でチェックできるようになります。
キャンバス
getContext()
メソッド(指定に応じた描画コンテキストを返す)のコンテキスト属性として「willReadFrequently
」(ハードウェアアクセラレーションを使用せずソフトウェアでのみ処理するか否か)が指定できるようになります。getImageData()
メソッドを頻繁に利用する場合は、ソフトウェア処理オンリーの方がパフォーマンス改善になる場合があります。- 2D Canvas上の相対カラー指定で
currentcolor
(現在の色を参照)が使用できるようになります。
メディア
- Managed Media Source APIとMedia Source Extensions APIをWeb Workerで扱う機能に対応します。ストリーミング中にコメント等でメインスレッドの負荷が高まっても、映像・音声ストリーミング再生を安定して継続させたい場合に適しています。
WebRTC
- WebRTCでHEVC映像圧縮を扱う際に、RFC 7798 RTPペイロード形式が利用可能になります。従来の形式(汎用パケット化)に比べて、ビデオ会議・ストリーミング・高ビットレート動画等の伝送を改善するのに役立ちます。
- MediaStreamTrackが専用ワーカーでも使えるようになりました。
- WebRTCの再生統計情報が取得できるようになりました。
WebGL
- 以下の拡張機能に対応します。
EXT_texture_mirror_clamp_to_edge
…テクスチャ元画像の鏡像と組み合わせて2倍の大きさのテクスチャを作成します。WEBGL_render_shared_exponent
…浮動小数点形式のRGB9_E5データ(そのままだとカラーレンダリングできない)をカラーレンダリングできるようにします。WEBGL_stencil_texturing
…深度ステンシルテクスチャのコンポーネントに対するテクスチャリングが可能になります。EXT_render_snorm
…OpenGL ES 3.0でカラーレンダリングに対応していない符号付き正規化テクスチャやレンダーバッファ形式を、カラーレンダリング可能にします。OES_sample_variables
…フラグメントシェーダーがマルチサンプルレンダリングをより詳細に制御できるようになります。OES_shader_multisample_interpolation
…頂点出力とフラグメント入力に、補間の評価対象となる「サンプル」修飾子を付加できるようになります。
Webインスペクタ
- CSSソースエディタで、あいまい検索でのコード補完に対応するようになります。
パスキー
mediation=conditional
…パスワード認証の既存アカウントに対して、Webサイト側で自動的にパスキー認証にアップグレードさせることが可能になります。- パスキー認証を、同じ証明書を共有する関連オリジン(ドメイン)同士で連携利用できるようになります。
prf
拡張…パスキーから、ユーザーデータ保護用の対称鍵を取得できるようになります。
ブラウザ拡張機能
- モバイルデバイス管理(MDM)関連の対応が強化され、企業・学校等で管理する端末で以下の項目を制御下におけるようになります。
- 拡張機能の有効化状態
- プライベートブラウズモードの利用
- Webサイトアクセス先
Apple Pay
- Apple Payの送金機能をSafariで扱えるようになります。
仕様変更(WWDCで発表済み)
HTTPS
- HTTPS接続のページ内に含まれる画像・動画・音声等にHTTP(非暗号化)で送られるものが含まれる、いわゆる「混合コンテンツ」について、接続が自動的にHTTPSに切り替えられるようになります。
Web API
URL.parse()
で解析が失敗した場合、例外ではなくヌルを返すようになります。
廃止・削除(WWDCで発表済み)
キャンバス
OffscreenCanvasRenderingContext2D().commit
メソッド(オフスクリーンキャンバスオブジェクトのcanvas
内にビットマップをコピーする機能。非標準・非推奨) が削除されます。
CSS
-webkit-alt
プロパティおよびalt
プロパティが非推奨に変更されます。
※ここでいう「
alt
プロパティ」は、img
要素タグ内に入れるalt
属性ではなく、::before
(要素に先行表示)や::after
(要素に後続表示)等の擬似要素で、content
プロパティ(表示する中身)に画像を指定した場合の代替文字列指定等に使う方です。画像の代替文字列は
content: url("/images/○○.gif") / "[新しいウィンドウで開きます]";
のようにスラッシュで切ったあとに記述する実装で代用できます。- 以下の擬似クラス(主に全画面表示関連)が非推奨に変更されます。
:-webkit-animating-full-screen-transition
:-webkit-full-screen-ancestor
:-webkit-full-screen-controls-hidden
:-webkit-full-page-media
:-webkit-full-screen-document
:-khtml-drag
resize
プロパティ(テキストボックス等の伸縮可否・方向指定)の値のうち、resize: auto;
(自動)が非推奨に変更されます。
none
(伸縮不可)、both
(縦横とも可)、horizontal
(横のみ可)、vertical
(縦のみ可)、block
(ブロック方向のみ可)、inline
(インライン方向のみ可)や各種グローバル値については従来通り指定できます。- CSSRuleインターフェイスについて、WEBKIT_KEYFRAMES_RULEおよびWEBKIT_KEYFRAME_RULEへの対応が非推奨に変更されます。(プレフィックスなし版への移行が必要)
画像
※一部のCDNはiPhone・iPad向けにJPEG2000に自動変換して配信している場合もあるので、その場合はCDNの設定を変更する必要があります
メディア
- WebVTT API(動画用テキスト字幕処理)のうち、
VTTRegion.prototype.track
への対応が廃止されます。
ストレージ
- AppCache(過去のWebアプリ用キャッシュ技術、Safari 15で原則廃止)のうち、例外的に残存していた機能が18をもって完全に廃止されます。
SVGアニメーション
- SVGアニメーション関連のインターフェイスのうち、
SVGAnimateColorElement
への対応が廃止されます。
Web API
- キーボードイベント判定用プロパティのうち、
KeyboardEvent.altGraphKey
(AltGraphキーの押下判定等に使用)への対応が廃止されます。 - Web Crypto APIでの暗号化について、AES-CFBモードへの対応が廃止されます。
KeyboardEvent.prototype.keyLocation
への対応が廃止されます。
左右複数あるキーの左右識別用としては、KeyboardEvent.location
は引き続き有効です。HashChangeEvent
インターフェイス(フラグメント識別子=URLの#以降の変更に関するイベントを扱う)について、initHashChangeEvent()
メソッドへの対応が廃止されます。
修正・改善(WWDCで発表済み)
以下のバグ・不具合が修正されました。
アクセシビリティ
- mainやセクション系要素の中にあるheaderへのロール割り当てを修正
- Accessibility API経由で範囲指定の増減入力をしてもイベントが発火しない件を修正
- スロットにaria-hiddenを設定した場合に、スロットにアサインされたノードが非表示にならない件を修正
- コンボボックスがリンクオブジェクトを正しく表示するように修正
- 時間入力時にサブフィールドにアクセシビリティラベルを付加するよう修正
- body要素・html要素でaria-hidden=true指定を無視するよう修正
- 標準時間帯(タイムゾーン)設定が間違っている場合に、間違ったdatetime(UTC日時)値が補正技術に送られていた件を修正
- datetime-local(現地日時)入力に対して間違ったdatetime(UTC日時)値が補正技術に送られていた問題を修正
- CSSのcontentプロパティの代替テキストが空文字列だった場合に無視するよう修正
- dd・details・dt・em・hgroup・option・s・strong要素の役割計算を修正
- aria-labelledbyが非表示要素をラベル付けの参照対象に指定した場合、直接の子テキストだけでなくツリー下位のテキスト全体を対象とするよう修正
- visibility: hiddenのコンテナの中にvisibility: visibleの要素がある場合のアクセシブル名称の計算を修正
- キャプションが動的に変更される表のアクセシビリティテキスト更新について修正
- aria-describedbyで参照対象要素の下位ツリーが変更になった場合、aria-describedbyのテキストを更新するよう修正
アニメーション
- transitionプロパティのシリアル化が最短になるよう修正
- animationプロパティのシリアル化が最短になるよう修正
認証関連
- 条件付きUIリクエストが中断したのちにnavigator.credentials.create()がエラーメッセージ「NotAllowedError: Operation Failed」を出して処理を拒否する件を修正
- 一度キャンセルが完了するとその後のリクエストに関わらずキャンセルフラグが立ったままの状態になっているのを修正
キャンバス
- drawImage(detachedOffscreenCanvas)が例外を送出するよう修正
- オフスクリーンキャンバスが入れ子のワーカーの入ったプレースホルダーのレンダリングに失敗する件を修正
- タブをオフにした場合にオフスクリーンキャンバスのプレースホルダーがあるコンテンツレイヤーが失われる件を修正
- drawImageメソッド(キャンバスへの画像描画)が入力画像や出力先矩形領域を変更しないよう修正
- clearRect()メソッド(指定矩形領域の内容消去)の効果が、キャンバスの親要素の表示/非表示をトグル切り替えすると元に戻ってしまう件を修正
- 画像破損時にdrawImage() APIが例外を送出するよう修正
CSS
- 空白・改行部分で、white-spaceプロパティが動的にデフォルト以外の値に設定される件を修正
- 右書き(右から左方向への横書き)設定時にdisclosure-open / disclosure-closed(detail要素開閉)のカスタムカウンタースタイルが正しく設定されるよう修正
- backface-visibility(3D回転等で裏に回った要素を可視にするかの設定)がスタックコンテキストと包含ブロックを作成するように修正
- 擬似クラス「:-webkit-full-screen」→「:fullscreen」のエイリアス処理を修正
- 擬似クラス「:-webkit-any-link」→「:any-link」のエイリアス処理を修正
- 擬似クラス「:matches()」→「:is()」のエイリアス処理を修正
- getComputedStyle()メソッドが::highlight()のような擬似要素に対して正常動作するよう修正
- @supportsが一部の「-webkit」プレフィックスつき擬似要素を間違ってサポート対象外として扱っていたのを、サポート対象にカウントするよう修正
- スタイル変更後にメディアクエリの影響を受けるmetaタグの更新を修正
- カラースキーム変更時にシステム色・light-dark()によるグラデーションの更新を行うよう修正
- font-synthesisプロパティ(字体合成)でfont-variant-caps: all-small-caps(大文字から小型大文字を合成)を使用したときのサイズ不具合を修正
- :empty擬似クラスのセレクターがアニメーションで動作するよう修正
- カスタムプロパティをシリアル化する際に空白を保持する件を修正
- 継承外カスタムプロパティが変更された際にスタイルを正しく更新するよう修正
- 親要素に削除された子要素について、最後に記憶したサイズが失われる件を修正
- カスタムプロパティの暗黙的初期値と明示的初期値の差が間違っているのを修正
- OSシステム色のMenu(メニュー背景色)とMenuText(メニュー文字色)のコントラストを修正
- シリアル値・計算値においてgapプロパティ(行や列の隙間指定)の一括指定値をそのまま保持する件を修正
- @starting-styleによる初期スタイル調整がnull要素で誤って呼び出される問題を修正
- -apple-pay-buttonがappearance: autoの非ボタン要素に誤適用されないよう修正
- CSS仕様に追加された色変換メソッドが一部欠落していたのを修正
- hsl()→hsla()色変換を最新の仕様変更に適合するよう修正
- rgb()→rgba()色変換を最新の仕様に適合するよう修正
- hwb()色変換を最新の仕様に適合するよう修正
- その他の色形式についても最新の仕様に適合するよう修正
- 色補間時に類似成分が繰り越される問題を修正
- mask-modeプロパティ(マスクを輝度マスクとアルファマスクのどちらで扱うかの指定)で、レイヤーパターンの塗りつぶしが適用されるよう修正
フォーム
- datalist要素のドロップダウンで表示されるoptions要素がDOM更新に同期して変わるよう修正
- select multiple(複数選択)要素のスクロールバー色が使用中のカラースキームに合うよう修正
- datalist要素の中からoption要素を選択したときに入力値が更新されてしまう件を修正
- input要素にtype="email"属性・multiple属性が両方付与された場合にvalue属性が表示されない件を修正
- input type=checkbox switch要素について、iOSでのアニメーションを修正
- ウィンドウが非アクティブ状態のときにフォームコントロール描画で表示がアクティブになる件を修正
- 構築されたFormDataオブジェクトが、画像の送信ボタンをデフォルトで入力内容に含めないよう修正
履歴管理
- Historyインターフェイスのプロパティが完全にアクティブなDocumentインターフェイスになっていない場合、SecurityError例外を送出するよう修正
HTML
- document.referrerプロパティ(参照元)が「about:blank」(空ページ)で初期化される件を修正
- 閉じタグなしのSVGスクリプト要素の解析を修正
JavaScript
- RegExp.prototype.@@splitが旧形式の正規表現静的プロパティを更新するよう修正(RegExp.input / RegExp.lastMatch / RegExp.lastParen / RegExp.leftContext / RegExp.rightContext / RegExp.$1 ~ RegExp.$9)
- String.prototype.replaceについて、パターンが正規表現でlastIndex(照合開始位置)が数値でない場合、高速パスを使用しないよう修正
- async、await、ジェネレーター、非同期関数、および非同期ジェネレーターの仕様準拠を修正
- 非同期関数・ジェネレーターについて、コンストラクタのゲッターを送出してプロミスが適切に処理されるよう修正
- 非同期ジェネレーターのreturn文でawaitの指定通りに待機するよう修正
- Symbol.speciesのゲッターが単一のJavaScript関数を共有しないよう修正
- Setメソッドを呼び出したオブジェクトのsizeプロパティに負の値が入っていた場合、「RangeError」エラーを送出するよう修正
- 別領域からのeval()関数によってeval()の直接呼び出しが発生しないよう修正
- eval()関数でスプレッド構文を使った場合直接呼び出しするよう修正
- try~catch文が派生クラスの[[Construct]]から発生したエラーをインターセプトしないよう修正
- パラメーター内のデフォルト値式で直接eval()を呼び出した場合、残余引数の中から単一の変数を出すのでなく、関数の環境で変数を生成している件を修正
- 残余引数で定義されたバインド、eval()内のバインド、先行するパラメータのデフォルト値式で作成されたクロージャのいずれかにアクセスすると、同名の変数バインドがある場合にReferenceErrorを送出する件を修正
- 残余引数内のデフォルト値式で生成されたクロージャ(別のパラメーターとは別のVariableEnvironmentコンポーネントで作成される)がシャドウ化されたパラメーターを照会/変更しようとしたときに参照環境を間違えることがある件を修正
- TypedArrayのソート方法を、コンパレータがfalseを返す特殊なケースを出せるように修正
- ビット単位のプログラミングスタイル、setExpectionPortsでのプログラミングスタイルを修正
- emitReturn()が、TDZチェックよりも前に、矢印関数の語彙環境からthisキーワードの値を読みだすよう修正
- NFKCの正規化がLatin-1文字で動作するように修正
- 開始文字がUnicodeになっているプライベート名の解析を修正
- LHSインスタンスがプリミティブの場合にRHSプロトタイプを取得しないよう修正
- ブラケット式の更新でプロパティキーの解決を最大1回にとどめるよう修正
- ブラケット式の複合割り当てでプロパティキーの解決を最大1回にとどめるよう修正
- Object.groupByおよびMap.groupBy(いずれも反復可能要素をグループ化するメソッド)がオブジェクトでない要素に対しても機能するよう修正
- Array.fromAsyncメソッドが配列コンストラクタを2回呼び出さないよう修正
- Function.prototype.toStringがアクセサのプロパティに対して一貫性のない出力を行う件を修正
- Set#symmetricDifferenceが各反復ごとにthis.hasを呼び出すよう修正
- 論理代入式の左辺に関数呼び出しが入った場合に文法エラーを出すよう修正
- 正規表現のキャプチャグループで入れ子の名称重複が発生した場合に文法エラーを出すよう修正
- ArrayBufferおよびSharedArrayBufferのコンストラクタがインスタンス生成前に長さをチェックするよう修正
- 国際実装について、仕様変更に基づき正規化を「GMT」から「UTC」に変更するよう修正
- 正規表現の後読みがv8と異なるのを修正
- Intl.DurationFormatのfractionalDigits(小数点以下の表示桁数上限)について、指定省略時に最大9桁とするよう修正
読み込み
- Cookieが無効化されている場合、navigator.cookieEnabledプロパティ(Cookie有効/無効を論理値で返す)がFalseを返すよう修正
メディア
- visionOSのタブバーでタブ切り替え後に別のウィンドウから動画の音声が再生される問題を修正
- 一部サイトにおけるMedia Source Extensions動画の再生問題を修正
- 動画のcurrentTime()が開始時間からずれることがある件を修正
- WebM(音声:Vorbis)の音声再生が破損する問題を修正
- AudioEncoderConfig(音声エンコード設定)でsampleRate(サンプリング周波数)とnumberOfChanges(チャンネル数)をともに必須項目化し、かつ0でないことを要件とするよう修正
- メディア要素が同一のメディアセグメントに2回追加される件を修正
- 標準速度での再生時間(Normal Play Time = NPT)の「時間(hour)」の数値が1桁の場合に(時間が正しくても)拒否される件を修正
- visionOSでSafariの音声が誤ったウィンドウから出力される場合がある件を修正
ネットワーク通信
- HTTP/HTTPS混在(と思われる)通信での非能動的/受動的なサブリソースリクエスト/フェッチをアップグレードさせ、標準に合致するよう修正
- 入れ子のドキュメントのナビゲーションに対するSec-Fetch-Siteリクエストヘッダー(リクエスト元・リクエスト先の関係を示す)の値が正しくない件を修正
- 非永続データストアを使用するWebArchivesの読み込みを修正
- Timing-Allow-Originレスポンスヘッダーについて、HTTPレスポンスが302の場合に適用されないよう修正
- 印刷アクションが実装された印刷ボタンの動作を修正
- 名称内にスペースを含むPDFのプレビュー表示動作を修正
レンダリング
- 一部のギリシャ文字で大文字変換が失敗するのを修正
- 1remのパディングが入ったtextarea要素のリサイズを修正
- カラーマトリックスフィルターの色の正確性を修正
- backdrop-filterについて、border-radius(角丸設定)をもつ要素の境界線領域に合わせて適用されるよう修正
- 要素の元サイズ計算について、マージンが0以外に設定された空の子要素の直前に発生する空白を考慮するよう修正
- フレックスボックス内の要素について、入れ子コンテンツにheight: 100%が適用された場合の重なり方を修正
- フロー外の兄弟要素についてグリッドアイテムの位置関係が正しくないのを修正
- 回り込みを破棄するテキストについて、単語中折り返しのCSS設定がbreak-wordだった場合の挙動を修正
- only-childな(兄弟要素のない)インライン要素にスタイル適用がない場合のmin-content(最小幅)計算を修正
- 位置設定がposition: relativeかつtopである場合に、省略記号(…)が複数回レンダリングされる件を修正
- インライン要素群がブロック要素の後ろに連続した場合逆の順序で挿入されるバグを修正
- ウィンドウリサイズ時にフッター部分のページ背景色バーが点滅する件を修正
スクロール
- 一部ページで、カーソルの下でコンテンツがスクロールしたときにカーソル表示が更新されない件を修正
SVG
- SVGパーサーの挙動について、フォームフィード(FF、改ページ制御文字)を空白として解釈するよう修正
- フィルタープリミティブ参照が不正な場合のエラー処理を修正
- switch要素内にあるSVG要素の表示を修正
- SVGのタイトルについて、display: none(非表示)をデフォルトのUAスタイルルールとして扱うよう修正
- SVG内リンクのUAスタイルシートについて、cursor: pointer(マウスカーソルがテキストリンクと同様指の形になる)の判定基準が適用されるよう修正
- SVGグラデーションがページ上でレンダリングされていない場合に、グラデーションのstop-color(経由点の色)が初期値を返す件を修正
- SVGマーカーセグメントについて、マーカーパスがサブパスで構成されている場合の計算を修正
- SVGLengthがWebIDLの仕様と同期するよう修正
Webアニメーション
width
・height
がアニメーションによって変化する場合のパーセンテージ変換を修正- アニメーションで
transform
プロパティ値が暗黙的なキーフレームによって変化している間の表示更新を修正
Web API
- cssTextのセッターの挙動について、シリアル化が異なる場合にstyle属性を変更するよう修正
- history.pushState()メソッド(セッション履歴への項目追加)およびhistory.replaceState()メソッド(既存履歴の編集)について、引数にtitleを入れても無視するよう修正
- URLのテキストフラグメントディレクティブがJavaScriptから完全に削除されない件を修正
- showPicker()メソッド(日時・色指定・ファイル名等のピッカーを表示)について、datalist要素からのおすすめをトリガーとするよう修正
- 名前空間のない部分でのlang属性について、HTMLおよびSVG要素にのみ適用されるよう修正
- iframeの全画面表示フラグを不必要に解除する件を修正
- CDATASectionノードを正しく扱えるようDOMの範囲を修正
- getGamepads()メソッド(接続中のゲームパッドの情報を出力)について、非セキュアコンテキスト(HTTP接続)の警告をトリガーとする機能を廃止するよう修正
- picture要素を挿入すると同じ画像を2回表示する件を修正
- ナビゲーションメソッドが分離状態にある場合に例外を送出するよう修正
- URLのホストセッターに関する細かい問題を修正
- DOM標準の明確化に伴い、ShadowRootノードのクローン生成を修正
- GeolocationCoordinatesインターフェイス(位置情報測位)がtoJSON()メソッドを使えるよう修正
- GeolocationPositionインターフェイス(位置情報測位)がtoJSON()メソッドを使えるよう修正
- イベントを分離するときにCustomEvent.targetにセットされる件を修正
- iOS 17.4において、navigator.languageプロパティ(ブラウザの言語設定)がシステム言語設定のみ返す件を修正
- hr要素(横線)のwidth属性からプレゼンテーションを削除
Webアプリ
- 全Webアプリの関連ドメインについて、wwwサブドメインによるドメイン解決を修正
Web Assembly
- ポータブル参照型グローバル変数の初期化を修正
Webインスペクタ
- [監査]タブのフォントサイズを修正
- [ストレージ]の開いたセクションが折りたたまれないように修正
- HTML/CSS解析で値を変更する際に、CSSのフォントプロパティ値で!importantをつけた部分が変更できない件を修正
- Webインスペクタのビューポートが切れて表示される件を修正
- [監査]タブでランタイムが調整されるよう修正
- [コンソール]タブでメッセージタイプの選択状態の保存について修正
- text-indentプロパティ(段落行頭の字下げ設定)の値のサジェストでeach-line(1行目に加えて2行目以降も字下げ)とhanging(1行目は字下げせず2行目以降のみ字下げ)をプレフィックスつきで表示していたのを修正
- backgroundプロパティ(背景)の自動補完サジェストにrepeating-conic-gradient(中心点からの角度で色が変わる反復放射グラデーション)が含まれるよう修正
- Webインスペクタを閉じて開きなおすとコンソールが予期しない表示クリアを起こす件を修正
- コンソールのコード自動補完について、大文字/小文字を区別するよう修正
- プロパティ指定でoverflow: scrollが付与された要素が、DOMツリーの要素をハイライトした状態でも意図した通りスクロールするよう修正
- iOSデバイスのSafariのタブが[開発]メニューに表示される件を修正
- [コンソール]およびコードエディタの補完で、サジェストが自動スクロールせず表示に入らない件を修正
- DOMツリー表示内の検索でテキスト表示が予期せず変更される件を修正
- 設定の「独立した"スタイル"サイドバーを表示」が無効になっているときに矢印をクリックするとCSS計算を行う件を修正
- visionOSシミュレーター内SafariのタブがホストmacOSの開発者メニューに表示されない件を修正
WebView
- WKWebView内のGamepad APIの動作を修正
- 旧形式WebViewで幅・高さが変更されたHTML要素が再描画される件を修正
WebRTC
- VideoTrackGeneratorの書き込みが、トラック(全クローン含む)が停止した場合に閉じられるよう修正
- iPhone 15 ProでのWebRTC AV1ハードウェアデコードを修正
- ウィンドウ単位の画面共有時に黒い縞模様が発生するのを修正
- getDisplayMediaメソッドでウィンドウをキャプチャ中にウィンドウサイズが変更されると黒い縞模様が発生するのを修正
※参照:WebKit Features in Safari 18.0 - WebKit Blog (2024/09/16)
https://webkit.org/blog/15865/webkit-features-in-safari-18-0/
Safari 18.0 Release Notes - Apple Developers (2024/09/16)
https://developer.apple.com/documentation/safari-release-notes/safari-18-release-notes
マックスマウスからのお知らせ
Web制作・マーケティング担当者向けのお役立ち情報をメールマガジンでお届け!
WebサイトやSNSでの情報発信の安定化・効率化、CMS導入・運用、脆弱性対策、Flashコンテンツ置き換え、Webプロモーションなどなど、Web制作・マーケティング関係者向けの課題解決に役立つ、便利なサービス情報や活用法などをご案内します。
いますぐご登録ください!