recursal/MDN huggingface dataset:
HTMLUListElement
================

**`HTMLUListElement`** インターフェイスは、（通常の `HTMLElement` インターフェイスから継承されるもの以外に）順序なしリスト (`<ul>`) 要素を操作するための特別なプロパティを提供します。

EventTarget

Node

Element

HTMLElement

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

*親である `HTMLElement` からプロパティを継承しています。*

`HTMLUListElement.type` 
非推奨

文字列値で、`type`を反映し、使用するマーカーの種類を定義します。値はブラウザーに依存し、標準化されたことはありません。

`HTMLUListElement.compact` 
非推奨

論理値で、リスト項目間の空間を縮小することを示します。このプロパティは `compact` 属性のみを反映し、現代のページでその動作に使用されている CSS の `line-height` プロパティは考慮しません。

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

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

仕様書
---

| Specification |
| --- |
| HTML Standard # htmlulistelement |

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

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

関連情報
----

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

**`MediaStreamAudioSourceNode`** インターフェイスは `AudioNode` の一種で、WebRTC またはメディアキャプチャとストリーム API で取得した `MediaStream` から音声を取得する音源として働きます。

音声は、(`getUserMedia()` 経由の) マイクから得られたものも使用できますし、(`RTCPeerConnection` の音声トラックを用いた) WebRTC による通話相手から受信したものも使用できます。

`MediaStreamAudioSourceNode` は入力を持たず、出力をちょうど 1 個持ちます。また、`AudioContext.createMediaStreamSource()` メソッドにより作成されます。

`MediaStreamAudioSourceNode` は `kind` 属性の値が `audio` である *最初の* `MediaStreamTrack` から音声を取得します。トラックの順番について詳しくはトラックの順序付けを参照してください。

このノードの出力のチャンネル数は、選択された音声トラックで見つかったトラックの数と一致します。

EventTarget

AudioNode

MediaStreamAudioSourceNode

|  |  |
| --- | --- |
| 入力数 | `0` |
| 出力数 | `1` |
| チャンネル数 | 2 (ただし、`AudioNode.channelCount` は `AudioNode` の入力のアップミキシングおよびダウンミキシングにのみ用いられ、`MediaStreamAudioSourceNode` は入力を持ちません) |

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

`new MediaStreamAudioSourceNode()`

指定したオプションを用いて新しい `MediaStreamAudioSourceNode` オブジェクトを作成します。

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

*以下のプロパティに加え、`MediaStreamAudioSourceNode` は親の `AudioNode` からプロパティを継承します。*

`mediaStream` 読取専用 

この `MediaStreamAudioSourceNode` の生成時に用いられた `MediaStream` です。

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

*親の `AudioNode` からメソッドを継承します。*

例外
--

`InvalidStateError` `DOMException`

引数 `mediaStream` により指定されたストリームに音声トラックが無いとき投げられます。

使用時の注意
------

### トラックの順序付け

`MediaStreamTrackAudioSourceNode` インターフェイスでは、ストリーム内の音声トラックの順番は、`kind` が `audio` であるトラックを抽出し、抽出したトラックを `id` プロパティの値のユニコードのコードポイント順 (本質的には、ID が単純なアルファベットからなる文字列のときはアルファベット順 (辞書順)) でソートすることで決定されます。

そして、**最初の** トラックとは、トラックの ID がユニコードのコードポイント順でソートされたとき `id` が最初に来るトラックのことです。

しかし、重要な点として、この順序付けを確立するルールは、このインターフェイスが最初に Web Audio API に追加されてからだいぶ後に追加されました。そのため、この順序付けがどの 2 種類のブラウザーやブラウザーのバージョンでも同じになるとして簡単に依存することはできません。

`MediaStreamTrackAudioSourceNode` インターフェイスは `MediaStreamAudioSourceNode` に似ていますが、使用するトラックを指定できるようにすることでこの問題を回避しています。

例
-

このオブジェクトを使用するコードの例は、`AudioContext.createMediaStreamSource()` を参照してください。

仕様書
---

| Specification |
| --- |
| Web Audio API # MediaStreamAudioSourceNode |

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

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

関連情報
----

* Web Audio API の使用
* WebRTC API
* メディアキャプチャとストリーム API (メディアストリーム)
* `MediaStreamTrackAudioSourceNode`
BluetoothRemoteGATTServer
=========================

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

Web Bluetooth API の **`BluetoothRemoteGATTServer`** インターフェイスは、リモートデバイス上の GATT サーバーを表します。

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

`BluetoothRemoteGATTServer.connected` 読取専用  
Experimental

このスクリプト実行環境が `this.device` に接続されている間 `true` を返す論理値です。ユーザーエージェントが物理的に接続されていても `false` になる可能性があります。

`BluetoothRemoteGATTServer.device` 読取専用  
Experimental

このサーバーを動かしている `BluetoothDevice` への参照です。

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

`BluetoothRemoteGATTServer.connect()` 
Experimental

このスクリプト実行環境を `this.device` に接続させます。

`BluetoothRemoteGATTServer.disconnect()` 
Experimental

このスクリプト実行環境を `this.device` から切断させます。

`BluetoothRemoteGATTServer.getPrimaryService()` 
Experimental

Bluetooth デバイスが提供している指定の `BluetoothServiceUUID` に対応するプライマリー `BluetoothRemoteGATTService` で解決するプロミスを返します。

`BluetoothRemoteGATTServer.getPrimaryServices()` 
Experimental

Bluetooth デバイスが提供している指定の `BluetoothServiceUUID` に対応するプライマリー `BluetoothRemoteGATTService` オブジェクトのリストで解決するプロミスを返します。

仕様書
---

| Specification |
| --- |
| Web Bluetooth # bluetoothgattremoteserver-interface |

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

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

**`HTMLIFrameElement`** インターフェイスは、（継承によって使用できる通常の `HTMLElement` インターフェイスのものに加えて）インラインフレーム要素を操作するための特別なプロパティを提供します。

EventTarget

Node

Element

HTMLElement

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

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

`HTMLIFrameElement.align` 
非推奨

文字列で、周囲のコンテキストに対するフレームの配置を指定します。

`HTMLIFrameElement.allow`

フレームがコンテンツを表示することを許可されているオリジンのリストです。この属性には `self` と `src` という値も指定でき、これらは iframe の src 属性で指定されたオリジンを表します。既定値は `src` です。

`HTMLIFrameElement.allowfullscreen` 
Experimental

論理値で、インラインフレームを全画面モードにすることが期待されているかを示します。詳細は、全画面モードの使用を参照してください。

`HTMLIFrameElement.allowPaymentRequest` 
非推奨

Non-standard

論理値で、決済リクエスト API をクロスオリジンの iframe 内で起動できるかどうかを示します。

`HTMLIFrameElement.contentDocument` 読取専用 

インラインフレームの中にある閲覧コンテキストのアクティブな文書を `Document` で返します。

`HTMLIFrameElement.contentWindow` 読取専用 

`WindowProxy` で、中にある閲覧コンテキストのウィンドウプロキシーを返します。

`HTMLIFrameElement.credentialless` 
Experimental

論理値で `<iframe>` が無信頼であることを示し、そのコンテンツは新しい、一時的なコンテキストで読み込まれることを意味します。このコンテキストは、親コンテキストの共有ストレージと資格情報にアクセスすることはできません。その代わり `Cross-Origin-Embedder-Policy` (COEP) 埋め込みルールが解除されるいため、COEP を設定した文書でもそうでないサードパーティ文書を埋め込むことができます。より詳しい説明は、無信頼の iframe を参照してください。

`HTMLIFrameElement.csp`

埋め込み文書が自分自身に適用することに同意しなければならないコンテンツセキュリティポリシーを指定します。

`HTMLIFrameElement.frameBorder` 
非推奨

文字列で、フレーム間に境界線を生成するかどうかを示します。

`HTMLIFrameElement.height` (en-US)

文字列で HTML 属性の `height` を反映し、フレームの高さを表します。

`HTMLIFrameElement.longDesc` 
非推奨

フレームの長い説明文の URI をが入った文字列です。

`HTMLIFrameElement.marginHeight` 
非推奨

フレームのマージンの高さである文字列です。

`HTMLIFrameElement.marginWidth` 
非推奨

フレームのマージンの幅である文字列です。

`HTMLIFrameElement.name` (en-US)

文字列で HTML 属性の `name` を反映し、フレームを参照するための名前を表します。

`HTMLIFrameElement.featurePolicy` 読取専用  
Experimental

`FeaturePolicy` (en-US) インターフェイスを返します。これは、特定の文書に適用される権限ポリシーを簡単にイントロスペクトするための API を提供します。

`HTMLIFrameElement.referrerPolicy`

文字列で、 HTML の `referrerPolicy` 属性を反映し、リンク先のリソースを取得する際にどのリファラーを使用するかを示します。

`HTMLIFrameElement.sandbox`

`DOMTokenList` で HTML の `sandbox` 属性を反映し、ネストされたコンテンツの動作に特別な制限を加えることを示します。

`HTMLIFrameElement.scrolling` 
非推奨

文字列で、ブラウザーがフレームにスクロールバーを提供すべきかどうかを示します。

`HTMLIFrameElement.src`

文字列で HTML の `src` 属性を反映し、埋め込むコンテンツのアドレスが入ります。プログラムから `<iframe>` の src 属性を削除すると（例えば `Element.removeAttribute()` によって）、 Firefox （バージョン65以降）、 Chromium ベースのブラウザー、および Safari/iOS ではフレーム内に `about:blank` が読み込まれることに注意してください。

`HTMLIFrameElement.srcdoc`

文字列で、フレームに表示する内容を表します。

`HTMLIFrameElement.width` (en-US)

文字列で、 HTML の `width` 属性を反映し、フレームの幅を表します。

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

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

仕様書
---

| Specification |
| --- |
| HTML Standard # htmliframeelement |

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

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

関連情報
----

* このインターフェイスを実装している HTML 要素: `<iframe>`
入力機器能力 API
==========

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

入力機器能力 API は、入力イベントの基盤となるソースに関する詳細を提供します。この API は、機器が何かというよりも、機器がどのように動作するかを記述しようとするものです。例えば、この API の最初のバージョンは、機器がタッチ画面であるかどうかではなく、タッチイベントが発生するかどうかを示します。

入力機器の能力の概念と用途
-------------

DOM イベントは機器の入力を抽象化するため、どの機器や機器の種類がイベントを発生させたのかを知る手段を提供しません。そのため、同じアクションが複数のイベントハンドラーを発生させてしまうことがあります。これに対処するため、ウェブ開発者はウェブページの動作を正規化するために、仮定を立てたり、ヒューリスティックを使用したりしています。

入力機器能力 API は、入力機器の機能を抽象化することでこの問題に対処します。例えば、 `touchstart` イベントと `mousedown` イベントの両方を実装したウェブページがあるとします。 touchstart イベントが発生した場合、ユーザーの機器はタッチインターフェイスを持っているとみなされます。 mousedown イベントが発生した場合はどうでしょうか。同じアクションを 2 度発生させないように、 `touchstart` イベントも発生したかどうかを知ることは有益なことです。これは `UIEvent` の sourceCapabilities プロパティを調べることで可能です。


```js
myButton.addEventListener("mousedown", (e) => {
  // 上記で処理したタッチイベントの場合、タップ時に再度スタイル設定を変更しない
  if (!e.sourceCapabilities.firesTouchEvents) myButton.classList.add("pressed");
});
```

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

`InputDeviceCapabilities` 
Experimental

入力機器に関する論理情報を提供します。

仕様書
---

| Specification |
| --- |
| Input Device Capabilities # dom-inputdevicecapabilities |

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

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

Sensor APIs の **`SensorErrorEvent`** インターフェイスは、`Sensor` および派生インターフェイスから投げられたエラーに関する情報を提供します。

Event

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

`SensorErrorEvent()`

新しい `SensorErrorEvent` オブジェクトを生成します。

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

`SensorErrorEvent.error` 読取専用 

イベントのコンストラクターに渡された `DOMException` オブジェクトを返します。

仕様書
---

| Specification |
| --- |
| Generic Sensor API # the-sensor-error-event-interface |

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

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

グローバルの **`indexedDB`** は読み取り専用プロパティで、アプリケーションが indexed データベースの機能に非同期でアクセスするための機構を提供します。

### 値

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

例
-

以下のコードでは、データベースを開くためのリクエストを非同期に作成し、データベースが開かれた後で、リクエストの `onsuccess` ハンドラーが呼び出されます。


```js
let db;
function openDB() {
  const DBOpenRequest = window.indexedDB.open("toDoList");
  DBOpenRequest.onsuccess = (e) => {
    db = DBOpenRequest.result;
  };
}
```

仕様書
---

| Specification |
| --- |
| Indexed Database API 3.0 # dom-windoworworkerglobalscope-indexeddb |

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

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

関連情報
----

* IndexedDB の使用
* トランザクションの開始: `IDBDatabase`
* トランザクションの使用: `IDBTransaction`
* キーの範囲設定: `IDBKeyRange`
* データの取得と変更: `IDBObjectStore`
* カーソルの使用: `IDBCursor`
* 参照例: To-do Notifications（例をライブで参照）
AudioWorkletNode
================

**メモ:** このインターフェイスは安全なコンテキストの外でも使用可能ですが、`BaseAudioContext.audioWorklet` プロパティはそうではありません。そのため、独自の `AudioWorkletProcessor` は安全なコンテキストの外では使用できません。

ウェブオーディオ API の **`AudioWorkletNode`** インターフェイスは、ユーザー定義の `AudioNode` (他のノードとともに音声ルーティンググラフに接続できる) の基底クラスを表します。これは対応する `AudioWorkletProcessor` (ウェブオーディオレンダリングスレッドで実際の音声処理を行う) を持ちます。

EventTarget

AudioNode

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

`AudioWorkletNode()`

新しい `AudioWorkletNode` オブジェクトのインスタンスを作成します。

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

*親の `AudioNode` からもプロパティを継承します。*

`AudioWorkletNode.port` 読取専用 

ノードと対応する `AudioWorkletProcessor` の間での双方向通信に使用する `MessagePort` を返します。もう一方の端は、処理器の `port` プロパティで参照できます。

`AudioWorkletNode.parameters` 読取専用 

`AudioParamMap` を返します。これは `AudioParam` オブジェクトのコレクションです。対応する `AudioWorkletProcessor` の生成中に生成されます。この `AudioWorkletProcessor` に静的な `parameterDescriptors` ゲッターがある場合、このゲッターが返す `AudioParamDescriptor` (en-US) の配列がこの `AudioWorkletNode` において `AudioParam` オブジェクトを生成するのに用いられます。この仕組みにより、`AudioWorkletNode` からアクセスできる独自の `AudioParam` オブジェクトを生成できます。そして、対応する `AudioWorkletProcessor` でこれらの値を使用できます。

### イベント

`processorerror`

対応する `AudioWorkletProcessor` でエラーが投げられた時発火します。発火した後は、処理器、そして対応するノードはずっと無音を出力します。

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

*親の `AudioNode` からメソッドを継承します。*

*`AudioWorkletNode` インターフェイスは自身のメソッドを定義していません。*

例
-

この例では、ランダムノイズを出力する独自の `AudioWorkletNode` を生成します。

まず、ランダムノイズを出力する独自の `AudioWorkletProcessor` を定義する必要があります。注意点として、これは個別のファイルで定義してください。


```js
// random-noise-processor.js
class RandomNoiseProcessor extends AudioWorkletProcessor {
  process(inputs, outputs, parameters) {
    const output = outputs[0];
    output.forEach((channel) => {
      for (let i = 0; i < channel.length; i++) {
        channel[i] = Math.random() \* 2 - 1;
      }
    });
    return true;
  }
}

registerProcessor("random-noise-processor", RandomNoiseProcessor);
```


そして、メインスクリプトファイルで処理器をロードし、この処理器の名前を渡して `AudioWorkletNode` のインスタンスを作成し、作成したノードを音声グラフに接続します。


```js
const audioContext = new AudioContext();
await audioContext.audioWorklet.addModule("random-noise-processor.js");
const randomNoiseNode = new AudioWorkletNode(
  audioContext,
  "random-noise-processor",
);
randomNoiseNode.connect(audioContext.destination);
```

仕様書
---

| Specification |
| --- |
| Web Audio API # AudioWorkletNode |

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

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

関連情報
----

* ウェブオーディオ API
* Web Audio API の使用
* AudioWorklet の使用 (en-US)
IDBFactory
==========

IndexedDB API の **`IDBFactory`** インターフェイスは、indexedDB への非同期アクセスを提供します。 このインターフェイスを実装するオブジェクトは、`window.indexedDB` です。このオブジェクトを使用すれば、`IDBFactory` インターフェイスに直接アクセスせずに、IndexedDB を開いたり (生成したり接続したり)、削除したりできます。

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

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

`IDBFactory.open`

データベースへの接続を開く要求をする現在のメソッドです。

`IDBFactory.deleteDatabase`

データベースの削除を要求するメソッドです。

`IDBFactory.cmp`

2 つのキーを比較して、大きいほうの値を戻り値として返すメソッドです。

`IDBFactory.databases`

利用可能な全てのデータベースのリストを、名前とバージョンを含めて返すメソッドです。

例
-

次のコードスニペットでは、データベースを開く要求をし、成功の場合と失敗の場合のイベントハンドラーを登録しています。完全に動作する例は、To-do Notifications アプリケーション (動く例を見る) を見てください。


```js
// データベースのバージョン 4 を開きましょう。
const DBOpenRequest = window.indexedDB.open("toDoList", 4);

// これら 2 個のイベントハンドラーは、データベースが正常に開かれたか、失敗した時に動作します。
DBOpenRequest.onerror = (event) => {
  console.error("データベースの読み込みに失敗しました。");
};

DBOpenRequest.onsuccess = (event) => {
  console.info("データベースを初期化しました。");

  // データベースを開いた結果を変数 db に保存します。これはトランザクションを開くときなど、後でたくさん使います。
  db = DBOpenRequest.result;
};
```

仕様書
---

| Specification |
| --- |
| Indexed Database API 3.0 # factory-interface |

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

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

関連情報
----

* IndexedDB の使用
* トランザクションの開始: `IDBDatabase`
* トランザクションの使用: `IDBTransaction`
* キーの範囲の設定: `IDBKeyRange`
* データの取得と変更: `IDBObjectStore`
* カーソルの使用: `IDBCursor`
* リファレンス例: To-do Notifications (動く例を見る)
HTMLProgressElement
===================

**`HTMLProgressElement`** インターフェイスは、（継承によって利用できる `HTMLElement` オブジェクトのインターフェイス以外に）`<progress>` 要素のレイアウトや表現を操作するためのプロパティやメソッドを提供します。

EventTarget

Node

Element

HTMLElement

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

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

`HTMLProgressElement.max`

`double` 値で、同名のコンテンツ属性を反映します。0 以上の数値に限定されます。既定値は `1.0` です。

`HTMLProgressElement.position` 読取専用 

`double` 値で、現在値 (`value`) を最大値 (`max`) で割った結果を返します。プログレスバーが不確定プログレスバーの場合は `-1` を返します。

`HTMLProgressElement.value`

`double` 値で、現在の値を反映します。プログレスバーが不確定プログレスバーの場合は `0` を返します。

`HTMLProgressElement.labels` 読取専用 

この要素のラベルである `<label>` 要素のリストを格納した `NodeList` を返します。

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

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

仕様書
---

| Specification |
| --- |
| HTML Standard # htmlprogresselement |

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

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

関連情報
----

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

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

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

**`VRFieldOfView`** は WebVR API のインターフェイスで、中心点からの視野を示す 4 つの角度で定義される視界を表現します。

**メモ:** このインターフェイスは古い WebVR API の一部でした。これは WebXR 機器 API に置き換えられました。

プロパティ
-----

`VRFieldOfView.upDegrees` 
非推奨
 読取専用  
Non-standard

視界の上方向への拡張量を示す角度。

`VRFieldOfView.rightDegrees` 
非推奨
 読取専用  
Non-standard

視界の右方向への拡張量を示す角度。

`VRFieldOfView.downDegrees` 
非推奨
 読取専用  
Non-standard

視界の下方向への拡張量を示す角度。

`VRFieldOfView.leftDegrees` 
非推奨
 読取専用  
Non-standard

視界の左方向への拡張量を示す角度。

例
-


```js
const info = document.querySelector("p");
const list = document.querySelector("ul");
let vrDisplay;

if (navigator.getVRDisplays) {
  reportFieldOfView();
} else {
  info.textContent = "WebVR API not supported by this browser.";
}

function reportFieldOfView() {
  navigator.getVRDisplays().then((displays) => {
    vrDisplay = displays[0];
    const lEye = vrDisplay.getEyeParameters("left");
    const rEye = vrDisplay.getEyeParameters("right");
    // lEye and rEye are VREyeParameters objects

    const lFOV = lEye.fieldOfView;
    const rFOV = rEye.fieldOfView;
    // lFOV and rFOV are VRFieldOfView objects

    const listitem1 = document.createElement("li");
    const listitem2 = document.createElement("li");

    listitem1.innerHTML =
      `<strong>Left eye parameters</strong><br>` +
      `Offset: ${lEye.offset}<br>` +
      `Render width: ${lEye.renderWidth}<br>` +
      `Render height: ${lEye.renderHeight}<br>` +
      `Up degrees: ${lFOV.upDegrees}<br>` +
      `Right degrees: ${lFOV.rightDegrees}<br>` +
      `Down degrees: ${lFOV.downDegrees}<br>` +
      `Left degrees: ${lFOV.leftDegrees}`;

    listitem2.innerHTML =
      `<strong>Right eye parameters</strong><br>` +
      `Offset: ${rEye.offset}<br>` +
      `Render width: ${rEye.renderWidth}<br>` +
      `Render height: ${rEye.renderHeight}<br>` +
      `Up degrees: ${rFOV.upDegrees}<br>` +
      `Right degrees: ${rFOV.rightDegrees}<br>` +
      `Down degrees: ${rFOV.downDegrees}<br>` +
      `Left degrees: ${rFOV.leftDegrees}`;

    list.appendChild(listitem1);
    list.appendChild(listitem2);
  });
}
```

仕様書
---

このインターフェイスは古い WebVR API の一部であり、これは WebXR 機器 API で置き枯れられました。標準規格になる見込みはありません。

すべてのブラウザーが新しい WebXR API を実装するまで、 A-Frame、Babylon.js、Three.js などのフレームワークを使用するか、ポリフィルを使用することが、すべてのブラウザーで動作する WebXR アプリを開発する上で推奨されます。[1]

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

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

関連情報
----

* WebVR API
XPathExpression
===============

このインターフェイスはコンパイルされた XPath 式であり、文書や特定のノードに対して評価を行うことで、その DOM ツリーから情報を返すことができます。

これは、アプリケーションで式を再使用する場合に有用です。コンパイルされるのは一度だけで、式内で発生するすべての名前空間接頭辞が事前解決されるからです。

この型のオブジェクトは、 `XPathEvaluator.createExpression()` (en-US) を呼び出すことで生成されます。

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

`XPathExpression.evaluate()`

指定されたノードまたは文書に対して XPath 式を評価します。

例
-

次の例では `XPathExpression` インターフェイスを使用しています。

### HTML


```html
<div>XPath example</div>
<div>Number of &lt;div&gt;s: <output></output></div>
```

### JavaScript


```js
const xpath = "//div";
const evaluator = new XPathEvaluator();
const expression = evaluator.createExpression(xpath);
const result = expression.evaluate(
  document,
  XPathResult.ORDERED\_NODE\_SNAPSHOT\_TYPE,
);
document.querySelector("output").textContent = result.snapshotLength;
```

### 結果

仕様書
---

| Specification |
| --- |
| DOM Standard # interface-xpathexpression |

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

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

関連情報
----

* `document.createExpression()`
* `XPathResult`
ContactsManager
===============

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

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

**`ContactsManager`** は連絡先ピッカー API のインターフェイスで、ユーザーが連絡先リストから項目を選択し、選択した項目の限られた詳細をウェブサイトやアプリケーションと共有できるようにします。

ContactsManager` はグローバルな `navigator.contacts` プロパティを通して利用することができます。

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

`select()` 
Experimental

`Promise` を返します。これが解決すると、ユーザーに連絡先ピッカーが表示され、共有したい連絡先を選択してもらうことができます。

`getProperties()` 
Experimental

`Promise` を返します。これは、利用できる連絡先プロパティを示す文字列の配列 (`Array`) で解決します。

例
-

### 機能検出

以下のコードは、連絡先ピッカー API に対応しているかどうかを調べるものです。


```js
const supported = "contacts" in navigator && "ContactsManager" in window;
```

### 対応しているプロパティのチェック

以下の非同期関数は、 `getProperties` メソッドを使用して、対応しているプロパティを調べています。


```js
async function checkProperties() {
  const supportedProperties = await navigator.contacts.getProperties();
  if (supportedProperties.includes("name")) {
    // run code for name support
  }
  if (supportedProperties.includes("email")) {
    // run code for email support
  }
  if (supportedProperties.includes("tel")) {
    // run code for telephone number support
  }
  if (supportedProperties.includes("address")) {
    // run code for address support
  }
  if (supportedProperties.includes("icon")) {
    // run code for avatar support
  }
}
```

### 連絡先の選択

以下の例では、それぞれの連絡先に対して取得するプロパティの配列を設定し、また、複数の連絡先を選択できるようにオプションオブジェクトを設定しています。

そして、 `select()` メソッドを使用して、ユーザーに連絡先ピッカーインターフェイスを表示し、選択された結果を処理する非同期関数が定義されます。


```js
const props = ["name", "email", "tel", "address", "icon"];
const opts = { multiple: true };

async function getContacts() {
  try {
    const contacts = await navigator.contacts.select(props, opts);
    handleResults(contacts);
  } catch (ex) {
    // Handle any errors here.
  }
}
```


`handleResults()` は開発者が定義する関数です。

仕様書
---

| Specification |
| --- |
| Contact Picker API # contacts-manager |

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

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

関連情報
----

* A Contact Picker for the Web
* A Contact Picker demo on glitch
Clipboard
=========

Limited availability
--------------------

This feature is not Baseline because it does not work in some of the most widely-used browsers.

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

**`Clipboard`** インターフェイスはクリップボード API を実装し、ユーザーが許可する場合、システムクリップボードの内容に対する読み取りと書き込みの両方を提供します。クリップボード API は、ウェブアプリケーションに切り取り（カット）、コピー（複写）、貼り付け（ペースト）の機能を実装するために使うことができます。

EventTarget

Clipboard
システムクリップボードは、グローバルの `Navigator.clipboard` プロパティにより公開されています。

`Clipboard` オブジェクトのメソッド呼び出しは、ユーザーが権限 API を使用して `'clipboard-read'` や `'clipboard-write'` 権限を取得していないと、成功しません。

**メモ:** 現実には、ブラウザーがクリップボードへアクセスする場合に必要となることは、非常に多岐に渡ります。詳細はクリップボードの可用性を参照してください。

クリップボード API の全てのメソッドは非同期で動作します。それらはクリップボードにアクセスできたときに解決されるプロミス（`Promise` オブジェクト）を返します。このプロミスは、クリップボードへのアクセスが拒否された場合には拒否されます。

メソッド
----

*`Clipboard` は、`EventTarget` インターフェイスに基づいており、そのメソッドを含みます。*

`read()`

クリップボードから任意のデータ (画像など) を要求し、プロミス（`Promise`）を返します。データが取得されたとき、このプロミスはクリップボードの内容を保持する `ClipboardItem` オブジェクトの配列に解決されます。

`readText()`

システムクリップボードにテキストを要求します。利用可能になるとクリップボードのテキストを含む文字列により解決される `Promise` を返します。

`write()`

システムクリップボードに任意のデータを書き込みます。この非同期操作は、返された `Promise` が解決することにより、その操作が完了したことを示します。

`writeText()`

システムクリップボードにテキストを書き込み、そのテキストがクリップボードに完全にコピーされたときに解決する `Promise` を返します。

クリップボードの可用性
-----------

非同期のクリップボード API は比較的最近追加されたものであり、ブラウザーへの実装プロセスはまだ完了していません。潜在的なセキュリティ懸念事項や技術的複雑さの両方により、ほとんどのブラウザーはこの API の統合を少しずつ行っています。詳しくは下記のブラウザーの互換性を参照してください。

ブラウザー拡張機能の場合、 WebExtension の `clipboard` API を使用してシステムクリップボードにアクセスすることができます。

仕様書
---

| Specification |
| --- |
| Clipboard API and events # clipboard-interface |

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

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

関連情報
----

* `Document.execCommand()`