recursal/MDN huggingface dataset:
SVGDescElement
==============

L'interface **`SVGDescElement`** correspond à l'élément `<desc>`.

Propriétés
----------

*Cette interface hérite des propriétés fournies par son parent `SVGGeometryElement` (en-US).*

Méthodes
--------

*Cette interface n'a pas de méthode propre mais hérite des méthodes de son parent `SVGGeometryElement` (en-US).*

Spécifications
--------------

| Specification |
| --- |
| Scalable Vector Graphics (SVG) 2 # InterfaceSVGDescElement |

Compatibilité des navigateurs
-----------------------------

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

Voir aussi
----------

* `<desc>`
Server-sent events
==================

Habituellement, une page web doit envoyer une requête au serveur pour obtenir de nouvelles données. Avec les server-Sent events, le serveur peut envoyer de nouvelles données vers une page web à n'importe quel moment. La page web reçoit alors ces nouveaux messages qui peuvent être traités comme des événements contenant des données.

Documentation
-------------

Utilisation des événements envoyés par le serveur

Un tutoriel sur l'écriture d'une partie côté serveur et côté client d'une application d'événements envoyée par le serveur.

EventSource référence (en-US)

Une référence à l'API EventSource côté client.

Outils
------

* Remy Sharp's EventSource polyfill
* Yaffle's EventSource polyfill
* Rick Waldron's jquery plugin
Rubriques connexes
------------------

* AJAX, JavaScript, WebSockets
Voir aussi
----------

* Une application de type Twitter alimentée par des événements envoyés par le serveur et son code sur Github.
* Événements HTML5 et envoyés par le serveur
* Événements envoyés par le serveur à l'aide d'Asp.Net
Spécification
-------------

* Événements envoyés par le serveur
API 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
L'**API Clipboard** (en français : API Presse-papiers) fournit la possibilité de répondre aux commandes du presse-papiers (couper, copier et coller) ainsi que de lire et écrire sur le presse-papiers système de façon asynchrone. L'accès aux contenus du presse-papiers est protégé par l'API Permissions : la permission `clipboard-write` est donnée automatiquement aux pages lorsqu'elles sont dans l'onglet actif. La permission `clipboard-read` doit quant à elle être demandée, ce que vous pouvez faire en tentant de lire les données du presse-papiers.

**Note :** Cette API *n'est pas disponible* dans les Web Workers (elle n'est pas exposée via `WorkerNavigator` (en-US)).

Cette API est conçue pour remplacer l'accès au presse-papiers précédemment proposé via `document.execCommand()`.

Accéder au presse-papier
------------------------

Au lieu de créer un objet `Clipboard` lors de l'instanciation, vous pouvez accéder au presse-papier du système avec la globale `Navigator.clipboard` (en-US) :


```js
navigator.clipboard
  .readText()
  .then(
    (clipText) => (document.querySelector(".editor").innerText += clipText),
  );
```


Ce bout de code analyse le texte à partir du presse-papiers et l'insère après le premier élément trouvé comportant la classe `editor`. Puisque `readText()` (en-US) (sans oublier `read()` (en-US)) retournent une chaîne vide si le contenu du presse-papier n'est pas textuel, ce code est sécurisé.

Interfaces
----------

`Clipboard` Contexte sécurisé

Fournit une interface pour la lecture et l'écriture de texte et de données sur le presse-papiers du système. La spécification s'y réfère avec le terme "Async Clipboard API".

`ClipboardEvent` (en-US) Contexte sécurisé

Représente les évènements fournissant l'information relative à la modification du presse-papiers, qui peut être l'évènement `cut` (en-US), `copy` ou `paste` (en-US). La spécification s'y réfère avec le terme "Clipboard Event API".

`ClipboardItem` (en-US) Contexte sécurisé

Représente un format de terme unique utilisé pour lire ou écrire des données.

Spécifications
--------------

| Specification |
| --- |
| Clipboard API and events # clipboard-interface |
| Clipboard API and events # clipboard-event-interfaces |
| Clipboard API and events # clipboarditem |

Compatibilité des navigateurs
-----------------------------

### api.Clipboard

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

### api.ClipboardEvent

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

### api.ClipboardItem

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

Voir aussi
----------

* Démonstration de l'API Async Clipboard sur Glitch (en anglais)
* *Image support for Async Clipboard article*
*Image support for Async Clipboard article* (en anglais)
* API Permissions
* Utiliser l'API Permissions (en-US)
GestureEvent
============

**Non standard:** Cette fonctionnalité n'est ni standard, ni en voie de standardisation. Ne l'utilisez pas pour des sites accessibles sur le Web : elle ne fonctionnera pas pour tout utilisateur. Il peut également y avoir d'importantes incompatibilités entre les implémentations et son comportement peut être modifié dans le futur.

L'interface propriétaire **`GestureEvent`** propre à WebKitdonne des informations sur les gestes multi-touches. Les événements utilisant cette interface incluent `gesturestart` (en-US), `gesturechange` (en-US) et `gestureend` (en-US).

`GestureEvent` dérive de `UIEvent` qui elle-même dérive de `Event`.

Constructeur
------------

`GestureEvent()`

Crée un nouvel objet `GestureEvent`.

Propriétés
----------

*Cette interface hérite aussi des propriétés de ses parents `UIEvent` et `Event`.*

`GestureEvent.rotation` Lecture seule 

Changement de rotation (en degrés) depuis le début de l'événement. Les valeurs positives indiquent une rotation dans le sens des aiguilles d'une montre ; les valeurs négatives indiquent une rotation dans le sens inverse des aiguilles d'une montre. Valeur initiale : `0.0`

`GestureEvent.scale` Lecture seule 

Distance entre deux chiffres depuis le début de l'événement. Exprimé en tant que multiple à virgule flottante de la distance initiale entre les chiffres au début du geste. Les valeurs inférieures à 1,0 indiquent une poussée vers l'intérieur (zoom arrière). Les valeurs supérieures à 1.0 indiquent un relachement vers l'extérieur (zoom avant). Valeur initiale: `1.0`

Méthodes
--------

*Cette interface hérite aussi des méthodes de ses parents `UIEvent` et `Event`.*

`GestureEvent.initGestureEvent()`

Initialise la valeur d'un `GestureEvent`. Si l'évènement a déjà été distribué, cette méthode ne fait rien.

Types d'événement gestuel
-------------------------

* `gesturestart` (en-US)
* `gesturechange` (en-US)
* `gestureend` (en-US)
Spécifications
--------------

*Ne fait partie d'aucune spécification.* Apple a une description dans la bibliothèque Safari Developer (en anglais).

Compatibilité des navigateurs
-----------------------------

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

Voir aussi
----------

* `MSGestureEvent`
* `MSGestureStart`
* `MSGestureEnd`
* `MSGestureTap`
* `MSGestureHold`
* `MSGestureChange`
* `MSInertiaStart`
AudioProcessingEvent
====================

**Obsolète:** Cette fonctionnalité a été supprimée des standards du Web. Bien que quelques navigateurs puissent encore la supporter, elle est en cours d'éradication. Ne l'utilisez ni dans d'anciens projets, ni dans de nouveaux. Les pages et applications Web l'utilisant peuvent cesser de fonctionner à tout moment.

AudioProcessingEvent représente l'évènement qui est passé lorsqu'un tampon `ScriptProcessorNode` (en-US) est prêt à être traité.

**Note :** Cette fonctionnalité est dépréciée à partir de la version du 29 Août 2014 de la spécification Web Audio API, elle sera remplacée par les Audio Workers.

Propriétés
----------

*La liste ci-dessous inclut les propriétés héritées de son parent, `Event`.*

| Propriété | Type | Description |
| --- | --- | --- |
| `target` Lecture seule  | `EventTarget` | La cible de l'évènement (la plus haute dans le DOM). |
| `type` Lecture seule  | `DOMString` | Le type d'évènement. |
| `bubbles` Lecture seule  | `boolean` | Indique si l'évènement se propage normalement. |
| `cancelable` Lecture seule  | `boolean` | Indique s'il est possible d'annuler l'évènement. |
| `playbackTime` Lecture seule  | `double` | Moment auquel le son sera joué, tel que défini par `AudioContext.currentTime` (en-US) |
| `inputBuffer` Lecture seule  | `AudioBuffer` | Tampon contenant les données audio à traiter en entrée. Le nombre de canaux est défini comme paramètre, `numberOfInputChannels`, de la méthode constructeur `AudioContext.createScriptProcessor()` (en-US). L'`AudioBuffer` renvoyé est valide uniquement dans la portée de la fonction `onaudioprocess`. |
| `outputBuffer` Lecture seule  | `AudioBuffer` | Tampon dans lequel les données doivent être écrites en sortie. Le nombre de canaux est défini comme paramètre, `numberOfOutputChannels`, de la méthode constructeur `AudioContext.createScriptProcessor()` (en-US). L'`AudioBuffer` renvoyé est valide uniquement dans la portée de la fonction `onaudioprocess`. |

Spécifications
--------------

#### No specification found

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

Compatibilité des navigateurs
-----------------------------

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

Voir aussi
----------

* Utiliser la Web Audio API
Clients
=======

L'interface `Clients` permet d'accéder aux objets `Client`. On y accède via `self.clients` au sein d'un service worker.

Méthodes
--------

`Clients.get()`

Retourne une `Promise` (« *Promesse* ») pour un `Client` correspondant à un `id` donné.

`Clients.matchAll()`

Retourne une `Promise` (« *Promesse* ») pour un tableau d'objets `Client`. L'argument options vous permet de contrôler les types de clients renvoyés.

`Clients.openWindow()`

Ouvre une nouvelle fenêtre de navigateur pour une url donnée et renvoie une `Promise` (« *Promesse* ») pour le nouveau `WindowClient`.

`Clients.claim()`

Permet à un service worker actif de se définir comme le `controller` (en-US) (« *Controlleur* ») pour tous les clients dans son `scope` (« *sa portée* »).

Exemple
-------

L'exemple suivant montre une fenêtre de chat existante ou en crée une nouvelle lorsque l'utilisateur clique sur une notification.


```js
addEventListener("notificationclick", (event) => {
  event.waitUntil(
    (async function () {
      const allClients = await clients.matchAll({
        includeUncontrolled: true,
      });

      let chatClient;

      // Voyons si nous avons déjà une fenêtre de discussion ouverte :
      for (const client of allClients) {
        const url = new URL(client.url);

        if (url.pathname == "/chat/") {
          // Excellent, utilisons-la !
          client.focus();
          chatClient = client;
          break;
        }
      }

      // Si nous n'avons pas trouvé de fenêtre de discussion existante,
      // ouvrons-en une nouvelle :
      if (!chatClient) {
        chatClient = await clients.openWindow("/chat/");
      }

      // Envoyez un message au client :
      chatClient.postMessage("Nouveaux messages !");
    })(),
  );
});
```

Spécifications
--------------

| Specification |
| --- |
| Service Workers # clients-interface |

Compatibilité des navigateurs
-----------------------------

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

Voir aussi
----------

* Utiliser les Service Workers
* Le ServiceWorker est-il prêt ? (en anglais)
* L'objet `Promise`
AuthenticatorAssertionResponse
==============================

**Contexte sécurisé:** Cette fonctionnalité est uniquement disponible dans des contextes sécurisés (HTTPS), pour certains navigateurs qui la prennent en charge.

L'interface **`AuthenticatorAssertionResponse`**, rattachée à l'API Web Authentication, est renvoyée par un appel à `CredentialsContainer.get()` lorsqu'on a passé un objet `PublicKeyCredential` en argument. Cette interface fournit une preuve à un service que l'objet possède une paire de clé et que la requête d'authentification est valide et approvée.

Propriétés
----------

`AuthenticatorAssertionResponse.clientDataJSON`

Les données du client pour l'authentification telles que l'origine et le *challenge*. La propriété `clientDataJSON` est héritée de `AuthenticatorResponse`.

`AuthenticatorAssertionResponse.authenticatorData`

Un objet `ArrayBuffer` contenant les informations sur l'authenticateur telles que :

* l'empreinte d'identifiant (*Relying Party ID Hash*) `rpidHash`
* un compteur de signature
* un test de présence d'utilisateur
* des marqueurs de vérification de l'utilisateur
* les éventuelles extensions traitées par l'authentificateur

Ce champ est l'un des deux champs qui est signé par l'authentificateur.

`AuthenticatorAssertionResponse.signature` (en-US)

Une signature d'assertion par rapport à `AuthenticatorAssertionResponse.authenticatorData` et `AuthenticatorResponse.clientDataJSON` (en-US). La signature d'assertion est créée avec la clé privée de la paire de clés (générée avec l'appel à `create()`) et est vérifiée avec la clé publique la même paire de clé.

`AuthenticatorAssertionResponse.userHandle` (en-US)

Un objet `ArrayBuffer` contenant un identifiant opaque pour l'utilisateur.

Méthodes
--------

Aucune.

Exemples
--------

TBD

Spécifications
--------------

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

Compatibilité des navigateurs
-----------------------------

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

**Expérimental:** **Cette fonction est expérimentale**  
Puisque cette fonction est toujours en développement dans certains navigateurs, veuillez consulter le tableau de compatibilité pour les préfixes à utiliser selon les navigateurs.  
Il convient de noter qu'une fonctionnalité expérimentale peut voir sa syntaxe ou son comportement modifié dans le futur en fonction des évolutions de la spécification.

Un **`DOMPoint`** représente un point 2D ou 3D dans le système de coordonnées.

En général, un x positif représente une position à droite de l'origine ; un y positif est une position au-dessus de l'origine ; et un z positif est une position vers l'extérieur de l'écran (autrement dit, opposée à la direction de l'utilisateur).

Il hérite de son parent `DOMPointReadOnly`.

Constructeur
------------

`DOMPoint()`

Crée un nouvel objet `DOMPoint`.

Méthodes
--------

*`DOMPoint` hérite des méthodes de son parent `DOMPointReadOnly`.*

`DOMPointReadOnly.fromPoint` (en-US)

Traduit la position/perspective d'un `DOMPoint` à une nouvelle position (ne semble pas encore être pris en charge).

Propriétés
----------

*`DOMPoint` hérite des propriétés de son parent `DOMPointReadOnly`.*

`DOMPointReadOnly.x`

La coordonnée x du `DOMPoint`.

`DOMPointReadOnly.y`

La coordonnée y du `DOMPoint`.

`DOMPointReadOnly.z`

La coordonnée z du `DOMPoint`.

`DOMPointReadOnly.w`

La valeur de perspective du `DOMPoint`.

Exemples
--------

Dans l' API WebVR (*VR = réalité virtuelle*), les valeurs `DOMPoint` sont utilisées pour représenter les points dans l'espace de coordonnées dans lequel l'affichage monté sur la tête de l'utilisateur existe. Dans l'extrait suivant, la position du VR HMD peut être récupérée en saisissant d'abord une référence à l'état actuel du capteur de position avec `PositionSensorVRDevice.getState` (en-US), puis en accédant au résultat de la `position` (en-US) de la propriété `VRPositionState` (en-US), qui renvoie un `DOMPoint`. Notez ci-dessous l'utilisation de `position.x`, `position.y` et `position.z`.


```js
function setView() {
      var posState = gPositionSensor.getState();
      if(posState.hasPosition) {
        posPara.textContent = 'Position: x' + roundToTwo(posState.position.x) + " y"
                                    + roundToTwo(posState.position.y) + " z"
                                    + roundToTwo(posState.position.z);
        xPos = -posState.position.x \* WIDTH \* 2;
        yPos = posState.position.y \* HEIGHT \* 2;
        if(-posState.position.z > 0.01) {
          zPos = -posState.position.z;
        } else {
          zPos = 0.01;
        }
      }

  ...

}
```


**Note :** Voir notre positionsensorvrdevice demo pour le code complet.

Spécifications
--------------

| Specification |
| --- |
| Geometry Interfaces Module Level 1 # DOMPoint |

Compatibilité des navigateurs
-----------------------------

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

Voir aussi
----------

* `DOMRect`
ToggleEvent
===========

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
L'interface **`ToggleEvent`** représente un évènement qui notifie lorsqu'un élément *popover* change d'état entre visible et masqué.

Cette interface est implémentée par les évènements `beforetoggle` et `toggle` émis par `HTMLElement` lorsqu'un *popover* change d'état, visible ou masqué (avant et après, respectivement).

Event

ToggleEvent

**Note :** `ToggleEvent` n'a aucun rapport avec l'évènement `toggle` (en-US) de l'élément `<details>`, qui se déclenche sur un élément `<details>` lorsque son état `open`/`closed` change. Dans ce cas, `toggle` implémente l'interface générique `Event`.

Constructeur
------------

`ToggleEvent()`

Crée un objet `ToggleEvent`.

Propriétés de l'instance
------------------------

*Cette interface hérite des propriétés de son parent, `Event`.*

`ToggleEvent.newState` Lecture seule 

Une chaîne de caractères (soit `"open"` soit `"closed"`), représentant l'état vers lequel l'élément est en train de transitionner.

`ToggleEvent.oldState` Lecture seule 

Une chaîne de caractères (soit `"open"` soit `"closed"`), représentant l'état depuis lequel l'élément est en train de transitionner.

Exemples
--------


```js
const popover = document.getElementById("mypopover");

// …

popover.addEventListener("beforetoggle", (event) => {
  if (event.newState === "open") {
    console.log("Le popover est en train d'être affiché");
  } else {
    console.log("Le popover est en train d'être masqué");
  }
});
```

Spécifications
--------------

| Specification |
| --- |
| HTML Standard # toggleevent |

Compatibilité des navigateurs
-----------------------------

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

Voir aussi
----------

* L'API Popover
* L'évènement `beforetoggle`
* L'évènement `toggle`
GainNode
========

L'interface **`GainNode`** représente une variation de volume. Il s'agit d'un objet `AudioNode`, c'est un module de traitement audio, qui provoque un gain donné à appliquer à des données d'entrée avant sa propagation à la sortie. Un `GainNode` a toujours exactement une entrée et une sortie, avec la même quantité de canaux.

Le gain est une valeur sans unité, qui change éventuellement avec le temps, qui est multiplié à chaque échantillon correspondant de tous les canaux en entrées. En cas de modification, le nouveau gain est appliqué instantanément, ce qui peut entraîner des « clics » inesthétiques sur l'audio résultant. Pour éviter que cela se produise, on ne changera jamais la valeur directement mais en utilisant les méthodes d'interpolation exponentielles de l'interface `AudioParam`.

![Un objet GainNode augmente le gain de la sortie.](/fr/docs/Web/API/GainNode/webaudiogainnode.png)


|  |  |
| --- | --- |
| Nombre d'entrées | `1` |
| Nombre de sorties | `1` |
| Mode de comptage des canaux | `"max"` |
| Nombre de canaux | `2` (inutilisés dans le mode de comptage par défaut) |
| Interprétation des canaux | `"speakers"` |

Constructeur
------------

`GainNode()` (en-US)

Crée une nouvelle instance d'un objet `GainNode`. Il est aussi possible d'utiliser la méthode de construction `BaseAudioContext.createGain()`. Voir créer un objet `AudioNode`.

Propriétés
----------

*Hérite des propritétés de son parent, `AudioNode`.*

`GainNode.gain` (en-US) Lecture seule 

Est un `AudioParam` de type `a-rate` représentant le montant du gain à appliquer. Il faut modifier `AudioParam.value` (en-US) ou utiliser les méthodes fournies par `AudioParam` pour changer l'effet du gain.

Méthodes
--------

*Aucune méthode spécifique, cette interface hérite des méthodes de son parent, `AudioNode`*.

Exemple
-------

Voir la page sur `BaseAudioContext.createGain()` pour un exemple de code illustrant comment utiliser un objet `AudioContext` afin de créer un objet `GainNode`.

Spécification
-------------

| Specification |
| --- |
| Web Audio API # GainNode |

Compatibilité des navigateurs
-----------------------------

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

Voir aussi
----------

* Utiliser l'API *Web Audio* (en-US)
AbortSignal
===========

**Expérimental:** **Cette fonction est expérimentale**  
Puisque cette fonction est toujours en développement dans certains navigateurs, veuillez consulter le tableau de compatibilité pour les préfixes à utiliser selon les navigateurs.  
Il convient de noter qu'une fonctionnalité expérimentale peut voir sa syntaxe ou son comportement modifié dans le futur en fonction des évolutions de la spécification.

L'interface **`AbortSignal`** représente un objet signal qui vous permet de communiquer avec une requête DOM (telle que Fetch) et de l'annuler si nécessaire par un objet `AbortController` (en-US).

Propriétés
----------

*L'interface AbortSignal hérite des propriétés de son interface parent `EventTarget`.*

`AbortSignal.aborted` (en-US) Lecture seule 

Un `Boolean` (en-US) (*booléen*) qui indique si les requêtes avec lesquelles le signal communique sont annulées (`true`) ou non (`false`).

### Gestionnaire d'évènement

`AbortSignal.onabort` (en-US)

appelé quand un évènement `abort` est lancé, c'est-à-dire quand les requêtes DOM avec lesquelles le signal communique sont annulées.

Méthodes
--------

*L'interface AbortSignal hérite des méthodes de son interface parent `EventTarget`.*

Exemples
--------

Dans l'extrait suivant, nous visons à télécharger une vidéo en utilisant l'API Fetch.

Tout d'abord, nous créons un contrôleur en utilisant le constructeur `AbortController()` (en-US), puis nous saisissons une référence associée à son objet `AbortSignal` au moyen de la propriété `AbortController.signal` (en-US).

Lorsque la requête fetch (*extraction*) est lancée, nous transmettons le paramètre `AbortSignal` en tant qu'option dans l'objet d'options de la requête (voir `{signal}` ci-dessous). Cela associe le signal et le contrôleur à la requête d'extraction et nous permet de l'annuler en appelant `AbortController.abort()` (en-US), comme indiqué ci-dessous dans le second écouteur d'événements.


```js
var controller = new AbortController();
var signal = controller.signal;

var downloadBtn = document.querySelector('.download');
var abortBtn = document.querySelector('.abort');

downloadBtn.addEventListener('click', fetchVideo);

abortBtn.addEventListener('click', function() {
  controller.abort();
  console.log('Download aborted');
});

function fetchVideo() {
  ...
  fetch(url, {signal}).then(function(response) {
    ...
  }).catch(function(e) {
    reports.textContent = 'Download error: ' + e.message;
  })
}
```


**Note :** Lorsque `abort()` est appelé, la réponse `fetch()` rejette avec une erreur `AbortError`.

vous pouvez trouver un exemple de travail complet sur GitHub — voir abort-api (voir cas d'usage concret).

Spécifications
--------------

| Specification |
| --- |
| DOM Standard # interface-AbortSignal |

Compatibilité des navigateurs
-----------------------------

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

Voir aussi
----------

* API Fetch
* Abortable Fetch par Jake Archibald (en)