## 要件とユースケース
この文書は、特定の要件に対応する API を記述します。その要件とは、JS API と Client Hint の両方を通じて、
データ節約に関するユーザーの設定を伝達することです。
**ユースケースの例:**
* 主な目的がメディアのストリーミングである Web アプリケーションは、ユーザーがデータ通信費の削減に
関心を持っている場合、高度に圧縮されたメディアコンテンツを提供できます。
* 背景動画をユーザーに提示する Web アプリケーションは、ユーザーの設定に基づいて、代わりに背景画像を
使用することを選択できます。
## NavigatorNetworkInformation インターフェイス
NetworkInformation インターフェイスは、
NetworkInformationSaveData をミックスインすることで saveData へのアクセスを公開します。
interface mixin NetworkInformationSaveData {
[SameObject] readonly attribute boolean saveData;
};
NetworkInformation includes NetworkInformationSaveData;
### saveData 属性
saveData 属性は、取得時に、ユーザーがユーザーエージェントに対してデータ使用量を削減するモードを
要求している場合は `true` を返し、それ以外の場合は `false` を返します。
ユーザーエージェントによって利用可能にされている場合、ユーザーは、高いデータ転送コスト、 低速な接続速度、またはその他の理由により、そのような設定を有効にすることがあります。
####Save-Data リクエストヘッダーフィールド
SaveData リクエストヘッダーは Client Hint [[CLIENT-HINTS]] です。このヘッダーの値は、
ユーザーエージェントがデータ使用量の削減を優先することを示す `token` を含む `sh-list`
[[STRUCTURED-HEADERS]] です。
Save-Data = sh-list
この仕様は "`on`" `token` 値を定義します。これは、データ使用量削減モードへの明示的なユーザーの
オプトインを示すシグナルとして使用されます(すなわち saveData の値が `true` の場合)。また、
オリジンに伝達されると、その設定を尊重した代替コンテンツ、たとえばより小さな画像および動画リソース、
代替マークアップなどを配信できるようにします。
リスト内に複数の競合するトークンがある場合、最後のトークンが優先されます。