recursal/MDN huggingface dataset:
Arbre d'accessibilité (MOA)
===========================

L'**arbre d'accessibilité**, ou **modèle d'objets d'accessibilité** (**MOA**), contient des informations concernant l'accessibility pour la plupart des éléments HTML.

Les navigateurs convertissent le balisage en une représentation interne appelée arbre DOM. Le DOM contient un objet pour chaque balise, attribut et noeud de texte. Les navigateurs créent ensuite un arbre d'accessibilité basé sur l'arbre DOM, celui-ci est utilisé par les technologies d'assistance telles que les lecteurs d'écran via des APIs spécifiques à une plateforme.

Un objet de l'arbre d'accessibilité contient quatre éléments :

**name**

Comment peut-on faire référence à cet élément ? Par exemple, pour un lien contenant le texte "Lire la suite" name contiendra 'Lire la suite' (pour en savoir plus sur la façon dont la valeur de name est déterminée voir la spécification suivante : Accessible Name and Description Computation).

**description**

Comment peut-on décrire cet élément si l'on veut apporter une information en plus de son nom ? La description d'un tableau pourrait expliquer quel genre d'information ce tableau apporte.

**role**

Quel genre de chose est cet élément ? Par exemple est-ce un bouton, une barre de navigation ou une liste d'éléments ?

**state**

A-t-il un état ? Pensez à coché/décoché pour les checkboxes, ou plié/déplié pour l'élément `<summary>`.

De plus, l'arbre d'accessibilité contient souvent des informations concernant ce qui peut être fait avec un élément : un lien peut être *suivi,* on peut *écrire dans* un champ texte etc.

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

1. Glossaire
    1. Accessibility
    2. ARIA
TTL
===

TTL peut se référer soit à :

* la durée de vie d'un paquet dans un réseau (avant de pouvoir être libéré)
* l'heure d'expiration des données mises en cache
Dans le réseau
--------------

Le TTL, intégré dans le paquet, est généralement défini comme un nombre de sauts ou comme un horodatage d'expiration au-delà duquel le paquet est abandonné. Il offre un moyen d'éviter la congestion du réseau et de libérer des paquets après qu'ils ont parcouru le réseau trop longtemps.

Mise en cache
-------------

Dans le contexte du cache, TTL (en tant qu'entier non signé de 32 bits) fait partie de l'en-tête de réponse HTTP ou de la requête DNS, indique la durée en secondes pendant laquelle la ressource peut être mise en cache par le demandeur.

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

### Culture générale

* *Time to Live* sur Wikipédia
### Références techniques

* RFC 2181 sur IETF (en)
* RFC1035 sur IETF (en)
Pixel
=====

Un pixel est le plus petit bloc qu'un affichage graphique comme un écran d'ordinateur puisse afficher.

La résolution d'affichage est exprimée dans une unité qui est le pixel. Ex : Une résolution de "800 x 600" pixels signifie que 800 pixels peuvent être affichés en largeur et que la hauteur est de 600 pixels.

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

### Référence technique

* Pixel sur Wikipédia
Brotli
======

**Brotli** est un algorithme de compression sans perte à usage général. Il compresse les données à l'aide d'une combinaison d'une variant moderne de l'algorithme LZ77, du codage Huffman, et de la modélisation de contexte de second ordre, fournissant un taux de compression comparable aux meilleures méthodes de compression à usage général actuellement disponibles. Brotli fournit de meilleurs taux de compression que gzip et les vitesses de dégonflage sont comparables, mais la compression brotli est un processus plus lent que la compression Gzip, donc gzip peut être une meilleure option pour la compression de contenue non-cachable.

Brotli est compatible avec la plupart des navigateurs modernes, mais vous pouvez envisager une solution de secours.

Apprendre plus
--------------

* brotli.org
* Dépôt Github Brotli
* Brotli sur Wikipédia
* Brotli sur Caniuse
UI
==

L'*interface utilisateur* (ou UI pour *User Interface* en anglais) est tout ce qui facilite l'interaction entre un utilisateur et une machine. Dans le domaine de l'informatique, cela peut correspondre à tout, du clavier au programme, en passant par la manette de jeu ou un écran. Dans le cas des logiciels informatiques, il peut s'agir d'une invite en ligne de commande, d'une page web, d'un formulaire de saisie utilisateur ou de l'interface d'une application.

Pour en savoir plus
-------------------

### Culture générale

* Interface utilisateur sur Wikipédia
* Développement front end sur Wikipédia (en anglais)
Protocole
=========

Un **protocole** est un système de règles qui définit la manière dont des données sont échangées au sein d'un ordinateur ou entre plusieurs ordinateurs. La communication entre appareils impose à ceux-ci de s'accorder sur le format des données échangées. L'ensemble des règles qui définissent un format est appelé un protocole.

Pour en savoir plus
-------------------

### Culture générale

* Protocole de communication sur Wikipédia
* RFC Official Internet Protocol Standards
Heure Unix
==========

L'heure Unix est une méthode pour représenter un horodatage et est généralement définie comme le nombre de secondes écoulées depuis l'origine du temps Unix, située le premier janvier 1970 à minuit UTC. Les secondes intercalaires rajoutées depuis sont ignorées pour cette mesure.

Sur le Web, l'heure Unix est utilisée pour les horodatages et est fournie comme le nombre de millisecondes écoulées depuis l'origine du temps Unix.

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

* Heure Unix sur Wikipédia
* Seconde intercalaire sur Wikipédia
GIF
===

GIF (Graphics Interchange Format) est un format d'image qui utilise une compression sans perte et peut servir pour des animations. Un GIF peut utiliser jusqu'à 8 bits par pixel avec un maximum de 256 couleurs parmi des nuances sur 24 bits.

Pour en savoir plus
-------------------

### Culture générale

* GIF sur Wikipédia
STUN
====

**STUN** (Session Traversal Utilities for NAT) est un protocole auxiliaire servant à transmettre des données dans un environnement avec du NAT (Network Address Translator). STUN retourne l'adresse IP, le port et l'état de la connectivité d'un ordinateur en réseau derrière un NAT.

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

### Culture générale

* STUN sur Wikipédia
* Protocoles WebRTC (en-US)
### Référence technique

* Spécification
Site map
========

Une **site map** ou **sitemap** est une liste de pages d'un site web, un plan du site. Les listes structurées de la page d'un site aident à l'optimisation des moteurs de recherche, en fournissant un lien aux robots d'exploration tels que les moteurs de recherche à suivre. Les site maps aident également les utilisateurs à naviguer sur le site en fournissant un aperçu du contenu d'un site en un seul coup d'œil.
HMAC
====

HMAC est un protocole utilisé pour les messages d'authentification cryptographiquement. Il peut utiliser toutes sortes de fonctions de hachage cryptographique, et sa force dépend de la fonction sous-jacente (SHA1 ou MD5 par exemple) et du choix de la clé secrète. Avec une telle combinaison, l'algorithme de vérification HMAC est alors repéré avec un nom composé comme HMAC-SHA1.

HMAC est utilisé pour s'assurer de l'intégrité et de l'authenticité.

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

### Culture générale

* HMAC sur Wikipédia
### Référence technique

* RFC 2104 sur IETF
Référence d'objet
=================

Un lien vers un **objet**. Les références d'objet peuvent s'utiliser exactement comme des objets liés.

Le concept de références d'objet apparaît lors de l'affectation d'un même objet à plus d'une **propriété**. Plutôt que de conserver une copie de l'objet, chacune des propriétés affectées contient la référence d'objet qui est un lien vers un même objet. Ainsi, lors de modifications de l'objet, toutes les propriétés y faisant référence reflèteront la modification.

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

### Culture générale

* Référence sur Wikipédia
Encapsulation
=============

L'encapsulation consiste à inclure des données et des fonctions dans un composant (par exemple une classe) et ensuite de contrôler l'accès à celui-ci pour réaliser une "boîte noire" hors de l'objet. De cette façon, un utilisateur de cette classe n'aurait besoin de connaître que son interface (autrement dit, les données et les fonctions exposées en dehors de la classe), et pas son implémentation qui reste donc cachée.

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

### Culture générale

* Encapsulation sur Wikipédia
Certificat numérique
====================

Un certificat numérique est un fichier de données qui associe une clé cryptographique publiquement connue à une organisation. Il contient des informations concernant celle-ci, telles que le nom usuel (par exemple mozilla.org), l'unité d'organisation (par exemple Mozilla Corporation) et sa situation géographique (par exemple Mountain View). Les certificats numériques sont le plus souvent signés par une autorité de certification, attestant leur authenticité.

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

* Certificat électronique sur Wikipédia
Courbe de Bézier
================

Une **courbe de Bézier** est une courbe décrite mathématiquement utilisée en infographie et en animation. Dans vector images, elles sont utilisées pour modéliser des courbes lisses qui peuvent être redimensionnées indéfiniment.

La courbe est définie par un ensemble de points de contrôle avec un minimum de deux. Les graphiques et animations Web utilisent Cubic Béziers, qui sont des courbes avec quatre points de contrôle P0, P1, P2, et P3.

Pour tracer la courbe, deux lignes imaginaires sont tracées l'une de P0 à P1 et l'autre de P1 à P2. Les extrémités des lignes sont ensuite régulièrement déplacées vers le point suivant. Une troisième ligne imaginaire est dessinée avec son point de départ se déplaçant régulièrement sur la première ligne d'assistance et le point final sur la deuxième ligne d'assistance. Sur cette ligne imaginaire, un point est dessiné à partir de son point de départ en se déplaçant régulièrement vers son point final. La courbe décrite par ce point est la courbe de Bézier. Voici une illustration animée démontrant la création de la courbe :

![Drawing a Bézier curve](/fr/docs/Glossary/Bezier_curve/b%C3%A9zier_3_big.gif)

Apprendre plus
--------------

### Culture générale

* courbe de Bézier sur Wikipédia
### Voir aussi

* Fonctions de synchronisation Cubic Bézier en CSS
* `keySplines (en-US)` Attribut SVG
* Générateur Cubic Bézier
SRI
===

**Subresource Integrity** (SRI) (*intégrité des sous-ressources*) est une fonctionnalité de sécurité qui permet aux navigateurs de vérifier que les fichiers qu'ils récupèrent (par exemple, à partir d'un CDN) sont livrés sans manipulation inattendue. Cela fonctionne en vous permettant de fournir un hachage cryptographique auquel un fichier récupéré doit correspondre.

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

* Subresource Integrity
* `Content-Security-Policy`: `require-sri-for`
Cache
=====

Un **cache** (cache web ou cache HTTP) est un composant stockant temporairement les réponses HTTP dans le but de les réutiliser lors de requêtes HTTP ultérieures, tant qu'elles remplissent certaines conditions.

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

### Culture générale

* Cache web sur Wikipédia
Programmation informatique
==========================

La programmation informatique est un processus de composition et d'organisation d'un ensemble d'instructions. Celles-ci indiquent à un ordinateur / logiciel ce qu'il faut faire dans une langue que l'ordinateur comprend. Elles sont réalisées sous la forme de plusieurs langages différents tels que C ++, Java, JavaScript, HTML, Python, Ruby et Rust.

En utilisant un langage approprié, vous pouvez programmer / créer toutes sortes de logiciels. Par exemple, un programme qui aide les scientifiques pour des calculs complexes, une base de données qui stocke d'énormes quantités de données, un site Web qui permet de télécharger de la musique ou un logiciel d'animation pour la création de films animés.

Pour en savoir plus
-------------------

### Culture générale

* Programmation informatique sur Wikipédia
* Liste de langages de programmation sur Wikipédia
XQuery
======

**XQuery** est un langage informatique pour mettre à jour, récupérer, et effectuer des calculs sur les données de bases de données XML.

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

### Culture générale

* Site web officiel
* XQuery sur Wikipédia
### Référence technique

* Discussion sur l'utilisation d'XQuery à partir de Firefox
Serveur Web
===========

Un serveur Web est un logiciel qui s'exécute souvent sur un serveur matériel offrant un service à un utilisateur, généralement appelé client. Un serveur, par contre, est un matériel qui vit dans une pièce remplie d'ordinateurs, communément appelée centre de données.

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

* Introduction to serversIntroduction aux serveurs
* Serveur informatique sur Wikipédia
URL
===

**Uniform Resource Locator** (**URL**) est une chaîne de texte qui spécifie où une ressource (telle qu'une page web, une image ou une vidéo) peut être trouvée sur Internet.

Dans le contexte de HTTP, les URL sont appelées "adresse web" ou "lien". Votre browser affiche les URL dans sa barre d'adresse, par exmple: `https://developer.mozilla.org`. Certains navigateurs affichent uniquement la partie d'une URL après le "//", c'est-à-dire le Domain name.

Les URL peuvent également être utilisées pour le transfert de fichiers (FTP) , les e-mails (SMTP), et d'autres applications.

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

* URL sur Wikipédia
* Comprendre les URL et leur structure
DMZ
===

Une DMZ est un moyen de fournir une interface isolée et sécurisée entre un réseau interne (d'entreprise ou privé) et le monde extérieur non fiable, généralement l'Internet. Elle expose uniquement certains points de terminaison définis, tout en refusant l'accès au réseau interne aux noeuds externes.

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

### Culture générale

* Zone démilitarisée (informatique) sur Wikipédia
### Apprendre à ce propos

* Serveurs web et pare-feu - Sécurité maximum contre les attaques sur MDN
Instance
========

Un objet créé par un constructeur est une instance de ce constructeur.

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

### Culture générale

* Instance sur Wikipédia
Standards du Web
================

Les standards du Web sont des règles établies par des organismes de standardisation internationaux qui définissent la manière dont fonctionne le Web (et parfois qui contrôlent l'Internet également).

Plusieurs organismes de standardisation sont responsables de définir différents aspects du Web, et tous les standards doivent être coordonnés pour que le Web reste utilisable et accessible le plus possible. Les standards du Web doivent également évoluer pour améliorer l'état actuel et s'adapter aux nouvelles circonstances.

Cette liste non exhaustive vous donne une idée des standards auxquels les sites web et les systèmes réseaux doivent se conformer :

* **IETF** (Internet Engineering Task Force) : standards Internet (STD), qui, parmi d'autres choses, gouvernent l'organisation et l'utilisation des URIs, d'HTTP et des types MIME
* **W3C**: spécifications du langage de balisage (e.g., HTML), définitions de styles (i.e., CSS), DOM, accessibilité
* **IANA** (Internet Assigned Numbers Authority) : enregistrements des noms et numéros
* **Ecma Intl. :** standards pour les langages de scripts, le plus visible étant JavaScript
* **ISO** (International Organization for Standardization) : standards gouvernant un vaste éventail d'aspects, dont l'encodage de caractères, la gestion de sites web et la conception d'interfaces utilisateur
Voir aussi
----------

### Culture générale

* Standards du Web sur Wikipédia
Type de connexion réel
======================

Le **type de connexion réel**, ou « *effective connection type* » en anglais (abrégé en ECT), fait référence aux performances mesurées du réseau, renvoyant un type de connexion cellulaire, comme la 3G, même si la connexion réelle est effectuée en haut débit ou Wi-Fi, en fonction du temps entre le navigateur demandant une page et le type de connexion réel.

Les valeurs de `"slow-2g"`, `"2g"`, `"3g"` et `"4g"` sont déterminées en utilisant le temps d'aller-retour de la requête et des valeurs de liaison descendante.

| ECT | Durée minimale d'aller-retour (en-US) | Liaison descendante maximale | Explication |
| --- | --- | --- | --- |
| `slow-2g` | 2000 ms | 50 ko/s | Le réseau convient uniquement aux petits transferts tels que les pages composées uniquement de texte. |
| `2g` | 1400 ms | 70 ko/s | Le réseau est adapté aux transferts de petites images. |
| `3g` | 270 ms | 700 ko/s | Le réseau est adapté aux transferts de ressources volumineuses telles que des images en haute résolution, de l'audio et de la vidéo SD. |
| `4g` | 0 ms | ∞ | Le réseau est adapté à la vidéo HD, à la vidéo en temps réel, etc. |

`effectiveType` (en-US) est une propriété de l'API d'informations réseau, visible sur JavaScript via l'objet `navigator.connection`. Pour voir votre type de connexion réel, ouvrez la console des outils de développement d'un navigateur compatible et saisissez ce qui suit :


```js
navigator.connection.effectiveType;
```

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

* API d'informations réseau
* `NetworkInformation` (en-US)
* `NetworkInformation.effectiveType` (en-US)
* `ECT` (en-US)
Favicon
=======

Un favicon (icône de favori) est une petite icône incluse avec un site Web, qui s'affiche à des endroits tels que la barre d'addresse du navigateur, les onglets de page et le menu des signets. Notez cependant que la plupart des navigateurs modernes ont remplacé le favicon de la barre d'adresse par une image indiquant si le site Web utilise ou non HTTPS.

Habituellement, un favicon mesure 16 x 16 pixels et est stocké au format de fichier GIF, PNG, ou ICO.

Ils sont utilisés pour améliorer l'expérience utilisateur et renforcer la cohérence de la marque. Lorsqu'une icône familière apparaît dans la barre d'adresse du navigateur, par exemple, elle aide les utilisateurs à savoir qu'ils sont au bon endroit.

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

* Favicon sur Wikipédia
* Outils
    + Générateur de favicon gratuit
    + Générateur d'icônes Favicon.ico et & app
Chiffrement avec clé publique
=============================

Le chiffrage avec clé publique — ou *chiffrage asymétrique* — est un système de chiffrage dans lequel les clés fonctionnent par paires. La transformation réalisée par l'une des clés ne peut être inversée que par l'autre clé. L'une des clés (la *clé privée*) est gardée secrète, tandis que l'autre est rendue publique.

Lorsqu'elles sont utilisées pour signer numériquement, la clé privée sert à signer et la clé publique sert à vérifier. En clair, n'importe qui peut vérifier une signature, mais seul le propriétaire de la clé privée correspondante peut l'avoir générée.

Lorsqu'on les utilise pour du chiffrage, la clé publique va chiffrer le message, et la clé privée sera utilisée pour le déchiffrer. Cela donne au système de chiffrage avec clé publique un avantage par rapport aux systèmes de chiffrement symétriques, puisque la clé de chiffrage peut être rendue publique. N'importe qui peut chiffrer un message à destination du propriétaire de la clé privée, mais seul le ou la propriétaire de la clé privée peut le déchiffrer. Ces systèmes sont généralement beaucoup plus lents que les algorithmes symétriques, et la taille du message qu'ils peuvent chiffrer est proportionnelle à la taille de la clé, ce qui rend leur utilisation moins évidente pour de longs messages.

De ce fait, il est courant pour un système de chiffrage d'utiliser un algorithme symétrique pour chiffrer le message, puis un système de clé publique pour chiffrer la clé symétrique. Cette combinaison permet de profiter des avantages des deux systèmes.

Parmi les systèmes de chiffrement par clé publique les plus courants, on retrouve le système RSA (aussi bien pour la signature que le chiffrage), le DSA (pour la signature) et le Diffie-Hellman (pour des accords de clés).

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

* Glossaire
    + Chiffrement par clé symétrique
* L'API Web Crypto
Spécification
=============

Une **spécification** est un document qui décrit en détail les fonctionnalités ou attributs que doit avoir un produit avant livraison. Dans le contexte de la description du web, le terme «spécification» (souvent abrégé simplement «spec») signifie généralement un document décrivant un langage, une technologie ou un API qui constituent l'ensemble complet des technologies web ouvertes.

Pour en savoir plus
-------------------

### Culture génerale

* Spécification sur Wikipédia
### Référence technique

* Spécifications de la plate-forme Web ouverte
Exception
=========

Une **exception** est un état qui interrompt l'exécution normale du code. En JavaScript, les erreurs de syntaxe sont une source commune d'exceptions.

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

* Système de gestion d'exceptions sur Wikipédia
Tampon
======

Un tampon est un stockage dans la mémoire physique utilisé pour stocker temporairement des données pendant leur transfert d'un endroit à un autre.

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

### Culture générale

* Mémoire tampon sur Wikipédia
IANA
====

**IANA** (Internet Assigned Numbers Authority) est une composante de l'ICANN chargée de l'enregistrement et/ou de l'attribution de noms de domaines, adresses IP, et d'autres noms et numéros utilisés par les protocoles Internet.

Pour en savoir plus
-------------------

### Culture générale

* Site web officiel
* IANA sur Wikipédia
Déchiffrement
=============

En cryptographie, le **déchiffrement** est la conversion d'un cryptogramme en texte brut.

Le déchiffrement est une primitive cryptographique : il transforme un cryptogramme en texte brut via l'utilisation d'un algorithme cryptographique appelé chiffre. À l'instar du chiffrement, le déchiffrement est effectué par l'utilisation d'un algorithme spécifique et d'un code secret appelé clé. Comme l'algorithme est souvent public, la clé doit rester secrète si le chiffrement reste sécurisé.

![The decryption primitive.](/fr/docs/Glossary/Decryption/decryption.png)

Le déchiffrement est l'inverse du chiffrement et si la clé reste secrète, le déchiffrement sans connaître le code secret spécifique sera mathématiquement difficile à réaliser. Le degré de difficulté dépend de la sécurité de l'algorithme cryptographique choisi et évolue au fur et à mesure des progrès de la cryptanalyse.

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

* Chiffrement et déchiffrement
Apple Safari
============

Safari est un navigateur web développé par la société Apple. Il est installé de base sur les systèmes d'exploitation macOS et iOS. Il est basé sur le moteur en source ouverte WebKit.

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

### Culture générale

* Safari sur Wikipédia
* Safari sur le site d'Apple
### Informations techniques

* Safari sur Wikipédia
* Safari sur apple.com
* Le projet WebKit (en anglais)
* Les versions nocturnes de WebKit, compilées régulièrement (en anglais)
* Rapporter un *bug* sur Safari (en anglais)
Constructeur
============

Un **constructeur** est associé à un objet d'une classe particulière qui a été instanciée. Le constructeur initialise cet objet et peut fournir un accès à ses informations privées. Le concept de constructeur peut s'appliquer à la plupart des langages de programmation orientée objet. Dans l'essentiel, un constructeur en JavaScript est en général déclaré lors de l'instance d'une classe.

Syntaxe
-------


```js
// Voici un constructeur générique par défaut de la classe Default
function Default() {
}

// Voici le constructeur de classe surchargé Overloaded
// avec des arguments en paramètres
function Overloaded(arg1, arg2, ...,argN){
}
```


Pour appeler le constructeur d'une classe en JavaScript, utilisez un opérateur `new` pour affecter une nouvelle référence d'objet à une variable.


```js
function Default() {}

// Une nouvelle référence d'un objet Default affectée à
// la variable locale defaultReference
var defaultReference = new Default();
```

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

### Culture générale

* Constructeur sur Wikipédia
### Référence technique

* Le constructeur en programmation JavaScript orientée objet sur MDN
* Opérateur new en JavaScript sur MDN