recursal/MDN huggingface dataset:
FileSystemSyncAccessHandle
==========================

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

File System Access API の **`FileSystemSyncAccessHandle`** インターフェイスは、ファイルシステムのエントリーを扱う同期式のハンドルを表します。ファイルの読み書きにおける同期式であるという性質は、WebAssembly などの非同期操作が高いオーバーヘッドに繋がる状況における重要なメソッドのパフォーマンスを高めることができます。

このクラスは、それ用の Web Workers 内でオリジンプライベートファイルシステムにあるファイルを操作するときのみアクセスできます。

このインターフェイスは `FileSystemFileHandle.createSyncAccessHandle()` メソッド経由でアクセスされます。

インスタンスプロパティ
-----------

なし

インスタンスメソッド
----------

`close()`

開かれている同期式ファイルハンドルを閉じます。これ以降操作をできなくし、ファイルハンドルに対応するファイルにかけた排他的ロックを解除します。

`flush()`

ハンドルに対応するファイルに対し `write()` メソッドにより行われたすべての変更をディスクに保存します。

`getSize()`

ハンドルに対応するファイルのサイズをバイト単位で返します。

`read()`

ハンドルに対応するファイルの内容を指定のバッファーに読み込みます。オフセットを指定することもできます。

`truncate()`

ハンドルに対応するファイルのサイズを指定のバイト数にします。

`write()`

指定のバッファーの内容をハンドルに対応するファイルに書き込みます。オフセットを指定することもできます。

例
-

以下の非同期のイベントハンドラー関数は、Web Worker の中にあります。メインスレッドからメッセージを受信すると、以下の動作をします。

* 同期式ファイルアクセスハンドルを作成します。
* ファイルのサイズを取得し、格納用の `ArrayBuffer` を作成します。
* ファイルの内容をバッファーに読み込みます。
* メッセージをエンコードし、ファイルの終端に書き込みます。
* 変更をディスクに書き込み、アクセスハンドルを閉じます。


```js
onmessage = async (e) => {
  // メインスクリプトからの処理対象のメッセージを取得する
  const message = e.data;

  // draft ファイルのハンドルを取得する
  const root = await navigator.storage.getDirectory();
  const draftHandle = await root.getFileHandle("draft.txt", { create: true });
  // 同期式アクセスハンドルを取得する
  const accessHandle = await draftHandle.createSyncAccessHandle();

  // ファイルのサイズを得る
  const fileSize = accessHandle.getSize();
  // ファイルの内容をバッファーに読み込む
  const buffer = new DataView(new ArrayBuffer(fileSize));
  const readBuffer = accessHandle.read(buffer, { at: 0 });

  // メッセージをファイルの終端に書き込む
  const encoder = new TextEncoder();
  const encodedMessage = encoder.encode(message);
  const writeBuffer = accessHandle.write(encodedMessage, { at: readBuffer });

  // 変更をディスクに書き込む
  accessHandle.flush();

  // 完了したら、常に FileSystemSyncAccessHandle を閉じる
  accessHandle.close();
};
```


**メモ:** 仕様書の以前のバージョンでは、`close()`・`flush()`・`getSize()`・`truncate()` は誤って非同期のメソッドとされていました。これは現在は変更されていますが、まだ非同期バージョンをサポートしているブラウザーもあります。

仕様書
---

| Specification |
| --- |
| File System Standard # api-filesystemsyncaccesshandle |

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

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

関連情報
----

* File System Access API
* The File System Access API: simplifying access to local files
AuthenticatorAssertionResponse
==============================

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

**`AuthenticatorAssertionResponse`** は Web Authentication API のインターフェイスで、 `CredentialsContainer.get()` (en-US) に `PublicKeyCredential` を渡すと返されます。そして、キーペアを持ち、認証付きリクエストが有効で承認されていることをサービスに証明します。

このインターフェイスは `AuthenticatorResponse` を継承しています。

**メモ:** このインターフェイスは最上位のコンテキストに限定されています。 `<iframe>` 要素の中で使用しても、何も効果がありません。

プロパティ
-----

`AuthenticatorAssertionResponse.clientDataJSON` 安全なコンテキスト用読取専用 

認証のためのクライアントデータで、オリジンやチャレンジです。 `clientDataJSON` プロパティは `AuthenticatorResponse` から継承しています。

`AuthenticatorAssertionResponse.authenticatorData` (en-US) 安全なコンテキスト用読取専用 

`ArrayBuffer` で、認証機器からの情報、例えば Relying Party ID Hash (rpIdHash)、証明カウンター、ユーザー存在テスト、ユーザー検証フラグ、その他の認証機器によって処理される拡張情報が入ります。

`AuthenticatorAssertionResponse.signature` (en-US) 安全なコンテキスト用読取専用 

`AuthenticatorAssertionResponse.authenticatorData` (en-US) および `AuthenticatorResponse.clientDataJSON` (en-US) に関するアサーション署名です。アサーション署名は `navigator.credentials.create()` の呼び出しで生成された鍵ペアの秘密鍵によって作成され、同じ鍵ペアの公開鍵によって検証されます。

`AuthenticatorAssertionResponse.userHandle` (en-US) 安全なコンテキスト用読取専用 

`ArrayBuffer` で、非透過的なユーザー識別子が入ります。

メソッド
----

なし。

例
-


```js
var options = {
  challenge: new Uint8Array([
    /\* bytes sent from the server \*/
  ]),
};

navigator.credentials
  .get({ publicKey: options })
  .then(function (credentialInfoAssertion) {
    var assertionResponse = credentialInfoAssertion.response;
    // Do something specific with the response

    // send assertion response back to the server
    // to proceed with the control of the credential
  })
  .catch(function (err) {
    console.error(err);
  });
```

仕様書
---

| Specification |
| --- |
| Web Authentication: An API for accessing Public Key Credentials - Level 3 # iface-authenticatorassertionresponse |

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

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

関連情報
----

* `AuthenticatorAttestationResponse`: 新しい資格情報を生成する際に得られる種類のレスポンスのインターフェイス
* `AuthenticatorResponse`: 親インターフェイス
HTMLMapElement
==============

**`HTMLMapElement`** インターフェイスは、（継承によって利用できる、通常のオブジェクトである `HTMLElement` インターフェイスのもの以外に）map 要素のレイアウトと表示を操作するための特別なプロパティとメソッドを提供します。

EventTarget

Node

Element

HTMLElement

HTMLMapElementプロパティ
-----

*親である `HTMLElement` から継承したプロパティがあります。*

`HTMLMapElement.name` (en-US)

他のコンテキストを参照するための `<map>` 要素を表します。`id` 属性が設定された場合、これは同じ値である必要があります。`null` や空文字列にすることはできません。

`HTMLMapElement.areas` 読取専用 

生きた `HTMLCollection` で、この `<map>` に関連付けられた `<area>` 要素を表します。

メソッド
----

*固有のメソッドはありません。親である `HTMLElement` から継承したメソッドがあります。*

仕様書
---

| Specification |
| --- |
| HTML Standard # htmlmapelement |

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

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

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

* HTML element implementing this interface: `<map>`.
HTMLBodyElement
===============

**`HTMLBodyElement`** インターフェイスは、（通常の `HTMLElement` インターフェイスから継承されるもの以外に） `<body>` 要素を操作するための特別なプロパティとメソッドを提供します。

EventTarget

Node

Element

HTMLElement

HTMLBodyElementインスタンスプロパティ
-----------

*親インターフェイスである `HTMLElement` からプロパティを継承しています。*

`HTMLBodyElement.aLink` 
非推奨

文字列で、アクティブなハイパーリンクの色を表します。

`HTMLBodyElement.background` 
非推奨

文字列で、背景画像リソースの場所の説明を表します。これは URI ではないことに注意してください。ただし、一部のブラウザーの一部の古いバージョンはそれを想定しています。

`HTMLBodyElement.bgColor` 
非推奨

文字列で、ドキュメントの背景色を表します。

`HTMLBodyElement.link` 
非推奨

文字列で、未訪問のリンクの色を表します。

`HTMLBodyElement.text` 
非推奨

文字列で、テキストの前景色を表します。

`HTMLBodyElement.vLink` 
非推奨

文字列で、訪問済みのリンクの色を表します。

インスタンスメソッド
----------

*固有のメソッドはありません。 インターフェイスである `HTMLElement` からメソッドを継承しています。*

イベントハンドラー
---------

`HTMLElement` のイベントを継承しています。

以下の `Window` の `onXYZ` イベントハンドラープロパティも、 `window` オブジェクトをターゲットとした別名として利用可能です。しかし、これらは `HTMLBodyElement` ではなく、 `window` オブジェクトで直接待ち受けすることをお勧めします。

**メモ:** `addEventListener()` を `HTMLBodyElement` に対して使用しても、以下に示す `onXYZ` イベントハンドラーを動作させることができません。代わりに `window` オブジェクトのイベントを待ち受けしてください。

`HTMLBodyElement.onafterprint`

文書の印刷を開始した後、または印刷プレビューが閉じられた後に発行されます。

`HTMLBodyElement.onbeforeprint`

文書を印刷しようとしているとき、または印刷のためにプレビュしようとしているときに発行されます。

`HTMLBodyElement.onbeforeunload`

ウィンドウ、文書、およびそのリソースがアンロードされようとしているときに発行されます。

`HTMLBodyElement.ongamepadconnected`

ゲームパッドが接続されたことをブラウザーが検出したとき、またはゲームパッドのボタン／軸が初めて使用されたときに発行されます。

`HTMLBodyElement.ongamepaddisconnected`

ゲームパッドが切断されたことをブラウザーが検出したときに発行されます。

`HTMLBodyElement.onhashchange`

URLのフラグメント識別子（URL の `#` で始まる部分とそれに続く部分）が変更されたときに発行されます。

`HTMLBodyElement.onlanguagechange`

ユーザーの優先言語が変更されたときに発行されます。

`HTMLBodyElement.onmessage`

ウィンドウがメッセージを受け取ったときに発行されます。例えば、他の閲覧コンテキストから `Window.postMessage()` を呼び出した場合などに発行されます。

`HTMLBodyElement.onmessageerror`

ウィンドウがデシリアライズできないメッセージを受信したときに発行されます。

`HTMLBodyElement.onoffline`

ブラウザーがネットワークにアクセスできなくなり、 `Navigator.onLine` の値が `false` に切り替わったときに発行されます。

`HTMLBodyElement.ononline`

ブラウザーがネットワークにアクセスし、 `Navigator.onLine` の値が `true` に切り替わったときに発行されます。

`HTMLBodyElement.onpagehide`

ブラウザーがセッションの履歴から別のページを表示する過程で、現在のページを非表示にしたときに発行されます。

`HTMLBodyElement.onpageshow`

ブラウザーがナビゲーションによってウィンドウの文書を表示したときに発行されます。

`HTMLBodyElement.onpopstate`

ユーザーがセッション履歴を操作している間に、アクティブな履歴項目が変更されたときに発行されます。

`HTMLBodyElement.onrejectionhandled`

JavaScript のプロミス (`Promise`) が拒否され、拒否の処理が行われたときに発行されます。

`HTMLBodyElement.onstorage`

他の文書のコンテキストでストレージ領域 (`localStorage`) が変更されたときに発行されます。

`HTMLBodyElement.onunhandledrejection`

プロミス (`Promise`) が拒否されたが、拒否の処理が行われなかった場合に発行されます。

`HTMLBodyElement.onunload`

ドキュメントがアンロードされるときに発行されます。

仕様書
---

| Specification |
| --- |
| HTML Standard # htmlbodyelement |

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

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

関連情報
----

* このインターフェイスを実装している HTML 要素: `<body>`
HTMLDataListElement
===================

**`HTMLDataListElement`** インターフェイスは、（継承元である `HTMLElement` オブジェクトインターフェイスからの継承によって利用できるもの以外に） `<datalist>` 要素およびその内容を操作するための特別なプロパティを提供します。

EventTarget

Node

Element

HTMLElement

HTMLDataListElementインスタンスプロパティ
-----------

*親である `HTMLElement` から継承したプロパティがあります*。

`HTMLDataListElement.options` 読取専用 

含まれる option 要素の集合を表す `HTMLCollection` です。

インスタンスメソッド
----------

*固有のメソッドはありません。親である `HTMLElement` から継承したメソッドがあります*。

仕様書
---

| Specification |
| --- |
| HTML Standard # htmldatalistelement |

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

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

関連情報
----

* このインターフェイスを実装している HTML 要素: `<datalist>`
FileSystemSync
==============

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

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

ファイルおよびディレクトリー項目 API では、 `FileSystemSync` オブジェクトはファイルシステムを表します。 2 つのプロパティがあります。

**メモ:** このインターフェイスは非推奨で、標準路線ではなくなりました。
 *もう使用しないでください。* 代わりにファイルおよびディレクトリー項目 APIを使用してください。


基本コンセプト
-------

`FileSystemSync` オブジェクトは API 全体へのゲートウェイであり、頻繁に使用します。したがって、参照を取得したら、オブジェクトをグローバル変数またはクラスプロパティにキャッシュします。

インスタンスプロパティ
-----------

`name` 読取専用  
Non-standard

非推奨

文字列で、ファイルシステムの名前を示します。名前は公開されたファイルシステムのリスト内で一意でなければなりません。

`root` 読取専用  
Non-standard

非推奨

`DirectoryEntry` で、このファイルシステムのルートディレクトリーを表します。

仕様書
---

この機能はもうどの仕様にも含まれていません。標準化される予定もありません。

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

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

関連情報
----

* ファイルおよびディレクトリー項目 API
* ファイルおよびディレクトリー項目 API 入門
HTMLLabelElement
================

**`HTMLLabelElement`** インターフェイスは `<label>` 要素を操作するための独自のプロパティへのアクセスを提供します。基底となる `HTMLElement` インターフェイスからメソッドとプロパティを継承しています。

EventTarget

Node

Element

HTMLElement

HTMLLabelElementインスタンスプロパティ
-----------

*親インターフェイスである `HTMLElement` から継承したプロパティがあります。*

`HTMLLabelElement.control` 読取専用 

`HTMLElement` で、このラベルが関連付けられているコントロールを表します。

`HTMLLabelElement.form` 読取専用 

`HTMLFormElement` オブジェクトで、このラベル付きコントロールが関連付けられているフォームを表します。関連付けられているコントロールがない場合や、コントロールがフォームに関連付けられていない場合は `null` になります。言い換えれば、これは `HTMLLabelElement.control.form` のショートカットです。

`HTMLLabelElement.htmlFor`

文字列で、ラベル付けしたコントロールの ID が入ります。これは `for` 属性を反映します。


**メモ:** プログラムから `for` 属性を設定する場合は、 `htmlFor` を使用してください。

インスタンスメソッド
----------

*固有のメソッドはありません。親インターフェイスである `HTMLElement` から継承したメソッドがあります。*

仕様書
---

| Specification |
| --- |
| HTML Standard # htmllabelelement |

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

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

関連情報
----

* このインターフェイスを実装している HTML 要素: `<label>`
* `<form>`
* `HTMLFormElement`
StyleSheet
==========

`StyleSheet` インターフェイスを実装するオブジェクトは、単一のスタイルシートを表します。 CSS スタイルシートは、より特殊化された `CSSStyleSheet` インターフェイスを実装します。

インスタンスプロパティ
-----------

`StyleSheet.disabled`

論理値で、現在のスタイルシートが適用されているかどうかを示します。

`StyleSheet.href` 読取専用 

文字列で、スタイルシートの位置を返します。

`StyleSheet.media` 読取専用 

`MediaList` で、スタイル情報の宛先メディアを返します。

`StyleSheet.ownerNode` 読取専用 

`Node` で、このスタイルシートを現在の文書に関連付けているノードを返します。

`StyleSheet.parentStyleSheet` 読取専用 

存在する場合、これをインクルードしている `StyleSheet` を返します。ない場合は `null` を返します。

`StyleSheet.title` 読取専用 

現在のスタイルシートのアドバイザリータイトルを表す文字列を返します。

`StyleSheet.type` 読取専用 

このスタイルシートのスタイルシート言語を表す文字列を返す。

仕様書
---

| Specification |
| --- |
| CSS Object Model (CSSOM) # the-stylesheet-interface |

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

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

関連情報
----

* `CSSStyleSheet`
Web Bluetooth API
=================

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

Web Bluetooth API は、Bluetooth Low Energy の周辺機器に接続して操作する機能を提供します。

**メモ:** この API は Web Workers では *使用できません* 。(`WorkerNavigator` 経由では公開されていません)

インターフェイス
--------

`Bluetooth`

指定のオプションに合致する `BluetoothDevice` オブジェクトで解決する `Promise` を返します。

`BluetoothCharacteristicProperties`

特定の `BluetoothRemoteGATTCharacteristic` のプロパティを提供します。

`BluetoothDevice`

特定のスクリプト実行環境内の Bluetooth デバイスを表します。

`BluetoothRemoteGATTCharacteristic`

GATT キャラクタリスティックを表します。これは、周辺機器のサービスに関する詳細情報を提供する基本的なデータ要素です。

`BluetoothRemoteGATTDescriptor`

GATT ディスクリプターを表します。これは、キャラクタリスティックの値に関する詳細情報を提供します。

`BluetoothRemoteGATTServer`

リモートデバイス上の GATT サーバーを表します。

`BluetoothRemoteGATTService`

GATT サーバーにより提供されるサービスを表します。デバイス、参照されるサービス、このサービスのキャラクタリスティックのリストも含みます。

仕様書
---

| Specification |
| --- |
| Web Bluetooth # bluetooth |

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

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

Web Audio API の `AudioParam` インターフェイスは、オーディオ関連のパラメーターを表します。通常は `AudioNode` のパラメーター（`GainNode.gain` など）です。

`AudioParam` は特定の値または値の変化に設定でき、特定の時間に特定のパターンに従って発生するようにスケジュールできます。

それぞれの `AudioParam` には、いつ、どのように値を変更するかを定義するイベントのリストを持っており、最初は空です。このリストが空でない場合、 `AudioParam.value` 属性を使用した変更は無視されます。このイベントのリストにより、任意のタイムラインベースのオートメーションカーブを使用して、とても正確な時間に変更をスケジュールすることができます。使用される時間は `AudioContext.currentTime` で定義されたものです。

AudioParam の種類
--------------

`AudioParam` には *a-rate* パラメーターと *k-rate* パラメーターの 2 種類があります。それぞれの `AudioNode` は、そのパラメーターが *a-rate* と *k-rate* のどちらであるかを仕様で定義しています。

### a-rate

*a-rate* の `AudioParam` は、音声信号の各サンプルフレームの現在の音声パラメーターの値を導きます。

### k-rate

*k-rate* の `AudioParam` は処理されるブロック全体、つまり 128 サンプルフレームに対して同じオーディオパラメーターの初期値を使用します。言い換えれば、ノードによって処理される音声のすべてのフレームに同じ値が適用されます。

インスタンスプロパティ
-----------

`AudioParam.defaultValue` 読取専用 

`AudioParam` を作成する特定の `AudioNode` によって定義された属性の初期値を表します。

`AudioParam.maxValue` 読取専用 

パラメーターの公称（有効）範囲の最大可能値を表します。

`AudioParam.minValue` 読取専用 

パラメーターの公称（有効）範囲の最小可能値を表します。

`AudioParam.value`

パラメーターの現在の値を浮動小数点値として表します。 最初は `defaultValue` の値に設定されています。

インスタンスメソッド
----------

`AudioParam.setValueAtTime()`

`AudioContext.currentTime` に対して正確な時間に `AudioParam` の値の変更をスケジュールします。 新しい値は `value` 引数によって与えられます。

`AudioParam.linearRampToValueAtTime()`

`AudioParam` の値を徐々に線形に変化させるようにスケジュールします。 変更は、*前のイベント*に指定された時間に開始され、 `value` 引数で指定された新しい値へのランプ関数に従って進み、 `endTime` 引数で指定された時間に新しい値に到達します。

`AudioParam.exponentialRampToValueAtTime()`

`AudioParam` の値の段階的な指数関数的な変化をスケジュールします。 変更は*前のイベント*に指定された時間に開始され、 `value` 引数で指定された新しい値への指数関数的な増加をたどり、 `endTime` 引数で指定された時間に新しい値に到達します。

`AudioParam.setTargetAtTime()`

`AudioParam` の値に対する変更の開始をスケジュールします。 変更は `startTime` で指定された時間に開始し、 `target` 引数で指定された値に向かって指数関数的に移動します。 指数関数的な減衰率は、 `timeConstant` 引数によって定義されます。これは、秒単位で測定された時間です。

`AudioParam.setValueCurveAtTime()`

`AudioParam` の値が、指定された開始時間から開始し、指定された期間にわたって、指定された間隔に収まるようにスケーリングされた浮動小数点数の配列で定義された一連の値に従うようにスケジュールします。

`AudioParam.cancelScheduledValues()`

`AudioParam` に対する今後予定されているすべての変更をキャンセルします。

`AudioParam.cancelAndHoldAtTime()`

`AudioParam` に対して将来予定されているすべての変更をキャンセルしますが、他の方法でさらに変更が加えられるまで、指定された時間にその値を保持します。

例
-

まず、ゲイン値を設定した `GainNode` の基本的な例です。 値はオーディオのサンプルフレームごとに異なるように設定される可能性があるため、ゲインは *a-rate* の `AudioParam` の例です。


```js
const audioCtx = new AudioContext();

const gainNode = audioCtx.createGain();
gainNode.gain.value = 0;
```


次に、いくつかの値が設定された `DynamicsCompressorNode` (en-US) を示す例です。 値はオーディオブロック全体に一度に設定されるため、これらは *k-rate* の `AudioParam` の例です。


```js
const compressor = audioCtx.createDynamicsCompressor();
compressor.threshold.setValueAtTime(-50, audioCtx.currentTime);
compressor.knee.setValueAtTime(40, audioCtx.currentTime);
compressor.ratio.setValueAtTime(12, audioCtx.currentTime);
compressor.attack.setValueAtTime(0, audioCtx.currentTime);
compressor.release.setValueAtTime(0.25, audioCtx.currentTime);
```

仕様書
---

| Specification |
| --- |
| Web Audio API # AudioParam |

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

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

関連情報
----

* ウェブオーディオ API の使用
SVGTextElement
==============

SVGTextElement インタフェース
----------------------

`SVGTextElement` インタフェースは `<text>` 要素に対応するインタフェースです。

### インタフェースの概要

| 実装インタフェース | `SVGTextPositioningElement` (en-US) 、 `SVGTransformable` |
| --- | --- |
| メソッド | *無し* |
| プロパティ | *無し* |
| 標準文書 | SVG 1.1 (2nd Edition) |

プロパティ
-----

固有のプロパティはありません。

メソッド
----

固有のメソッドはありません。

ブラウザ実装状況
--------

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

関連情報
----

* `<text>` SVG 要素
PaymentMethodChangeEvent
========================

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

**`PaymentMethodChangeEvent`** は Payment Request API のインターフェイスで、ユーザーが支払方法を切り替えたとき (例えば、ユーザーが Apple Pay を使用する際に、「その店舗の」カードを選択する場合) に実行される一部の支払いハンドラーが発生する `paymentmethodchange` イベントを説明します。

コンストラクター
--------

`PaymentMethodChangeEvent()` (en-US)

新しい `PaymentMethodChangeEvent` オブジェクトを作成して返し、オプションで与えられた `PaymentMethodChangeEventInit` 辞書から得た値で初期化します。

プロパティ
-----

*以下のプロパティに加えて、このインターフェイスは `PaymentRequestUpdateEvent` から継承したプロパティを含みます。*

`methodDetails` (en-US) 読取専用  安全なコンテキスト用

支払方法の変更時に利用できる支払方法に依存したデータを含むオブジェクトです。そのような情報が利用できない場合は、この値は `null` です。

`methodName` (en-US) 読取専用  安全なコンテキスト用

`DOMString` で、特定の支払方法を固有に識別する文字列である支払方法識別子が入ります。この識別子はふつう、支払い手続で使用される URL ですが、 `basic-card` のような標準化された文字列にすることもできます。既定値は空文字列、 `""` です。

メソッド
----

*このインターフェイスは `PaymentRequestUpdateEvent` から継承したメソッドを含みます。*

仕様書
---

| Specification |
| --- |
| Payment Request API 1.1 # paymentmethodchangeevent-interface |

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

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

**`DOMImplementation`** インターフェイスは、特定の文書に依存しないメソッドを提供するオブジェクトを表します。こうしたオブジェクトは `Document.implementation` プロパティで返されます。

プロパティ
-----

*このインターフェイスは特定のプロパティを持たず、継承もしていません。*

メソッド
----

*継承しているメソッドはありません。*

`DOMImplementation.createDocument()`

`XMLDocument` を作成して返します。

`DOMImplementation.createDocumentType()`

`DocumentType` を作成して返します。

`DOMImplementation.createHTMLDocument()`

HTML `Document` を作成して返します。

`DOMImplementation.hasFeature()` 
非推奨

指定された機能に対応しているかどうかを示す論理値を返します。この関数は信頼性が低く、互換性のためだけに用意されています。SVG 関連のクエリーを除けば、常に `true` を返します。古いブラウザーはその動作にまったく一貫性がありません。

仕様書
---

| Specification |
| --- |
| DOM Standard # interface-domimplementation |

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

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

関連情報
----

* DOM インターフェイスの索引
AudioTrackList
==============

**`AudioTrackList`** インターフェイスは、所与の HTML メディア要素内に含まれる音声トラックのリストを表すために使用します。 各トラックはリスト内の別々の `AudioTrack` オブジェクトで表します。

`HTMLMediaElement.audioTracks` を使用してこのオブジェクトのインスタンスを取得します。 個々のトラックは、配列構文を使用してアクセスできます。

EventTarget

AudioTrackListインスタンスプロパティ
-----------

*このインターフェイスは、その親インターフェイスである `EventTarget` からプロパティを継承しています。*

`length` 読取専用 

リスト内のトラック数。

インスタンスメソッド
----------

*このインターフェイスは、その親インターフェイスである `EventTarget` からメソッドを継承しています。*

`getTrackById()`

指定された文字列と一致する `id` を持つ `AudioTrackList` 内で見つかった `AudioTrack` を返します。 一致が見つからない場合は、`null` を返します。

イベント
----

`addtrack`

新しい音声トラックがメディア要素に追加されたときに発生します。

`change`

トラックが有効または無効にされたときに発生します。

`removetrack`

音声トラックがメディア要素から取り除かれたときに発生します。

使用上のメモ
------

`AudioTrackList` を使用すると、メディア要素にある音声トラックに直接アクセスできるだけでなく、`addtrack` イベントと `removetrack` イベントにイベントハンドラーを設定できるため、メディア要素のストリームにトラックが追加されたときまたは取り除かれたときに検出できます。 詳細と例については、`addtrack` と `removetrack` を参照してください。

例
-

### メディア要素の音声トラックリストの取得

メディア要素の `AudioTrackList` を取得するには、その `audioTracks` プロパティを使用します。


```js
const audioTracks = document.querySelector("video").audioTracks;
```

### トラック数の変化の監視

この例では、利用可能なチャンネル数に関する情報を表示するアプリがあります。 それを最新に保つために、 `addtrack` イベントと `removetrack` イベントのためのハンドラを設定しています。


```js
audioTracks.onaddtrack = updateTrackCount;
audioTracks.onremovetrack = updateTrackCount;

function updateTrackCount(event) {
  trackCount = audioTracks.length;
  drawTrackCountIndicator(trackCount);
}
```

仕様書
---

| Specification |
| --- |
| HTML Standard # audiotracklist-and-videotracklist-objects |

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

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.
ブロードキャストチャンネル API
=================

Baseline 2022
-------------

Newly availableSince March 2022, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers.

* Learn more
* See full compatibility
* Report feedback
**ブロードキャストチャンネル API** (Broadcast Channel API) を使用すると、同じオリジンの閲覧コンテキスト（つまり、*ウィンドウ*、*タブ*、*フレーム*、*iframe*）やワーカー間で、基本的な通信を行うことができます。

**注:** この機能は Web Worker 内で利用可能です

`BroadcastChannel` オブジェクトを作成することで、投稿されたメッセージを受け取ることができます。通信したいフレームやワーカーへの参照を保持する必要はありません。同じ名前の `BroadcastChannel` を自分自身で構築することで特定のチャンネルに「加入 (subscribe)」し、それらすべての間で双方向の通信をすることができます。

![ブロードキャストチャンネル API の原理](/ja/docs/Web/API/Broadcast_Channel_API/broadcastchannel.png)

ブロードキャストチャンネルのインターフェイス
----------------------

### チャンネルの作成または参加

クライアントは `BroadcastChannel` オブジェクトを作成することで、特定のブロードキャストチャンネルに参加します。コンストラクターは一つだけ引数として、チャンネルの*名前*を取ります。 ブロードキャストチャンネルに最初に接続した場合は、基になるリソースが作成されます。


```js
// ブロードキャストチャンネルへの接続
const bc = new BroadcastChannel("test\_channel");
```

### メッセージの送信

作成した `BroadcastChannel` オブジェクトの `postMessage()` メソッドを呼び出すだけで十分です。 このメソッドは任意のオブジェクトを引数として取ります。文字列のメッセージの例を示します。


```js
// 非常に単純なメッセージの送信例
bc.postMessage("This is a test message.");
```


チャンネルに送信されたデータは、構造化複製アルゴリズムを使用してシリアライズされます。つまり、多種多様なデータオブジェクトを自分でシリアライズすることなく、安全に送信することができるのです。

API はメッセージに意味づけをしないので、どのようなメッセージを期待し、それをどう処理するかはコード次第です。

### メッセージの受信

メッセージが投稿されると、 `message` イベントがこのチャンネルに接続されているそれぞれの `BroadcastChannel` オブジェクトに送出されます。このイベントに対して `onmessage` イベントハンドラーを使用して関数を実行することができます。


```js
// イベントをコンソールに出力するだけのハンドラー
bc.onmessage = (event) => {
  console.log(event);
};
```

### チャンネルの切断

チャンネルを去るには、オブジェクトの `close()` メソッドを呼び出す必要があります。 これにより、オブジェクトと基になるチャンネル間のリンクを切断し、ガベージコレクションをすることができます。


```js
// チャンネルの切断
bc.close();
```

まとめ
---

ブロードキャストチャンネル API は、自己完結型のインターフェイスによってコンテキスト間通信が可能です。ユーザーがログインしたときやログアウトしたときなど、同じオリジン内の他のタブでのユーザーの操作を検出するために使用することができます。

メッセージングプロトコルは定義されておらず、様々な閲覧コンテキストがそれ自体を実装する必要があります。 ネゴシエーションも仕様からの要件もありません。

仕様書
---

| Specification |
| --- |
| HTML Standard # broadcasting-to-other-browsing-contexts |

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

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

関連情報
----

* `BroadcastChannel`: これを実装するインターフェイス。
PushMessageData
===============

**`PushMessageData`** はプッシュ API のインターフェイスで、さまざまな形式でサーバーから送信されるプッシュテータを取得する方法を提供します。

フェッチ API の同様のメソッドが 1 回しか呼び出せないのと異なり、これらは複数回呼び出せます。

プッシュ API を通して受け取ったメッセージはプッシュサービスによって暗号化されて送信され、`PushMessageData` インターフェースのメソッドで利用可能になる前にブラウザーによって自動的に復号されます。

インスタンスプロパティ
-----------

なし。

インスタンスメソッド
----------

`PushMessageData.arrayBuffer()`

データを `ArrayBuffer` オブジェクトとして抜き出します。

`PushMessageData.blob()`

データを `Blob` オブジェクトとして抜き出します。

`PushMessageData.json()`

データを JSON オブジェクトとして抜き出します。

`PushMessageData.text()`

データをプレーンテキスト文字列として抜き出します。

例
-


```js
self.addEventListener("push", (event) => {
  const obj = event.data.json();

  if (obj.action === "subscribe" || obj.action === "unsubscribe") {
    fireNotification(obj, event);
    port.postMessage(obj);
  } else if (obj.action === "init" || obj.action === "chatMsg") {
    port.postMessage(obj);
  }
});
```

仕様書
---

| Specification |
| --- |
| Push API # pushmessagedata-interface |

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

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

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

ウェブオーディオ API の **`AudioWorklet`** インターフェイスは、別のスレッドで実行して非常に低遅延の音声処理を提供するカスタム音声処理スクリプトを提供するのに使われます。

このワークレットのコードはグローバル実行コンテキスト `AudioWorkletGlobalScope` で、ワークレットと他の音声ノードで共有のウェブオーディオスレッドで実行されます。

音声コンテキストの `AudioWorklet` のインスタンスには、`BaseAudioContext.audioWorklet` プロパティを通じてアクセスできます。

Worklet

AudioWorkletインスタンスプロパティ
-----------

*`AudioWorklet` インターフェイスは自身のプロパティを定義していませんが、`Worklet` のプロパティを継承しています。*

インスタンスメソッド
----------

*このインターフェイスは `Worklet` からメソッドを継承しています。`AudioWorklet` インターフェイスは自身のメソッドを定義していません。*

イベント
----

*`AudioWorklet` には反応するイベントがありません。*

例
-

カスタム音声ノードを作成する完全な例は、`AudioWorkletNode` を参照してください。

仕様書
---

| Specification |
| --- |
| Web Audio API # AudioWorklet |

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

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

関連情報
----

* `AudioWorkletGlobalScope` — `AudioWorklet` のグローバル実行コンテキスト
* ウェブオーディオ API
* Web Audio API の使用
* AudioWorklet の使用 (en-US)