recursal/MDN huggingface dataset:
MediaTrackSupportedConstraints: suppressLocalAudioPlayback property
===================================================================

**Experimental:** **This is an experimental technology**  
Check the Browser compatibility table carefully before using this in production.

The `MediaTrackSupportedConstraints` dictionary's **`suppressLocalAudioPlayback`** property indicates whether or not the `suppressLocalAudioPlayback` constraint is supported by the user agent and the device on which the content is being used.

The supported constraints list is obtained by calling `navigator.mediaDevices.getSupportedConstraints()`.

Value
-----

A boolean value which is `true` if the `suppressLocalAudioPlayback` constraint is supported by the device and user agent.

Examples
--------

The function below sets up the options object for the call to `getDisplayMedia()`. It adds the `suppressLocalAudioPlayback` constraint (requesting that captured audio is not played out of the user's local speakers) only if it is known to be supported by the browser. Capturing is then started by calling `getDisplayMedia()` and attaching the returned stream to the video element referenced by the variable `videoElem`.


```js
async function capture() {
  const supportedConstraints = navigator.mediaDevices.getSupportedConstraints();
  const displayMediaOptions = {
    audio: {},
  };

  if (supportedConstraints.suppressLocalAudioPlayback) {
    displayMediaOptions.audio.suppressLocalAudioPlayback = true;
  }

  try {
    videoElem.srcObject =
      await navigator.mediaDevices.getDisplayMedia(displayMediaOptions);
  } catch (err) {
    /\* handle the error \*/
  }
}
```

Specifications
--------------

| Specification |
| --- |
| Screen Capture # dom-mediatracksupportedconstraints-suppresslocalaudioplayback |

Browser compatibility
---------------------

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

See also
--------

* Screen Capture API
* Using the screen capture API
* Capabilities, constraints, and settings
* `MediaDevices.getDisplayMedia()`
* `MediaStreamTrack.getConstraints()`
* `MediaStreamTrack.applyConstraints()`
* `MediaStreamTrack.getSettings()`
MediaTrackSupportedConstraints: logicalSurface property
=======================================================

The `MediaTrackSupportedConstraints` dictionary's **`logicalSurface`** property indicates whether or not the `logicalSurface` constraint is supported by the user agent and the device on which the content is being used.

The supported constraints list is obtained by calling `navigator.mediaDevices.getSupportedConstraints()`.

Syntax
------


```js
isLogicalSurfaceSupported = supportedConstraints.logicalSurface
```

### Value

A boolean value which is `true` if the `logicalSurface` constraint is supported by the device and user agent.

Example
-------

 This method sets up the constraints object specifying the options for the call to
 `getDisplayMedia()`. It adds the
 `logicalSurface` constraint (requesting that only logical display
 surfaces—those which may not be entirely visible onscreen—be included among the options
 available to the user) only if it is known to be supported by the browser. Capturing is
 then started by calling `getDisplayMedia()` and attaching the returned stream
 to the video element referenced by the variable `videoElem`.


```js
async function capture() {
  const supportedConstraints = navigator.mediaDevices.getSupportedConstraints();
  const displayMediaOptions = {
    video: {},
    audio: false,
  };

  if (supportedConstraints.logicalSurface) {
    displayMediaOptions.video.logicalSurface = "monitor";
  }

  try {
    videoElem.srcObject =
      await navigator.mediaDevices.getDisplayMedia(displayMediaOptions);
  } catch (err) {
    /\* handle the error \*/
  }
}
```

Specifications
--------------

| Specification |
| --- |
| Screen Capture # dom-mediatracksupportedconstraints-logicalsurface |

Browser compatibility
---------------------

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

See also
--------

* Screen Capture API
* Using the screen capture API
* Capabilities, constraints, and settings
* `MediaDevices.getDisplayMedia()`
* `MediaStreamTrack.getConstraints()`
* `MediaStreamTrack.applyConstraints()`
* `MediaStreamTrack.getSettings()`
MediaTrackSupportedConstraints: displaySurface property
=======================================================

The `MediaTrackSupportedConstraints` dictionary's **`displaySurface`** property indicates whether or not the `displaySurface` constraint is supported by the user agent and the device on which the content is being used.

The supported constraints list is obtained by calling `navigator.mediaDevices.getSupportedConstraints()`.

Value
-----

A Boolean value which is `true` if the `displaySurface` constraint is supported by the device and user agent.

Examples
--------

 This method sets up the constraints object specifying the options for the call to
 `getDisplayMedia()`. It adds the
 `displaySurface` constraint (requesting that only fullscreen sharing be
 allowed) only if it is known to be supported by the browser. Capturing is then started
 by calling `getDisplayMedia()` and attaching the returned stream to the video
 element referenced by the variable `videoElem`.


```js
async function capture() {
  let supportedConstraints = navigator.mediaDevices.getSupportedConstraints();
  let displayMediaOptions = {
    video: {},
    audio: false,
  };

  if (supportedConstraints.displaySurface) {
    displayMediaOptions.video.displaySurface = "monitor";
  }

  try {
    videoElem.srcObject =
      await navigator.mediaDevices.getDisplayMedia(displayMediaOptions);
  } catch (err) {
    /\* handle the error \*/
  }
}
```

Specifications
--------------

| Specification |
| --- |
| Screen Capture # dom-mediatracksupportedconstraints-displaysurface |

Browser compatibility
---------------------

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

See also
--------

* Screen Capture API
* Using the screen capture API
* Capabilities, constraints, and settings
* `MediaDevices.getDisplayMedia()`
* `MediaStreamTrack.getConstraints()`
* `MediaStreamTrack.applyConstraints()`
* `MediaStreamTrack.getSettings()`
CSSUnparsedValue: values() method
=================================

 The **`CSSUnparsedValue.values()`** method
 returns a new *array iterator* object that contains the
 values for each index in the CSSUnparsedValue object.

Syntax
------


```js
values()
```

### Parameters

None.

### Return value

A new `Array`.

Specifications
--------------

#### No specification found

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

Browser compatibility
---------------------

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

See also
--------

* `CSSUnparsedValue()`
* `CSSUnparsedValue.entries`
* `CSSUnparsedValue.forEach`
* `CSSUnparsedValue.keys`
* `CSSUnparsedValue.length`
* Using the CSS Typed OM
* CSS Typed Object Model API
CSSUnparsedValue: length property
=================================

 The **`length`** read-only property of the
 `CSSUnparsedValue` interface returns the number of items in the object.

Value
-----

An integer.

Examples
--------

 In this example we employ the `CSSUnparsedValue()`
 constructor, then query the length:


```js
const values = new CSSUnparsedValue(["1em", "#445566", "-45px"]);

console.log(values.length); // 3
```

Specifications
--------------

| Specification |
| --- |
| CSS Typed OM Level 1 # dom-cssunparsedvalue-length |

Browser compatibility
---------------------

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

See also
--------

* `CSSUnparsedValue()`
* `CSSUnparsedValue.entries`
* `CSSUnparsedValue.forEach`
* `CSSUnparsedValue.keys`
* `CSSUnparsedValue.values`
* Using the CSS Typed OM
* CSS Typed Object Model API
CSSUnparsedValue: keys() method
===============================

 The **`CSSUnparsedValue.keys()`** method
 returns a new *array iterator* object that contains the keys
 for each index in the array.

Syntax
------


```js
keys()
```

### Parameters

None.

### Return value

A new `Array`.

Specifications
--------------

#### No specification found

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

Browser compatibility
---------------------

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

See also
--------

* `CSSUnparsedValue()`
* `CSSUnparsedValue.entries`
* `CSSUnparsedValue.forEach`
* `CSSUnparsedValue.length`
* `CSSUnparsedValue.values`
* Using the CSS Typed OM
* CSS Typed Object Model API
CSSUnparsedValue: forEach() method
==================================

 The **`CSSUnparsedValue.forEach()`** method
 executes a provided function once for each element of the
 `CSSUnparsedValue`.

Syntax
------


```js
forEach(callbackFn)
forEach(callbackFn, thisArg)
```

### Parameters

`callbackFn`

The function to execute for each element, taking three arguments:

`currentValue`

The value of the current element being processed.

`index` Optional

The index of the current element being processed.

`array` Optional

 The `CSSUnparsedValue` that `forEach()` is being called
 on.



`thisArg` Optional

 Value to use as **`this`** (i.e., the reference
 `Object`) when executing `callback`.


### Return value

None (`undefined`).

Specifications
--------------

#### No specification found

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

Browser compatibility
---------------------

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

See also
--------

* `CSSUnparsedValue()`
* `CSSUnparsedValue.entries`
* `CSSUnparsedValue.keys`
* `CSSUnparsedValue.length`
* `CSSUnparsedValue.values`
* Using the CSS Typed OM
* CSS Typed Object Model API
CSSUnparsedValue: entries() method
==================================

 The **`CSSUnparsedValue.entries()`** method
 returns an array of a given object's own enumerable property `[key, value]`
 pairs in the same order as that provided by a `for...in` loop (the difference being that a for-in loop enumerates properties in the
 prototype chain as well).

Syntax
------


```js
entries(obj)
```

### Parameters

`obj`

 The `CSSUnparsedValue` whose enumerable own property
 `[key, value]` pairs are to be returned.


### Return value

 An array of the given `CSSUnparsedValue` object's own enumerable property
 `[key, value]` pairs.

Specifications
--------------

#### No specification found

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

Browser compatibility
---------------------

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

See also
--------

* `CSSUnparsedValue()`
* `CSSUnparsedValue.forEach`
* `CSSUnparsedValue.keys`
* `CSSUnparsedValue.length`
* `CSSUnparsedValue.values`
* Using the CSS Typed OM
* CSS Typed Object Model API
CSSUnparsedValue: CSSUnparsedValue() constructor
================================================

 The **`CSSUnparsedValue()`** constructor
 creates a new `CSSUnparsedValue` object which represents property values
 that reference custom properties.

Syntax
------


```js
new CSSUnparsedValue(members)
```

### Parameters

`members`

 An array whose values must be either a string or a
 `CSSVariableReferenceValue`.


Examples
--------


```js
const value = new CSSUnparsedValue(["4deg"]);
const values = new CSSUnparsedValue(["1em", "#445566", "-45px"]);

console.log(value); // CSSUnparsedValue {0: "4deg", length: 1}
console.log(values); // CSSUnparsedValue {0: "1em", 1: "#445566", 2: "-45px", length: 3}
```

Specifications
--------------

| Specification |
| --- |
| CSS Typed OM Level 1 # dom-cssunparsedvalue-cssunparsedvalue |

Browser compatibility
---------------------

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

See also
--------

* `CSSUnparsedValue.entries`
* `CSSUnparsedValue.forEach`
* `CSSUnparsedValue.keys`
* `CSSUnparsedValue.length`
* `CSSUnparsedValue.values`
* Using the CSS Typed OM
* CSS Typed Object Model API
PaymentAddress: toJSON() method
===============================

**Secure context:** This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

**Deprecated:** This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

**Non-standard:** This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

The **`toJSON()`** method of the `PaymentAddress` interface is a standard serializer that returns a JSON representation of the PaymentAddress object's properties.

Syntax
------


```js
toJSON()
```

### Return value

A JSON object.

Browser compatibility
---------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.
PaymentAddress: region property
===============================

**Secure context:** This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

**Deprecated:** This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

**Non-standard:** This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

 The read-only **`region`** property of the
 `PaymentAddress` interface returns a string containing the top-level
 administrative subdivision of the country in which the address is located. For example,
 this may be a state, province, oblast, or prefecture.

Value
-----

 A string specifying the top-level administrative subdivision within
 the country in which the address is located. This region has different names in
 different countries, such as: state, province, oblast, prefecture, or county.

Usage notes
-----------

 In some countries, like Belgium, it's uncommon for people to provide a region as part
 of their postal address. In such cases, the browser returns an empty string as the value
 of `region`. However, the address should still be acceptable to use for its
 intended purpose (e.g., to ship a product). However, always verify addresses to make
 sure what the user provides is usable.

Browser compatibility
---------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.
PaymentAddress: city property
=============================

**Secure context:** This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

**Deprecated:** This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

**Non-standard:** This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

 The **`city`** read-only property of
 the `PaymentAddress` interface returns a string containing the city or
 town portion of the address.

Value
-----

 A string indicating the city or town portion of the address described
 by the `PaymentAddress` object.

Browser compatibility
---------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.
PaymentAddress: phone property
==============================

**Secure context:** This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

**Deprecated:** This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

**Non-standard:** This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

 The read-only **`phone`** property of the
 `PaymentAddress` interface returns a string containing the telephone number
 of the recipient or contact person.

Value
-----

 A string containing the telephone number for the recipient of the
 shipment or of the responsible party for payment. If no phone number is available, this
 value is an empty string.

Browser compatibility
---------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.
PaymentAddress: dependentLocality property
==========================================

**Secure context:** This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

**Deprecated:** This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

**Non-standard:** This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

 The read-only **`dependentLocality`**
 property of the `PaymentAddress` interface is a string containing a
 sublocality designation within a city, such as a neighborhood, borough, district, or,
 in the United Kingdom, a dependent locality. Also known as a *post
town*.

Value
-----

 A string indicating the sublocality portion of the address. This may
 be an empty string if no sublocality is available or required. It's used to provide
 disambiguation when a city may include areas that duplicate street names

 A sublocality is an area within a city, such as a neighborhood, borough, or district.
 In the United Kingdom, this is used to indicate the **post town** in the
 United Kingdom (known officially by the Royal Mail as the **dependent
locality**). This is a disambiguating feature of addresses in places where a
 city may have areas that duplicate street names.

Browser compatibility
---------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.
PaymentAddress: postalCode property
===================================

**Secure context:** This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

**Deprecated:** This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

**Non-standard:** This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

 The **`postalCode`** read-only property of the
 `PaymentAddress` interface returns a string containing a code used by a
 jurisdiction for mail routing, for example, the ZIP Code
 in the United States or the Postal Index Number (PIN code)
 in India.

Value
-----

 A string which contains the postal code portion of the address. A
 postal code is a string (either numeric or alphanumeric) which is used by a postal
 service to optimize mail routing and delivery.

 Various countries use different terms for this. In most of the world, it's known as the
 "post code" or "postal code." In the United States, the ZIP code is used. India uses PIN
 codes.

Browser compatibility
---------------------

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

See also
--------

* Universal Postal Union: Universal Post\*Code® Database