デジタルマーケティングTips
Safari 18.4 仕様変更発表まとめ
Safari 18.4の主要な仕様変更発表のまとめです。(ベータ版発表・2025年02月21日時点での情報です)
要点
- 追加・拡張:
以下の機能が追加・拡張され、表現力・利便性が向上します
・かな漢字・半角英数間の余白自動調整が可能になる
・イテレータヘルパーを使った複雑な反復処理が可能になる
・パーティション化Cookie(CHIPS)の対応が強化される 等
- 修正・改善:
以下の問題が改善され、開発効率向上・表示トラブル解消に繋がります
・表示処理の各種不具合が改善される 等
メルマガでも情報を配信中です! ぜひご登録ください。
追加・拡張
キャンバス
CanvasRenderingContext2D
インターフェイス(キャンバス内2D描画)で、以下のプロパティがプレフィックスなしで使えるようになります。
letterSpacing
プロパティ…文字間の空白を指定します。
wordSpacing
プロパティ…単語間の空白を指定します。
接続セキュリティ
- 以下のメニュー項目[接続セキュリティの詳細]で証明書の内容が表示できるようになります。
- iOS / iPadOS / visionOSの場合…ページメニュー内[接続セキュリティの詳細]
※ページメニューはアドレスバー左端のアイコンのメニューで[…]をクリックして表示します - macOSの場合…メニュー[Safari]>[接続セキュリティの詳細]
- iOS / iPadOS / visionOSの場合…ページメニュー内[接続セキュリティの詳細]
CSS
writing-mode
プロパティ(横書き/縦書き指定)の値として、
sideways-rl
および
sideways-lr
が追加されます。
writing-mode: sideways-rl;
…全角・半角問わずテキストブロック全体を90度時計周り方向に倒し、右書き言語(
ltr
)では上から下、左書き言語(rtl
)では下から上に記述します。行単位では右から左に行が進みます。writing-mode: sideways-lr;
…全角・半角問わずテキストブロック全体を90度反時計周り方向に倒し、右書き言語(
ltr
)では下から上、左書き言語(rtl
)では上から下に記述します。行単位では左から右に行が進みます。
sideways-rl/lr
とvertical-rl/lr
の違いsideways-rl
/sideways-rl
の特徴は、横書きブロック全体を90度回転させて表示することです。このため、横書きのテキストをレイアウト上横倒しにして縦に書く用途に向いています。一方で
vertical-rl
/
vertical-lr
は、基本的に日本語のような縦書き文化がある言語で縦書き表示を行うための指定です。半角英数はどちらも時計回り90度横倒しで、全角文字は倒さず縦書きで表示され、行の進み方(右→左・右←左)だけをlr/rlで区別します。
::details-content
擬似要素…
details
要素で、折りたたみ開閉される部分を対象としたCSS設定が記述できるようになります。
attr()
関数(指定要素の属性値を拾って返り値として出力)がフォールバック処理に対応するようになります。
view-transition-name
プロパティ(該当要素をルートトランジションの対象から外し、別のトランジション名を指定して適用させる)が、
view-transition-name: match-element;
(要素IDに一致するものに適用)に対応します。
(仕様の詳細はGitHubのスレッドも参照)
text-autospace
プロパティ…全角かな・漢字と半角英数・記号が混在する場合に、半角英数とかな・漢字の間に自動的に少し余白を挿入する設定が可能になります。
(仕様の詳細はGoogleの記事も参照)
unicode-bidi
プロパティ…双方向テキスト(左→右書きと右→左書きが混在するテキスト)の扱いについて、ブラウザ側が使用する標準の表示アルゴリズムをCSS側で上書きするかをCSS側で指定できるようになります。なお、
ruby
要素(ルビ/ふりがな)は対応対象外です。
shape()
関数…複数の座標と補完方法を指定して、任意の形状のシェイプをCSS関数で記載できるようになります。
- グラデーションの色経由点指定が1箇所でも動作するようになります。
編集機能
ClipboardItem.supports()
メソッド…カッコ内にMIMEタイプ名(文字列)を引数として入れると、その形式がクリップボードに対応しているか否かを
true
/false
のブール値で返します。
フォーム
<input type=color>
(色選択)が、属性値指定による透過表示・色空間の指定に対応します。
alpha
属性…入れると半透過色を扱えるようになります。
colorspace
属性…色空間のキーワードを属性値に指定すると、指定した色空間が適用されます。使用できるキーワード(色空間名)はCSS仕様書で定められたもの
に限ります。
- 空のテキスト入力項目でAppleのAI文書作成支援機能「作文ツール(Writing Tools)
」が利用できるようになります。
HTML
JavaScript
- イテレータヘルパーメソッド
(イテレータ(反復子)の利用を補佐するメソッド類)のうち、以下への対応が追加されます。(GitHubも参照
)
map()
メソッド…引数に関数/演算を入れると、指定した関数/演算に従ってループカウンタを処理し、それを繰り返し処理に使用できます。
filter()
メソッド…引数に関数を入れると、指定した関数/演算に従ってループカウンタを処理し、フィルター条件を満たさないものをスキップできます。
take()
メソッド…引数に整数を入れると、指定した数だけループカウンタを回して停止します。
drop()
メソッド…引数に整数を入れると、指定した数だけループカウンタをスキップし、そのあとからループを開始します。
flatMap()
メソッド…引数に関数/演算を入れると、指定した関数/演算に従って処理された要素を一通り返します。
toArray()
メソッド…イテレータから取り出された要素で配列を作ります。
forEach()
メソッド…イテレータから出力された要素を一通り処理する繰り返し処理(foreach)を作ります。
some()
メソッド…引数に関数/演算(trueかfalseを返すもの)を入れると、条件に一致するものが1つでもあるかどうかをtrueかfalseで返します。
every()
メソッド…引数に関数/演算(trueかfalseを返すもの)を入れると、全要素が条件に一致するかどうかをtrueかfalseで返します。
find()
メソッド…引数に関数/演算(trueかfalseを返すもの)を入れると、条件に一致したうちの最初の要素を返します。
reduce()
メソッド…引数にコールバック関数を入れると、指定した関数/演算に従って処理された繰り返し要素から最終的に単一の値を生成します。
chunks()
メソッド…配列を複数の部分配列に分割します。部分配列1つの要素数は引数で指定します。開始位置は指定個数単位で飛びます。このため出力後の各配列の要素は重複しません。
windows()
メソッド…配列の一部分を抽出(窓処理)した部分配列を複数作ります。要素の個数は引数で指定しますが、開始位置は指定個数単位で飛ぶのではなく、1つずつ順に後ろにずれます。このため出力後の各配列の要素は重複します。
- そのほかイテレータ関係で以下に新たに対応します。
SetterThatIgnoresPrototypeProperties()
…プロトタイププロパティを無視してオブジェクトのプロパティを設定できるようになります。
Iterator.concat()
メソッド…2つ以上のイテレータを結合できるようになります。
- JavaScriptをWeb Assenbly
として事前コンパイル抜きで実行するインタープリタが使えるようになります。
- JSON解析用のメソッドが以下の通り強化されます。
JSON.parse()
メソッド(JSON文字列を解析して値やオブジェクトに変換)…リバイバー関数(入力文字列を変換・演算してから返す)に対応します。
JSON.stringify()
メソッド(JavaScriptオブジェクトや値をJSON文字列に変換)…オブジェクトプレースホルダーに対応します。
Math.sumPrecise
メソッド…繰り返し項目の各数値を合計した数を返します。通常の演算よりも精度が高いのが特徴で、浮動小数点演算で発生する精度ロスを回避しやすくなります。
Atomics.pause
メソッド…不可分操作(外部から見て分解できない単一処理に見える一連の操作)の処理中にスピンロックやループが発生してしていることをCPUに伝えられるようになります。リソース消費を効率化させたい場合に有効です。
laneselect
…Relaxed SIMD(並列処理時に入出力の再現精度を多少緩くする代わりにパフォーマンスを向上させたもの、機械学習・画像処理等に向いている)において、処理レーンの選択が可能になります。
Map.prototype.getOrInsert
・
WeakMap.prototype.getOrInsert
…MapオブジェクトやWeakMapオブジェクト(キーと値のペアの集合)のデータ処理で、キーに対応する値の取得(ない場合はデフォルト値の挿入)ができるようになります。
Error.isError()
メソッド…指定した値がエラーであるかを判定し、trueか
false
を返す機能に対応します。エラーチェックやエラー発生時の処理に活用できます。Intl.NumberFormat
オブジェクト(数値等の書式ローカライズ)について、
currencyDisplay
オプション(通貨単位の表示形式)で、以下の指定が使えるようになります。
formalSymbol
…自国含めて常に「JP¥」のように国コード+通貨記号を表示する
※デフォルト("symbol")の場合は言語設定を参照して自国のみ短縮形(¥)になっているnever
…通貨記号を付けない
読み込み
Cross-Origin-Opener-Policy: noopener-allow-popups
…HTTPレスポンスヘッダーのうち、ドキュメントから別ドキュメントが開かれた場合の相互通信許可設定で、元文書へのアクセス権を遮断して開く指定が使えるようになります。
ロックダウンモード
- ロックダウンモード
(高セキュリティモード、一部のWeb技術が機能しなくなる)でも、一部の許可されたWebフォントについては、ロックダウンモード用のフォントパーサーを経由して使用できるようになります。
メディア
- 音声形式にOgg OpusおよびOgg Vorbisが使えるようになります。
- Image Capture API
(カメラからの画像キャプチャー等)が使用可能になります。
MediaRecorder
インターフェイス(動画キャプチャー等)がWebM形式に対応します。
ネットワーク
- パーティション化Cookie
(CHIPS = Cookies Having Independent Partitioned State、ドメインごとに保存領域とアクセス権を分離したCookie)の利用に対応します。
- CookieのPartitioned属性(パーティション化をオプトインするか指定)に対応します。
- パーティション化Cookieへのアクセス制御用にブロックリスト(指定したドメインからは遮断)が設定できるようになります。
スクロール
document.fragmentDirective
プロパティ(強調表示中のテキストフラグメント)の部分に合わせてスクロールする機能に対応します。
セキュリティ
- コンテンツセキュリティポリシー
で、レポート暗号化指定のキーワードに
report-sha256
・report-sha384
・report-sha512
が使えるようになります。
空間Web
- visionOSで、
img
要素の空間画像にcontrols
属性を付与できるようになります。使用するにはユーザー側での設定変更が必要で、Safariの機能フラグで該当機能を有効にする必要があります。 - visionOSで作文ツール(Writing Tools)が使えるようになります。
ストレージ
Clear-Site-Data
HTTPレスポンスヘッダー(サーバーからブラウザに対してサイトの過去のCookie/ストレージ/キャッシュの消去を要求)について、
Clear-Site-Data: Cookies
(Cookieのみ全過去データ消去)に対応します。
SVG
SVGImageElement.prototype.decode()
メソッド(画像をデコードしてPromiseとして返す)が使えるようになります。
- SVG内の長さの単位に以下が使えるようになります。
lh
…
line-height
プロパティ値(=1行の高さ)の○倍
ch
…半角英数文字「0」(ゼロ、U+0030)の送り幅
の○倍(書字方向によって幅・高さどちらのサイズを使うか変わります)
Web API
element.focus({ focusVisible: true })
…
focus()
メソッド(任意の指定要素にフォーカス設定)のオプションとして引数にプロパティ指定を入れると、要素にフォーカスが当たっていることを明示的に可視化させられるようになります。アクセシビリティ向上に活用できます。
PublicKeyCredential.toJSON()
メソッド…WebAuthn
(パスキー認証等)関連機能の一部で、
PublicKeyCredential
インターフェイスの公開鍵資格情報をJSONオブジェクト形式に変換できるようになります。
- Cookie Store API
…Cookieの非同期管理やService Worker
経由での参照が可能になります。
- Web Cryptography API
関連で、以下の機能が追加されます。
- 暗号化対応形式にX25519が追加されます。
- X25519/Ed25519形式での暗号鍵インポート・エクスポートに対応します。
- 通信ストリーム圧縮にBrotli
形式が使えるようになります。(サーバー側での対応が必要です)
- 命令型のAPIからポップオーバーの呼び出し元をセットできるオプションが追加されます。
- 宣言型Webプッシュ通知(Declarative Web Push)
が使えるようになります。
dialog.requestClose()
メソッド…dialog要素に対して閉じるリクエストを要求する機能に対応します。
Web Assembly
- JITレス(Just-In-Timeコンパイラ以外で)のWebAssenbly実行に対応します。
- 新しいWasm例外仕様に対応します。
Webインスペクタ
- ソースマップでの解析時にignoreList(無視リスト)が使えるようになります。
- レスポンシブデザインモードで以下の機能が強化されます。
- ビューポートのプリセットが追加されます。
- 画面方向(縦横)を切り替えるトグルが追加されます。
- アプリおよびデバイスのインスペクタが追加されます。
- Cookieのパーティションキーが公開されるようになります。
- リクエストのローカルオーバーライド機能が追加されます。検証時にリクエストヘッダーのみ修正することが可能になります。
- リモートデバイス接続時、デバイスオーバーライドメニューの設定変更によりAndroidのユーザーエージェント情報を送信することが可能になります。
- console.screenshot(スクリーンショット処理)が
DOMRect
に対応します。
WebRTC
- MediaSession API
でのキャプチャー時に音声入力をミュートさせられるようになります。
- STUN
サーバー(LAN内からNAT経由で通信する際に中継させるサーバー)のURI指定に対応します。
- 認識されているネットワークインターフェイスを列挙する機能に対応します。
- macOSでSpeaker Selection APIが使用できるようになります。
WKWebView
- ファイルアップロードのフローをカスタマイズできるようになります。
WKNavigationAction/buttonNumber
(押下したマウスボタンの番号取得)・
WKNavigationAction/modifierFlags
(修飾キー(Shift等)の入力取得)に対応します。
- visionOSでWriting Tools API(作文ツール関連)に対応します。
修正・改善
ブラウザ
- 短時間で自動的にログインが解除される問題が修正されます。
CSS
- 表
の
border-color
プロパティ(枠線色指定)について、デフォルト値として
currentColor
(=要素のcolorプロパティ値)の色を参照するよう修正されます。
- CSSオブジェクトモデル
(CSSOM、JavaScriptによるCSS制御)における
@page
ルール(印刷表示制御)の扱いについて、
CSSPageRule
(単体の
@page
ルール)がCSSGroupingRule
(複数のルールを内部に持つアットルール)から派生するよう修正されます。
clip-path
プロパティ(画像クリッピングパス指定)で、パス指定に重複が発生すると対象の
img
要素が表示されなくなる問題が修正されます。- サイズ変更が、生成されたコンテンツに対して適用されないよう修正されます。
contain
プロパティ(コンテンツが指定領域に入りきらない場合の自動調整有無を指定)の扱いについて、
contain: size;
(コンテンツのはみだしは許可するがレイアウト上の縦横サイズは拘束し、隣接要素のレイアウトシフトを抑止)指定の場合に、
object-fit
プロパティ(画像/動画の領域内自動拡大等)の不具合を起こしていたのが修正されます。
container-type
プロパティ(コンテナクエリでサイズ格納方法の種類を定義する)で、レイアウトの内包に脱落が発生するのが修正されます。
- CSS処理において、UIウィジェットのスタイル指定が機能しなくなる場合がある問題が修正されます。
scrollIntoView
メソッド(指定要素が見えるところ、もしくは上端/中央/下端に表示されるところまでスクロール)について、位置揃え指定が常に機能するように修正されます。
background-clip
プロパティ(背景画像領域のクリッピングを要素領域のどこまでにするか指定する)について、
background-clip: border-area;
(境界線内周に合わせて切り取り)がルート要素に対して機能しないよう修正されます。
writing-mode
プロパティ(縦書き/横書き指定)が
writing-mode: vertical-rl;
(日本語の縦書きと同じで、文字は上→下、行は右→左)の場合、文字間のルビが他のルビより大幅に小さくなる問題が修正されます。
- 絶対位置指定を行ったボックスが
writing-mode
プロパティ指定のルートになった場合、過度に限定された状況にも正しいロジックが徹底されていたのが修正されます。
bdo
要素(テキスト書字方向を独自指定する部分)における、
unicode-bidi
プロパティのデフォルト処理が修正されます。
calc()
関数の挙動が以下の状況で修正されます。
- カーソル色指定時に、
calc()
関数での計算値が優先的に評価されなくなるよう修正されます。 flex
プロパティ(フレックスアイテムの初期サイズ&拡縮指定)について、
calc()
関数での計算値が優先的に評価されなくなるよう修正されます。-webkit-perspective
プロパティ(3Dレイヤー時のカメラ距離指定)について、
calc()
関数での計算値が優先的に評価されなくなるよう修正されます。@property
ルールでカスタムプロパティを指定する際に、
initial-value
記述子(初期値指定)が「
var(--foo)
」を受け付けないよう修正されます。- 動作適正化のため、フォントを呼び出す側で
calc()
関数の評価に遅延が発生していたのが修正されます。 - グリッド処理時、繰り返し値についてcalc()関数での計算値が優先的に評価されなくなるよう修正されます。
- CSSカウンター
関連のプロパティのうち、
counter-increment
(1回あたりの増減値)・
counter-set
(カウンターから分離し個別番号指定)・
counter-reset
(指定値でカウンターリセット)については、
calc()
関数での計算値が優先的に評価されなくなるよう修正されます。 - macOS版で、⌘(Command)キーを押しながら[+]/[-]キーで表示倍率を変更した際に、
font-size
プロパティ(文字サイズ)の値として
calc()
関数の計算値が正しく出るよう修正されます。
- カーソル色指定時に、
@scope
ルール(条件指定で要素を選択しCSSを適用)について、以下が修正されます。
- 内部でCSSを入れ子にして宣言した場合、
:where(:scope)
のような挙動をするようになります。 - ルールの始点~終点が、クラシックな(寛容でない)セレクターリストになります。
- 内部でCSSを入れ子にして宣言した場合、
shape()
関数が提案された構文に基づいて動作するよう修正されます。
- ページ内の要素数が多い場合の同ドキュメント内(シングルページ)トランジションのパフォーマンスが修正されます。
- ユーザーがスワイプでナビゲーションした場合にトランジションが停止するよう修正されます。
animation-name
プロパティ(適用されるアニメーションを識別名で指定)について以下の修正が行われます。
- ビュートランジションから設定される際に、ブラウザスタイルシートが余計な引用符を付けて処理してしまっているのが修正されます。
- 文字列のシリアル化・解析の処理が修正されます。
- 色指定点が2つの放射状グラデーションについて、グラデーション100%到達時に終点側の指定色に達しないのが修正されます。
- ルート要素の
color
プロパティ(文字色/前景色)がライトモード←→ダークモード切り替えで明示的に指定されたときに、ベースの背景色が更新されていたのが修正されます。
- 論理的グループのCSSプロパティ値が明示的に継承される際に、
revert-layer
キーワード(カスケードレイヤー内のプロパティ値を前回の一致値にロールバックする)が不具合を発生させているのが修正されます。
border-spacing
プロパティ(表内セルの間隔)で値指定が複数個連続した場合、個数の少ない側の指定を採用するよう修正されます。
- セレクターの入れ子処理が正しくない場合、下位の入れ子が無視される問題が修正されます。
font-variant-caps
プロパティ(英字の大文字/小文字制御)で
font-variant-caps: all-small-caps;
(元テキストの大文字/小文字を問わず小型大文字を適用)を指定した場合、インラインフレックスアイテム内で
box-sizing
プロパティ(サイズ計算の対象基準指定)の処理が不正確になるのが修正されます。
- CSSを動的に更新する際に
text-box-trim
プロパティ(テキスト要素の計算上のサイズを元サイズよりも踏み込んでトリミングする)の処理が失敗していたのが修正されます。
text-emphasis
プロパティ(傍点付与)について、句読点に傍点を付与しないよう修正されます。
- ポップオーバー要素を開く際にCSSの位置指定が変更する場合の、サイズ・位置指定に関する問題が修正されます。
scroll-padding
・
scroll-margin
プロパティ(スクロールスナップの位置を固定ヘッダー等に合わせてずらすときに使う)が、厳密に型指定された値を受け付け対象とするよう修正されます。
- 最上位セレクタおよびネスティングセレクタが、特異性(CSS適用優先度)を持たないように修正されます。
編集機能
document.execCommand("copy")
によるクリップボードコピーが、選択範囲が存在する場合のみ実行されるよう修正されます。
- Safari内のテキストをコピーしてiCloudのメモ
にペーストすると、生のマークアップが貼り付けられる問題が修正されます。
- 一般的な語句で終わる大規模テキスト選択が正しくハイライトされるよう修正されます。
- 記事中の指定部分に対するテキストフラグメントつきリンクが、対象部分を適切にハイライトするよう修正されます。
ClipboardItem
インターフェイスが
SecureContext
拡張属性(HTTPS環境等のセキュアコンテキスト
範囲内でのみクリップボードデータの取り扱いを許可する)に非対応だったのが修正されます。
- Safari内でコピーしたヘブライ語テキストを別アプリでペーストすると左揃えになる問題が修正されます。
- 範囲選択がまだ存在していない場合は選択フォーカスが発生しないように修正されます。
- 編集不可能なテキストを選択できない場合がある問題が修正されます。
- 複数行テキストを選択したあとに選択が消失する問題が修正されます。
フォーム
textarea
要素で、方向切り替えの取り扱いが修正されます。
<input type="file" webkitdirectory>
(ファイル指定画面でファイルの代わりにディレクトリのみを選択対象とする)について、iOSでの対応状況が改善されます。
<input type="datetime-local">
(日時指定)で、大きな値を入れるとブラウザがクラッシュしていたのが修正されます。
datalist
要素をキーボード操作する場合に動作がプラットフォームの規則に適合するよう修正されます。
JavaScript
- 配列の分割代入時、評価で例外が投げられた場合、反復子を閉じるよう修正されます。
Intl.DurationFormat
オブジェクト(時間の長さ表記のローカライズ)について以下が修正されます。
resolvedOptions
メソッド(初期化中に計算されたオプションをプロパティに反映させた新規オブジェクトを返す)が最新の仕様に更新されます。
- 仕様に合致した数値制限が適用されるよう修正されます。
- 数値丸めエラーが修正されます。
hoursDisplay
プロパティ(「時」の表記スタイル)に
auto
を指定した際の表記エラーが解消されます。- 「時」が非表示の場合に、「分」単位の数値にマイナス記号が表示されるよう修正されます。
- イテレータヘルパー関連で以下が修正されます。
- 配列を反復処理しないようになります。
reduce()
メソッドについて、return呼び出し時に元の反復子に適切に転送されない問題が修正されます。
Set.prototype.○○
系メソッド群について、引数なしで
keys()
を呼び出せるよう修正されます。
Array.from()
・
Array.fromAsync()
・
TypedArray.from()
メソッドについて、
document.all
呼び出し後マッパーとして渡されるよう修正されます。DateTimeFormat
のカレンダー正規化ロジックが修正されます。
Array.prototype.toReversed()
メソッド(配列の要素を逆順に並べ直す)が、疎配列
の空スロットを
undefined
で穴埋めするよう修正されます。
- 正規表現のマッチ上限を修正し、長い文字列に複雑なパターンマッチをかけられるようになります。
メディア
- メディア要素内で
src
属性が空の場合の処理が修正されます。 getUserMedia
メソッド(メディア入力許可取得)用の映像設定を
getSettingsメソッド()
で取得する際に、
torch
(フィルライト(副光源)の有無)および
whiteBalanceMode
(ホワイトバランスモード指定)の制約に沿わない古い値が返されるのが修正されます。
- 動画をマウスフォーカス可能にすると、全画面再生時にスペースキーで一時停止しなくなるのが修正されます。
- 動画再生・シーク関連で以下の問題が修正されます。
- シーク後再生に復帰しない場合がある件が修正されます。
seek()
中のplay()
呼び出しを許可し、シーク完了前でも再生イベントが発火できるようになります。- 特定の状況下でWebMのシークが完了しなくなる件が修正されます。
- 動画再生中の
timeupdate
イベント発生が非単調になる問題が修正されます。
- MediaRecorderPrivateEncoderのフレーム書き込み順序が合わなくなる問題が修正されます。
ネットワーク
- ネットワーク状況に応じてタイムアウトが設定されるよう修正されます。
- PDF表示を連続モードから単一モードに切り替えたときに、ページがほとんど見えなくてもウィンドウの上部にページが表示される問題が修正されます。
- 見開き連続モードでコンテキストメニュー「前のページ」をクリックしても前のページに移動しない問題が修正されます。
- HTTPレスポンスヘッダーで、
Content-Security-Policy: sandbox;
ディレクティブでPDFに制限をかけていると読み込みが行われなくなる問題が修正されます。
レンダリング
- 固有縦横比指定あり・固定サイズ指定なしの要素がフレックスアイテムとして置換された場合のベースライン計算が修正されます。
- iOSで、横画面→縦画面の回転で発生する追加のリサイズイベントによって、表示にちらつきが生じる問題が修正されます。
- フロー外のオブジェクトを、可能であれば継続してインライン下に追加する件が修正されます。
mix-blend-mode
プロパティ(重ね合わせ時の描画モード設定)が高解像度の固定要素/スティッキー要素に対しても動作するように修正されます。
- 表の
thead
(ヘッダー)・
tbody
(データ本体)・
tfoot
(フッター)要素の折りたたみ境界が間違った順序で欠落する問題が修正されます。
- インラインボックスの後ろにあるコンテンツの取り扱いが修正されます。
<input type="range">
(範囲制限付き値指定)が、
width: 0;
(幅0px)指定でもスペースを占有していた問題が修正されます。- iOSで、縦画面→横画面の回転時にSpotifyメディアプレーヤーの表示が消える問題が修正されます。
textarea
要素でオーバーレイ表示のスクロールバーを表示する領域があらかじめ確保されるよう修正されます。
- グリッドアイテムをアニメーションさせる際のパフォーマンスが改善されます。先頭行のサイズ変更中に固有の論理縦サイズをキャッシュすることで、複雑なグリッド構成における表示効率を向上させ、無効化問題を抑止します。
- グリッドアイテムがサイズ指定付きの画像であった場合に、
src
属性変更に伴う更新に失敗する問題が修正されます。 line-fit-edge
プロパティ(インライン要素の位置をテキストのどのラインに合わせるか)が設定されている場合に、インラインの縦書き属性が入れ子になる問題が修正されます。
- 表のセル幅100%指定を属性値で
<td width="100%">
にした場合のレイアウトの一貫性が修正されます。 text-underline-position
プロパティによる下線/傍線の位置指定について、再描画時の表示の一貫性が改善されます。
- WordPressクラシックエディタのサイドバーレイアウトで、フロートがクリアされない問題が修正されます。
- MathML
の処理について、以下が修正/改善されます。
- フロー外の子要素の処理に関するレイアウトの一貫性が改善されます。
scriptlevel
(数式上での階層の深さ)に応じて乗数のフォントサイズが変わる処理が改善されます。
- 数式各要素に関するCSSの
width
・
height
プロパティ(縦横サイズ指定)の適用が改善されます。
- インラインフレーム内の表示領域を
background-image
(背景画像指定)で埋める場合、サイズ調整が
content-box
(コンテンツ領域合わせ)に修正されます。
- 表のDOM操作に応じて必要なリフローが一貫してトリガーされる件が修正されます。
- インラインマーキーがフロート要素に隣接した場合に縮小可能になるよう修正されます。
- フレックスコンテナが中にフレックスアイテムを持たない場合、フレックスレイアウト処理を実行しないよう修正されます。
shape-outside
プロパティ(シェイプ指定に合わせてテキスト回り込み)を使った表示について、以下が改善されます。
- 縦書きや右→左の横書きに対して回り込みを行った場合、インライン要素(テキスト等)の配置がずれる問題が修正されます。
- 右→左の横書きコンテンツで回り込み処理に失敗する問題が修正されます。
- 以下の設定時にインラインコンテンツが回り込み領域に被る問題が修正されます。
shape-outside: inset();
(長方形)…書字方向によらずコンテンツが領域に被る
shape-outside: ellipse();
(楕円)…縦書きコンテンツが領域に被る
shape-outside: polygon();
(多角形)…右→左の横書きコンテンツが領域に被る
- 箇条書きで、
ul
・
ol
要素で囲まれない
li
要素に
list-style-position: inside;
(テキスト2行目以降が1行目のマーカー位置から始まる)が自動適用される仕様が、後方互換(Quirks)モード
に限り有効になるよう変更されます。
- 行ボックス
のサイズが修正されます。
- 横書きブロックが縦書きブロックコンテナ内で入れ子になった場合に横書きにならない問題が修正されます。
- 表に空行がある場合に、ベースラインの位置計算が一部不正確になる問題が修正されます。
- 置換されたコンテンツ内での改行が拒否されるように修正されます。
- ブロック内子要素をパーセンテージで絶対位置指定する際に、親ブロックのパディング(境界内余白)を含めて計算するよう修正されます。
- インライン継続要素の中にあるフロー外ボックスの幅が正しく計算されるよう修正されます。
- 線形グラデーションと境界線の半径が設定されている場合に境界線が表示されない問題が修正されます。
- スクロール領域内部にある入力要素が相対位置指定になっている場合、外形が描画されない問題が修正されます。
- ポップオーバーがタブキー移動での退出時にハングすることがある問題が修正されます。
- 要素内に新しい子要素を挿入しなかった場合にインライン継続が正しく設定できない問題が修正されます。
rt
要素(ルビ文字)に
margin-top
プロパティで上に余白をつけると、下にも余白が追加される問題が修正されます。
スクロール
- DOM内にある既存インラインフレームの
scrolling
属性(スクロールバーの有無を指定)の変更が有効になるよう修正されます。
Service Worker
- Webページを含むService WorkerがBusyループを発生させた場合の処理が修正されます。
ストレージ
- Storage Access API
で、
AllExceptPartitioned
の処理を以下の通り修正します。- リクエスト時点でCookieアクセス権がないものとみなします。
- サイトからはファーストパーティCookieへのアクセスを要求するものとします。
SVG
font-size
プロパティ(文字サイズ指定)が使用時に、SVGが⌘(Command)キーを押しながら[+]/[-]を押したときの表示倍率変更の対象外になる問題が修正されます。
- 空の
text
要素のバウンディングボックス
(要素が収まる最小矩形)の情報が祖先(上位)要素に伝播されない問題が修正されます。
- 縦書きモードでもバウンディングボックスが正しく設定されるよう修正されます。
mask-image
プロパティ(マスクレイヤー画像)にSVGを指定しても機能しない問題が修正されます。
- SVG要素間参照(
text
と
textPath
等)で要素可用性の通知ができないことがあるバグが修正されます。
SVGUseElement
が外部ドキュメントを読み込むときにコンテンツタイプをスニッフィングしないよう修正されます。
getTotalLength()メソッド
(パスの全長を測定)について、パスがレンダリング不可能だったり空だったりする場合に仕様通り例外を投げるよう修正されます。
- SVG二次曲線がタイルの境界で誤ってクリップされる問題が修正されます。
transform
属性(座標変換設定)が動的に更新される際の挙動が修正されます。
img
要素にviewBox
属性を付加して描画領域を規定する機能について、ドキュメント内svgに対してのみ機能するよう修正されます。
foreignObject
要素(HTMLテキスト等をSVGの中に入れる際に使う)の中にある一番外側のsvg要素に対する
SVGElement.prototype.ownerSVGElement
プロパティの挙動を修正します。
表組み
- 表の行方向について、
section
要素ではなく
table
要素自身の設定に依存するよう修正されます。
rowspan="0"
指定時に縦方向の残り全セルを結合させる仕様になっていなかったのが修正されます。
fill-available
(空き領域がある場合埋める)が表全体のサイズ指定にも適用できるようになります。
- 表のセクションと行の背景設定が不透明として扱われないよう修正されます。
テキスト
- 太い下線が短いコンテンツで表示されない問題が修正されます。
- GB18030-2022文字セット(中国の国家標準)の更新内容が、中国語簡体字のGBK文字コードにも反映されます。
- 自動ハイフネーションが、特定の言語でのみ発動するよう修正されます。
text-spacing: text-autospace;
(テキストで漢字カナと半角英数の間に少しスペースを空ける)が適用された場合の境界判定処理が修正されます。
- OpenType-SVG多色フォントの表示が修正されます。
Web API
- Encrypted Media Extensions API
(動画/音声等のメディアを暗号化して通信に載せる技術)を扱う一部MIMEタイプの処理が、MIMEのスニッフィング標準に準拠するよう修正されます。
window.history.replaceState
メソッド(ウィンドウの履歴置換)がmacOSで動作しない問題が修正されます。
MutationObserver
インターフェイス(DOMツリー内の要素置き換え監視)が、要素リサイズ時のスタイル属性値変更を監視するよう修正されます。
CSSPageRule.selectorText
プロパティ(
@page
ルールのセレクターテキスト取得)について、CSSPageRule
の仕様に合うよう処理が修正されます。
- ゲームパッドの振動/触覚効果の処理で、
playEffect
メソッド(振動発生)のリクエストを2回連続で送信すると、
reset
メソッド(振動停止)が想定通りに動作しなくなる問題が修正されます。
<link rel=expect href="#○○">
(
href
属性でid
指定した要素の解析が完了するまで全体のレンダリングを一時停止する)について、以下の修正が行われます。- 指定要素の
id
属性(○○)に絵文字が入っていると、絵文字がパーセントエンコーディングされた際にhref
属性のマッチングに問題が発生していたのが修正されます。 - 指定要素の内部(子孫)に解析待ち要素が積まれている場合は、積んである内部要素の解析が終わるまでレンダリングブロックを続けるよう修正されます。
- 指定要素の
onrejectionhandled
・
onunhandledrejection
イベントハンドラー(Promiseが拒否された場合のイベントを拾って処理するのに使う)が
body
/frameset
要素に対しても正しく動作するよう修正されます。- 「気をそらす項目を非表示」機能が、非表示にされる要素に被るフロー外要素を巻き込んで非表示にする現象が修正されます。
- CSSOM
で、
setSelectorText
が暗黙のセレクターを先頭に追加するように修正されます。 requestPointerLock()
メソッドがPromiseを返すよう修正されます。
detail
要素・
summary
要素(開閉式詳細表示)に関する
innerText
プロパティ(子孫を含めレンダリングされたテキストを示す)の挙動が修正されます。
- HTMLパーサーのMathMLの取り扱いが修正され、電話番号の処理が改善されます。
Range.getClientRects()
メソッド(対象範囲の占有領域を取得)が、サロゲートペアを考慮するよう修正されます。
link
要素のrel
属性、およびLink
HTTPヘッダーのトークン化処理が修正されます。
Web Assembly
- レガシーの
catch_all
命令が、投げられたJavaScriptプリミティブを適切にキャッチできるよう修正されます。
Web認証
- 条件付き仲介(特定条件下でのみパスキー等のWebAuthn認証を可能にする)で、認証中断時の理由の伝達を
.catch()
が妨げている問題が修正されます。
Web拡張機能
- コンテンツブロッカーが「about:blank」フレーム内のコンテンツを非表示にしない問題が修正されます。
declarativeNetRequest
(ネットワークリクエストのルールを宣言する機能)で、ルールセットや動的ルールを適用する際に速度が下がる件が修正されます。
- Safari機能拡張設定での「ストレージを消去」ボタンの挙動が修正されます。
webRequest.onBeforeRequestrequest
(リクエスト実行直前にトリガーされて別処理を行う)イベント処理時に
requestBody
(リクエスト本体データ)が欠落していたのが修正されます。
Webインスペクタ
- Webインスペクタの設定でサイト固有のハックがオフになっている場合、全デスクトップサイトがiPadのサイト固有ハックを無効化させるよう修正されます。
- JavaScript内でCSSOMの修正があった場合、スタイルルールを引き続き編集可能にしておくよう修正されます。
@import
宣言を持つスタイルシートのスタイルを編集しようとしたときに不具合が発生していたのが修正されます。
- ソースマップの新仕様に合わせてエラーケースが修正されます。
- グラフィックスタブの概要アイコン色がダークモードに合わせて変わるようになります。
- グラフィックスタブで、記録されたWebGLオブジェクトが適切にハイライトされない問題が修正されます。
- リモートデバイス接続で、設定に直接アクセスできない場合、開発メニューからサービス接続を試行するよう修正されます。
WebDriver
- マウスの右ボタンドラッグイベントをシミュレートするとクラッシュが発生する可能性があったのが修正されます。
WebRTC
MediaSession.setMicrophoneActive()
メソッド(マイクがミュート設定になっているか否かを返す)について、ユーザーエージェント側でマイクを1回ミュートにしたあとも繰り返しプロンプトされるのが修正されます。
- あらかじめカメラ・マイクの両方をミュートにしている状況で
setCameraActive
メソッドを使ったときにミュートを解除しないよう修正されます。
- Webサイト側でカメラをミュートにしている場合、AirPods側のミュート解除操作でミュートが解除されないよう修正します。
WKWebView
WKWebView.evaluateJavaScript
(指定されたJavaScriptを評価)を非同期コンテキストで呼び出した際に、JavaScriptが何も返さない場合の挙動が修正されます。
廃止・削除
キャンバス
webKitBackingStorePixelRatio
プロパティ(描画用バックアップバッファの高精細度指定)が削除されます。
- プレフィックス付き版の
webkitImageSmoothingEnabled
プロパティ(画像拡大縮小時の平滑化可否をtrue/falseで指定)が削除されます。該当箇所がある場合は、プレフィックスなしの
imageSmoothingEnabled
プロパティへの移行が必要です。
- 古いキャンバス描画機能のエイリアス(
setAlpha
、setCompositeOperation
等)が削除されます。
接続セキュリティ
- HTTPS(暗号化)接続時に、スマート検索欄に表示されていたロックアイコンが削除されます。
CSS
CSSUnknownRule
インターフェイス…ブラウザ側で認識されない規則を扱う、CSSルール用非標準インターフェイスが削除されます。
HTML
img
要素の属性からcomposite
が削除されます。
JavaScript
Temporal.PlainTime
・
Temporal.PlainDateTime
オブジェクト(RFC9557/Temporal
形式の高精度日時表示)で、仕様変更に伴い廃止されたメソッドが削除されます。
ネットワーク
- トリプルDES(3DES、米国では2023年から既に使用禁止されている旧世代暗号方式)を使用した場合、レガシーTLS暗号を使用している警告がユーザーに対して表示するようになります。
レンダリング
- 縦位置をベースライン揃え
にしたコンテンツによって表の行が引き伸ばされるレガシー挙動が廃止されます。
セキュリティ
Clear-Site-Data
HTTPレスポンスヘッダー(サーバーからブラウザに対してサイトの過去のCookie/ストレージ/キャッシュの消去を要求)について、
Clear-Site-Data: *
(サイトの全過去データ消去)への対応が廃止されます。
SVG
- SVG 1.1のカーニング用プロパティが廃止されます。
SVGDocument
→XMLDocument
のエイリアス設定が廃止されます。「SVGDocument
」がソースに残存している場合は「XMLDocument
」への置き換えが必要です。
Web API
<input type="number">
(数値入力)について、ホイールイベントの処理が削除されます。これにより動作がプラットフォームの規則に一致するようになります。
※参照:Safari 18.4 Beta Release Notes - Apple Developers (2025/02/21)
https://developer.apple.com/documentation/safari-release-notes/safari-18_4-release-notes
マックスマウスからのお知らせ
Web制作・マーケティング担当者向けのお役立ち情報をメールマガジンでお届け!
WebサイトやSNSでの情報発信の安定化・効率化、CMS導入・運用、脆弱性対策、Flashコンテンツ置き換え、Webプロモーションなどなど、Web制作・マーケティング関係者向けの課題解決に役立つ、便利なサービス情報や活用法などをご案内します。
いますぐご登録ください!