diff --git a/files/ja/web/manifest/scope/index.md b/files/ja/web/manifest/scope/index.md
index ef795cd38c2a87..602190e9c0e159 100644
--- a/files/ja/web/manifest/scope/index.md
+++ b/files/ja/web/manifest/scope/index.md
@@ -1,47 +1,157 @@
---
title: scope
slug: Web/Manifest/scope
+l10n:
+ sourceCommit: 1e660f71a4741c5fdf36bb7ac8dc7acfbc9cfb49
---
{{QuickLinksWithSubpages("/ja/docs/Web/Manifest")}}
-
-
-
- 型 |
- String |
-
-
- 必須 |
- いいえ |
-
-
-
+`scope` はマニフェストメンバーで、ウェブアプリケーションのページとサブディレクトリーを格納する最上位の URL パスを指定するために使用します。
+ユーザーがウェブアプリをインストールして使用すると、スコープ内のページがアプリのようなインターフェイスを提供します。
+ユーザーがアプリの対象外のページに移動した場合でも、アプリのようなインターフェイスはそのままですが、ブラウザーではコンテキストの変化を示すために、 URL バーなどの UI の要素が表示されます。
-`scope` メンバーは文字列型で、このウェブアプリケーションのアプリケーションコンテキストのナビゲーションスコープを定義します。これは、マニフェストが適用されている時に見ることができるウェブページを制限するものです。ユーザーがスコープ外へ移動した場合は、ブラウザータブやウィンドウの中の通常のウェブページに戻ります。
+## 構文
-`scope` が相対 URL である場合、ベース URL はマニフェストの URL になります。
+```json-nolint
+/* 絶対 URL */
+"scope": "https://example.com/myapp/"
+
+/* 相対 URL */
+"scope": "/myapp/"
+
+/* 特定のディレクトリーに制限されたスコープ */
+"scope": "/myapp/dashboard/"
+```
+
+### 値
+
+- `scope`
+
+ - : URL を表す文字列です。
+ これは絶対 URL にも相対 URL にもすることができます。
+ 値が相対 URL の場合、マニフェストファイルの URL に対して解決されます。
+
+ マニフェストで `scope` が指定されていない場合、または値が不正な場合(文字列でない、無効なURLである、または `start_url` が指定された `scope` 内にない場合)、実効的なスコープは、ファイル名、クエリー、フラグメントが除去された後の `start_url` の値に設定されます。
+
+## 解説
+
+`scope` メンバーは、ウェブアプリのインストールされた環境の一部である URL を定義します。ブラウザーは `scope` を使用して、ページがウェブアプリの{{Glossary("Application_context", "アプリケーションコンテキスト")}}内にあるかどうかを判断します。
+
+### スコープ内及びスコープ外の動作
+
+URL が「スコープ内」とみなされるのは、その URL のパスが `scope` で定義された URL パスで始まる場合です。
+例えば、`scope` が `/app/` に設定されている場合、 `/app/`、`/app/page.html`、`/app/dashboard/index.html` の URL はすべてスコープ内とみなされますが、`/` や `/page.html` はスコープ外となります。
+
+ユーザーがインストールされたウェブアプリを開くと、アプリのようなユーザーインターフェイスが提供されます。
+スコープ内のページでは、ブラウザーはアプリケーションのコンテキストを維持し、アプリのような使い勝手を保ちます。
+ユーザーがアプリのスコープ外のページに移動した場合でも、概ねアプリのようなインターフェイスが提供されますが、これらのページでは、ブラウザーは URL バーなどの追加の UI 要素を表示します。
+これにより、ユーザーはアプリの定義されたスコープ外のページを表示していることを理解しやすくなります。
+
+> [!NOTE]
+> `scope` メンバーは、ユーザーが定義したスコープ外のアプリページに移動することを妨げるものではありません。
+> スコープ外のナビゲーションはブラウザーによってブロックされず、新しい最上位の閲覧コンテキストで開かれることもありません。
+
+次のディレクトリー構造をもつ、ハイキングコースを探索するためのウェブアプリを想定してみましょう。
+
+```plain
+web-app/
+├── manifest.json
+├── trails/
+│ ├── index.html
+│ ├── trail-list.html
+│ ├── settings/
+│ │ └── index.html
+│ └── saratoga-gap-trail.html
+├── blog/
+│ └── index.html
+```
+
+スコープを `/trails/` に設定すると、次のようになります。
+
+- `/trails/` 以下のページやサブディレクトリー(`trail-list.html` や `/trails/settings/index.html` など)を表示すると、ユーザーはブラウザーのコントロールのないアプリのようなインターフェイス(左の画像)が使えます。
+- `/blog/` などのサブディレクトリーのページに移動すると、アプリの範囲外であるにもかかわらず、アプリのようなインターフェイスはそのまま残りますが、ユーザーにはウェブサイトのアドレスや他にもブラウザーのコントロール(右の画像)が表示されます。
+
+| スコープ内ページ | スコープ外のページ |
+| ------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------- |
+| ![ブラウザーのコントロールがないアプリのインターフェイスを示すトレイリストページ](trail-list.png) | ![アプリのようなインターフェイスを維持しながら、ウェブサイトアドレスとブラウザーのコントロールを表示しているブログページ](blog.png) |
+
+### 深いリンクが張られたページへの影響
+
+他のアプリケーションでも、ウェブアプリケーションの特定のページに直接深いリンクを張ることができます。
+`scope` メンバーは、リンク先のページがどのように表示されるかに影響しますが、深いリンクが動作しないわけではありません。
+
+先述の例の、 `scope` を `/trails/` に設定した、ハイキングコースを探索するためのウェブアプリについて考えてみましょう。
+
+- `https://trailnav.app/trails/saratoga-gap-trail.html` へのリンクがソーシャルメディアで共有された場合、 Trail Navigator アプリをインストールしたユーザーは、ブラウザーのコントロールなしに、アプリのインターフェイスでこのページを表示します。
+- `https://trailnav.app/blog/trail-safety.html` へのリンクが共有された場合、これらのユーザーはアプリのようなインターフェイスでブログページを表示しますが、ウェブサイトアドレスとブラウザーコントロールが表示されます。これは、アプリが定義する範囲外であるためです。
+
+この動作により、外部リンクからアプリページにアクセスした場合でも、ユーザーがアプリのスコープ内またはスコープ外のページを閲覧しているかを理解しやすくなります。
+
+### 代替の scope の動作
+
+`start_url` が `scope` URL のサブセットでない場合、`scope` は無効になります。
+
+- **有効**: `scope` が `/app/` で、 `start_url` が `/app/home.html` の場合
+- **無効**: `scope` が `/app/` で、 `start_url` が `/index.html` の場合
+
+`scope` が指定されていない場合、または不正な場合は、ファイル名、クエリー、フラグメントが除去された後の `start_url` の値が既定値となります。
+なお、 `start_url` も未定義(または不正な)場合は、マニフェストにリンクしているページが既定値となります。
+これにより、既定ではインストールを起動したページからスコープが開始されることが確保されます。
+
+例を挙げます。
+
+- `start_url` が `https://example.com/app/index.html?user=123#home` の場合、スコープは `https://example.com/app/` になります。
+- `start_url` が `/pages/welcome.html` の場合、スコープは同一オリジンの `/pages/` となります。
+- `start_url` が `/pages/` の場合(末尾のスラッシュが重要)、スコープは `/pages/` となります。
+
+`scope` のフォールバック動作に頼っている場合は、アプリ内のすべてのページの URL が、 `start_url` の親パスで始まるように確実に保持してください。
+この方法でスコープの決定に関する課題を避けるには、マニフェストファイルで `scope` を明示的に指定することをお勧めします。
+
+### スコープの照合の仕組み
+
+スコープ URL の文字列照合では、パス構造ではなく単純な接頭辞の一致を使用します。
+例えば、 `scope` が `/prefix` に設定されている場合、 `/prefix` で始まる URL、たとえば `/prefix-of/index.html` や `/prefix/index.html` を含めて一致します。 `/prefix-of/index.html` は、たとえ `prefix-of` がスコープ `/prefix` と完全に一致していなくても一致します。
+
+このため、`/`で終わるスコープを定義することが推奨されます。
+`scope` を `/prefix/` に設定すると、確実に `/prefix/` ディレクトリー内のページのみと一致するようになり、意図しない一致を防ぐことができます。
## 例
-スコープが相対 URL の場合は、マニフェストの URL がベース URL として使用されます。
+### 絶対 URL でのスコープの指定
+
+ウェブアプリのマニフェストファイルが `https://hikingapp.com/index.html` からリンクされており、すべてのサブディレクトリーをスコープに含めることを希望しているとします。下記に表示されているように、マニフェストファイルの URL と同じオリジンである絶対 URL を使用して、このスコープを指定することができます。これにより、 `https://hikingapp.com/store` や `https://hikingapp.com/company` のようなページがウェブアプリの一部であることを確保することができます。
```json
-"scope": "/app/"
+{
+ "scope": "https://hikingapp.com/"
+}
```
-以下のスコープは、ナビゲーションを現在のサイトに制限します。
+### 相対 URL でのスコープの指定
+
+マニフェストファイルの URL が `https://hikingapp.com/resources/manifest.json` で、スコープを `https://hikingapp.com/app/` にしたい場合、相対 URL として次のように定義することができます。
```json
-"scope": "https://example.com/"
+{
+ "scope": "../app/"
+}
```
-最後に、以下の例はナビゲーションを現在のサイトのサブディレクトリーに制限します。
+### ウェブアプリをサイトの特定の部分向けに定義
+
+ウェブサイトには複数の部分があるものの、ウェブアプリでは特定の部分に焦点を当てたい場合、`scope` を以下のように定義することができます。
```json
-"scope": "https://example.com/subdirectory/"
+{
+ "name": "My Hiking Web App",
+ "start_url": "https://hikingapp.com/store/",
+ "scope": "https://hikingapp.com/store/"
+}
```
+この設定では、 `https://hikingapp.com/store/products` のようなページはウェブアプリの一部ですが、 `https://hikingapp.com/company/` はウェブアプリの対象外となります。対象外の URL の場合、ブラウザーはさまざまな UI の要素を表示して、ユーザーにアプリの対象外に移動したことを知らせます。
+
## 仕様書
{{Specifications}}
@@ -49,3 +159,8 @@ slug: Web/Manifest/scope
## ブラウザーの互換性
{{Compat}}
+
+## 関連情報
+
+- [`start_url`](/ja/docs/Web/Manifest/start_url) マニフェストメンバー
+- {{Glossary("Application_context", "アプリケーションコンテキスト")}}