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

仕組み

広告クリエイティブのアクセシビリティは、誰がレンダリングを制御するかによって異なる:
  • フォーマットレンダリングのクリエイティブ(画像 + ヘッドライン + CTA): フォーマットが出力を制御します。コントラスト比、キーボードナビゲーション、ARIA ランドマークを保証できる — クリエイティブから適切な入力(画像の alt テキスト、ビデオのキャプションなど)が必要なだけ。
  • 不透明なクリエイティブ(HTML バンドル、JavaScript タグ): フォーマットはコンテンツを検査または変更できません。アセットはそのアクセシビリティプロパティを自己宣言しなければなりません。
AdCP はフォーマットの accessibility オブジェクトとアセットタイプごとのアクセシビリティメタデータを通じて両方のケースを処理します。

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

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

accessibility.wcag_level

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

accessibility.requires_accessible_assets

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

検査可能なアセット

これらのアセットは、フォーマットがアクセシブルにレンダリングするために使用する構造化データを提供します。
アセットタイプアクセシビリティフィールド目的
Imagealt_textスクリーンリーダー用の代替テキスト
Videocaptions_urlキャプションファイルへの URL(WebVTT、SRT)
transcript_urlテキストトランスクリプトへの URL
audio_description_url音声説明トラックへの URL
Audiotranscript_urlテキストトランスクリプトへの URL
— アクセシブルフォーマットのマニフェストのビデオアセット:
{
  "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_textstringクリエイティブコンテンツを説明するテキスト代替
keyboard_navigablebooleanクリエイティブがキーボードで完全に操作できる
motion_controlbooleanprefers-reduced-motion を尊重するか、一時停止/停止コントロールを提供する
screen_reader_testedbooleanクリエイティブがスクリーンリーダーでテストされた
— アクセシビリティ宣言を含む HTML クリエイティブ:
{
  "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 アセットはサードパーティによって配信されるビデオとオーディオをラップします。既存のタグプロパティとともにアクセシビリティフィールドを持ちます。
アセットタイプアクセシビリティフィールド
VASTcaptions_urlaudio_description_url
DAASTtranscript_url

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

一部のアセットタイプはスタンドアロンのレンダリングコンテンツを生成せず、アクセシビリティフィールドを持たない。フォーマットが accessibility.requires_accessible_assets: true を設定した場合、これらは実質的に何もしない:
  • Text — フォーマットによってレンダリング
  • Markdown — フォーマットによってレンダリング
  • CSS — スタイル、コンテンツではありません
  • URL — リンク、レンダリングコンテンツではありません
  • Webhook — サーバーサイド

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

バイヤーは list_creative_formatswcag_level パラメーターを使用してアクセシブルなフォーマットをフィルタリングできる:
{
  "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 のフォーマットに送信する場合、アセットタイプのすべてのアクセシビリティフィールドを含めます
  • 不透明なアセットの場合、宣言する前にアクセシビリティプロパティをテストします
  • キャプションとトランスクリプトはアセットに埋め込まれたものではなく、別々にホストされたファイルとして提供します

関連ドキュメント