recursal/MDN huggingface dataset:
DOMHighResTimeStamp
===================

**`DOMHighResTimeStamp`** 型は `double` であり、時間の値を保存するために使用します。この値は別々の時点や、2 つの別々の時点の間の時間を表すことができます。単位はミリ秒であり、精度は 5 µs (マイクロ秒) であるべきです。ただし、ブラウザーが 5 マイクロ秒精度の時間の値を提供できない場合 (例えば、ハードウェアやソフトウェアの制約により) は、1 ミリ秒精度の時間として表すことができます。

**メモ:** ユーザーエージェントを実行するデバイスやオペレーティングシステムがマイクロ秒レベルのクロックを持たない場合は、ミリ秒精度に制限されます。

プロパティ
-----

*この*型*はプロパティがありません。これは倍精度浮動小数点数です。*

### 値

`DOMHighResTimeStamp` の値は、2 つの時点の間で経過した時間をミリ秒単位 (デバイスがサポートすれば 5 マイクロ秒以内の精度で) で表した倍精度浮動小数点数です。開始時間はサイトやアプリのスクリプトで指定した特定の時刻か、**time origin** にすることができます。

#### time origin

**time origin** は、現在のドキュメントの存続期間の開始時点であると考えられる標準時刻です。これは以下のように算出します:

* スクリプトの グローバルオブジェクト が `Window` であれば、time origin を以下のように決定します:
    + 現在の `Document` が `Window` で最初に読み込まれたものであれば、ブラウザーコンテキストが生成された時刻を time origin にします。
    + window に以前読み込まれたドキュメントをアンロードする処理の間に、以前のページから去るかをユーザーに確認させるダイアログを表示した場合は、新しいページに移動することを受諾するとユーザーが確認した時刻を time origin にします。
    + 前述のどちらでも time origin が決まらない場合は、window の現在の `Document` を生成する原因であるナビゲーションが発生した時刻を time origin にします。
* スクリプトのグローバルオブジェクトが `WorkerGlobalScope` である (すなわち、スクリプトを web worker として実行している) 場合は、worker が生成された瞬間を time origin にします。
* その他の場合はすべて、time origin が未定義です。
メソッド
----

*この*型*はメソッドがありません。*

仕様
--

#### No specification found

No specification data found for `api.DOMHighResTimestamp`.  
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.

関連情報
----

* Navigation Timing API (en-US)
* performance.now()
CaretPosition
=============

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

`CaretPosition` インターフェイスは、テキスト挿入ポイントのインジケーターであるキャレット位置を表します。 `Document.caretPositionFromPoint()` メソッドを使用して `CaretPosition` を取得できます。

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

*このインターフェイスはプロパティを継承していません。*

`CaretPosition.offsetNode` 読取専用  
Experimental

キャレットの位置で見つかったノードを含む `Node` を返します。

`CaretPosition.offset` 読取専用  
Experimental

キャレット位置ノードの文字オフセットを表す `long` を返します。

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

`CaretPosition.getClientRect` 
Experimental

キャレット範囲のクライアント長方形を返します。

仕様書
---

| Specification |
| --- |
| CSSOM View Module # caret-position |

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

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

関連情報
----

* `Document.caretPositionFromPoint()`
* `Range`
* `Node`
History
=======

**`History`** インターフェイスで、ブラウザーの*セッション履歴*、つまり現在のページが読み込まれたタブまたはフレームで訪問したページを操作することができます。

`history` のインスタンスは 1 つしかなく（シングルトンです）、グローバルオブジェクト `history` を通してアクセスできます。

**メモ:** このインターフェイスはメインスレッド (`Window`) でのみ利用できます。 `Worker` または `Worklet` コンテキストではアクセスできません。

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

*`History` インターフェイスは何もプロパティを継承していません。*

`length` 読取専用 

現在読み込まれているページを含むセッション履歴の要素数を表す `Integer` を返します。たとえば、新しいタブで読み込まれたページのこのプロパティは `1` を返します。

`scrollRestoration`

ウェブアプリケーションが履歴の操作で既定のスクロール位置の復元を明示的に設定できるようにします。このプロパティは `auto` または `manual` を指定することができます。

`state` 読取専用 

履歴スタックの最上位にある状態を表す `any` の値を返します。これは `popstate` イベントを待たずに状態を確認する方法です。

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

*`History` インターフェイスは何もメソッドを継承していません。*

`back()`

これは非同期メソッドであり、ユーザーがブラウザーの`戻る`ボタンをクリックしたときと同じく、セッション履歴の一つ前のページへ移動します。 `history.go(-1)` と同等です。

このメソッドを呼び出して、セッション履歴の最初のページを超えて戻っても何の効果もなく、例外が発生することもありません。

`forward()`

これは非同期メソッドであり、ユーザーがブラウザーの`次へ`ボタンをクリックしたときと同じく、セッション履歴の一つ次のページへ移動します。これは `history.go(1)` と同等です。

このメソッドを呼び出して、セッション履歴の直近のページを超えて進んでも何の効果もなく、例外が発生することもありません。

`go()`

セッション履歴上で、現在のページからの相対位置で識別されるページを非同期に読み出します。たとえば、 `-1` は前のページで `1` は次のページです。範囲外の値を指定した場合 (例えば、セッション履歴に以前訪問したページがないときに `-1` を指定した場合)、このメソッドは暗黙に何もしません。 `go()` を引数なし、または `0` の値で呼び出すと、現在のページを再読み込みします。

`pushState()`

指定されたデータを指定されたタイトル（および、指定されていれば URL）でセッション履歴に追加します。このデータは DOM においては透過的でないものとして扱われます。シリアライズ可能な JavaScript を指定することができます。詳しくは、履歴 API での作業を参照してください。

`replaceState()`

履歴スタックの最新の項目が、指定したデータ、タイトル、指定されていれば URL になるよう更新します。データは DOM では透過的でないものとして扱われます。シリアライズ可能な JavaScript を指定することができます。なお、 Safari 以外のすべてのブラウザーが今のところ *title* 引数を無視することに注意してください。詳しくは、 履歴 API での作業を参照してください。

仕様書
---

| Specification |
| --- |
| HTML Standard # the-history-interface |

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

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

関連情報
----

* `history` グローバルオブジェクト
WebGLBuffer
===========

**WebGLBuffer** インターフェイスは WebGL API の一部で、頂点や色などのデータを格納する不透明なバッファーオブジェクトを表します。

WebGLObject

WebGLBuffer解説
--

`WebGLBuffer` オブジェクトはそれ自身のメソッドやプロパティを定義しておらず、その内容には直接アクセスできません。 `WebGLBuffer` オブジェクトを扱う場合、 `WebGLRenderingContext` の以下のメソッドが役に立ちます。

* `WebGLRenderingContext.bindBuffer()`
* `WebGLRenderingContext.createBuffer()`
* `WebGLRenderingContext.deleteBuffer()` (en-US)
* `WebGLRenderingContext.isBuffer()` (en-US)
例
-

### バッファーの作成


```js
const canvas = document.getElementById("canvas");
const gl = canvas.getContext("webgl");
const buffer = gl.createBuffer();
```

仕様書
---

| Specification |
| --- |
| WebGL Specification # 5.4 |

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

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

関連情報
----

* `WebGLRenderingContext.bindBuffer()`
* `WebGLRenderingContext.createBuffer()`
* `WebGLRenderingContext.deleteBuffer()` (en-US)
* `WebGLRenderingContext.isBuffer()` (en-US)
* その他のバッファー: `WebGLFramebuffer`, `WebGLRenderbuffer`
HTMLDataElement
===============

**`HTMLDataElement`** インターフェイスは、（継承によって利用できる通常の `HTMLElement` のものの他に）`<data>` 要素を操作するための特殊なプロパティを提供します。

EventTarget

Node

Element

HTMLElement

HTMLDataElement属性
--

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

`HTMLDataElement.value`

HTML の `value` 属性を反映する、要素の機械可読な値が入った文字列です。

メソッド
----

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

仕様書
---

| Specification |
| --- |
| HTML Standard # htmldataelement |

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

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

関連情報
----

* 本インターフェースを実装する HTML 要素: `<data>`.
Window.performance
==================

`Window` インタフェースのパフォーマンスプロパティは、現在のドキュメントに関するパフォーマンス情報を収集するために使用できる `Performance` オブジェクトを返します。これはパフォーマンスタイムライン API、高解像度時間 API、ナビゲーションタイミング API、ユーザータイミング API (en-US) およびリソースタイミング API の公開ポイントとして機能します。

構文
--
```

performanceData = window.performance;
```

### 値

それが公開する API によって提供されるパフォーマンスおよびタイミング関連情報へのアクセスを提供する `Performance` オブジェクト。

仕様
--

| Specification |
| --- |
| High Resolution Time # the-performance-attribute |

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

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

`AudioContext` インターフェイスは `AudioNode` によって表現され、互いにリンクする音声モジュールから作られた音声処理グラフを表します。

音声コンテキストは、それが格納するノードの作成と、音声処理（デコード）の実行の両方を制御します。何らかの処理を行う前に `AudioContext` を作成する必要があります。毎回新しいものを初期化するのではなく、 1 つの AudioContext を作成し、それを再利用することを推奨します。また、 1 つの `AudioContext` を複数の異なるオーディオソースに使用し、同時にパイプラインを使用しても問題ありません。

EventTarget

BaseAudioContext

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

`AudioContext()`

`AudioContext` オブジェクトを新しく作成し、返します。

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

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

`AudioContext.baseLatency` 読取専用 

`AudioContext` が `AudioDestinationNode` から音声サブシステムに音声を渡す際に発生する処理遅延の秒数を返します。

`AudioContext.outputLatency` 読取専用 

現在の音声コンテキストの出力レイテンシーの見積を返します。

`AudioContext.sinkId` 読取専用  
Experimental

現在の出力音声機器のシンク ID を返します。

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

*親インターフェイスである `BaseAudioContext` から継承したメソッドもあります。*

`AudioContext.close()`

任意のシステム音声リソースをリリースするために、音声コンテキストを閉じます。

`AudioContext.createMediaElementSource()`

`HTMLMediaElement` と関連付けられた `MediaElementAudioSourceNode` を生成します。これは `<video>` 要素もしくは `<audio>` 要素からの再生や操作をするために使うことができます。

`AudioContext.createMediaStreamSource()`

ローカルのコンピューターのマイクもしくは他のソースから来る音声ストリームを表現している `MediaStream` と関連付けられた `MediaStreamAudioSourceNode` を生成します。

`AudioContext.createMediaStreamDestination()`

ローカルファイルに保存されたものかその他のコンピューターに送信された音声ストリームを表す `MediaStream` と関連付けられた `MediaStreamAudioDestinationNode` を生成します。

`AudioContext.createMediaStreamTrackSource()`

メディアストリームトラックを表す `MediaStream` と関連づけられた `MediaStreamTrackAudioSourceNode` を生成します。

`AudioContext.getOutputTimestamp()`

2 つの関連づけられたコンテキストの音声ストリームの位置の値を含む新しい `AudioTimestamp` オブジェクトを返します。

`AudioContext.resume()`

前回中断/一時停止した音声コンテキストの時間の進行を再開します。

`AudioContext.setSinkId()` 
Experimental

この `AudioContext` 用の出力音声機器を設定します。

`AudioContext.suspend()`

一時的に音声ハードウェアアクセスを停止し、プロセスの CPU/バッテリー使用を減らすために、音声コンテキストの時間の進行を中断します。

イベント
----

`sinkchange` 
Experimental

出力音声デバイスが変更された (そしてその結果 `AudioContext.sinkId` が変更された) 時発火します。

例
-

基本的な音声コンテキストの作成方法です。


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

const oscillatorNode = audioCtx.createOscillator();
const gainNode = audioCtx.createGain();
const finish = audioCtx.destination;
// etc.
```

仕様
--

| Specification |
| --- |
| Web Audio API # AudioContext |

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

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

参考
--

* ウェブオーディオ API の使用
* `OfflineAudioContext`
HTMLTableCaptionElement
=======================

**`HTMLTableCaptionElement`** インターフェイスは（通常の `HTMLElement` インターフェイス経由で継承によって利用できるものに加えて）表のキャプション要素を操作する特別なプロパティを提供します。

EventTarget

Node

Element

HTMLElement

HTMLTableCaptionElementプロパティ
-----

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

`HTMLTableCaptionElement.align` 
非推奨

文字列で、表に対するキャプションの配置を示す列挙型の属性を表します。

メソッド
----

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

仕様書
---

| Specification |
| --- |
| HTML Standard # htmltablecaptionelement |

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

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

関連情報
----

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

**`WritableStreamDefaultController`** はストリーム API のインターフェイスで、`WritableStream` の状態を制御できるコントローラーを表します。 `WritableStream` を構築する場合、基になるシンクには、操作のために対応する `WritableStreamDefaultController` インスタンスが与えられます。

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

なし。 `WritableStreamDefaultController` インスタンスは、`WritableStream` の構築中に自動的に作成されます。

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

`WritableStreamDefaultController.signal` 読取専用 

このコントローラーに関連付けられた `AbortSignal` です。

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

`WritableStreamDefaultController.error()`

関連するストリームとの今後のやり取りでエラーが発生します。

例
-


```js
const writableStream = new WritableStream({
  start(controller) {
    // コントローラーで何かをする

    // 必要に応じてストリームをエラーにする
    controller.error("My stream is broken");
  },
  write(chunk, controller) {
    // ...
  },
  close(controller) {
    // ...
  },
  abort(err) {
    // ...
  },
});
```

仕様書
---

| Specification |
| --- |
| Streams Standard # ws-default-controller-class |

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

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

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) でのみ利用できます。

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

WebUSB API の `USBIsochronousInTransferPacket` インターフェイスは、`USBDevice` インターフェイスの `isochronousTransferIn()` メソッドの呼び出しに対する応答の一部です。これは、アイソクロナスエンドポイントによる USB デバイスから USB ホストへのデータ転送の要求における個別のパケットの状態を表します。

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

`USBIsochronousInTransferPacket()` 
Experimental

指定の `status` および `data` フィールドを持つ新しい `USBIsochronousInTransferPacket` オブジェクトを生成します。

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

`USBIsochronousInTransferPacket.data` 読取専用  読取専用  
Experimental

あれば、USB デバイスからこのパケットで受信したデータが格納された `DataView` オブジェクトを返します。

`USBIsochronousInTransferPacket.status` 読取専用  読取専用  
Experimental

転送要求の状態を返します。以下のいずれかです。

* `"ok"` — 転送は成功しました。
* `"stall"` — デバイスはエンドポイントでストール状態を発生させ、エラーを示しました。アイソクロナスエンドポイントでのストールをクリアする必要はありません。
* `"babble"` — デバイスは想定より多くのデータで応答しました。

仕様書
---

| Specification |
| --- |
| WebUSB API # usbisochronousintransferpacket |

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

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

**WebGLFramebuffer** インターフェイスは WebGL API の一部で、レンダリング先となるバッファーの集まりを表します。

WebGLObject

WebGLFramebuffer解説
--

`WebGLFramebuffer` オブジェクトはそれ自身のメソッドやプロパティを定義しておらず、その内容には直接アクセスできません。 `WebGLFramebuffer` オブジェクトを扱う場合、 `WebGLRenderingContext` の以下のメソッドが役に立ちます。

* `WebGLRenderingContext.bindFramebuffer()` (en-US)
* `WebGLRenderingContext.createFramebuffer()`
* `WebGLRenderingContext.deleteFramebuffer()` (en-US)
* `WebGLRenderingContext.isFramebuffer()` (en-US)
例
-

### フレームバッファーの作成


```js
const canvas = document.getElementById("canvas");
const gl = canvas.getContext("webgl");
const buffer = gl.createFramebuffer();
```

仕様書
---

| Specification |
| --- |
| WebGL Specification # 5.5 |

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

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

関連情報
----

* `WebGLRenderingContext.bindFramebuffer()` (en-US)
* `WebGLRenderingContext.createFramebuffer()`
* `WebGLRenderingContext.deleteFramebuffer()` (en-US)
* `WebGLRenderingContext.isFramebuffer()` (en-US)
* 他のバッファー: `WebGLBuffer`, `WebGLRenderbuffer`
AbsoluteOrientationSensor
=========================

Sensor APIs の **`AbsoluteOrientationSensor`** インターフェイスは、地球の参照用座標系に対するデバイスの物理的な向きを表します。

このセンサーを使用するには、ユーザーが Permissions API により `'accelerometer'`、`'gyroscope'`、`'magnetometer'` デバイスセンサーを使用する許可を与える必要があります。

この機能はサーバーで設定された Permissions Policy でブロックされる可能性があります。

EventTarget

Sensor

OrientationSensor

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

`AbsoluteOrientationSensor()`

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

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

*固有のプロパティはありません。祖先の `OrientationSensor` および `Sensor` からプロパティを継承します。*

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

*固有のメソッドはありません。祖先の `OrientationSensor` および `Sensor` からメソッドを継承します。*

イベント
----

*固有のイベントはありません。祖先の `Sensor` からイベントを継承します。*

例
-

### 基本的な例

以下の例は、だいたい Intel の Orientation Phone demo をもとにしており、1 秒に 60 回の周期を設定して `AbsoluteOrientationSensor` のインスタンスを生成しています。測定ごとに、`OrientationSensor.quaternion` を用いて電話の視覚的なモデルを回転しています。


```js
const options = { frequency: 60, referenceFrame: "device" };
const sensor = new AbsoluteOrientationSensor(options);

sensor.addEventListener("reading", () => {
  // model は別の場所で生成した Three.js のオブジェクト
  model.quaternion.fromArray(sensor.quaternion).inverse();
});
sensor.addEventListener("error", (error) => {
  if (event.error.name === "NotReadableError") {
    console.log("センサーが利用できません。");
  }
});
sensor.start();
```

### 許可の例

向きセンサーを使用するには、複数のデバイスセンサーを使用する許可を要求する必要があります。`Permissions` インターフェイスは Promise を使用するので、許可を要求するのには `Promise.all` を使用するとよいです。


```js
const sensor = new AbsoluteOrientationSensor();
Promise.all([
  navigator.permissions.query({ name: "accelerometer" }),
  navigator.permissions.query({ name: "magnetometer" }),
  navigator.permissions.query({ name: "gyroscope" }),
]).then((results) => {
  if (results.every((result) => result.state === "granted")) {
    sensor.start();
    // …
  } else {
    console.log("AbsoluteOrientationSensor を使用する許可がありません。");
  }
});
```

仕様書
---

| Specification |
| --- |
| Orientation Sensor # absoluteorientationsensor-interface |

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

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

`MediaElementAudioSourceNode` インターフェイスは、HTML の `<audio>` 要素または `<video>` 要素からなる音源を表し、音源としてふるまいます。

`MediaElementAudioSourceNode` は入力を持たず、ちょうど 1 個の出力を持ち、`AudioContext.createMediaElementSource()` メソッドにより生成されます。出力のチャンネル数はノードの生成時に用いられた `HTMLMediaElement` が参照する音声のチャンネル数で、`HTMLMediaElement` が音声を持たないときは 1 です。

EventTarget

AudioNode

MediaElementAudioSourceNode

|  |  |
| --- | --- |
| 入力数 | `0` |
| 出力数 | `1` |
| チャンネル数 | 2 (ただし、`AudioNode.channelCount` は `AudioNode` の入力のアップミキシングやダウンミキシングにのみ用いられ、`MediaElementAudioSourceNode` には入力がありません) |

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

`MediaElementAudioSourceNode()`

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

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

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

`mediaElement` 読取専用 

この `MediaStreamAudioSourceNode` の構築時に用いられた `HTMLMediaElement` です。

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

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

例
-

サンプルコードは、`AudioContext.createMediaElementSource()` を参照してください。

仕様書
---

| Specification |
| --- |
| Web Audio API # MediaElementAudioSourceNode |

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

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

関連情報
----

* Web Audio API の使用
ReadableByteStreamController
============================

**`ReadableByteStreamController`** はストリーム API のインターフェイスで、読み取り可能なバイトストリームコントローラーを表します。
 これは、基礎となるバイトソースを持つ `ReadableStream` の状態と内部キューを制御し、ストリームの内部キューが空の場合に、基礎となるソースからコンシューマーへの効率的なゼロコピーデータ移譲を可能にします。

 このコントローラ型のインスタンスは、 `underlyingSource` オブジェクトに `type="bytes"` プロパティを設定して `ReadableStream()` コンストラクターの引数として渡された場合に作成されます。
 `underlyingSource` オブジェクトは `start()` および `pull()` コールバック関数を定義することもできます。
 これらは、コントローラーを引数として呼び出され、 基盤となるソースを設定し、必要に応じてデータをリクエストします。

 基盤となるソースは、コントローラーを使用して `byobRequest` プロパティまたは `enqueue()` メソッドでストリームにデータを供給します。
 `byobRequest` は `ReadableStreamBYOBRequest` オブジェクトで、コンシューマーから直接コンシューマーにゼロコピーでデータを移譲するための待機リクエストを表します。
 データが存在する場合は、`byobRequest` を使用してデータをコピーする必要があります（この場合は `enqueue()` を使用しないでください）。
 基盤となるソースがストリームにデータを渡す必要があり、 `byobRequest` が `null` の場合、ソースは `enqueue()` を呼び出して、ストリーム内部のキューにデータを追加することができます。

`byobRequest` は、リーダーからのリクエストがあり、ストリームの内部キューが空の場合にのみ、「BYOB モード」で作成されることに注意してください。
 「BYOB モード」は、 `ReadableStreamBYOBReader` （通常、 `ReadableStream.getReader()` を引数 `{ mode: 'byob' }` で呼び出すことで構築されます）を使用している場合に有効になります。
 既定値でリーダーを使用し、 `autoAllocateChunkSize` が `ReadableController()` コンストラクター で指定されている場合にも有効になります。

 基盤となるバイトソースは、コントローラーを使用して、すべてのデータが送信されたときにストリームを閉じたり (`close()`)、 `error()` を使用して基盤となるソースからエラーを報告したりすることもできます。
 コントローラーの `desiredSize` プロパティを使用して「背圧」をかけ、基盤となるソースに内部キューのサイズを通知します（値が小さいと、キューがいっぱいになっていることを示し、基盤となるソースに流入を一時停止またはスロットルすることが望ましいことを示唆します）。

たとえコントローラーが主に基盤となるバイトソースによって使用されるとしても、ストリームの指示のためにシステムの他の部分によって格納することができない理由はないことに注意してください。

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

なし。 `ReadableByteStreamController` インスタンスは、 `underlyingSource` に `type="bytes"` プロパティが設定されたものが `ReadableStream()` コンストラクターに渡された場合、自動的に作成されます。

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

`ReadableByteStreamController.byobRequest` 読取専用 

現在の BYOB プルリクエストを返します。未処理のリクエストがない場合は `null` となります。

`ReadableByteStreamController.desiredSize` 読取専用 

ストリームの内部キューを満たすために必要な希望サイズを返します。

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

`ReadableByteStreamController.close()`

関連するストリームを閉じます。

`ReadableByteStreamController.enqueue()`

所与のチャンクを関連するストリームのキューに入れます。

`ReadableByteStreamController.error()`

関連するストリームとの今後のやり取りでエラーが発生します。

例
-

コントローラーは、データを移譲またはエンキューしたり、ストリームにデータがない（閉じられた）またはエラーとされていたことを指示するために、基盤となるソースによって使用されます。また、 `desiredSize` を使用して、希望するデータレートの「上流」から基盤ソースに指示するためにも使用します。

読み取り可能なバイトストリームの使用の例、特に読み取り可能なソケットプッシュバイトストリームの作成がこれらのほとんどの場合を示します。

仕様書
---

| Specification |
| --- |
| Streams Standard # rbs-controller-class |

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

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

関連情報
----

* ストリーム API の概念
* 読み取り可能なバイトストリームの使用
* `ReadableStream`
* WHATWG Stream Visualizer, for a basic visualization of readable, writable, and transform streams.
* Web-streams-polyfill or sd-streams - polyfills
NDEFReadingEvent
================

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

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

**`NDEFReadingEvent`** はウェブ NFC API のインターフェイスで、 `NDEFReader` によって得られる新しい NFC 読み取りに対して配信するイベントを表します。

Event

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

`NDEFReadingEvent.NDEFReadingEvent()`

新しい `NDEFReadingEvent` を作成します。

プロパティ
-----

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

`NDEFReadingEvent.message`読取専用 

`NDEFMessage` オブジェクトで、受信したメッセージを表します。

`NDEFReadingEvent.serialNumber`読取専用 

機器のシリアル番号で、衝突防止と識別のために使用されます。シリアル番号がない場合は空文字列を返します。

メソッド
----

*親である `Event` からメソッドを継承しています*。

仕様書
---

| Specification |
| --- |
| Web NFC API # dom-ndefreadingevent |

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

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

Sensor APIs の **`Gyroscope`** インターフェイスは、デバイスの 3 軸それぞれの角速度の計測値を提供します。

このセンサーを使用するには、ユーザーが Permissions API により `'gyroscope'` デバイスセンサーを使用する許可を与える必要があります。さらに、この機能はサーバーで設定された Permissions Policy によりブロックされる可能性があります。

EventTarget

Sensor

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

`Gyroscope()`

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

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

`Gyroscope.x` 読取専用 

デバイスの x 軸方向の角速度を表す `double` 値を返します。

`Gyroscope.y` 読取専用 

デバイスの y 軸方向の角速度を表す `double` 値を返します。

`Gyroscope.z` 読取専用 

デバイスの z 軸方向の角速度を表す `double` 値を返します。

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

*`Gyroscope` には独自のメソッドはありません。しかし、親インターフェイスの `Sensor` および `EventTarget` からメソッドを継承しています。*

イベント
----

*`Gyroscope` には独自のイベントはありません。しかし、親インターフェイスの `Sensor` からイベントを継承しています。*

例
-

ジャイロスコープは、通常 `reading` イベントコールバックで読み取られます。以下の例では、これを 1 秒に 60 回行います。


```js
let gyroscope = new Gyroscope({ frequency: 60 });

gyroscope.addEventListener("reading", (e) => {
  console.log(`X 軸方向の角速度 ${gyroscope.x}`);
  console.log(`Y 軸方向の角速度 ${gyroscope.y}`);
  console.log(`Z 軸方向の角速度 ${gyroscope.z}`);
});
gyroscope.start();
```

仕様書
---

| Specification |
| --- |
| Gyroscope # gyroscope-interface |

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

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

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

**`WorkletGlobalScope`** インターフェイスは、特定のワークレットスコープクラスの継承元となる抽象クラスです。それぞれの `WorkletGlobalScope` が新しいグローバル環境を定義します。

**メモ:** 通常このインターフェイスを扱う必要はありません。これは派生クラスが作成されることを意図した基底インターフェイスです。`AudioWorklet` オブジェクトの中で派生クラスの `AudioWorkletGlobalScope` が見つかり、`PaintWorklet` (en-US) オブジェクトの内部で `PaintWorkletGlobalScope` (en-US) が見つかるでしょう。

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

なし

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

なし

仕様書
---

| Specification |
| --- |
| HTML Standard # workletglobalscope |

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

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

関連情報
----

* `AudioWorkletGlobalScope`
* `PaintWorkletGlobalScope` (en-US)
Insertable Streams for MediaStreamTrack API
===========================================

**Insertable Streams for MediaStreamTrack API** は、`MediaStreamTrack` に新しいコンポーネントを追加する方法を提供します。

概念と使用法
------

映像や音声を処理する際、追加の要素を挿入したり、ストリームにその他の処理を行ったりしたくなることがあります。たとえば、アプリケーションは 2 本のトラック、たとえば天気の地図とその地図を解説しているプレゼンターの映像を合成したいことがあります。もしくは、トラックの処理により、背景のぼかし、背景ノイズの除去、他の要素の追加 (たとえば、人々に面白い帽子をかぶせるなど) をしたいかもしれません。この API は、ストリームに直接アクセスして操作できるようにすることで、これらを行う方法を提供します。

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

`MediaStreamTrackGenerator` (en-US)

`MediaStreamTrack` のソースとして働く `WritableStream` を生成します。

`MediaStreamTrackProcessor` (en-US)

`MediaStreamTrack` オブジェクトのソースを処理し、メディアフレームのストリームを生成します。

例
-

以下の例は記事 Insertable streams for MediaStreamTrack に載っているもので、ビデオストリーム内のバーコードをハイライトするバーコードスキャナーアプリケーションのデモを行います。これは、`MediaStreamTrackProcessor.readable` (en-US) 経由でアクセスしているストリームを変換します。


```js
const stream = await getUserMedia({ video: true });
const videoTrack = stream.getVideoTracks()[0];

const trackProcessor = new MediaStreamTrackProcessor({ track: videoTrack });
const trackGenerator = new MediaStreamTrackGenerator({ kind: "video" });

const transformer = new TransformStream({
  async transform(videoFrame, controller) {
    const barcodes = await detectBarcodes(videoFrame);
    const newFrame = highlightBarcodes(videoFrame, barcodes);
    videoFrame.close();
    controller.enqueue(newFrame);
  },
});

trackProcessor.readable
  .pipeThrough(transformer)
  .pipeTo(trackGenerator.writable);
```
DeviceMotionEventAcceleration
=============================

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

**`DeviceMotionEventAcceleration`** オブジェクトは、端末が 3 軸すべてで経験している加速度の量に関する情報を提供します。

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

`DeviceMotionEventAcceleration.x` 読取専用 

X 軸に沿った加速度の大きさです。

`DeviceMotionEventAcceleration.y` 読取専用 

Y 軸に沿った加速度の大きさです。

`DeviceMotionEventAcceleration.z` 読取専用 

Z 軸に沿った加速度の大きさです。

仕様書
---

| Specification |
| --- |
| DeviceOrientation Event Specification # devicemotioneventacceleration |

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

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