recursal/MDN huggingface dataset:
Navigator.canShare()
====================

**安全なコンテキスト用:** この機能は一部またはすべての対応しているブラウザーにおいて、安全なコンテキスト (HTTPS) でのみ利用できます。

**`Navigator.canShare()`** はウェブ共有 API のメソッドで、同等の `navigator.share()` の呼び出しが成功するようであれば `true` を返します。

データが検証できない場合は、このメソッドは `false` を返します。データが無効になる理由としては、次のものがあります。

* `data` 引数が除外されているか、不明な値を持つプロパティしかない場合。ユーザーエージェントが認識できないプロパティは無視されることに注意してください。
* URL の形式が正しくない場合。
* ファイルが指定されているが、実装がファイル共有に対応していない場合。
* 指定したデータを共有すると、ユーザーエージェントから「敵対的な共有」と見なされる場合。

 ウェブ共有 API は web-share 権限ポリシーによって制限されています。
 **`canShare()`** メソッドは、その権限に対応しているが付与されていない場合、 `false` を返します。

構文
--


```js
canShare()
canShare(data)
```

### 引数

`data` 省略可

 テストする共有データを定義したオブジェクトです。
 通常、この呼び出しが `true` を返す場合、同じプロパティを持つオブジェクトが `navigator.share()` に渡されます。


 ユーザーエージェントが認識していないプロパティは無視されます。共有データは、ユーザーエージェントが理解しているプロパティに対してのみ評価されます。
 プロパティはすべて任意ですが、少なくともひとつの既知のデータプロパティを指定しなければ、このメソッドは `false` を返します。


使用可能な値は以下の通りです。

* `url`: 共有される URL を表す文字列。
* `text`: 共有されるテキストを表す文字列。
* `title`: 共有されるタイトルを表す文字列。
* `files`: 共有されるファイルを表す `File` オブジェクトの配列。

### 返値

指定した `data` が `Navigator.share()` で共有できる場合は `true` を、そうでない場合は `false` を返します。

例
-

### MDN URL の送信

この例では `navigator.canShare()` を使用して、指定されたデータが `navigator.share()` で共有できるかどうかを調べています。

#### HTML

HTML は、テストの結果を表示するための段落を作成するだけです。


```html
<p class="result"></p>
```


#### JavaScript


```js
let shareData = {
  title: "MDN",
  text: "Learn web development on MDN!",
  url: "https://developer.mozilla.org",
};

const resultPara = document.querySelector(".result");

if (!navigator.canShare) {
  resultPara.textContent = "navigator.canShare() not supported.";
} else if (navigator.canShare(shareData)) {
  resultPara.textContent =
    "navigator.canShare() supported. We can use navigator.share() to send the data.";
} else {
  resultPara.textContent = "Specified data cannot be shared.";
}
```


#### 結果

下記のボックスには、 `navigator.canShare()` がこのブラウザーで対応しているかどうか、対応している場合は `navigator.share()` を使用して指定したデータを共有できるかどうかが記載されているはずです。

### 機能の調査例

 このメソッドの機能は、特定のデータプロパティが有効で共有可能であるかどうかをテストします。
 単一の `data` プロパティで使用した場合、そのプロパティが有効で、プラットフォーム上で共有できる場合にのみ `true` を返します。

下記のコードは、あるデータプロパティが対応しているかどうかを確認する例です。


```js
// 対応していない可能性のある機能
let testShare = { someNewProperty: "Data to share" };

// 新しいキーを使用する複合データ
const shareData = {
  title: "MDN",
  text: "Learn web development on MDN!",
  url: "https://developer.mozilla.org",
  someNewProperty: "Data to share",
};

// 共有する前に、キーが有効で対応していることをテストします。
if (navigator.canShare(testShare)) {
  // navigator.share() を使用して 'shareData' を使用する
} else {
  // 新しいデータプロパティが共有できない場合の処理
}
```

仕様書
---

| Specification |
| --- |
| Web Share API # canshare-data-method |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連情報
----

* `navigator.share()`
Navigator: doNotTrack プロパティ
===========================

**非推奨:** この機能は非推奨になりました。まだ対応しているブラウザーがあるかもしれませんが、すでに関連するウェブ標準から削除されているか、削除の手続き中であるか、互換性のためだけに残されている可能性があります。使用を避け、できれば既存のコードは更新してください。このページの下部にある互換性一覧表を見て判断してください。この機能は突然動作しなくなる可能性があることに注意してください。

**`Navigator.doNotTrack`** プロパティは、ユーザーの Do Not Track 設定を返します。これは、ユーザーがウェブサイトと広告主に対して追跡しないよう要求しているかどうかを示します。

プロパティの値は HTTP の `DNT` ヘッダーの値、つまり、 "`1`", "`0`", "`unspecified`" の値を返します。

値
-

文字列または `null` です。

例
-


```js
console.log(navigator.doNotTrack);
// DNT が有効な場合は "1" です。追跡をオプトインした場合は "0" になります。それ以外は "unspecified" です。
```

仕様書
---

#### No specification found

No specification data found for `api.Navigator.doNotTrack`.  
Check for problems with this page or contribute a missing `spec_url` to mdn/browser-compat-data. Also make sure the specification is included in w3c/browser-specs.

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連情報
----

* `DNT` HTTP ヘッダー
Navigator: appName プロパティ
========================

**非推奨:** この機能は非推奨になりました。まだ対応しているブラウザーがあるかもしれませんが、すでに関連するウェブ標準から削除されているか、削除の手続き中であるか、互換性のためだけに残されている可能性があります。使用を避け、できれば既存のコードは更新してください。このページの下部にある互換性一覧表を見て判断してください。この機能は突然動作しなくなる可能性があることに注意してください。

**`Navigator.appName`** プロパティの値は、どのブラウザーでも常に "`Netscape`" です。このプロパティは互換性ためだけに維持されています。

**メモ:** このプロパティが実際のブラウザー名を返すことを期待しないでください。どのブラウザーもこのプロパティの値として "`Netscape`" を返します。

### 値

文字列 "`Netscape`" です。

仕様書
---

| Specification |
| --- |
| HTML Standard # dom-navigator-appname-dev |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連情報
----

* `Navigator.appCodeName`
* `Navigator.product`
Navigator: product プロパティ
========================

**非推奨:** この機能は非推奨になりました。まだ対応しているブラウザーがあるかもしれませんが、すでに関連するウェブ標準から削除されているか、削除の手続き中であるか、互換性のためだけに残されている可能性があります。使用を避け、できれば既存のコードは更新してください。このページの下部にある互換性一覧表を見て判断してください。この機能は突然動作しなくなる可能性があることに注意してください。

**`Navigator.product`** プロパティの値は、どのブラウザーでも常に "`Gecko`" です。このプロパティは互換性のためだけに維持されています。

**メモ:** このプロパティが実際の製品名を返すことを期待しないでください。どのブラウザーもこのプロパティの値として "`Gecko`" を返します。

### 値

文字列 "`Gecko`" です。

仕様書
---

| Specification |
| --- |
| HTML Standard # dom-navigator-product-dev |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連情報
----

* `Navigator.appCodeName`
* `Navigator.appName`
Navigator: taintEnabled() メソッド
==============================

**非推奨:** この機能は非推奨になりました。まだ対応しているブラウザーがあるかもしれませんが、すでに関連するウェブ標準から削除されているか、削除の手続き中であるか、互換性のためだけに残されている可能性があります。使用を避け、できれば既存のコードは更新してください。このページの下部にある互換性一覧表を見て判断してください。この機能は突然動作しなくなる可能性があることに注意してください。

**`Navigator.taintEnabled()`** メソッドは常に `false` を返します。

Tainting は JavaScript 1.2 で用いられていたセキュリティの方式です。削除されてからだいぶ経ちました。このメソッドは非常に古いスクリプトとの互換性を保つためだけに残されています。

構文
--


```js
taintEnabled()
```

### 引数

なし

### 返値

常に `false` を返します。

仕様書
---

| Specification |
| --- |
| HTML Standard # dom-navigator-taintenabled |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連情報
----

* `Navigator`
Navigator: buildID プロパティ
========================

**非標準:** この機能は標準ではなく、標準化の予定もありません。公開されているウェブサイトには使用しないでください。ユーザーによっては使用できないことがあります。実装ごとに大きな差があることもあり、将来は振る舞いが変わるかもしれません。

ブラウザーのビルド識別子を返します。最近のブラウザーでは、このプロパティはプライバシーの目的で、固定のタイムスタンプを返すようになり、例えば Firefox 64 系列では `20181001000000` となります。

### 値

アプリケーションのビルド識別子を表す文字列です。 ビルド識別子は `YYYYMMDDHHMMSS` の形式です。

例
-


```js
console.log(navigator.buildID);
```

仕様書
---

どの公的な標準にも属していません。

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.
Navigator: activeVRDisplays プロパティ
=================================

**安全なコンテキスト用:** この機能は一部またはすべての対応しているブラウザーにおいて、安全なコンテキスト (HTTPS) でのみ利用できます。

**非推奨:** この機能は非推奨になりました。まだ対応しているブラウザーがあるかもしれませんが、すでに関連するウェブ標準から削除されているか、削除の手続き中であるか、互換性のためだけに残されている可能性があります。使用を避け、できれば既存のコードは更新してください。このページの下部にある互換性一覧表を見て判断してください。この機能は突然動作しなくなる可能性があることに注意してください。

**非標準:** この機能は標準ではなく、標準化の予定もありません。公開されているウェブサイトには使用しないでください。ユーザーによっては使用できないことがあります。実装ごとに大きな差があることもあり、将来は振る舞いが変わるかもしれません。

**`activeVRDisplays`** は `Navigator` インターフェイスの読み取り専用プロパティで、すべての `VRDisplay` オブジェクトのうち、現在表示中 (`VRDisplay.ispresenting` が `true`) のものを含んだ配列を返します。

**メモ:** このプロパティは、古い WebVR API の一部でした。 WebXR Device APIに置き換えられました。

値
-

`VRDisplay` オブジェクトの配列です。

例
-


```js
function showActive() {
  const displays = navigator.activeVRDisplays;
  for (const display of displays) {
    console.log(`Display ${display.displayId} is active.`);
  }
}
```

仕様書
---

このインターフェイスは、古い WebVR API の一部でしたが、 WebXR Device API に置き換えられました。標準化される予定はありません。

すべてのブラウザーが新しい WebXR API を実装するまで、すべてのブラウザーで動作する WebXR アプリケーションを開発するには、A-Frame や Babylon.js や Three.js などのフレームワークを利用したり、ポリフィルを利用したりすると良いでしょう [1]。

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連情報
----

* WebVR API
Navigator: webdriver プロパティ
==========================

**`webdriver`** は `navigator` インターフェイスの読み取り専用プロパティで、ユーザーエージェントが自動制御されているかどうかを示します。

これは協調動作をするユーザーエージェントが WebDriver によって制御されていることを文書に伝えるための標準の方法を定めており、例えば自動制御の間は異なるコードを実行したりすることができます。

次のような場合に `navigator.webdriver` プロパティが true になります。

Chrome

`--enable-automation` または `--headless` フラグまたは `--remote-debugging-port` が使用されているとき。

Firefox

設定の `marionette.enabled` または `--marionette` フラグが渡されたとき。

### 値

A `Boolean`

仕様書
---

| Specification |
| --- |
| WebDriver # dfn-webdriver |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.
Navigator: deviceMemory プロパティ
=============================

**安全なコンテキスト用:** この機能は一部またはすべての対応しているブラウザーにおいて、安全なコンテキスト (HTTPS) でのみ利用できます。

**Experimental:** **これは実験的な機能です。**  
本番で使用する前にブラウザー互換性一覧表をチェックしてください。

**`deviceMemory`** は `Navigator` インターフェイスの読み取り専用プロパティで、端末のおよそのメモリ量をギガバイト単位で返します。

報告される値は、フィンガープリントを抑制するために概数になっています。この値は、最も近い 2 の累乗に切り捨て、その値を 1024 で割ることによって概算されています。その後、メモリーが非常に少ない、または非常に多い端末の所有者のプライバシーを保護するため、下限と上限の範囲内に丸められます。

### 値

浮動小数点値で `0.25`, `0.5`, `1`, `2`, `4`, `8` のうちのいずれかです。

例
-


```js
const memory = navigator.deviceMemory;
console.log(`この端末には ${memory}GiB 以上の RAM があります。`);
```

仕様書
---

| Specification |
| --- |
| Device Memory # sec-device-memory-js-api |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連情報
----

* 端末メモリー API
* HTTP の `Device-Memory` ヘッダー
Navigator: hardwareConcurrency プロパティ
====================================

**`navigator.hardwareConcurrency`** は読み取り専用のプロパティで、ユーザーのコンピューター上でスレッドを実行するために使用可能な論理プロセッサー数を返します。

値
-

論理プロセッサーのコア数を示す数値です。

現代のコンピューターは CPU に複数の物理プロセッサーのコアがあります (通常は 2 コアか 4 コア)。しかし、通常それぞれの物理コアは高度なスケジューリング技術を用いて、一度に複数スレッドを実行することができます。 したがって、例えば 4 コアの CPU は 8 個の**論理プロセッサーコア**を提供することができます。論理プロセッサーのコア数は、コンテキスト切り替えを必要とせずに一度に効果的に実行できるスレッドの数を測定するために利用できます。

しかしながら、ブラウザーはより少ない論理コア数を報告することを選択することで、一度に実行できる `Worker` の数をより正確に表すことがあります。したがって、この数値をユーザーのシステムのコア数の絶対的な測定値として扱わないようにしてください。

例
-

この例では、ブラウザーが報告した論理プロセッサーごとに `Worker` が 1 つ作られ、新しいワーカーへの参照と、そのワーカーをまだ使用しているかどうかを示す論理値の値を含むレコードを作っています。これらのオブジェクトは後で使用するために配列に順々に格納されています。後でリクエストを処理するために使うワーカーのプールを作っています。


```js
let workerList = [];

for (let i = 0; i < window.navigator.hardwareConcurrency; i++) {
  let newWorker = {
    worker: new Worker("cpuworker.js"),
    inUse: false,
  };
  workerList.push(newWorker);
}
```

仕様書
---

| Specification |
| --- |
| HTML Standard # dom-navigator-hardwareconcurrency-dev |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連情報
----

* `Navigator`
* `WorkerNavigator`
SpeechSynthesisErrorEvent: SpeechSynthesisErrorEvent() コンストラクター
===============================================================

**`SpeechSynthesisErrorEvent()`** コンストラクターは新しい `SpeechSynthesisErrorEvent` オブジェクトを生成します。

**メモ:** ウェブ開発者は、通常このコンストラクターを呼び出す必要はありません。イベントを発生させるときに、ブラウザー自身がこれらのオブジェクトを生成するからです。

構文
--


```js
new SpeechSynthesisErrorEvent(type, options)
```

### 引数

`type`

 文字列で、イベント名を指定します。
 大文字小文字を区別し、ブラウザーは `error` を設定します。


`options`

オブジェクトで、 *`SpeechSynthesisEvent()` で定義されているプロパティに加え*、以下のプロパティを持つことができます。

`error`

エラーの理由を持つ文字列。使用可能な値は以下のとおりです。

`canceled`

`SpeechSynthesis.cancel` (en-US) メソッドが、 `SpeechSynthesisUtterance` が発話開始前にキューから除去されたために呼び出されました。

`interrupted`

`SpeechSynthesis.cancel` (en-US) メソッドが、 `SpeechSynthesisUtterance` が発話開始後に中断されたために呼び出されました。

`audio-busy`

ユーザーエージェントがオーディオ出力機器にアクセスできなかったため、この時刻に処理を完全に完了できませんでした（例えば、ユーザーは別のアプリケーションを閉じてこの問題を解決する必要ががある場合など）。

`audio-hardware`

ユーザーエージェントがオーディオ出力機器を特定できなかったため、操作を完了できませんでした（例えば、ユーザーはスピーカーを接続したり、システム設定を行ったりする必要があります）。

`network`

必要なネットワーク通信に失敗したため、今回の処理を完全に実行できませんでした。

`synthesis-unavailable`

この例では、利用できる合成エンジンがないため、処理を完了できませんでした（例えば、ユーザーは合成エンジンをインストールまたは設定する必要があります）。

`synthesis-failed`

合成エンジンがエラーを発生したため、処理が実行できませんでした。

`language-unavailable`

`SpeechSynthesisUtterance.lang` で設定するには、適切な音声が利用できませんでした。 `window.speechSynthesis.getVoices()` (en-US) メソッドを使用して、ユーザーのブラウザーで対応している音声と言語を判別することができます。

`voice-unavailable`

`SpeechSynthesisUtterance.voice` に設定した音声は利用できませんでした。

`text-too-long`

`SpeechSynthesisUtterance.text` 属性のコンテンツが長すぎて合成できませんでした。

`invalid-argument`

`SpeechSynthesisUtterance.rate`、`SpeechSynthesisUtterance.pitch`、`SpeechSynthesisUtterance.volume` のいずれかのプロパティの内容が無効でした。

`not-allowed`

処理を開始することが許可されませんでした。


### 返値

新しい `SpeechSynthesisErrorEvent` オブジェクトです。

仕様書
---

| Specification |
| --- |
| Web Speech API # dom-speechsynthesiserrorevent-speechsynthesiserrorevent |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連情報
----

* `SpeechSynthesisEvent`
SpeechSynthesisErrorEvent: error プロパティ
======================================

**`error`** は `SpeechSynthesisErrorEvent` インターフェイスのプロパティで、音声合成の失敗を示すエラーコードを返します。

値
-

エラーの理由を持つ文字列。使用可能な値は以下のとおりです。

`canceled`

`SpeechSynthesis.cancel` (en-US) メソッドが、 `SpeechSynthesisUtterance` が発話開始前にキューから除去されたために呼び出されました。

`interrupted`

`SpeechSynthesis.cancel` (en-US) メソッドが、 `SpeechSynthesisUtterance` が発話開始後に中断されたために呼び出されました。

`audio-busy`

ユーザーエージェントがオーディオ出力機器にアクセスできなかったため、この時刻に処理を完全に完了できませんでした（例えば、ユーザーは別のアプリケーションを閉じてこの問題を解決する必要ががある場合など）。

`audio-hardware`

ユーザーエージェントがオーディオ出力機器を特定できなかったため、操作を完了できませんでした（例えば、ユーザーはスピーカーを接続したり、システム設定を行ったりする必要があります）。

`network`

必要なネットワーク通信に失敗したため、今回の処理を完全に実行できませんでした。

`synthesis-unavailable`

この例では、利用できる合成エンジンがないため、処理を完了できませんでした（例えば、ユーザーは合成エンジンをインストールまたは設定する必要があります）。

`synthesis-failed`

合成エンジンがエラーを発生したため、処理が実行できませんでした。

`language-unavailable`

`SpeechSynthesisUtterance.lang` で設定するには、適切な音声が利用できませんでした。 `window.speechSynthesis.getVoices()` (en-US) メソッドを使用して、ユーザーのブラウザーで対応している音声と言語を判別することができます。

`voice-unavailable`

`SpeechSynthesisUtterance.voice` に設定した音声は利用できませんでした。

`text-too-long`

`SpeechSynthesisUtterance.text` 属性のコンテンツが長すぎて合成できませんでした。

`invalid-argument`

`SpeechSynthesisUtterance.rate`、`SpeechSynthesisUtterance.pitch`、`SpeechSynthesisUtterance.volume` のいずれかのプロパティの内容が無効でした。

`not-allowed`

処理を開始することが許可されませんでした。

例
-


```js
const synth = window.speechSynthesis;

const inputForm = document.querySelector("form");
const inputTxt = document.querySelector("input");
const voiceSelect = document.querySelector("select");

const voices = synth.getVoices();

// ...

inputForm.onsubmit = (event) => {
  event.preventDefault();

  const utterThis = new SpeechSynthesisUtterance(inputTxt.value);
  const selectedOption =
    voiceSelect.selectedOptions[0].getAttribute("data-name");
  for (let i = 0; i < voices.length; i++) {
    if (voices[i].name === selectedOption) {
      utterThis.voice = voices[i];
    }
  }

  synth.speak(utterThis);

  utterThis.onerror = (event) => {
    console.error(
      `An error has occurred with the speech synthesis: ${event.error}`,
    );
  };

  inputTxt.blur();
};
```

仕様書
---

| Specification |
| --- |
| Web Speech API # dom-speechsynthesiserrorevent-error |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連情報
----

* ウェブ音声 API
AudioDestinationNode.maxChannelCount
====================================

`AudioDestinationNode`インターフェースの`maxchannelCount`プロパティは、`unsigned long`で表された物理的なデバイスが扱えるチャンネルの最大数です。

`AudioNode.channelCount`プロパティは 0 からこの値の間(両端を含む)です。もし`OfflineAudioContext`のように`maxChannelCount`が 0 ならば、チャンネルの数は変えられません。

構文
--


```js
var audioCtx = new AudioContext();
var myDestination = audioCtx.destination;
myDestination.maxChannelCount = 2;
```

### 値

`unsigned long`

例
-

次の例は単純な設定です。`AudioDestinationNode`の`maxChannelCount`を 2 にしています。


```js
var audioCtx = new AudioContext();
var source = audioCtx.createMediaElementSource(myMediaElement);
source.connect(gainNode);
audioCtx.destination.maxChannelCount = 2;
gainNode.connect(audioCtx.destination);
```


完全な実装は、MDN Web Audio のVoice-change-o-maticやViolent Thereminのようなサンプルを参考にしてください。

使用
--

| Specification |
| --- |
| Web Audio API # dom-audiodestinationnode-maxchannelcount |

ブラウザ互換性
-------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

参考
--

* Using the Web Audio API (en-US)
CookieChangeEvent: CookieChangeEvent() コンストラクター
===============================================

**安全なコンテキスト用:** この機能は一部またはすべての対応しているブラウザーにおいて、安全なコンテキスト (HTTPS) でのみ利用できます。

**Experimental:** **これは実験的な機能です。**  
本番で使用する前にブラウザー互換性一覧表をチェックしてください。

**`CookieChangeEvent()`** コンストラクターは、`CookieStore.onchange()` に渡されるイベント型である新しい `CookieChangeEvent` オブジェクトを生成します。このコンストラクターは、変更イベントが発生するとブラウザーにより呼ばれます。

**メモ:** このコンストラクターは、通常は製品のウェブサイトでは必要ありません。主な使用法は、このイベントのインスタンスが必要なテストです。

構文
--


```js
new CookieChangeEvent(type)
new CookieChangeEvent(type, options)
```

### 引数

`type`

イベントの名前を表す文字列です。大文字と小文字は区別され、ブラウザーは常に `cookiechange` に設定します。

`options` 省略可

*`Event()` で定義されたプロパティに加え*、以下のプロパティを持ちうるオブジェクトです。

`changed`

変更された Cookie が格納された配列です。

`deleted`

削除された Cookie が格納された配列です。


### 返値

新しい `CookieChangeEvent` オブジェクトです。

仕様書
---

| Specification |
| --- |
| Cookie Store API # dom-cookiechangeevent-cookiechangeevent |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.
CookieChangeEvent: changed プロパティ
================================

**安全なコンテキスト用:** この機能は一部またはすべての対応しているブラウザーにおいて、安全なコンテキスト (HTTPS) でのみ利用できます。

**Experimental:** **これは実験的な機能です。**  
本番で使用する前にブラウザー互換性一覧表をチェックしてください。

`CookieChangeEvent` インターフェイスの読み取り専用プロパティ **`changed`** は、変更された Cookie の配列を返します。

値
-

オブジェクトの配列で、変更された Cookie が格納されています。それぞれのオブジェクトは以下のプロパティを持ちます。

`name`

Cookie の名前を表す文字列です。

`value`

Cookie の値を表す文字列です。

`domain`

Cookie のドメインを表す文字列です。

`path`

Cookie のパスを表す文字列です。

`expires`

ミリ秒単位の UNIX 時間で与えられるタイムスタンプで、Cookie の有効期限を表します。

`secure`

Cookie がセキュアコンテキスト (HTTP ではなく HTTPS) のサイト由来かを表す `boolean` です。

`sameSite`

以下の `SameSite` の値のいずれかです。

`"strict"`

Cookie はファーストパーティコンテキストでのみ送信され、サードパーティのウェブサイトから発信されたリクエストでは送信されません。

`"lax"`

Cookie は通常のクロスサイトサブリクエスト (たとえば、サードパーティサイトへの画像やフレームの読み込み) では送信されませんが、ユーザーが発信元のサイト内へ移動するとき (すなわち、リンクをたどるとき) は送信されます。

`"none"`

Cookie はすべてのコンテキストで送信されます。


例
-

この例では、Cookie が設定されると、イベントリスナーがコンソールに `changed` プロパティを記録します。この配列の最初の要素には、今設定されたばかりの Cookie を表すオブジェクトが格納されています。


```js
cookieStore.addEventListener("change", (event) => {
  console.log(event.changed[0]);
});

const one_day = 24 \* 60 \* 60 \* 1000;
cookieStore.set({
  name: "cookie1",
  value: "cookie1-value",
  expires: Date.now() + one_day,
  domain: "example.com",
});
```

仕様書
---

| Specification |
| --- |
| Cookie Store API # dom-cookiechangeevent-changed |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.
CookieChangeEvent: deleted プロパティ
================================

**安全なコンテキスト用:** この機能は一部またはすべての対応しているブラウザーにおいて、安全なコンテキスト (HTTPS) でのみ利用できます。

**Experimental:** **これは実験的な機能です。**  
本番で使用する前にブラウザー互換性一覧表をチェックしてください。

`CookieChangeEvent` インターフェイスの読み取り専用プロパティ **`deleted`** は、与えられた `CookieChangeEvent` のインスタンスで削除された Cookie の配列を返します。

値
-

オブジェクトの配列で、削除された Cookie が格納されています。それぞれのオブジェクトは以下のプロパティを持ちます。

`name`

Cookie の名前を表す文字列です。

`value`

Cookie の値を表す文字列です。

`domain`

Cookie のドメインを表す文字列です。

`path`

Cookie のパスを表す文字列です。

`expires`

ミリ秒単位の UNIX 時間で与えられるタイムスタンプで、Cookie の有効期限を表します。

`secure`

Cookie がセキュアコンテキスト (HTTP ではなく HTTPS) のサイト由来かを表す `boolean` です。

`sameSite`

以下の `SameSite` の値のいずれかです。

`"strict"`

Cookie はファーストパーティコンテキストでのみ送信され、サードパーティのウェブサイトから発信されたリクエストでは送信されません。

`"lax"`

Cookie は通常のクロスサイトサブリクエスト (たとえば、サードパーティサイトへの画像やフレームの読み込み) では送信されませんが、ユーザーが発信元のサイト内へ移動するとき (すなわち、リンクをたどるとき) は送信されます。

`"none"`

Cookie はすべてのコンテキストで送信されます。


例
-

この例では、Cookie が削除されると、イベントリスナーが `CookieChangeEvent.deleted` プロパティの最初の要素をコンソールに記録します。これには、今削除されたばかりの Cookie を表すオブジェクトが格納されています。


```js
cookieStore.addEventListener("change", (event) => {
  console.log(event.deleted[0]);
});
```

仕様書
---

| Specification |
| --- |
| Cookie Store API # dom-cookiechangeevent-deleted |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.
TextTrackCueList: length プロパティ
==============================

**`length`** は `TextTrackCueList` インターフェイスの読み取り専用プロパティで、リスト中のキューの数を返します。

値
-

`unsigned long` で、リスト中のキューの数を返します。

例
-

`TextTrack.cues` プロパティは、特定のトラックの現在のキューを格納した `TextTrackCueList` を返します。下記の WebVTT トラックを使用すると、`length` の値は 5 になります。
```

WEBVTT

first
00:00:00.000 --> 00:00:00.999  line:80%
Hildy!

second
00:00:01.000 --> 00:00:01.499 line:80%
How are you?

third
00:00:01.500 --> 00:00:02.999 line:80%
Tell me, is the ruler of the universe in?

fourth
00:00:03.000 --> 00:00:04.299 line:80%
Yes, they're in - in a bad humor

fifth
00:00:04.300 --> 00:00:06.000 line:80%
Somebody must've stolen the crown jewels
```



```js
const video = document.getElementById("video");
video.onplay = () => {
  console.log(video.textTracks[0].cues.length); // 5
};
```

仕様書
---

| Specification |
| --- |
| HTML Standard # dom-texttrackcuelist-length |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.
TextTrackCueList: getCueById() メソッド
===================================

**`getCueById()`** は `TextTrackCueList` インターフェイスのメソッドで、`TextTrackCueList` オブジェクトが表すリストの中で、識別子が `id` の値と一致する最初の `VTTCue` を返します。

構文
--


```js
getCueById(id)
```

### 引数

`id`

キューの識別子の文字列です。

### 返値

`VTTCue` オブジェクトです。

例
-

`TextTrack.cues` プロパティは、その具体的なトラックの現在のキューを格納した `TextTrackCueList` を返します。`cues.getCueById("second")` を呼び出すと、`VTTCue` のうち ID が "second" のものを返します。
```

WEBVTT

first
00:00:00.000 --> 00:00:00.999 line:80%
Hildy!

second
00:00:01.000 --> 00:00:01.499 line:80%
How are you?
```



```js
const video = document.getElementById("video");
video.onplay = () => {
  console.log(video.textTracks[0].cues.getCueById("second")); // a VTTCue object;
};
```

仕様書
---

| Specification |
| --- |
| HTML Standard # dom-texttrackcuelist-getcuebyid |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.
VTTCue: text プロパティ
==================

Baseline Widely available
-------------------------

This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020.

* Learn more
* See full compatibility
* Report feedback
**`text`** は `VTTCue` インターフェイスのプロパティで、このキューのテキストコンテンツを表します。

値
-

キューの生のテキストを保持する文字列です。

例
-

次の例では、新しい `VTTCue` が作成され、 `size` の値には文字列 `"new cue value"` が設定されます。そして、その値がコンソールに出力されます。


```js
let video = document.querySelector("video");
let track = video.addTextTrack("captions", "Captions", "en");
track.mode = "showing";

let cue1 = new VTTCue(0, 0.9, "Hildy!");
cue1.text = "new cue value";
console.log(cue1.text); // 'new cue value';

track.addCue(cue1);
```

仕様書
---

| Specification |
| --- |
| WebVTT: The Web Video Text Tracks Format # dom-vttcue-text |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.
VTTCue: size プロパティ
==================

Baseline Widely available
-------------------------

This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020.

* Learn more
* See full compatibility
* Report feedback
**`size`** は `VTTCue` インターフェイスのプロパティで、キューの大きさを動画の大きさのパーセント値で表します。

値
-

数値で、キューの大きさを動画の大きさのパーセント値で表します。

例
-

次の例では、新しい `VTTCue` が作成され、 `size` の値が `50` に設定されます。この値はコンソールに出力されます。


```js
let video = document.querySelector("video");
let track = video.addTextTrack("captions", "Captions", "en");
track.mode = "showing";

let cue1 = new VTTCue(0, 0.9, "Hildy!");
cue1.size = 50;
console.log(cue1.size);

track.addCue(cue1);
```

仕様書
---

| Specification |
| --- |
| WebVTT: The Web Video Text Tracks Format # dom-vttcue-size |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.