> ## Documentation Index
> Fetch the complete documentation index at: https://adcp-docs-ja.pier1.co.jp/llms.txt
> Use this file to discover all available pages before exploring further.

# アクセシビリティ

> AdCP アクセシビリティサポートにより、フォーマットは WCAG 準拠レベルを宣言し、alt テキストやキャプションなどのアクセシブルなアセットを必要とすることができます。

AdCP は2つのレベルでアクセシビリティをサポートする: フォーマットはレンダリング出力の準拠レベルを宣言し、アセットはそれを達成するために必要なメタデータを持ちます。

## 仕組み

広告クリエイティブのアクセシビリティは、誰がレンダリングを制御するかによって異なる:

* **フォーマットレンダリングのクリエイティブ**（画像 + ヘッドライン + CTA）: フォーマットが出力を制御します。コントラスト比、キーボードナビゲーション、ARIA ランドマークを保証できる — クリエイティブから適切な入力（画像の alt テキスト、ビデオのキャプションなど）が必要なだけ。

* **不透明なクリエイティブ**（HTML バンドル、JavaScript タグ）: フォーマットはコンテンツを検査または変更できません。アセットはそのアクセシビリティプロパティを自己宣言しなければなりません。

AdCP はフォーマットの `accessibility` オブジェクトとアセットタイプごとのアクセシビリティメタデータを通じて両方のケースを処理します。

## フォーマットのアクセシビリティ

フォーマットは `accessibility` オブジェクトを通じてアクセシビリティの姿勢を宣言する:

### `accessibility.wcag_level`

このフォーマットが生成するクリエイティブが満たす WCAG 準拠レベル。値: `A`、`AA`、`AAA`。

フォーマットレンダリングのクリエイティブでは、これはフォーマットからの保証です。不透明なクリエイティブでは、フォーマットがアセットに自己認証を求めるレベルを反映します。

### `accessibility.requires_accessible_assets`

`true` の場合、アクセシビリティ関連フィールドを持つすべてのアセットはそれらのフィールドを含めなければなりません。これは強制メカニズムだ — オプションのアクセシビリティフィールドを必須として扱うよう検証に指示します。

```json theme={null}
{
  "format_id": {
    "agent_url": "https://creative.adcontextprotocol.org",
    "id": "display_300x250"
  },
  "name": "Display Banner 300x250",
  "accessibility": {
    "wcag_level": "AA",
    "requires_accessible_assets": true
  },
  "assets": [
    {
      "item_type": "individual",
      "asset_id": "hero_image",
      "asset_type": "image",
      "required": true,
      "requirements": {
        "min_width": 300,
        "max_width": 300,
        "min_height": 250,
        "max_height": 250,
        "formats": ["jpg", "png", "webp"]
      }
    },
    {
      "item_type": "individual",
      "asset_id": "headline",
      "asset_type": "text",
      "required": true,
      "requirements": {
        "max_length": 90
      }
    }
  ]
}
```

このフォーマットは WCAG AA 出力を保証し、画像アセットに `alt_text` を必要とする（`alt_text` が画像アセットタイプのアクセシビリティフィールドとしてマークされているため）。

## アセットのアクセシビリティフィールド

各アセットタイプは `x-accessibility` スキーママーカーを使用してそのフィールドのどれがアクセシビリティ関連かを定義します。これらのフィールドはデフォルトで常にオプションだが、フォーマットが `accessibility.requires_accessible_assets: true` を設定すると必須になります。

### 検査可能なアセット

これらのアセットは、フォーマットがアクセシブルにレンダリングするために使用する構造化データを提供します。

| アセットタイプ   | アクセシビリティフィールド           | 目的                           |
| --------- | ----------------------- | ---------------------------- |
| **Image** | `alt_text`              | スクリーンリーダー用の代替テキスト            |
| **Video** | `captions_url`          | キャプションファイルへの URL（WebVTT、SRT） |
|           | `transcript_url`        | テキストトランスクリプトへの URL           |
|           | `audio_description_url` | 音声説明トラックへの URL               |
| **Audio** | `transcript_url`        | テキストトランスクリプトへの URL           |

**例** — アクセシブルフォーマットのマニフェストのビデオアセット:

```json theme={null}
{
  "creative_id": "brand_video_001",
  "format_id": {
    "agent_url": "https://creative.adcontextprotocol.org",
    "id": "video_30s_hosted"
  },
  "assets": {
    "video_file": {
      "url": "https://cdn.example.com/video.mp4",
      "width": 1920,
      "height": 1080,
      "duration_ms": 30000,
      "captions_url": "https://cdn.example.com/video.vtt",
      "transcript_url": "https://cdn.example.com/video-transcript.txt",
      "audio_description_url": "https://cdn.example.com/video-ad.mp3"
    }
  }
}
```

### 不透明なアセット

HTML と JavaScript アセットはブラックボックスだ — フォーマットはそのレンダリングを検査できません。これらのアセットは自己宣言プロパティを持つ `accessibility` オブジェクトを持ちます。

| フィールド                  | 型       | 説明                                                 |
| ---------------------- | ------- | -------------------------------------------------- |
| `alt_text`             | string  | クリエイティブコンテンツを説明するテキスト代替                            |
| `keyboard_navigable`   | boolean | クリエイティブがキーボードで完全に操作できる                             |
| `motion_control`       | boolean | `prefers-reduced-motion` を尊重するか、一時停止/停止コントロールを提供する |
| `screen_reader_tested` | boolean | クリエイティブがスクリーンリーダーでテストされた                           |

**例** — アクセシビリティ宣言を含む HTML クリエイティブ:

```json theme={null}
{
  "creative_id": "rich_media_001",
  "format_id": {
    "agent_url": "https://publisher.com",
    "id": "rich_media_expandable"
  },
  "assets": {
    "creative_html": {
      "content": "<div class='ad-container'>...</div>",
      "version": "HTML5",
      "accessibility": {
        "alt_text": "Interactive product carousel showing summer collection",
        "keyboard_navigable": true,
        "motion_control": true,
        "screen_reader_tested": true
      }
    }
  }
}
```

自己宣言されたアクセシビリティはトラスト主張です。プラットフォームはこれらのプロパティを独立して検証することがある — それはプロトコルのスコープ外です。

### サードパーティタグ

VAST と DAAST アセットはサードパーティによって配信されるビデオとオーディオをラップします。既存のタグプロパティとともにアクセシビリティフィールドを持ちます。

| アセットタイプ   | アクセシビリティフィールド                          |
| --------- | -------------------------------------- |
| **VAST**  | `captions_url`、`audio_description_url` |
| **DAAST** | `transcript_url`                       |

### アクセシビリティフィールドのないアセット

一部のアセットタイプはスタンドアロンのレンダリングコンテンツを生成せず、アクセシビリティフィールドを持たない。フォーマットが `accessibility.requires_accessible_assets: true` を設定した場合、これらは実質的に何もしない:

* **Text** — フォーマットによってレンダリング
* **Markdown** — フォーマットによってレンダリング
* **CSS** — スタイル、コンテンツではありません
* **URL** — リンク、レンダリングコンテンツではありません
* **Webhook** — サーバーサイド

## アクセシブルフォーマットの発見

バイヤーは `list_creative_formats` の `wcag_level` パラメーターを使用してアクセシブルなフォーマットをフィルタリングできる:

```json theme={null}
{
  "wcag_level": "AA",
  "asset_types": ["image", "text"]
}
```

これにより少なくとも WCAG AA 準拠を満たし、画像とテキストアセットを受け入れるフォーマットが返されます。フィルターは「少なくとも」ロジックを使用します: `AA` をリクエストすると `AA` または `AAA` のフォーマットが返されます。

## 実装ノート

**適用はアプリケーションレベルです。** `x-accessibility` マーカーは JSON Schema 拡張キーワードです。標準 JSON Schema バリデーターはそれを無視する — `accessibility.requires_accessible_assets` の適用は、`x-accessibility: true` フィールドのアセットスキーマをスキャンしてその存在を検証するアプリケーションコードで実装しなければなりません。

**フォーマット実装者向け:**

* 主張を実証できる場合のみ `accessibility.wcag_level` を設定する — 独自のレンダリング保証またはアクセシブルアセットの要求を通じて
* フォーマットが構造化入力からレンダリングする場合、レンダリングパイプラインが宣言された WCAG レベル（コントラスト、キーボードナビゲーション、ARIA）を満たすことを確認します
* フォーマットが不透明なアセットをラップする場合、`accessibility.requires_accessible_assets: true` により入力が適切な宣言を持つことが保証されます

**クリエイティブ制作者向け:**

* `accessibility.requires_accessible_assets: true` のフォーマットに送信する場合、アセットタイプのすべてのアクセシビリティフィールドを含めます
* 不透明なアセットの場合、宣言する前にアクセシビリティプロパティをテストします
* キャプションとトランスクリプトはアセットに埋め込まれたものではなく、別々にホストされたファイルとして提供します

## 関連ドキュメント

* [クリエイティブフォーマット](/docs/creative/formats) — フォーマット構造と要件
* [アセットタイプ](/docs/creative/asset-types) — アセット仕様とペイロードスキーマ
* [クリエイティブマニフェスト](/docs/creative/creative-manifests) — アセットとフォーマットのペアリング
* [list\_creative\_formats](/docs/creative/task-reference/list_creative_formats) — フィルタリングを使ったフォーマット発見
