世界を動かす技術を、日本語で。

Appleによる「Mobile Safari」の意図的な機能制限

概要

主要ブラウザ(Chrome 146、Android Mobile Safari 26.4、iOS + iPadOS)の機能対応状況を比較。 Chromeが多くの最新機能に対応している一方、SafariやiOS系は一部機能に未対応。 オフラインサポートや通知、Web Pushなどの重要機能の差異。 認証、ストレージ、メディアキャプチャなどの共通サポート機能。 AR/VRやファイルシステムなど一部機能は全体的に未対応または限定的サポート。

ブラウザ機能対応状況比較

  • ショートカット
    • Chrome 146: 対応
    • Android Mobile Safari 26.4・iOS + iPadOS: 非対応
  • プロトコルハンドリング
    • Chrome 146: 対応
    • Android Mobile Safari 26.4・iOS + iPadOS: 非対応
  • ファイルハンドリング
    • Chrome 146: 対応
    • Android Mobile Safari 26.4・iOS + iPadOS: 非対応
  • Contact Picker
    • Chrome 146: 対応
    • Android Mobile Safari 26.4・iOS + iPadOS: 非対応
  • Face Detection
    • Chrome 146: 対応
    • Android Mobile Safari 26.4・iOS + iPadOS: 非対応
  • バイブレーション
    • Chrome 146: 対応
    • Android Mobile Safari 26.4・iOS + iPadOS: 非対応
  • Element Capture
    • Chrome 146: 対応
    • Android Mobile Safari 26.4・iOS + iPadOS: 非対応
  • Background Sync / Fetch
    • Chrome 146: 対応
    • Android Mobile Safari 26.4・iOS + iPadOS: 非対応
  • Bluetooth / NFC
    • Chrome 146: 対応
    • Android Mobile Safari 26.4・iOS + iPadOS: 非対応
  • AR / VR
    • Chrome 146: 一部サポート
    • Android Mobile Safari 26.4・iOS + iPadOS: 非対応
  • Network Info
    • Chrome 146: 対応
    • Android Mobile Safari 26.4・iOS + iPadOS: 非対応
  • インストール
    • Chrome 146: 対応
    • Android Mobile Safari 26.4: 一部サポート
    • iOS + iPadOS: 非対応
  • オフラインサポート
    • Chrome 146: 対応
    • Android Mobile Safari 26.4・iOS + iPadOS: 対応
  • 通知 / Web Push
    • Chrome 146: 対応
    • Android Mobile Safari 26.4・iOS + iPadOS: 一部または限定的サポート
  • View Transitions
    • Chrome 146・Android Mobile Safari 26.4・iOS + iPadOS: 対応
  • 位置情報 / メディアキャプチャ
    • 全ブラウザ: 対応
  • Picture-in-Picture
    • Chrome 146: 一部サポート
    • Android Mobile Safari 26.4・iOS + iPadOS: 対応
  • ファイルシステム
    • 全ブラウザ: 非対応
  • Compression Streams
    • Chrome 146・Android Mobile Safari 26.4・iOS + iPadOS: 対応
  • 認証 / ウェブシェア / 仮想キーボード / バーコード検出 / 音声録音 / メディアセッション / ストレージ / 決済 / ウェイクロック / モーション / スピーチ合成 / マルチタッチ
    • 全ブラウザ: 多くが対応または一部サポート
  • Audio Session / 画面キャプチャ
    • 全ブラウザ: 非対応または限定的サポート

機能差異のポイント

  • Chrome 146は最新Web APIに広く対応
    • PWAやWeb Bluetooth、NFC、Background Syncなどの先進的機能サポート
  • Safari(Android/iOS)はセキュリティ・プライバシー重視で一部機能非対応
    • 通知、Web Push、プロトコルハンドリングなど制限
  • 共通サポート機能
    • オフラインサポート、メディアキャプチャ、認証、ストレージなど
  • 全体的な未対応機能
    • ファイルシステム、Audio Session、画面キャプチャなどは全ブラウザで未サポートまたは限定的

まとめ

  • ChromeはWebアプリ開発に最も柔軟
  • Safari(特にiOS)は制限が多く、クロスプラットフォーム開発時は注意が必要
  • 主要機能の対応状況を把握し、ターゲットユーザーに最適な体験設計が重要

Hackerたちの意見

今、Safariでこれを書いてるんだけど、めっちゃファンなんだ。嫌いで他のブラウザでは無効にしてる「機能」がいくつかあるんだよね。モバイルSafariで実装されてないせいで、いくつかのウェブページで必要とされてないのかな。* バイブレーション * バックグラウンド同期 * Bluetooth * NFC * 通知 * ウェブプッシュ

同じく。デスクトップにブラウザをインストールしたら、最初にプライバシー設定でそのクソみたいなものを全部ブロックするよ。

通知やバイブレーションは理解できるけど、BluetoothやNFCはなんでダメなの?それが迷惑になるなんて想像できないし、特別なアプリケーション以外でウェブサイトがそれを求める理由もわからないな。

うん、無効になってる機能のリスト自体が一つの機能だと思うよ。

同意する!それにWebUSBとWebMIDIも追加したいな。USBと連携したいなら、OSを通るしかないね。

通知が変だなと思った。アプリの通知は広告やエンゲージメント重視のものが多いから、俺は積極的に無効にしてる。でも、開発者としては、ネイティブアプリを作ってiOSの税金を払わなくてもiOSユーザーに通知する方法があればいいなと思う。こういう制限のせいで作られないユーティリティアプリがたくさんあるんだよね。

リストを見ていくと、SafariやChromeから引き抜きたい機能の方が、追加してほしい機能よりも多いことに気づく。俺が削除すべきだと思うものは: * 音声録音 * ジオロケーション * モーション * メディアキャプチャ

AppleはiOSのSafariだけを制限してるわけじゃなくて、iOSの全ブラウザを制限してるんだよね。WebKitっていう、Safariの下にある制限されたブラウザエンジンを使わせてるから。Safariが悪くなるのは彼らの選択だからいいけど、そこで止まらないんだよね。iOS上のウェブ全体をわざと悪くして、課税できるネイティブアプリを促進してる。

FirefoxはネイティブのGeckoベースのiOSアプリを計画してたんだけど、AppleがEUに制限することに決めたから、開発者は限られたユーザーのために別プロジェクトを維持する選択を強いられたんだ。

これは明らかにセキュリティの理由だね。AppleがSafariの市場シェアにあまり興味がないとは思えない。彼らが気にしているのは、プライバシーでの競争優位を維持することだよ。

ほとんどの人と同じで(少なくともこのスレッドでは)。モバイルSafariでサポートされてないことには大体満足してるよ。でもBluetoothはあったらいいな。いろんなことのためにesp32デバイスをよく設定するんだけど、アプリかノートパソコンが必要なんだ。スマホが十分にできるのにね。

ほんとそれ、辛いよね。MFI認証を受けた製品を作ってるのに、ブラウザで通信できないなんて。

ユーザーのいるところで会わなきゃね。モバイルSafariユーザーとして、ウェブの使い方が制限されてると感じる一番の理由は、ページが大きな画面を前提にしてたり、ただ単に配置が悪かったりすることなんだ。このウェブページはiPhoneの画面で読みやすいはずなのに、構造がそれを妨げてる。全体のテーブル幅を見るためにページをズームアウトできないし、テーブルがスクロールフレーム内にあって、そのボックスよりも広いから。ネストされたフレームを横にスクロールしないと、行ラベルがiPhoneのセルとどう関連してるか見えない。あきらめて横向きにすると、フレーム内で縦にスクロールするだけだし。マージンを狙わないと、ほんの少しスクロールしただけでテーブルに引っかかって止まっちゃう。ウェブが自由であることが重要だから、• こういうページが出てくるのは自然なこと • だからウェブ全体がちょっとクソなのも自然なこと • だからリッチなウェブ機能の需要が低いのも自然なことだよね。

もしそのサイトが、これらがChrome以外で標準化されてるかどうかを示してくれたら便利なんだけどね。どれがChromeの機能で、どれが実際のウェブ標準なのかを区別するのが難しいんだ。だから、まだ標準化されてないなら、SafariやFirefoxがサポートしてないことを責めるのも難しいよね。

これは「Chromiumからの機能」の大きなリストだけど、実際には標準的なものでもないし、そのエコシステム以外ではあまり存在しないものだよね(FirefoxとSafariがそれを持ってないのが明らかな証拠)。FirefoxがBluetoothやNFCみたいなものをウェブサイトに公開しないのは嬉しいな。ブラウザ自体が十分大きいのに、さらにローカルハードウェアへのアクセスを仲介する必要はないと思う。これらの機能が他のブラウザでどう機能するのかも不明だし。例えば、連絡先。どのデータソースを使うの?俺は連絡先を~/contactsにvcardファイルとして保存してるけど、他の人はリモートのCalDAVサーバーやウェブベースのGUI、あるいはSQLに保存されたデータを使うかもしれない(KDEがこれをやってると思う)。

機能ですらないよ。iOSのPWAでは、基本的な入力処理やフォーカスが壊れてるし、明らかに無視されてる技術だね。

MozillaがWeb NFCについてこう言ってるよ: 「Web NFCは、既存のNFCデバイスの幅広い機能のために、ユーザーのセキュリティとプライバシーにリスクをもたらすと考えています。プライベート情報が偶然に公開されないことを保証するシステムがなく、ユーザーの同意に頼るしかないからです。また、ブラウザがユーザーに何を共有したり書き込んだりするのか説明できないときに、ユーザーにデータを共有したり書き込む許可を意味のある形で求めるのが難しいです。」— https://mozilla.github.io/standards-positions/#web-nfc そして、Web Bluetoothについてはこう言ってる: 「このAPIはBluetoothのGeneric Attribute Profile(GATT)へのアクセスを提供しますが、仕様が許す最低レベルのアクセスではありません。その一般的な性質のため、明確に評価することが不可能です。WebUSBと同様に、任意のサイトからのリクエストを受け取る準備ができているデバイスについては大きな不確実性があります。このAPIの一般的な性質は、このリスクを管理するのが難しいことを意味します。Web Bluetooth CGはユーザーの同意にのみ依存することを選択しましたが、私たちはそれが十分な保護ではないと考えています。この提案はブロックリストも使用しており、脆弱なデバイスが悪用されないようにするためには常に積極的なメンテナンスが必要です。このモデルは持続可能ではなく、ユーザーとそのデバイスにとって重大なリスクをもたらします。」— https://mozilla.github.io/standards-positions/#web-bluetooth 実際のところ、Googleがこれらの仕様を書いたけど、他のレンダリングエンジンに実装させることができず、結局はAppleのせいで世界の他の部分が彼らのアイデアを拒否したってことだ。これはウェブ標準ではなく、Googleが一方的に構築することに決めたBlink専用のAPIだよ。ウェブはGoogleが望むもので定義されるべきではない。ウェブ標準は合意によって決定されるべきで、その合意はこれらのものがウェブの一部であるべきではないということだ。

「これらのどれがChromeの機能で、どれが実際のウェブ標準なのかを区別するのは難しい。だから、まだ標準化されていないものをサポートしていないSafariやFirefoxを責めるのは難しいかもしれない。」 AppleがW3Cの理事会にいることを知らないかもしれないけど、彼らはどのAPIが標準になるかを決める権限を持ってるから、アプリストアに影響を与える可能性のあるAPIは潰すことができるんだ。Firefoxを証拠として挙げるのは、Appleが開発者に自社のプラットフォームでネイティブアプリを作らせるために使う悪質なビジネス手法を考慮していない。Firefoxが何をしているかはどうでもいいけど、AppleはiOSで自社のブラウザエンジン以外のブラウザエンジンを使うことを禁止してるからね。つまり、AppleはiOSのブラウザエンジンをコントロールしていて、どのAPIが標準になるかもコントロールしている。これは明らかにひどいことだよ。これが理由でAppleは司法省に訴えられているんだ。 https://www.justice.gov/archives/opa/media/1344546/dl?inline

なんで特にSafariがこんなに叩かれてるのか気になるな。Firefoxはもっと機能がサポートされてないのに。これって、結局多くの機能が受け入れられてないのは、より大きなエコシステムに受け入れられてないからだと思う。Googleが自分たちのものをスタンダードとして押し付けてる感じがする(IE時代を思い出す)。とはいえ、なんでブラウザにこれらの機能が必要なのかはよくわからない。多くの機能はブラウザが本来やるべきことを複雑にして、セキュリティの懸念も増やす気がする。ウェブアプリを使うのはいいと思うけど、ウェブアプリが全てできるってのは違うと思う。追記:Firefoxのコメントについては、サポートされていない機能の多くは、非Chromiumブラウザがどのプラットフォームでもサポートしていないことに注意してほしい。これがウェブスタンダードと見なされるかどうかは、iOSが他のエンジンを許可するかどうかとは別の話だね。再追記:どうやら、3列目は常にChrome、モバイルSafari、Firefoxを比較するんじゃなくて、現在のブラウザに基づいてるみたい。今、WindowsでFirefox使ってるけど、Firefoxの下にはもっと赤いバツがある。全ての主要ブラウザを常に比較しないのは変な選択だね。

iOSのFirefoxは、結局Safariのラッパーに過ぎないよ。Appleがそれを許可してるだけだから。

なんでブラウザにこれらの機能が必要なのか ページはPWAについてで、ブラウザからインストールできるアプリケーションのことだよ。ネイティブアプリはすでにその機能を持ってるし、もっと多くのことができる。

Firefoxは、プラットフォーム上で唯一許可されているブラウザではないよ。iOSでは、ネイティブアプリを作ってAppleに30%の収入を分けるか、Safariの機能セットに制限されるかのどちらかだ。iOSのブラウザはWebKit以外のものは使えないんだ。

Appleに対して否定的なことを言うと、反射的にアップボートされる気がする。俺はAppleとAndroidのエコシステムの両方を使ってるから、たまに機能や使い方について普通のユーザーの会話に参加することもある。Androidエコシステムについて何かを投稿する場合、Samsungの機能が嫌だと言ってる以外は、他の技術について投稿するのと同じくらいダウンボートやアップボートされる可能性がある。Apple製品に関して、否定的なニュートラルよりもポジティブなトーンを使うと、確実にいくつかのダウンボートが集まって、しばしば否定的なコメントが一つか二つつく。否定的な感情とアップボートも同じだね。こんなに少数の人たちの間で企業に対する情熱的な嫌悪を見たことがない。80年代や90年代のFord/Chevyのような有名なブランド忠誠心の対立でも、もっと相互的だった。99%のドライバーが気にしない中で、0.5%のFordユーザーが得意げで、2%のGMCドライバーが持ってもいない製品に対して超怒ってるって感じじゃなかった。

ブラウザのルールを知っておけ Firefoxがウェブ標準を実装しないのは:適切 Safariがウェブ標準を実装しないのは:不適切

「特にSafariがこんなに嫌われている理由が気になる。ここはHNで、Appleが悪者扱いされてる。」

Mozillaの立場のいくつかはAppleに基づいている、例えばWeb NFCの実装を拒否していること [0]。WebkitがiOSで唯一許可されたエンジンなので、結局これはアプリ配布に関する意見の相違だね。Web NFCに関してはAppleとMozillaの主張は理解できるけど、友達とNFCタグで遊ぶためだけにアプリを一から作りたくはない。新しいAndroidの非Playストアアプリの状況と比べたくなるのは仕方ないよね。もしウェブサイトのための開発者登録リストがあったら(DNSレジストラの記録やTLS証明書よりも良いものが)、AppleとMozillaはそれを受け入れると思う?結局、アプリを書くためにはAppleに本名と支払い情報を渡さなきゃいけないし、Mozillaのためにも一つ追加するよ。Firefox AndroidはまだWeb Codecs API [1]をサポートしてないから、Selkiesのリモートデスクトップサイトでは「jpeg」コーデックを使わざるを得ない。これは私の帯域幅やバッテリーにとってあまり良くないと思う。 [0] https://github.com/mozilla/standards-positions/issues/238 [1] https://caniuse.com/webcodecs

キーワードは「意図的」だね。

これは基本的にプロパガンダだよ。「Googleがやったことを実装しないこと」と「意図的に機能を制限すること」を混同することで、Appleにプレッシャーをかけようとしてるんだ。一般の人々(PRゲーム)や政府の規制(ロビー活動)を通じてね。これが始まったのは、BlinkがWebKitからフォークされた時からだと思う。そしてなぜAppleなのか?Appleは唯一の他のブラウザの巨人だから、これらの機能を実装しない動機があるんだ。正直言って、私も自分のブラウザにこれらの機能は要らないと思ってる。でも、ウェブ開発者やウェブに依存しているビジネス(Googleなど)は、できるだけ多くの複雑なAPIがブラウザに実装されることを望んでいるんだ。

pwa.gripeのデータを基に見る限り、26.3(私のバージョン)と新しい26.4の間で、iOSのSafariは5つの新しいAPIをサポートするようになったよ:— オフラインサポート — メディアキャプチャ — ピクチャーインピクチャー — ストレージ — 音声合成 それに、条件付きで5つのAPIも:— インストール — 通知 — ウェブプッシュ — バーコード検出 — 音声認識 それに加えて、音声セッションのサポートが失われてるのも考慮に入れると、2つのマイナーなリリース間のこの機能の違いを「モバイルSafariの意図的な制限が続いている」と表現するのはちょっと偏ってる気がする。

これに関するソースリンクはある?ちょっと皮肉に聞こえるかもしれないけど、このリストは私には意味がわからない。オフラインサポートはずっと前から(バグもあるけど、環境による)利用できてるし、Web Pushは16.4から使えるようになってる(ただし多くの条件付き)。インストールについては何も聞いてないけど、見逃してるかもしれない。

お前がブラウザにBluetoothやNFC、バックグラウンド処理、顔認識を求めても、俺は求めてない。俺は、そういう商品に関してはApple製品を使うのが好きなんだ。詳細を調べるつもりはないし、調べたときにAppleの理由が納得できることが多いから(このリストみたいに)。大手テック企業(Appleを含む)について批判できることはもっとたくさんあると思う。顧客のために分かれる決定をすることで知られている会社の製品決定に対してはね。もし人々がそれを買うなら…好きなんだろう?

じゃあ、使わなきゃいいんじゃない?この機能には明示的な許可が必要だよ。

数ヶ月前に https://pwascore.com/ を作ったよ。pwa.gripeは特定の視点から切り取っているけど、pwascore.comはもっと徹底的で冷静な評価を目指してる。デスクトップブラウザもすぐに追加する予定。完全で詳細なリストは「すべて展開」をクリックしてね。「スコアの仕組み」をクリックすれば、スコアのヒューリスティックがわかるよ。

まあ、あなたのウェブサイトの通知は、サファリでどれだけ制限されているかの全体像を提供してないよね。通知を許可する前に、ユーザーにショートカットをインストールするように頼まなきゃいけないんだ。実際にショートカットをインストールするユーザーがどれくらいいると思う?ほとんどいないよ。もしユーザーに設定を開いて「通知を有効にする」フラグを切り替えるように頼まなきゃいけなかったら、それをサポートしてるとは言えないよね。通知を求めるためにショートカットをインストールするプロセス自体が、iOSではさらに複雑なんだ。

現在、開発者が直面している選択肢はこれだね - アプリストア向けに作るか、ウェブ向けに作るか、またはその両方か。正直言って、モバイルサファリが「制限されてる」ように見えても、僕が使うものはFirefoxやデスクトップと全く同じように動くから気にしないよ。むしろ、マイナーなデバイスでの動作が良かったらイライラするかも。でも、もしかしたら僕が少数派かもね。モバイルは通信や銀行用、タブレットは軽いブラウジング用で、デスクトップを使うことが多いから。モバイルサファリの機能が少なくてもいいと思うけど、バッテリー持ちが良くなるならね。逆に、もしその機能が賢いアプリを通じてバッテリー持ちを良くしてくれるなら、機能が少ないのは嫌だな。