ウェブユーザーエージェント

W3Cグループノート草案,

このドキュメントの詳細
このバージョン:
https://www.w3.org/TR/2025/DNOTE-web-user-agents-20251127/
最新版公開バージョン:
https://www.w3.org/TR/web-user-agents/
編集者草案:
https://w3ctag.github.io/user-agents
履歴:
https://www.w3.org/standards/history/web-user-agents/
フィードバック:
GitHub
編集者:
(Google)
Sarven Capadisli (招待専門家)

概要

ウェブユーザーエージェントには、ウェブブラウザおよびエンドユーザーとウェブの間のその他の仲介者が含まれます。 各ユーザーエージェントは自分のユーザーに仕え、 他のいかなる関係者にも仕えません。 ユーザーエージェントはユーザーに対して様々な義務を負っていますが、 これらは集団的な議論を通じて確立され、 ユーザーエージェントが実装する各種標準に具体化されるべきものです。

この文書の位置づけ

このセクションでは、発行時点の本ドキュメントの位置づけについて説明します。現在の W3Cの出版物一覧や、本技術報告書の最新版はW3C 標準およびドラフト一覧で確認できます。

本ドキュメントは、 Technical Architecture Groupによって ノートトラックを利用してグループノート草稿として公開されました。 これはドラフト文書であり、 いつでも他の文書によって更新、差し替え、または廃止される可能性があります。 この文書を進行中の作業以外のものとして引用するのは不適切です。 グループノート草稿はW3Cやその会員による承認を受けていません。

本ドキュメントへのフィードバックやコメントは歓迎します。どうぞ Issueを登録 してください。このドキュメントの GitHubリポジトリです。

W3C特許ポリシーは、本ドキュメントに対し ライセンス要件や義務を課しません。

本ドキュメントは 2025年8月18日付 W3C プロセス文書に基づき管理されています。

1. 対象読者

この文書は以下の人々を対象としています:

2. ウェブユーザーエージェントとは

ウェブユーザーエージェントとは、 自分自身以外のウェブサイトとユーザーの代理でやりとりする あらゆるソフトウェア実体を指します。 これは、単純にウェブサイトのコンテンツを表示するものも含まれます。 ウェブの仕様やこの文書の他の箇所では、 ウェブユーザーエージェントは通常「ユーザーエージェント」と呼ばれますが、 他分野には異なる種類のユーザーエージェントが存在します。 例えば電子メールの文脈では「メールユーザーエージェント」などがあります。 一人の人が日常生活の中で様々なユーザーエージェントを使う場合もあります。

最も一般的なウェブユーザーエージェントの例はウェブブラウザーです。 アプリ内で動作しクロスサイトのリンクを辿れるインアプリブラウザーも含みます。 しかし、ユーザーエージェントには他にも 検索エンジンや音声アシスタント、ウェブサイトのコンテンツ断片や要約を提示する生成AIシステム、 ウェブサイトのナビゲーションや操作を手助けするツールなども含まれます。

ユーザーエージェントの動作は ウェブ標準や技術仕様のみで完全に定義されているわけではありません。 特に、ユーザーエージェントは ユーザーの利益のためにどの仕様を実装するか選択し、 実装する仕様を取り巻く独自のインターフェースや動作も備えます。

2.1. ソフトウェア要素としてのユーザーエージェント

ソフトウェア要素として、ユーザーエージェントはより大きなアプリケーションの一部として機能したり、 ウェブプラットフォーム(またはその一部)を実装したライブラリを呼び出すこともあります。

アプリケーションが ユーザーエージェントである部分とそれ以外の部分を明確に区別する場合は、 ユーザーエージェント部分のみが 自身以外からのコンテンツを閲覧でき、ユーザーエージェントの義務に従う必要があります。 明らかにアプリ自身のコンテンツだけを表示する部分は独自の振る舞いができますが、 アプリ全体を通して各部分の動作についてユーザーに明確な説明をするべきです。 内部と外部のコンテンツの違いが曖昧な場合——例えばアドレスバーや起源インジケーターを表示しないなど——には アプリ自身のコンテンツを表示する場合でもユーザーエージェントの義務に従うべきです。

同様に、ウェブプラットフォームを実装するライブラリが 完全なユーザーエージェントになることもあれば、ならないこともあります。 例えば SFSafariViewControllerAndroid Custom Tabsユーザーエージェントの義務を担い、 閲覧する外部コンテンツと埋め込みアプリのコンテンツの違いを明確に区別します。 これらのライブラリはユーザーエージェントです。

一方、 AndroidiOSWindows WebViewライブラリなどは様々なタイプのアプリケーションを想定して設計されています。 これらのアプリが自身のコンテンツだけを取り扱う場合もあるため、 WebViewライブラリは単体ではユーザーエージェントではなく、 ユーザーエージェントの義務も実装していません。

最終的には、組み込みアプリケーションが その一部でもユーザーエージェントとして動作する場合、 ユーザーエージェントの義務に従う責任があります。 アプリが外部コンテンツをユーザーエージェントライブラリでのみ閲覧する場合は分かりやすいですが、 非ユーザーエージェントWebViewでインアプリブラウザーを実装する際は、 ユーザーエージェントの義務への配慮が特に求められます。

3. ユーザーエージェントの義務

各ユーザーエージェントはユーザー (The Internet is for End Users) のみのために機能し、その他の関係者のために機能しません。 ユーザーエージェントはユーザーに対して 様々な義務を負います。 これらは集団的な議論を通じて確立され、 ユーザーエージェントが実装する各種標準に具体化されるべきです。

3.1. 保護

ウェブページの閲覧は安全であるべきです。 ページを閲覧するだけで ソフトウェアのインストールやハードウェアへのアクセスなど、 ユーザーのコンピュータや環境をページが変更できてはなりません。

サイトや他の観察者に開示されるデータは ユーザーの好みに即しているべきであり、 データ最小化の原則が守られるべきです。 特にユーザーエージェントは サイトによるユーザーアクティビティの追跡可能性を制限するよう対応しなければなりません [unsanctioned-tracking]

ユーザーは情報をさらに共有することを自ら選ぶ 場合もあります(例:フォームの入力や権限の許諾など)。 それでもユーザーエージェントは ユーザーが騙されないよう配慮し、 ページが特権的なアクセスを試みている場合には明確なサインで通知する必要があります。

ローカルファイルや他の機密リソースへのアクセスは 明確で意図的なユーザーの操作と適切な警告によってのみ可能であるべきです。

例:攻撃

ユーザーエージェントは、サイト上の悪意あるコードが ユーザーエージェントを抜けてユーザーのコンピュータや他の オリジン にアクセスしたり変更したりするのを防ぐ必要があります。 コンポーネントのサンドボックス化や メモリ安全な言語の採用、 脆弱性調査・対応チームの設置などによって ユーザーエージェントは保護義務を果たします。 こうした防御策は新たな脅威に合わせて絶えず進化させる必要があります。

例:トラッキング

ユーザーが無関係な複数のウェブサイトにアクセスする場合、 埋め込みiframeに共有識別クッキーを送信しない選択は十分に可能です。 そうしたクッキーを送信するブラウザーは保護義務を果たしていません。 一方、安定したIPアドレスを開示することは現時点では避けられないため、 それは違反ではありません。

例:ローカルファイル

ユーザーエージェントは、ユーザーが明示的に選択または開いた場合を除き ページによるローカルファイルへのアクセスを防ぐことが求められます。 これが次のような挙動の動機となります:

ただし、ユーザーはファイルのアップロードやダウンロード等で ファイルを共有することが可能です。 File System Access などのAPIも、ユーザーが適切な判断ができる限り この義務に違反しません。

3.2. 誠実性

ユーザーエージェントは、そのユーザーが理解できる形で現在何が起きているか説明する責任があります。 この説明は適切なタイミング・頻度で行い、 ユーザーの理解を助けこそすれ、邪魔や混乱を招かないようにすべきです。

3.3. 忠誠

ユーザーエージェントはユーザーの利益を 実装者や他の第三者の利益よりも優先しなければなりません。

公平で事前に合意された支払いである限り、 ユーザーエージェントがそのサービスの対価を徴収しても 忠誠心とは両立します。

またユーザーエージェントは 特定のページのサービスを受けるために信頼できるコミットメントをページに伝える役割を果たせます。 サービス獲得後もそのコミットメントを維持しても不忠実とはなりません。

ユーザーエージェントは、ユーザーが他のユーザーエージェントへ切り替えることを妨げてはなりません。 例えば、ユーザーデータへのアクセスをブロックしたり、エクスポートや保存の際に ポータビリティを妨げるような方法を取ってはいけません。 これはID情報、ブックマーク、履歴、パスワード、パスキー等の資格情報も含みます。 ユーザーエージェントが基盤のOSに 資格情報を保存している場合は、他のユーザーエージェントからのアクセスを ユーザーが許可できる方法が必要です。

4. 謝辞

Infra Standard には ユーザーエージェントの初期定義で、 Privacy Principlesには これらの義務の初期バージョンで感謝します。

索引

本仕様で定義される用語

参照で定義される用語

参考文献

規範的参照文献

[DESIGN-PRINCIPLES]
Martin Thomson; Jeffrey Yasskin. Web Platform Design Principles. 2025年10月29日. NOTE. URL: https://www.w3.org/TR/design-principles/
[RFC8890]
M. Nottingham. The Internet is for End Users. 2020年8月. Informational. URL: https://www.rfc-editor.org/rfc/rfc8890

参考情報文献

[CSS-FONTS-5]
Chris Lilley. CSS Fonts Module Level 5. 2024年2月6日. WD. URL: https://www.w3.org/TR/css-fonts-5/
[FILE-SYSTEM-ACCESS]
File System Access. Draft Community Group Report. URL: https://wicg.github.io/file-system-access/
[HTML]
Anne van Kesteren; et al. HTML Standard. Living Standard. URL: https://html.spec.whatwg.org/multipage/
[Infra]
Anne van Kesteren; Domenic Denicola. Infra Standard. Living Standard. URL: https://infra.spec.whatwg.org/
[PRIVACY-PRINCIPLES]
Robin Berjon; Jeffrey Yasskin. Privacy Principles. 2025年5月15日. STMT. URL: https://www.w3.org/TR/privacy-principles/
[UNSANCTIONED-TRACKING]
Mark Nottingham. Unsanctioned Web Tracking. 2015年7月17日. TAG Finding. URL: https://www.w3.org/2001/tag/doc/unsanctioned-tracking/
[URL]
Anne van Kesteren. URL Standard. Living Standard. URL: https://url.spec.whatwg.org/