Compression
- Sans perte; sur la base de la
+ Avec perte; sur la base de la
transformée en cosinus discrète lazy loading en anglais) est une stratégie d'identification des ressources non bloquantes (non critiques) afin de ne les charger qu'au moment où elles sont utiles. C'est une façon de raccourcir le [chemin critique de rendu](/fr/docs/Web/Performance/Critical_rendering_path), ce qui se traduit par une réduction du temps de chargement de la page.
Le chargement différé peut se dérouler à plusieurs moments du chargement d'une application, mais il se déroule typiquement lorsque l'internaute interagit avec la page, notamment lors du défilement de la page ou de la navigation.
diff --git a/files/fr/web/performance/performance_budgets/index.md b/files/fr/web/performance/performance_budgets/index.md
index a807fd937bfc58..d30f08499a1070 100644
--- a/files/fr/web/performance/performance_budgets/index.md
+++ b/files/fr/web/performance/performance_budgets/index.md
@@ -3,6 +3,8 @@ title: Budgets de performance
slug: Web/Performance/Performance_budgets
---
+{{QuickLinksWithSubPages("Web/Performance")}}
+
Un budget de performance est une limite pour éviter les régressions. Il peut s'appliquer à un fichier, un type de fichier, tous les fichiers chargés sur une page, une métrique spécifique (par exemple, [Time to Interactive](/fr/docs/Glossaire/Time_to_interactive)), une métrique personnalisée (par exemple, Time to Hero Element), ou un seuil sur une période de temps.
## Pourquoi ai-je besoin d'un budget de performance?
diff --git a/files/fr/web/progressive_web_apps/guides/making_pwas_installable/index.md b/files/fr/web/progressive_web_apps/guides/making_pwas_installable/index.md
index 2bc40c05cb388d..da9574412fc090 100644
--- a/files/fr/web/progressive_web_apps/guides/making_pwas_installable/index.md
+++ b/files/fr/web/progressive_web_apps/guides/making_pwas_installable/index.md
@@ -3,6 +3,8 @@ title: Ajouter à l'écran d'accueil
slug: Web/Progressive_web_apps/Guides/Making_PWAs_installable
---
+{{PWASidebar}}
+
Ajouter à l'écran d'accueil (A2HS en abrégé) est une fonctionnalité disponible dans les navigateurs pour smartphones modernes qui permet aux développeurs d'ajouter facilement et rapidement un raccourci à leur écran d'accueil, représentant leur application Web. Ce guide explique comment utiliser A2HS et ce que vous devez faire en tant que développeur pour permettre à vos utilisateurs d'en tirer parti.
## Pourquoi A2HS?
diff --git a/files/fr/web/security/certificate_transparency/index.md b/files/fr/web/security/certificate_transparency/index.md
index 9b62c534f10eec..4c8c52c82dad14 100644
--- a/files/fr/web/security/certificate_transparency/index.md
+++ b/files/fr/web/security/certificate_transparency/index.md
@@ -3,6 +3,8 @@ title: Public Key Pinning
slug: Web/Security/Certificate_Transparency
---
+{{QuickLinksWithSubpages("/fr/docs/Web/Security")}}
+
L'extention **Public Key Pinning pour HTTP** (HPKP) est une fonctionnalité de sécurité qui dit au client web d'associer une clé publique cryptographique avec un certain serveur web pour éviter les attaques [MITM](https://fr.wikipedia.org/wiki/Attaque_de_l%27homme_du_milieu) avec des certificats contrefaits.
> **Note :** La Public Key Pinning décrite ici est différente du limité [preload list based key pinning](http://monica-at-mozilla.blogspot.de/2014/08/firefox-32-supports-public-key-pinning.html) introduit dans Firefox 32.
diff --git a/files/fr/web/security/referer_header_colon__privacy_and_security_concerns/index.md b/files/fr/web/security/referer_header_colon__privacy_and_security_concerns/index.md
index 44c71799e45498..8c615964776df4 100644
--- a/files/fr/web/security/referer_header_colon__privacy_and_security_concerns/index.md
+++ b/files/fr/web/security/referer_header_colon__privacy_and_security_concerns/index.md
@@ -3,6 +3,8 @@ title: "Referer header: privacy and security concerns"
slug: Web/Security/Referer_header:_privacy_and_security_concerns
---
+{{QuickLinksWithSubpages("/fr/docs/Web/Security")}}
+
L'[entête HTTP Referer](/fr/docs/Web/HTTP/Headers/Referer) présente des risques de confidentialité et de sécurité[.](/fr/docs/Web/HTTP/Headers/Referer) Cet article les décrit et donne des conseils pour les minimiser.
## Le problème
diff --git a/files/fr/web/security/same-origin_policy/index.md b/files/fr/web/security/same-origin_policy/index.md
index 1284f1f46e8a5f..9683e6a991db54 100644
--- a/files/fr/web/security/same-origin_policy/index.md
+++ b/files/fr/web/security/same-origin_policy/index.md
@@ -3,6 +3,8 @@ title: Same-origin policy
slug: Web/Security/Same-origin_policy
---
+{{QuickLinksWithSubpages("/fr/docs/Web/Security")}}
+
La same-origin policy restreint la manière dont un document ou un script chargé depuis une origine peut interagir avec une autre ressource chargée depuis une autre origine.
## Définition de l'origine
diff --git a/files/fr/web/security/secure_contexts/index.md b/files/fr/web/security/secure_contexts/index.md
index c09d569bd9760b..db281bfdf8f8ac 100644
--- a/files/fr/web/security/secure_contexts/index.md
+++ b/files/fr/web/security/secure_contexts/index.md
@@ -3,6 +3,8 @@ title: Secure Contexts
slug: Web/Security/Secure_Contexts
---
+{{QuickLinksWithSubpages("/fr/docs/Web/Security")}}
+
Un navigateur entre dans un **contexte sécurisé** quand il a satisfait les exigences minimale de sécurité. Un contexte sécurisé permet au navigateur de mettre à disposition des APIs qui nécessitent des transferts sécurisés avec l'utilisateur.
## Pourquoi certaines fonctionnalitées devraient être limitées ?
diff --git a/files/fr/web/security/subresource_integrity/index.md b/files/fr/web/security/subresource_integrity/index.md
index 45e19554a31fa5..335feebf403d4f 100644
--- a/files/fr/web/security/subresource_integrity/index.md
+++ b/files/fr/web/security/subresource_integrity/index.md
@@ -3,6 +3,8 @@ title: Subresource Integrity
slug: Web/Security/Subresource_Integrity
---
+{{QuickLinksWithSubpages("/fr/docs/Web/Security")}}
+
**_Subresource Integrity_** (SRI, ou « Intégrité des sous-ressources ») est une fonction de sécurité qui permet aux navigateurs de vérifier que les fichiers qu'ils vont chercher (par exemple, à partir d'un [CDN](/fr/docs/Glossaire/CDN)) sont livrés sans manipulation inattendue. Cela fonctionne en permettant de fournir un hachage cryptographique (« _hash_ ») auquel le fichier récupéré doit correspondre.
## Comment fonctionne le contrôle d'intégrité des sous-ressources ?
diff --git a/files/fr/web/svg/attribute/d/index.md b/files/fr/web/svg/attribute/d/index.md
index faf5f6bd900f85..953939b915647e 100644
--- a/files/fr/web/svg/attribute/d/index.md
+++ b/files/fr/web/svg/attribute/d/index.md
@@ -1,15 +1,19 @@
---
title: d
slug: Web/SVG/Attribute/d
+l10n:
+ sourceCommit: 1a26583f60bdceece64347bf967d0653fe8df288
---
{{SVGRef}}
L'attribut **`d`** définit un tracé à dessiner.
-La définition d'un tracé est une liste de commandes de tracé où chaque commande est composée d'une lettre pour la commande, et de nombres qui représentent les paramètres de la commande. Les commandes sont détaillées ci-dessous.
+La définition d'un tracé est une liste de [commandes de tracé](#commandes_de_tracé) où chaque commande est composée d'une lettre pour la commande, et de nombres qui représentent les paramètres de la commande. Les commandes sont détaillées [ci-dessous](#commandes_de_tracé).
-Trois éléments ont cet attribut : {{SVGElement("path")}}, {{SVGElement("glyph")}}, and {{SVGElement("missing-glyph")}}
+Cet attribut peut être utilisé sur les éléments SVG suivants : [``](#path), [``](#glyph), [``](#missing-glyph).
+
+`d` est un attribut de présentation et peut donc [être utilisé comme propriété CSS](#utilisation_comme_propriété_css).
## Exemple
@@ -34,25 +38,23 @@ svg {
```
-{{EmbedLiveSample('Exemple', '100%', 200)}}
+{{EmbedLiveSample('', '100%', 200)}}
-## Tracé
+## ``
-Pour un {{SVGElement('path')}}, `d` est une chaîne de caractère qui contient une série de commandes de tracé qui définissent le tracé à dessiner.
+Pour un [``](/fr/docs/Web/SVG/Element/path), `d` est une chaîne de caractères qui contient une série de commandes de tracé qui définissent le tracé à dessiner.
-
+
Valeur
- <string>
+ <string>
Valeur par défaut
- aucune
+ Aucune
Animable
@@ -61,25 +63,23 @@ Pour un {{SVGElement('path')}}, `d` est une chaîne de caractère qui contient u
-## glyph
+## ``
-> **Attention :** Depuis SVG2, {{SVGElement('glyph')}} est dépréciée et ne doit plus être utilisé.
+> **Attention :** Depuis SVG2, [``](/fr/docs/Web/SVG/Element/glyph) est déprécié et ne doit plus être utilisé.
-Pour un {{SVGElement('glyph')}}, `d` est une chaîne de caractères qui contient une série de commandes de tracé qui définissent la forme du contour de la glyphe.
+Pour un élément [``](/fr/docs/Web/SVG/Element/glyph), `d` est une chaîne de caractères qui contient une série de commandes de tracé qui définissent la forme du contour du glyphe.
-
+
Valeur
- <string>
+ <string>
Valeur par défaut
- aucune
+ Aucune
Animable
@@ -88,27 +88,25 @@ Pour un {{SVGElement('glyph')}}, `d` est une chaîne de caractères qui contient
-> **Note :** Le point d'origine (coordonnée `0,0`) est généralement le point du _coin en haut à gauche_ du context. Néanmoins, l'élément {{SVGElement("glyph")}} a son point d'origine dans le coin en bas à gauche de son enveloppe.
+> **Note :** Le point d'origine (situé aux coordonnées `0, 0`) correspond généralement au _coin en haut à gauche_ du contexte. Néanmoins, pour l'élément [``](/fr/docs/Web/SVG/Element/glyph), l'origine se situe dans le coin en bas à gauche de son enveloppe.
-## missing-glyph
+## ``
-> **Attention :** Depuis SVG2, {{SVGElement('missing-glyph')}} est dépréciée et ne doit plus être utilisé.
+> **Attention :** Depuis SVG2, [``](/fr/docs/Web/SVG/Element/missing-glyph) est déprécié et ne doit plus être utilisé.
-Pour un {{SVGElement('missing-glyph')}}, `d` est une chaîne de caractères qui contient une série de commandes de tracé qui définissent la forme du contour de la glyphe.
+Pour un élément [``](/fr/docs/Web/SVG/Element/missing-glyph), `d` est une chaîne de caractères qui contient une série de commandes de tracé qui définissent la forme du contour du glyphe.
-
+
Valeur
- <string>
+ <string>
Valeur par défaut
- aucune
+ Aucune
Animable
@@ -117,80 +115,755 @@ Pour un {{SVGElement('missing-glyph')}}, `d` est une chaîne de caractères qui
+## Utilisation comme propriété CSS
+
+`d` est un attribut de présentation et peut donc être modifié à l'aide de CSS. La propriété peut prendre [`path()`](/fr/docs/Web/CSS/path) ou `none` comme valeur.
+
+Dans l'exemple qui suit, on illustre comment appliquer un nouveau tracé au survol d'un élément. Le nouveau tracé est le même que le précédent, mais ajoute une ligne sur le cœur.
+
+```css
+html,
+body,
+svg {
+ height: 100%;
+}
+
+/* Ce tracé est affiché au survol */
+#svg_css_ex1:hover path {
+ d: path(
+ "M10,30 A20,20 0,0,1 50,30 A20,20 0,0,1 90,30 Q90,60 50,90 Q10,60 10,30 z M5,5 L90,90"
+ );
+}
+```
+
+```html
+
+
+
+```
+
+{{EmbedLiveSample('', '100%', 200)}}
+
## Commandes de tracé
Les commandes de tracé sont des instructions qui définissent un tracé à dessiner. Chaque commande est composée d'une lettre de commande et de nombres qui représentent les paramètres de la commande.
-SVG définit 6 types de commandes, pour un total de 20 commandes :
+SVG définit 6 types de commandes, pour un total de 20 commandes :
-- Aller à (Moveto)
-- Tracer une ligne jusqu'à (Lineto)
-- Tracer une courbe jusqu'à (Curveto)
-- Tracer un arc de cercle jusqu'à (Arcto)
-- Fermer le chemin (ClosePath)
+- `MoveTo` (commande de déplacement) : `M`, `m`
+- `LineTo` (commande pour tracer une ligne) : `L`, `l`, `H`, `h`, `V`, `v`
+- Courbe de Bézier cubique : `C`, `c`, `S`, `s`
+- Courbe de Bézier quadratique : `Q`, `q`, `T`, `t`
+- Courbe d'arc elliptique : `A`, `a`
+- `ClosePath` (commande pour fermer le tracé): `Z`, `z`
-> **Note :** Les commandes sont sensibles à la casse; une commande en majuscule attend des positions absolues en arguments, alors qu'une commande en minuscule attend des points relatifs à la position actuelle du point.
+> **Note :** Les commandes sont sensibles à la casse ; une commande en majuscule attend des positions absolues en arguments, alors qu'une commande en minuscule attend des points relatifs à la position actuelle du point.
-Il est toujours possible de spécifier une valeur négative en argument d'une commande : des angles négatifs pointeront dans une direction vers le sens inverse des aiguilles d'une montre; des positions `x` et `y` seront interprétées commandes coordonnées négatives; des valeurs `x` négatives se déplaceront vers la gauche; et des valeurs `y` négatives se déplaceront vers le haut.
+Il est toujours possible de spécifier une valeur négative en argument d'une commande :
-## Moveto (aller à)
+- Des angles négatifs iront dans le sens inverse des aiguilles d'une montre
+- Des positions _absolues_ négatives `x` et `y` seront interprétées comme des coordonnées négatives
+- Pour les valeurs _relatives_, une valeur de `x` négative ira vers la gauche, et une valeur de `y` négative ira vers le haut.
-Cette instuction peut être vue comme un déplacement du pinceau à une position donnée sans rien tracer. Une bonne pratique consiste à commencer tous ses chemins par une instruction Moveto car, sans un positionnement initial, les instructions du chemin commencerons à un point quelconque ce qui peut donner des résultats non désirés.
+### `MoveTo` (déplacement)
-Syntaxe:
+Cette instruction peut être vue comme un déplacement du pinceau à une position donnée sans rien tracer. Autrement dit, on déplace _le point courant_ (_Po _; {_xo _, _yo _}) et on ne trace pas de ligne entre _Po _ et le nouveau _point courant_ (_Pn _; {_xn _, _yn _}).
-- **`M x, y`** où x et y sont des coordonnées absolues, respectivement horizontale et verticale.
-- **`m dx, dy`** où dx et dy sont des distances relatives à la position courante, respectivement vers la droite et vers le bas.
+Une bonne pratique consiste à commencer tous ses chemins par une instruction `MoveTo` car, sans un positionnement initial, les instructions du chemin commenceront à un point quelconque, ce qui peut donner des résultats non désirés.
-Exemples :
+
+
+
+ Commande
+ Paramètres
+ Notes
+
+
+ M
+
+ (x
, y
)+
+
+
+
+ Déplace le point courant aux coordonnées x
,y
. Les éventuelles paires de coordonnées qui suivent sont interprétées comme des paramètres absolus fournis à une commande LineTo
(L
) implicite (voir ci-après).
+
+
+ Formule : Pn = {x
, y
}
+
+
+
+
+ m
+
+ (dx
, dy
)+
+
+
+
+ Déplace le point courant en décalant la dernière position connue du tracé de dx
sur l'axe horizontal et de dy
sur l'axe vertical. Les éventuelles paires de coordonnées qui suivent sont interprétées comme des paramètres relatifs fournis à une commande LineTo
(l
) implicite (voir ci-après).
+
+
+ Formule : Pn = {xo + dx
, yo + dy
}
+
+
+
+
+
-- Positionnement absolu en x = 50, y = 100 : ` `
-- Déplacement de 50 vers la droite et 100 vers le bas : ` `
+#### Exemples
-## Lineto (tracer une ligne jusqu'à)
+```css hidden
+html,
+body,
+svg {
+ height: 100%;
+}
+```
-À l'opposé de l'instruction Moveto, Lineto trace réellement une ligne de la position courante à la position définie. La syntaxe générique est `L x, y` ou `l dx, dy` avec `x, y` des coordonnées absolues et `dx, dy` des distances relatives au point courant, respectivement dans les sens de gauche à droite pour `dx` et de haut en bas pour `dy`.
+```html
+
+
+
+```
-Il existe aussi des raccourcis pour définir des lignes horizontales (H) ou verticales (V). Leur syntaxe est similaire à celle de L, mais il n'y a qu'une valeur à donner.
+{{EmbedLiveSample('', '100%', 200)}}
-Exemples :
+### `LineTo` (tracé d'une ligne)
-- Dessiner un carré (avec coordonnées relatives) : ` `
-- Dessiner un carré (avec coordonnées absolues) : ` `
+Les instructions `LineTo` permettent de dessiner une ligne droite à partir du _point courant_ (_Po _; {_xo _, _yo _}) et jusqu'au _point final_ (_Pn _; {_xn _, _yn _}), selon les paramètres indiqués. _Le point final_ (_Pn _) devient alors _le point courant_ pour la prochaine commande (_Po ′_).
-## Curveto
+
+
+
+ Commande
+ Paramètres
+ Notes
+
+
+ L
+ (x
, y
)+
+
+ Dessine une ligne à partir du point courant jusqu'au point final indiqué par x
,y
. Les éventuelles paires de coordonnées qui suivent sont interprétées comme des paramètres pour une commande LineTo
absolue (L
) implicite.
+
+
+ Formule : Po ′ = Pn = {x
, y
}
+
+
+
+
+ l
+
+ (dx
, dy
)+
+
+
+
+ Dessine une ligne à partir du point courant jusqu'au point final , déterminé par le décalage horizontal dx
et le décalage vertical dy
du point courant . Les éventuelles paires de coordonnées qui suivent sont interprétées comme des paramètres pour une commande LineTo
relative (l
) implicite.
+
+
+ Formule : Po ′ = Pn = {xo + dx
, yo + dy
}
+
+
+
+
+ H
+
+ x
+
+
+
+
+ Dessine une ligne horizontale à partir du point courant et jusqu'au point final , déterminé par la coordonnée x
fournie en paramètre et l'ordonnée y
du point courant . Les éventuelles valeurs suivantes sont interprétées comme des paramètres pour des appels LineTo
(H
) implicites.
+
+
+ Formule : Po ′ = Pn = {x
, yo }
+
+
+
+
+ h
+
+ dx
+
+
+
+
+ Dessine une ligne horizontale à partir du point courant , jusqu'au point final dont l'abscisse est celle du point courant décalée de dx
et dont l'ordonnée est celle du point courant. Les éventuelles valeurs suivantes sont interprétées comme des paramètres pour des appels LineTo
(h
) implicites.
+
+
+ Formule : Po ′ = Pn = {xo + dx
, yo }
+
+
+
+
+ V
+
+ y
+
+
+
+
+ Dessine une ligne verticale à partir du point courant , jusqu'au point final , dont l'ordonnée est indiquée par le paramètre y
et dont l'abscisse est celle du point courant. Les éventuelles valeurs suivantes sont interprétées comme des paramètres pour des appels LineTo
(V
) implicites.
+
+
+ Formule : Po ′ = Pn = {xo , y
}
+
+
+
+
+ v
+
+ dy
+
+
+
+
+ Dessine une ligne verticale à partir du point courant , jusqu'au point final dont l'ordonnée est celle du point courant décalée de dy
et dont l'abscisse est celle du point courant. Les éventuelles valeurs suivantes sont interprétées comme des paramètres pour des appels LineTo
(v
) implicites.
+
+
+ Formule : Po ′ = Pn = {xo , yo + dy
}
+
+
+
+
+
-L'instruction Curveto trace une courbe de Bézier. Il existe deux types de courbes de Bézier : cubique et quadratique. Les courbes cubiques sont un cas particulier des courbes quadratiques puisque le point de contrôle est commun au point de départ et au point d'arrivée. La syntaxe d'une courbe quadratique de Bézier est "Q cx,cy x,y" ou "q dcx,dcy dx,dy". cx et cy sont les coordonnées absolues du point de contrôle tandis que dcx et dcy sont les coordonnées du point de contrôle relatives au point courant. x et y sont les coordonnées absolues du point d'arrivée tandis que dx et dy sont les coordonnées relatives de ce point par rapport au point courant.
+#### Exemples
-Les courbes cubiques de Bézier suivent le même principe mais avec deux points de contrôle. La syntaxe de ces courbes est `C c1x, c1y c2x, c2y x, y` ou `c dc1x, dc1y dc2x, dc2y dx, dy`.
+```css hidden
+html,
+body,
+svg {
+ height: 100%;
+}
+```
-Pour réaliser des chaînes de courbes de Bézier "adoucies", il est possible d'utiliser les commandes T et S. Leur syntaxe est plus simple que les autres commandes Curveto car elles estiment que le premier point de contrôle est le symétrique du point de contrôle précédent par rapport au point terminal de la courbe précédente, ou que c'est le point précédent lui-même s'il n'y a pas eu de courbe tracée directement avant. La syntaxe de T est `T x, y` ou `t dx, dy` pour un point d'arrivée de position absolue ou relatives et sert à créer des courbes quadratiques de Bézier. S sert donc à faire des courbes cubiques de Bézier avec la syntaxe `S cx, cy x, y` ou `s dcx,dcy dx,dy`, où (d)cx indique le second point de contrôle.
+```html
+
+
+
-Finalement, toutes les commandes de courbes de Bézier peuvent servir de "polybézier" en spécifiant tous les paramètres successivement après la commande initiale. En conséquence, les deux commandes suivantes sont équivalentes en résultat :
+
+
+
+```
-` `
+{{EmbedLiveSample('', '100%', 200)}}
-## Arcto
+### Courbes de Bézier cubiques
-Parfois il est plus simple de définir un `path` comme une courbe elliptique plutôt que comme une courbe de Bézier. Dans cette optique, les commandes Arcto sont supportées par les balises `path`.
+[Les courbes de Bézier](/fr/docs/Glossary/Bezier_curve) définissent des courbes douces à l'aide de quatre points :
-La définition d'un Arcto est relativement complexe : `A rx, ry xAxisRotate LargeArcFlag, SweepFlag x, y`, où `rx` et `ry` représentent les rayons sur les axes x et y, respectivement ; `LargeArcFlag` est une valeur à 0 ou 1, et permet de déterminer si le plus petit (0) ou le plus grand (1) arc possible doit être dessiné ; `SweepFlag` est une valeur à 0 ou 1 et définit le sens de balayage de la courbe : horaire (1) ou anti-horaire (0) ; et enfin `x` et `y` sont les coordonnées de destination.
+- Le point de départ (le point courant)
+ - : (_Po _ = {_xo _, _yo _})
+- Le point final
+ - : (_Pn _ = {_xn _, _yn _})
+- Le point de contrôle initial
+ - : (_Pcs _ = {_xcs _, _ycs _})
+ (il contrôle la courbure au début de la courbe)
+- Le point de contrôle final
+ - : (_Pce _ = {_xce _, _yce _})
+ (il contrôle la courbure vers la fin de la courbe)
-La propriété `xAxisRotate` est censée changer l'axe des x relativement au viewport de référence. Cependant, il semble que cette propriété n'ait aucun effet avec le moteur de rendu Gecko 7.
+Après le tracé, _le point final_ (_Pn _) devient _le point courant_ pour la prochaine commande (_Po ′_).
-## ClosePath (fermer un chemin)
+
+
+
+ Commande
+ Paramètres
+ Notes
+
+
+ C
+
+ (x1
,y1
, x2
,y2
, x
,y
)+
+
+
+
+ Dessine une courbe de Bézier cubique à partir du point courant jusqu'au point final indiqué par x
,y
. Le point de contrôle initial est indiqué par les paramètres x1
,y1
, et le point de contrôle final est indiqué par x2
,y2
. Les éventuels triplets de paires de coordonnées sont interprétés comme des paramètres pour des appels implicites à une commande de courbe de Bézier cubique (C
) absolue.
+
+
+ Formules :
+
+ Po ′ = Pn = {x
, y
} ;Pcs = {x1
, y1
} ;Pce = {x2
, y2
}
+
+
+
+
+
+ c
+
+ (dx1
,dy1
, dx2
,dy2
, dx
,dy
)+
+
+
+
+ Dessine une courbe de Bézier cubique à partir du point courant , jusqu'au point final , déterminé par le décalage horizontal dx
et le décalage vertical dy
du point courant. Le point de contrôle initial correspond au point courant (le point de départ de la courbe) décalé de dx1
sur l'axe horizontal et de dy1
sur l'axe vertical. Le point de contrôle final correspond au point courant (le point de départ de la courbe) décalé de dx2
le long de l'axe horizontal et de dy2
le long de l'axe vertical. Les éventuels triplets de paires de coordonnées sont interprétés comme des paramètres pour des appels implicites à une commande de courbe de Bézier cubique (c
) relative.
+
+
+ Formules :
+
+ Po ′ = Pn = {xo + dx
, yo + dy
} ;Pcs = {xo + dx1
, yo + dy1
} ;Pce = {xo + dx2
, yo + dy2
}
+
+
+
+
+
+ S
+
+ (x2
,y2
, x
,y
)+
+
+
+ Dessine une courbe de Bézier lisse allant du point courant au point final indiqué par les coordonnées x
,y
. Le point de contrôle final est indiqué par x2
,y2
. Le point de contrôle initial est le symétrique du point de contrôle final de la précédente commande de courbe par rapport au point courant . Si la commande précédente n'était pas une courbe de Bézier cubique, le point de contrôle initial correspondra au point de départ de la courbe (c'est-à-dire le point courant). Les éventuelles paires de coordonnées qui suivent sont interprétées comme des paramètres pour des commandes de courbe de Bézier cubique lisse absolue (S
) implicites.
+
+
+
+ s
+
+ (dx2
,dy2
, dx
,dy
)+
+
+
+ Dessine une courbe de Bézier cubique lisse allant du point courant au point final , qui est déterminé par le décalage du point courant de dx
sur l'axe horizontal et de dy
sur l'axe vertical. Le point de contrôle final correspond au point courant (le point de départ de la courbe) décalé de dx2
sur l'axe horizontal et décalé de dy2
le long de l'axe vertical. Le point de contrôle initial est le symétrique du point de contrôle final de la commande de courbe précédente par rapport au point courant . Si la commande précédente n'était pas une courbe de Bézier cubique, le point de contrôle initial correspondra au point de départ de la courbe (point courant ). Les éventuelles paires de coordonnées qui suivent sont interprétées comme des paramètres pour des commandes de courbe de Bézier cubique lisse relative (s
) implicites.
+
+
+
+
-L'instruction ClosePath trace simplement une ligne droite de la position actuelle jusqu'au point initial de la courbe. C'est l'instruction la plus simple puisqu'elle n'attend aucun argument. Il n'y a pas de différence entre la version majuscule ("Z") et la version minuscule ("z").
+#### Exemples
-## Éléments
+```css hidden
+html,
+body,
+svg {
+ height: 100%;
+}
+```
+
+```html
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```
+
+{{EmbedLiveSample('', '100%', 200)}}
+
+### Courbe de Bézier quadratique
+
+_[Les courbes de Bézier quadratiques](/fr/docs/Glossary/Bezier_curve)_ définissent des courbes douces à l'aide de trois points :
+
+- Le point de départ (point courant)
+ - : _Po _ = {_xo _, _yo _}
+- Le point final
+ - : _Pn _ = {_xn _, _yn _}
+- Le point de contrôle
+ - : _Pc _ = {_xc _, _yc _}
+ (qui contrôle la courbure)
+
+Après le tracé, _le point final_ (_Pn _) devient _le point courant_ de la prochaine commande (_Po ′_).
+
+
+
+
+ Commande
+ Paramètres
+ Notes
+
+
+ Q
+
+ (x1
,y1
, x
,y
)+
+
+
+
+ Dessine une courbe de Bézier quadratique à partir du point courant jusqu'au point final situé aux coordonnées x
,y
. Le point de contrôle est aux coordonnées x1
,y1
. Les éventuelles paires de coordonnées qui suivent sont interprétées comme des paramètres pour des commandes de courbe de Bézier quadratique absolue (Q
) implicites.
+
+
+ Formules :
+
+ Po ′ = Pn = {x
, y
} ;Pc = {x1
, y1
}
+
+
+
+
+
+ q
+
+ (dx1
,dy1
, dx
,dy
)+
+
+
+
+ Dessine une courbe de Bézier quadratique à partir du point courant jusqu'au point final , calculé en décalant le point courant de dx
sur l'axe horizontal et de dy
sur l'axe vertical. Le point de contrôle correspond au point courant (le point de départ de la courbe) décalé de dx1
le long de l'axe horizontal et de dy1
le long de l'axe vertical. Les éventuelles paires de coordonnées qui suivent sont interprétées comme des paramètres pour des commandes de courbe de Bézier quadratique relative (q
) implicites.
+
+
+ Formules :
+
+ Po ′ = Pn = {xo + dx
, yo + dy
} ;Pc = {xo + dx1
, yo + dy1
}
+
+
+
+
+
+ T
+
+ (x
,y
)+
+
+
+
+ Dessine une courbe de Bézier quadratique lisse à partir du point courant , jusqu'au point final situé aux coordonnées x
,y
. Le point de contrôle est le symétrique du point de contrôle de la précédente commande de courbe par rapport au point courant . Si la commande précédente n'était pas une courbe de Bézier quadratique, le point de contrôle sera identique au point de départ de la courbe (c'est-à-dire le point courant ). Les éventuelles paires de coordonnées qui suivent sont interprétées comme des paramètres pour des commandes de courbe de Bézier quadratique lisse absolue (T
) implicites.
+
+
+ Formula:
+
+ Po ′ = Pn = {x
, y
}
+
+
+
+
+
+ t
+
+ (dx
,dy
)+
+
+
+
+ Dessine une courbe de Bézier quadratique lisse à partir du point courant , jusqu'au point final qui correspond au décalage du point courant de dx
sur l'axe horizontal et de dy
sur l'axe vertical. Le point de contrôle est le symétrique du point de contrôle de la précédente commande de courbe par rapport au point courant . Si la précédente commande n'était pas une courbe de Bézier quadratique, le point de contrôle correspondra alors au point de départ de la courbe (c'est-à-dire le point courant ). Les éventuelles paires de coordonnées qui suivent sont interprétées comme des paramètres pour des commandes de courbe de Bézier quadratique lisse relative (t
) implicites.
+
+
+ Formules :
+
+ Po ′ = Pn = {xo + dx
, yo + dy
}
+
+
+
+
+
+
+
+#### Exemples
+
+```css hidden
+html,
+body,
+svg {
+ height: 100%;
+}
+```
+
+```html
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```
+
+{{EmbedLiveSample('', '100%', 200)}}
+
+### Courbe d'arc elliptique
+
+_Les courbes d'arc elliptique_ sont des courbes définies comme une portion d'ellipse. Certaines courbes régulières sont parfois plus facilement obtenues avec des portions d'ellipses qu'avec des courbes de Bézier.
+
+
+
+
+ Commande
+ Paramètres
+ Notes
+
+
+ A
+
+ (rx
ry
angle
large-arc-flag
sweep-flag
x
y
)+
+
+
+
+ Dessine un arc à partir du point courant jusqu'aux coordonnées x
,y
. Le centre de l'ellipse utilisé pour dessiner l'arc est déterminé automatiquement en fonction des paramètres de la commande :
+
+
+
+ rx
et ry
sont les deux rayons de l'ellipse ;
+
+
+ angle
représente une rotation (exprimée en degrés) de l'ellipse par rapport à l'axe horizontal ;
+
+
+ large-arc-flag
et sweep-flag
permettent de choisir l'arc à dessiner parmi les 4 arcs possibles.
+
+
+ large-arc-flag
permet de choisir entre le grand (1
) ou le petit (0
) arc,
+
+
+ sweep-flag
permet de choisir entre l'arc dans le sens horaire (1
) ou celui dans le sens anti-horaire (0
)
+
+
+
+
+ Les coordonnées x
,y
sont celles du nouveau point courant pour la prochaine commande. Les éventuels paramètres suivants sont considérés comme des paramètres à passer à des commandes d'arc absolu (A
) implicites.
+
+
+
+ a
+
+ (rx
ry
angle
large-arc-flag
sweep-flag
dx
dy
)+
+
+
+
+ Dessine un arc à partir du point courant jusqu'au point dont les coordonnées sont celles du point courant décalées de dx
horizontalement et de dy
verticalement. Le centre de l'ellipse utilisé pour dessiner l'arc est déterminé automatiquement en fonction des paramètres de la commande :
+
+
+
+ rx
et ry
sont les deux rayons de l'ellipse ;
+
+
+ angle
exprime la rotation (en degrés) de l'ellipse par rapport à l'axe horizontal ;
+
+
+ large-arc-flag
et sweep-flag
permettent de choisir l'arc à dessiner parmi les 4 arcs possibles.
+
+
+ large-arc-flag
permet de choisir entre le grand (1
) ou le petit (0
) arc,
+
+
+ sweep-flag
permet de choisir entre l'arc dans le sens horaire (1
) ou celui dans le sens anti-horaire (0
)
+
+
+
+
+ En prenant le point courant et en le décalant de dx
et dy
sur les axes respectifs, on obtient le point courant de la prochaine commande. Les éventuels paramètres suivants sont considérés comme des paramètres à passer à des commandes d'arc relatif (a
) implicites.
+
+
+
+
+
+#### Exemples
+
+```css hidden
+html,
+body,
+svg {
+ height: 100%;
+}
+```
+
+```html
+
+
+
+
+
+
+
+
+
+
+```
+
+{{EmbedLiveSample('', '100%', 200)}}
+
+### `ClosePath` (fermeture du tracé)
+
+Les instructions `ClosePath` permettent de dessiner une ligne droite entre _la position courante_ et le premier point du tracé.
+
+
+
+
+ Commande
+ Paramètres
+ Notes
+
+
+ Z, z
+
+
+ Ferme le chemin courant en connectant le dernier point du chemin au point initial. Si les deux points sont situés à différentes coordonnées, une ligne droite est tracée entre les deux points.
+
+
+
+
+
+> **Note :** L'apparence d'une forme fermée à l'aide de `ClosePath` peut être différente de celle d'une forme fermée en traçant une ligne jusqu'à l'origine selon la commande, car les fins de lignes sont jointes (selon l'attribut [`stroke-linejoin`](/fr/docs/Web/SVG/Attribute/stroke-linejoin)), plutôt que d'être placées aux mêmes coordonnées.
+
+#### Exemples
+
+```css hidden
+html,
+body,
+svg {
+ height: 100%;
+}
+```
+
+```html
+
+
+
+
+
+
+
+
+
+
+```
-Les éléments suivants peuvent utiliser l'attribut **d** :
+{{EmbedLiveSample('', '100%', 200)}}
-- {{SVGElement("path")}}
-- {{SVGElement("glyph")}}
+## Spécifications
-De plus, les mêmes règles s'appliquent aux animations de chemin {{SVGElement("animate")}}.
+{{Specifications}}
-## Notes
+## Compatibilité des navigateurs
-Le point d'origine (de coordonnées 0,0) est habituellement le **coin supérieur gauche** du contexte. Cependant, l'élément {{SVGElement("glyph")}} a son origine dans le **coin inférieur gauche** de la boîte contenant son caractère.
+{{Compat}}
diff --git a/files/fr/web/svg/attribute/in/index.md b/files/fr/web/svg/attribute/in/index.md
index cd747b1caea6da..ddbed996ded8a2 100644
--- a/files/fr/web/svg/attribute/in/index.md
+++ b/files/fr/web/svg/attribute/in/index.md
@@ -3,6 +3,8 @@ title: in
slug: Web/SVG/Attribute/in
---
+{{SVGRef}}
+
« [SVG Attribute reference home](/fr/SVG/Attribute)
L'attribut `in` identifie l'entrée pour la primitive de filtre donnée.
diff --git a/files/fr/web/svg/attribute/seed/index.md b/files/fr/web/svg/attribute/seed/index.md
index 87c9cdd6947e98..9d53848397dfe4 100644
--- a/files/fr/web/svg/attribute/seed/index.md
+++ b/files/fr/web/svg/attribute/seed/index.md
@@ -3,6 +3,8 @@ title: seed
slug: Web/SVG/Attribute/seed
---
+{{SVGRef}}
+
« [Page de référence des attributs SVG](/fr/docs/Web/SVG/Attribute)
L'attribut `seed` représente le nombre palier pour la pseudo génération d'un nombre aléatoire via la primitive {{SVGElement("feTurbulence")}}.
diff --git a/files/fr/web/svg/attribute/viewbox/index.md b/files/fr/web/svg/attribute/viewbox/index.md
index 2259f1b76a4cae..55406409833122 100644
--- a/files/fr/web/svg/attribute/viewbox/index.md
+++ b/files/fr/web/svg/attribute/viewbox/index.md
@@ -3,6 +3,8 @@ title: viewBox
slug: Web/SVG/Attribute/viewBox
---
+{{SVGRef}}
+
« [Sommaire de la référence des attributs SVG](/fr/SVG/Attribute)
L'attribut `viewBox` permet de spécifier qu'un groupe d'éléments graphiques s'étire afin de s'adapter à un élément conteneur.
diff --git a/files/fr/web/svg/tutorial/svg_in_html_introduction/index.md b/files/fr/web/svg/tutorial/svg_in_html_introduction/index.md
index e1c41c79305d58..67fcc0204a5920 100644
--- a/files/fr/web/svg/tutorial/svg_in_html_introduction/index.md
+++ b/files/fr/web/svg/tutorial/svg_in_html_introduction/index.md
@@ -3,6 +3,8 @@ title: Introduction à SVG dans HTML
slug: Web/SVG/Tutorial/SVG_In_HTML_Introduction
---
+{{SVGRef}}
+
### Aperçu
Cet article et son exemple associé montrent comment utiliser du [SVG](/fr/SVG) en ligne pour fournir une image de fond à un formulaire. Il montre comment [JavaScript](/fr/JavaScript) et [CSS](/fr/CSS) peuvent servir à manipuler l'image comme vous le feriez avec le XHTML dans un script. Notez que l'exemple ne fonctionnera que dans des navigateurs supportant XHTML (pas HTML) et l'intégration SVG.
diff --git a/files/fr/web/xml/xml_introduction/index.md b/files/fr/web/xml/xml_introduction/index.md
index a17e57b42844a3..fd4a8c9777110e 100644
--- a/files/fr/web/xml/xml_introduction/index.md
+++ b/files/fr/web/xml/xml_introduction/index.md
@@ -3,6 +3,8 @@ title: Introduction à XML
slug: Web/XML/XML_introduction
---
+{{QuickLinksWithSubpages("/fr/docs/Web/XML")}}
+
### Définition
XML, pour _e**X**tensible **M**arkup **L**anguage_ (langage de balisage extensible), est un langage de balisage généraliste [recommandé par le W3C](http://www.w3.org/) comme l'est HTML. XML est un sous-ensemble du langage SGML. Cela signifie que contrairement aux autres langages de balisages, XML n'est pas prédéfini, vous devez définir vos propres balises. Le but principal de ce langage est le partage de données entre différents systèmes, tel qu'Internet.
diff --git a/files/fr/web/xpath/axes/index.md b/files/fr/web/xpath/axes/index.md
index 754d4932c81296..eae078fd16ce20 100644
--- a/files/fr/web/xpath/axes/index.md
+++ b/files/fr/web/xpath/axes/index.md
@@ -3,7 +3,7 @@ title: Axes
slug: Web/XPath/Axes
---
-{{ XsltRef() }}
+{{XsltSidebar}}{{ XsltRef() }}
Il existe treize axes différents dans la spécification [XPath](XPath). Un axe représente une relation au nœud de contexte, et il est utilisé pour situer dans l'arbre les autres nœuds par rapport à celui-ci. La liste suivante présente très brièvement les treize axes disponibles et le niveau de leur support dans [Gecko](Gecko).
diff --git a/files/fr/web/xpath/functions/boolean/index.md b/files/fr/web/xpath/functions/boolean/index.md
index 30e4d8579223db..3aa56a7591e675 100644
--- a/files/fr/web/xpath/functions/boolean/index.md
+++ b/files/fr/web/xpath/functions/boolean/index.md
@@ -3,7 +3,7 @@ title: boolean
slug: Web/XPath/Functions/boolean
---
-{{ XsltRef() }}
+{{XsltSidebar}}{{ XsltRef() }}
la fonction `boolean` évalue une expression et retourne `true` ou `false`.
diff --git a/files/fr/web/xpath/functions/ceiling/index.md b/files/fr/web/xpath/functions/ceiling/index.md
index 53d2425a960551..2e64f10dfa676c 100644
--- a/files/fr/web/xpath/functions/ceiling/index.md
+++ b/files/fr/web/xpath/functions/ceiling/index.md
@@ -3,7 +3,7 @@ title: ceiling
slug: Web/XPath/Functions/ceiling
---
-{{ XsltRef() }}
+{{XsltSidebar}}{{ XsltRef() }}
La fonction `ceiling` évalue un nombre décimal et retourne le plus petit nombre entier supérieur ou égal au nombre évalué.
diff --git a/files/fr/web/xpath/functions/concat/index.md b/files/fr/web/xpath/functions/concat/index.md
index 928eeeb733564b..52f65b49d62974 100644
--- a/files/fr/web/xpath/functions/concat/index.md
+++ b/files/fr/web/xpath/functions/concat/index.md
@@ -3,7 +3,7 @@ title: concat
slug: Web/XPath/Functions/concat
---
-{{ XsltRef() }}
+{{XsltSidebar}}{{ XsltRef() }}
La fonction `concat` concatène deux ou plusieurs chaînes et retourne la chaîne résultante.
diff --git a/files/fr/web/xpath/functions/contains/index.md b/files/fr/web/xpath/functions/contains/index.md
index 6416f89c894071..f549e7441b327c 100644
--- a/files/fr/web/xpath/functions/contains/index.md
+++ b/files/fr/web/xpath/functions/contains/index.md
@@ -3,7 +3,7 @@ title: contains
slug: Web/XPath/Functions/contains
---
-{{ XsltRef() }}
+{{XsltSidebar}}{{ XsltRef() }}
La fonction `contains` détermine si la chaîne passée en premier argument contient la chaîne passée en second argument et retourne le booléen `true` ou `false`.
diff --git a/files/fr/web/xpath/functions/count/index.md b/files/fr/web/xpath/functions/count/index.md
index 13b5b23058bc67..862ffbb8c359f8 100644
--- a/files/fr/web/xpath/functions/count/index.md
+++ b/files/fr/web/xpath/functions/count/index.md
@@ -3,7 +3,7 @@ title: count
slug: Web/XPath/Functions/count
---
-{{ XsltRef() }}
+{{XsltSidebar}}{{ XsltRef() }}
La fonction `count` compte le nombre de nœuds dans un ensemble de nœuds et retourne un entier.
diff --git a/files/fr/web/xpath/functions/current/index.md b/files/fr/web/xpath/functions/current/index.md
index 66c3ebf7cbc237..9178baa78e1c08 100644
--- a/files/fr/web/xpath/functions/current/index.md
+++ b/files/fr/web/xpath/functions/current/index.md
@@ -3,7 +3,7 @@ title: current
slug: Web/XPath/Functions/current
---
-{{ XsltRef() }}
+{{XsltSidebar}}{{ XsltRef() }}
La fonction `current` peut être utilisée pour obtenir le nœud courant dans une instruction XSLT.
diff --git a/files/fr/web/xpath/functions/document/index.md b/files/fr/web/xpath/functions/document/index.md
index f59e0d5c43a12b..3f34a6c45dc6fa 100644
--- a/files/fr/web/xpath/functions/document/index.md
+++ b/files/fr/web/xpath/functions/document/index.md
@@ -3,7 +3,7 @@ title: document
slug: Web/XPath/Functions/document
---
-{{ XsltRef() }}
+{{XsltSidebar}}{{ XsltRef() }}
La fonction `document` recherche un ensemble de nœuds dans un ou des documents externes et retourne l'ensemble de nœuds résultant.
diff --git a/files/fr/web/xpath/functions/element-available/index.md b/files/fr/web/xpath/functions/element-available/index.md
index 9d053e5e5a4c1e..d6601f1a82823c 100644
--- a/files/fr/web/xpath/functions/element-available/index.md
+++ b/files/fr/web/xpath/functions/element-available/index.md
@@ -3,7 +3,7 @@ title: element-available
slug: Web/XPath/Functions/element-available
---
-{{ XsltRef() }}
+{{XsltSidebar}}{{ XsltRef() }}
La fonction `element-available` détermine si un élément est disponible et retourne la valeur booléenne `true` ou `false`.
diff --git a/files/fr/web/xpath/functions/false/index.md b/files/fr/web/xpath/functions/false/index.md
index 09d9c33cd305c7..ec46a679ad7f72 100644
--- a/files/fr/web/xpath/functions/false/index.md
+++ b/files/fr/web/xpath/functions/false/index.md
@@ -3,7 +3,7 @@ title: "false"
slug: Web/XPath/Functions/false
---
-{{ XsltRef() }}
+{{XsltSidebar}}{{ XsltRef() }}
La fonction `false` retourne le booléen `false`.
diff --git a/files/fr/web/xpath/functions/floor/index.md b/files/fr/web/xpath/functions/floor/index.md
index e7d6f66f6aac19..76595636fd9bf6 100644
--- a/files/fr/web/xpath/functions/floor/index.md
+++ b/files/fr/web/xpath/functions/floor/index.md
@@ -3,7 +3,7 @@ title: floor
slug: Web/XPath/Functions/floor
---
-{{ XsltRef() }}
+{{XsltSidebar}}{{ XsltRef() }}
La fonction `floor` évalue un nombre décimal et retourne le plus grand nombre entier inférieur ou égal au nombre évalué.
diff --git a/files/fr/web/xpath/functions/format-number/index.md b/files/fr/web/xpath/functions/format-number/index.md
index a8fca3342b2db0..2e1e92d7b6b9c8 100644
--- a/files/fr/web/xpath/functions/format-number/index.md
+++ b/files/fr/web/xpath/functions/format-number/index.md
@@ -3,7 +3,7 @@ title: format-number
slug: Web/XPath/Functions/format-number
---
-{{ XsltRef() }}
+{{XsltSidebar}}{{ XsltRef() }}
La fonction `format-number` évalue un nombre et retourne une chaîne représentant le nombre dans un format donné.
diff --git a/files/fr/web/xpath/functions/function-available/index.md b/files/fr/web/xpath/functions/function-available/index.md
index 5e31d77bf13183..475192fbf93c98 100644
--- a/files/fr/web/xpath/functions/function-available/index.md
+++ b/files/fr/web/xpath/functions/function-available/index.md
@@ -3,7 +3,7 @@ title: function-available
slug: Web/XPath/Functions/function-available
---
-{{ XsltRef() }}
+{{XsltSidebar}}{{ XsltRef() }}
La fonction `function-available` détermine si une fonction donnée est disponible et retourne le booléen `true` ou `false`.
diff --git a/files/fr/web/xpath/functions/generate-id/index.md b/files/fr/web/xpath/functions/generate-id/index.md
index 00ef80fb6a5eac..deac71d5fa6ae5 100644
--- a/files/fr/web/xpath/functions/generate-id/index.md
+++ b/files/fr/web/xpath/functions/generate-id/index.md
@@ -3,7 +3,7 @@ title: generate-id
slug: Web/XPath/Functions/generate-id
---
-{{ XsltRef() }}
+{{XsltSidebar}}{{ XsltRef() }}
La fonction `generate-id` génère un identifiant `id` unique pour le premier nœud d'un ensemble de nœuds donné et retourne une chaîne contenant cet `id`.
diff --git a/files/fr/web/xpath/functions/id/index.md b/files/fr/web/xpath/functions/id/index.md
index e5cadec0ce2fca..ea5445a7b5fcd6 100644
--- a/files/fr/web/xpath/functions/id/index.md
+++ b/files/fr/web/xpath/functions/id/index.md
@@ -3,7 +3,7 @@ title: id
slug: Web/XPath/Functions/id
---
-{{ XsltRef() }}
+{{XsltSidebar}}{{ XsltRef() }}
La fonction `id` recherche les nœuds correspondant aux identifiants `id` donnés et retourne un ensemble de nœuds contenant les nœuds identifiés.
diff --git a/files/fr/web/xpath/functions/index.md b/files/fr/web/xpath/functions/index.md
index c227e92f59e19b..e61734f1e7f3a3 100644
--- a/files/fr/web/xpath/functions/index.md
+++ b/files/fr/web/xpath/functions/index.md
@@ -3,6 +3,8 @@ title: Fonctions
slug: Web/XPath/Functions
---
+{{XsltSidebar}}
+
{{ XsltRef() }} La liste ci-dessous regroupe les principales fonctions de [XPath](/fr/docs/Web/XPath) et les ajouts à XPath qui sont spécifiques à [XSLT](/fr/docs/Web/XSLT). Chaque lien fournit pour la fonction correspondante description, syntaxe, liste d'arguments, types de résultats, description originelle dans les recommandations du W3C, et niveau de support actuel dans [Gecko](/fr/docs/Web//Gecko). Pour plus d'informations sur l'utilisation des fonctions XPath/XSLT, reportez-vous à la page [Autres ressources](/fr/docs/Web/XSLT/Transformations_XML_avec_XSLT/Autres_ressources).
- [boolean()](Fonctions/boolean)
diff --git a/files/fr/web/xpath/functions/key/index.md b/files/fr/web/xpath/functions/key/index.md
index 5fe5ae017e248d..abc393d9997851 100644
--- a/files/fr/web/xpath/functions/key/index.md
+++ b/files/fr/web/xpath/functions/key/index.md
@@ -3,7 +3,7 @@ title: key
slug: Web/XPath/Functions/key
---
-{{ XsltRef() }}
+{{XsltSidebar}}{{ XsltRef() }}
La fonction `key` retourne un ensemble de nœuds ayant la valeur donnée pour la clef donnée.
diff --git a/files/fr/web/xpath/functions/lang/index.md b/files/fr/web/xpath/functions/lang/index.md
index d00d822cb3245f..63439fdc6feace 100644
--- a/files/fr/web/xpath/functions/lang/index.md
+++ b/files/fr/web/xpath/functions/lang/index.md
@@ -3,7 +3,7 @@ title: lang
slug: Web/XPath/Functions/lang
---
-{{ XsltRef() }}
+{{XsltSidebar}}{{ XsltRef() }}
La fonction `lang` détermine si le nœud de contexte correspond à la langue indiquée et retourne le booléen `true` ou `false`.
diff --git a/files/fr/web/xpath/functions/last/index.md b/files/fr/web/xpath/functions/last/index.md
index d08176e0331421..f66d9e4771c051 100644
--- a/files/fr/web/xpath/functions/last/index.md
+++ b/files/fr/web/xpath/functions/last/index.md
@@ -3,7 +3,7 @@ title: last
slug: Web/XPath/Functions/last
---
-{{ XsltRef() }}
+{{XsltSidebar}}{{ XsltRef() }}
La fonction `last` retourne un nombre égal à la taille du contexte dans le contexte d'évaluation d'expression.
diff --git a/files/fr/web/xpath/functions/local-name/index.md b/files/fr/web/xpath/functions/local-name/index.md
index 8f4f899d1ee928..d5bfa919765386 100644
--- a/files/fr/web/xpath/functions/local-name/index.md
+++ b/files/fr/web/xpath/functions/local-name/index.md
@@ -3,7 +3,7 @@ title: local-name
slug: Web/XPath/Functions/local-name
---
-{{ XsltRef() }}
+{{XsltSidebar}}{{ XsltRef() }}
La fonction `local-name` retourne une chaîne représentant le nom local du premier nœud d'un ensemble de nœuds donné.
diff --git a/files/fr/web/xpath/functions/name/index.md b/files/fr/web/xpath/functions/name/index.md
index 30f6c649403949..6d8ef1d2faa47b 100644
--- a/files/fr/web/xpath/functions/name/index.md
+++ b/files/fr/web/xpath/functions/name/index.md
@@ -3,7 +3,7 @@ title: name
slug: Web/XPath/Functions/name
---
-{{ XsltRef() }}
+{{XsltSidebar}}{{ XsltRef() }}
La fonction `name` retourne une chaîne représentant le QName du premier nœud d'un ensemble de nœuds donné.
diff --git a/files/fr/web/xpath/functions/namespace-uri/index.md b/files/fr/web/xpath/functions/namespace-uri/index.md
index 703c6f4f060d93..85eed84e1f62d3 100644
--- a/files/fr/web/xpath/functions/namespace-uri/index.md
+++ b/files/fr/web/xpath/functions/namespace-uri/index.md
@@ -3,7 +3,7 @@ title: namespace-uri
slug: Web/XPath/Functions/namespace-uri
---
-{{ XsltRef() }}
+{{XsltSidebar}}{{ XsltRef() }}
La fonction `namespace-uri` retourne une chaîne représentant l'URI de l'espace de nommage du premier nœud d'un ensemble de nœuds donné.
diff --git a/files/fr/web/xpath/functions/normalize-space/index.md b/files/fr/web/xpath/functions/normalize-space/index.md
index e68f985a73ca69..8723506b3e9550 100644
--- a/files/fr/web/xpath/functions/normalize-space/index.md
+++ b/files/fr/web/xpath/functions/normalize-space/index.md
@@ -3,7 +3,7 @@ title: normalize-space
slug: Web/XPath/Functions/normalize-space
---
-{{ XsltRef() }}
+{{XsltSidebar}}{{ XsltRef() }}
La fonction `normalize-space` supprime les espaces de début et de fin d'une chaîne et remplace les successions d'espaces par une seule puis retourne la chaîne résultante.
diff --git a/files/fr/web/xpath/functions/not/index.md b/files/fr/web/xpath/functions/not/index.md
index d7f05c7d1e2d18..970cd901c74ee1 100644
--- a/files/fr/web/xpath/functions/not/index.md
+++ b/files/fr/web/xpath/functions/not/index.md
@@ -3,7 +3,7 @@ title: not
slug: Web/XPath/Functions/not
---
-{{ XsltRef() }}
+{{XsltSidebar}}{{ XsltRef() }}
La fonction `not` évalue une expression booléenne et retourne la valeur opposée.
diff --git a/files/fr/web/xpath/functions/number/index.md b/files/fr/web/xpath/functions/number/index.md
index 6c6ea481a5934e..0ef0e68de73e9b 100644
--- a/files/fr/web/xpath/functions/number/index.md
+++ b/files/fr/web/xpath/functions/number/index.md
@@ -3,7 +3,7 @@ title: number
slug: Web/XPath/Functions/number
---
-{{ XsltRef() }}
+{{XsltSidebar}}{{ XsltRef() }}
La fonction `number` convertit un objet en un nombre et retourne ce nombre.
diff --git a/files/fr/web/xpath/functions/position/index.md b/files/fr/web/xpath/functions/position/index.md
index c01d48f19005da..09d058a44abe67 100644
--- a/files/fr/web/xpath/functions/position/index.md
+++ b/files/fr/web/xpath/functions/position/index.md
@@ -3,7 +3,7 @@ title: position
slug: Web/XPath/Functions/position
---
-{{ XsltRef() }}
+{{XsltSidebar}}{{ XsltRef() }}
La fonction `position` retourne un nombre égal à la position du contexte dans le contexte d'évaluation d'expression.
diff --git a/files/fr/web/xpath/functions/round/index.md b/files/fr/web/xpath/functions/round/index.md
index ef0687ae41ada4..076200dbbd61dc 100644
--- a/files/fr/web/xpath/functions/round/index.md
+++ b/files/fr/web/xpath/functions/round/index.md
@@ -3,7 +3,7 @@ title: round
slug: Web/XPath/Functions/round
---
-{{ XsltRef() }}
+{{XsltSidebar}}{{ XsltRef() }}
La fonction `round` retourne le nombre entier le plus proche d'un nombre donné.
diff --git a/files/fr/web/xpath/functions/starts-with/index.md b/files/fr/web/xpath/functions/starts-with/index.md
index dd220d933651b6..e8c68d95f42bf1 100644
--- a/files/fr/web/xpath/functions/starts-with/index.md
+++ b/files/fr/web/xpath/functions/starts-with/index.md
@@ -3,7 +3,7 @@ title: starts-with
slug: Web/XPath/Functions/starts-with
---
-{{ XsltRef() }}
+{{XsltSidebar}}{{ XsltRef() }}
La fonction `starts-with` vérifie si la première chaîne débute par la seconde, et retourne `true` ou `false`.
diff --git a/files/fr/web/xpath/functions/string-length/index.md b/files/fr/web/xpath/functions/string-length/index.md
index c639d6811b4d1a..f39421a2ff0111 100644
--- a/files/fr/web/xpath/functions/string-length/index.md
+++ b/files/fr/web/xpath/functions/string-length/index.md
@@ -3,7 +3,7 @@ title: string-length
slug: Web/XPath/Functions/string-length
---
-{{ XsltRef() }}
+{{XsltSidebar}}{{ XsltRef() }}
La fonction `string-length` retourne le nombre de caractères dans une chaîne donnée.
diff --git a/files/fr/web/xpath/functions/string/index.md b/files/fr/web/xpath/functions/string/index.md
index 37230b1513b20c..25e096d999650b 100644
--- a/files/fr/web/xpath/functions/string/index.md
+++ b/files/fr/web/xpath/functions/string/index.md
@@ -3,7 +3,7 @@ title: string
slug: Web/XPath/Functions/string
---
-{{ XsltRef() }}
+{{XsltSidebar}}{{ XsltRef() }}
La fonction `string` convertit l'argument passé en une chaîne.
diff --git a/files/fr/web/xpath/functions/substring-after/index.md b/files/fr/web/xpath/functions/substring-after/index.md
index 49171e9f50c3c7..7b77a3f4f165f9 100644
--- a/files/fr/web/xpath/functions/substring-after/index.md
+++ b/files/fr/web/xpath/functions/substring-after/index.md
@@ -3,7 +3,7 @@ title: substring-after
slug: Web/XPath/Functions/substring-after
---
-{{ XsltRef() }}
+{{XsltSidebar}}{{ XsltRef() }}
La fonction `substring-after()` retourne la partie d'une chaîne donnée suivant une sous-chaîne donnée.
diff --git a/files/fr/web/xpath/functions/substring-before/index.md b/files/fr/web/xpath/functions/substring-before/index.md
index 22a1b85904b8b1..ede540ccb8cd1a 100644
--- a/files/fr/web/xpath/functions/substring-before/index.md
+++ b/files/fr/web/xpath/functions/substring-before/index.md
@@ -3,7 +3,7 @@ title: substring-before
slug: Web/XPath/Functions/substring-before
---
-{{ XsltRef() }}
+{{XsltSidebar}}{{ XsltRef() }}
La fonction `substring-before()` retourne retourne la partie d'une chaîne donnée précédant une sous-chaîne donnée.
diff --git a/files/fr/web/xpath/functions/substring/index.md b/files/fr/web/xpath/functions/substring/index.md
index 14269b6a075f65..537769d645c83e 100644
--- a/files/fr/web/xpath/functions/substring/index.md
+++ b/files/fr/web/xpath/functions/substring/index.md
@@ -3,7 +3,7 @@ title: substring
slug: Web/XPath/Functions/substring
---
-{{ XsltRef() }}
+{{XsltSidebar}}{{ XsltRef() }}
La fonction `substring` retourne une partie d'une chaîne donnée.
diff --git a/files/fr/web/xpath/functions/sum/index.md b/files/fr/web/xpath/functions/sum/index.md
index f172076c9e0ae2..d00bc89caa3112 100644
--- a/files/fr/web/xpath/functions/sum/index.md
+++ b/files/fr/web/xpath/functions/sum/index.md
@@ -3,7 +3,7 @@ title: sum
slug: Web/XPath/Functions/sum
---
-{{ XsltRef() }}
+{{XsltSidebar}}{{ XsltRef() }}
La fonction `sum` retourne un nombre qui est la somme des valeurs numériques de chaque nœud d'un ensemble de nœuds donné.
diff --git a/files/fr/web/xpath/functions/system-property/index.md b/files/fr/web/xpath/functions/system-property/index.md
index 907730a724dbe1..842feb957108e7 100644
--- a/files/fr/web/xpath/functions/system-property/index.md
+++ b/files/fr/web/xpath/functions/system-property/index.md
@@ -3,7 +3,7 @@ title: system-property
slug: Web/XPath/Functions/system-property
---
-{{ XsltRef() }}
+{{XsltSidebar}}{{ XsltRef() }}
La fonction `system-property()` retourne un objet représentant la propriété système donnée.
diff --git a/files/fr/web/xpath/functions/translate/index.md b/files/fr/web/xpath/functions/translate/index.md
index 44fab4a2ad5418..85369fd0183a60 100644
--- a/files/fr/web/xpath/functions/translate/index.md
+++ b/files/fr/web/xpath/functions/translate/index.md
@@ -3,7 +3,7 @@ title: translate
slug: Web/XPath/Functions/translate
---
-{{ XsltRef() }}
+{{XsltSidebar}}{{ XsltRef() }}
La fonction `translate` évalue une chaîne et un ensemble de caractères à traduire, et retourne la chaîne traduite.
diff --git a/files/fr/web/xpath/functions/true/index.md b/files/fr/web/xpath/functions/true/index.md
index a33a08b7f4f493..66a914d63da60b 100644
--- a/files/fr/web/xpath/functions/true/index.md
+++ b/files/fr/web/xpath/functions/true/index.md
@@ -3,7 +3,7 @@ title: "true"
slug: Web/XPath/Functions/true
---
-{{ XsltRef() }}
+{{XsltSidebar}}{{ XsltRef() }}
La fonction `true` retourne la valeur booléenne `true`.
diff --git a/files/fr/web/xpath/functions/unparsed-entity-url/index.md b/files/fr/web/xpath/functions/unparsed-entity-url/index.md
index a40faeb34010cf..00973051f628c8 100644
--- a/files/fr/web/xpath/functions/unparsed-entity-url/index.md
+++ b/files/fr/web/xpath/functions/unparsed-entity-url/index.md
@@ -3,7 +3,7 @@ title: unparsed-entity-url
slug: Web/XPath/Functions/unparsed-entity-url
---
-{{ XsltRef() }}
+{{XsltSidebar}}{{ XsltRef() }}
La fonction `unparsed-entity-url()` retourne l'URI d'une entité non analysée avec le nom donné. C'est une donnée non-XML référencée dans le DTD du document source.
diff --git a/files/fr/web/xpath/introduction_to_using_xpath_in_javascript/index.md b/files/fr/web/xpath/introduction_to_using_xpath_in_javascript/index.md
index 8834dbbf15c4bf..b4335b61ec447e 100644
--- a/files/fr/web/xpath/introduction_to_using_xpath_in_javascript/index.md
+++ b/files/fr/web/xpath/introduction_to_using_xpath_in_javascript/index.md
@@ -3,6 +3,8 @@ title: Introduction à l'utilisation de XPath avec JavaScript
slug: Web/XPath/Introduction_to_using_XPath_in_JavaScript
---
+{{XsltSidebar}}
+
Ce document décrit l'interface pour utiliser [XPath](/fr/docs/Web/XPath) dans JavaScript, que ce soit en interne, dans les extensions et depuis les sites Web. Mozilla implémente une partie importante de [DOM 3 XPath (en)](https://www.w3.org/TR/2004/NOTE-DOM-Level-3-XPath-20040226/). Cela signifie que les expressions XPath peuvent être utilisées sur des documents HTML et XML.
La principale interface pour l'utilisation de XPath est la fonction [`evaluate()`](/fr/docs/Web/API/Document/evaluate) de l'objet [`document`](/fr/docs/Web/API/Document).
diff --git a/files/fr/web/xslt/element/apply-imports/index.md b/files/fr/web/xslt/element/apply-imports/index.md
index 502c2ccf53a2bc..f790951fcecea7 100644
--- a/files/fr/web/xslt/element/apply-imports/index.md
+++ b/files/fr/web/xslt/element/apply-imports/index.md
@@ -3,7 +3,7 @@ title: apply-imports
slug: Web/XSLT/Element/apply-imports
---
-{{ XsltRef() }}
+{{XsltSidebar}}{{ XsltRef() }}
L'élément ``, utilisé la plupart du temps dans les feuilles de styles complexes, est assez mystérieux. Les règles de priorité de l'importation imposent que les règles de modèles des feuilles de styles principales aient une priorité supérieure aux règles de modèles des feuilles de styles importées. Cependant, il est parfois utile de forcer le processeur à utiliser une règle de modèle de la feuille de styles importée (de priorité plus basse) plutôt que la règle équivalente de la feuille de styles principale.
diff --git a/files/fr/web/xslt/element/apply-templates/index.md b/files/fr/web/xslt/element/apply-templates/index.md
index abc8648ccbb120..0ae21eddf67c94 100644
--- a/files/fr/web/xslt/element/apply-templates/index.md
+++ b/files/fr/web/xslt/element/apply-templates/index.md
@@ -3,7 +3,7 @@ title: apply-templates
slug: Web/XSLT/Element/apply-templates
---
-{{ XsltRef() }}
+{{XsltSidebar}}{{ XsltRef() }}
L'élément `` sélectionne un ensemble de nœuds dans l'arbre d'entrée et demande au processeur de leur appliquer les modèles appropriés.
diff --git a/files/fr/web/xslt/element/attribute-set/index.md b/files/fr/web/xslt/element/attribute-set/index.md
index 4cea35f8345411..06e5f206c80b64 100644
--- a/files/fr/web/xslt/element/attribute-set/index.md
+++ b/files/fr/web/xslt/element/attribute-set/index.md
@@ -3,7 +3,7 @@ title: attribute-set
slug: Web/XSLT/Element/attribute-set
---
-{{ XsltRef() }}
+{{XsltSidebar}}{{ XsltRef() }}
L'élément `` crée un ensemble nommé d'attributs, qui peut être appliqué dans son intégralité au document de sortie, de façon similaire aux styles CSS nommés.
diff --git a/files/fr/web/xslt/element/attribute/index.md b/files/fr/web/xslt/element/attribute/index.md
index 89c6121a92606c..88305becd55720 100644
--- a/files/fr/web/xslt/element/attribute/index.md
+++ b/files/fr/web/xslt/element/attribute/index.md
@@ -3,7 +3,7 @@ title: attribute
slug: Web/XSLT/Element/attribute
---
-{{ XsltRef() }}
+{{XsltSidebar}}{{ XsltRef() }}
L'élément `` crée un attribut dans le document de sortie, en utilisant n'importe quelle donnée accessible depuis la feuille de styles. L'élément **doit** être la première chose définie dans l'élément du document de sortie pour lequel il détermine les valeurs d'attributs.
diff --git a/files/fr/web/xslt/element/call-template/index.md b/files/fr/web/xslt/element/call-template/index.md
index d676295a9443b3..ec849c9a7ed3da 100644
--- a/files/fr/web/xslt/element/call-template/index.md
+++ b/files/fr/web/xslt/element/call-template/index.md
@@ -3,7 +3,7 @@ title: call-template
slug: Web/XSLT/Element/call-template
---
-{{ XsltRef() }}
+{{XsltSidebar}}{{ XsltRef() }}
L'élément `` invoque un modèle nommé.
diff --git a/files/fr/web/xslt/element/choose/index.md b/files/fr/web/xslt/element/choose/index.md
index cd0305c661018c..c16d90368e1112 100644
--- a/files/fr/web/xslt/element/choose/index.md
+++ b/files/fr/web/xslt/element/choose/index.md
@@ -3,7 +3,7 @@ title: choose
slug: Web/XSLT/Element/choose
---
-{{ XsltRef() }}
+{{XsltSidebar}}{{ XsltRef() }}
L'élément `` définit un choix parmi un certain nombre d'alternatives. Il se comporte comme l'instruction switch d'un langage procédural.
diff --git a/files/fr/web/xslt/element/comment/index.md b/files/fr/web/xslt/element/comment/index.md
index 62fc9ffd2676c2..12ac3380e4726a 100644
--- a/files/fr/web/xslt/element/comment/index.md
+++ b/files/fr/web/xslt/element/comment/index.md
@@ -3,7 +3,7 @@ title: comment
slug: Web/XSLT/Element/comment
---
-{{ XsltRef() }}
+{{XsltSidebar}}{{ XsltRef() }}
L'élément `` écrit un commentaire dans le document de sortie. Il ne doit contenir que du texte.
diff --git a/files/fr/web/xslt/element/copy-of/index.md b/files/fr/web/xslt/element/copy-of/index.md
index d3a618c6e3fcee..3b7a80bc66bf77 100644
--- a/files/fr/web/xslt/element/copy-of/index.md
+++ b/files/fr/web/xslt/element/copy-of/index.md
@@ -3,7 +3,7 @@ title: copy-of
slug: Web/XSLT/Element/copy-of
---
-{{ XsltRef() }}
+{{XsltSidebar}}{{ XsltRef() }}
L'élément `` fait une copie complète dans le document de sortie (incluant les nœuds enfants) de tout ce que l'élément sélectionné spécifie.
diff --git a/files/fr/web/xslt/element/copy/index.md b/files/fr/web/xslt/element/copy/index.md
index 7e7d440c6a6502..4bc0f372a8142c 100644
--- a/files/fr/web/xslt/element/copy/index.md
+++ b/files/fr/web/xslt/element/copy/index.md
@@ -3,7 +3,7 @@ title: copy
slug: Web/XSLT/Element/copy
---
-{{ XsltRef() }}
+{{XsltSidebar}}{{ XsltRef() }}
L'élément `` transfert une copie limitée (le nœud et tous les nœuds d'espace de nommage associés) du nœud courant vers le document de sortie. Il ne copie aucun enfant ni attribut du nœud courant.
diff --git a/files/fr/web/xslt/element/decimal-format/index.md b/files/fr/web/xslt/element/decimal-format/index.md
index 3216f18717671f..796b18f0815c54 100644
--- a/files/fr/web/xslt/element/decimal-format/index.md
+++ b/files/fr/web/xslt/element/decimal-format/index.md
@@ -3,7 +3,7 @@ title: decimal-format
slug: Web/XSLT/Element/decimal-format
---
-{{ XsltRef() }}
+{{XsltSidebar}}{{ XsltRef() }}
L'élément `` définit les caractères et symboles à utiliser lors de la conversion de nombres en chaînes à l'aide de la fonction `format-number( )`.
diff --git a/files/fr/web/xslt/element/element/index.md b/files/fr/web/xslt/element/element/index.md
index 658583fbd1f5fd..71821fd725dadf 100644
--- a/files/fr/web/xslt/element/element/index.md
+++ b/files/fr/web/xslt/element/element/index.md
@@ -3,7 +3,7 @@ title: element
slug: Web/XSLT/Element/element
---
-{{ XsltRef() }}
+{{XsltSidebar}}{{ XsltRef() }}
L'élément `` crée un élément dans le document de sortie.
diff --git a/files/fr/web/xslt/element/fallback/index.md b/files/fr/web/xslt/element/fallback/index.md
index 0ff4ab52d96051..7a9d0fbe850b39 100644
--- a/files/fr/web/xslt/element/fallback/index.md
+++ b/files/fr/web/xslt/element/fallback/index.md
@@ -3,7 +3,7 @@ title: fallback
slug: Web/XSLT/Element/fallback
---
-{{ XsltRef() }}
+{{XsltSidebar}}{{ XsltRef() }}
L'élément `` définit le modèle à utiliser si un élément d'extension donné (ou, éventuellement, une nouvelle version) n'est pas supporté.
diff --git a/files/fr/web/xslt/element/for-each/index.md b/files/fr/web/xslt/element/for-each/index.md
index 27d7a9ddf31f58..307bdf2fe6118c 100644
--- a/files/fr/web/xslt/element/for-each/index.md
+++ b/files/fr/web/xslt/element/for-each/index.md
@@ -3,7 +3,7 @@ title: for-each
slug: Web/XSLT/Element/for-each
---
-{{ XsltRef() }}
+{{XsltSidebar}}{{ XsltRef() }}
L'élément `` sélectionne un ensemble de nœuds et traite chacun d'eux de la même façon. Il est souvent utilisé pour des itérations sur un ensemble de nœuds ou pour changer le nœud courant. Si un ou plusieurs éléments `` apparaissent comme enfants de cet élément, le tri est effectué avant le traitement. Autrement, les nœuds sont traités dans l'ordre d'apparition dans le document.
diff --git a/files/fr/web/xslt/element/if/index.md b/files/fr/web/xslt/element/if/index.md
index 26b66beb4ff7de..4cd17376b59947 100644
--- a/files/fr/web/xslt/element/if/index.md
+++ b/files/fr/web/xslt/element/if/index.md
@@ -3,7 +3,7 @@ title: if
slug: Web/XSLT/Element/if
---
-{{ XsltRef() }}
+{{XsltSidebar}}{{ XsltRef() }}
L'élément `` regroupe un attribut test et un modèle. Si le test renvoie `true`, le modèle est appliqué. En cela, il est très semblable à l'instruction `if` d'autres langages. Cependant, pour simuler un `if-then-else`, vous devrez utilisez l'élément `` avec un descendant `` et un ``.
diff --git a/files/fr/web/xslt/element/import/index.md b/files/fr/web/xslt/element/import/index.md
index b12ee0f820d0be..5055863e1b31c6 100644
--- a/files/fr/web/xslt/element/import/index.md
+++ b/files/fr/web/xslt/element/import/index.md
@@ -3,7 +3,7 @@ title: import
slug: Web/XSLT/Element/import
---
-{{ XsltRef() }}
+{{XsltSidebar}}{{ XsltRef() }}
L'élément `` est un élément de haut niveau qui sert à importer le contenu d'une feuille de styles dans une autre. Généralement, le contenu importé a une priorité inférieure à celui de la feuille qui effectue l'importation. Ceci contraste avec [\](/fr/docs/Web/XSLT/include) où les contenus des deux feuilles ont exactement la même priorité.
diff --git a/files/fr/web/xslt/element/include/index.md b/files/fr/web/xslt/element/include/index.md
index b9bda364e35ec5..3f1104c272ff5c 100644
--- a/files/fr/web/xslt/element/include/index.md
+++ b/files/fr/web/xslt/element/include/index.md
@@ -3,7 +3,7 @@ title: include
slug: Web/XSLT/Element/include
---
-{{ XsltRef() }}
+{{XsltSidebar}}{{ XsltRef() }}
L'élément `` fusionne les contenus de deux feuilles de styles. Contrairement à l'élément [\](/fr/XSLT/import), les contenus des deux feuilles de styles fusionnées ont la même priorité.
diff --git a/files/fr/web/xslt/element/index.md b/files/fr/web/xslt/element/index.md
index f0b881c96fc210..1889791e94ca98 100644
--- a/files/fr/web/xslt/element/index.md
+++ b/files/fr/web/xslt/element/index.md
@@ -3,6 +3,8 @@ title: Éléments
slug: Web/XSLT/Element
---
+{{XsltSidebar}}
+
{{ XsltRef() }} Ce document traite de deux types d'éléments : les éléments de haut niveau, et les instructions. Un élément de haut niveau doit toujours apparaître en tant qu'enfant de `` ou de ``. Une instruction, de son côté, est associée à un modèle. Une feuille de style peut comporter plusieurs modèles. Un troisième type d'élément, que nous n'aborderons pas ici, est le « Literal Result Element (LRE) ». Un LRE appartient également à un modèle. Le terme regroupe tout ce qui n'est pas une instruction et qui doit être recopié tel-quel dans le document de sortie, par exemple, un élément ` ` dans feuille de style de conversion HTML.
A ce propos, tous les attributs d'un LRE et certains attributs d'un nombre limité d'éléments XSLT peuvent inclure ce que l'on appelle un modèle de valeur d'attribut. Un modèle de valeur d'attribut est simplement une chaîne qui intègre une expression XPath utilisée pour spécifier la valeur de l'attribut. Lors de l'exécution, l'expression est évaluée et le résultat de cette évaluation est substitué à l'expression XPath. Par exemple, considérons que variable « `image-dir` » est définie comme ci-dessous :
diff --git a/files/fr/web/xslt/element/key/index.md b/files/fr/web/xslt/element/key/index.md
index 0ea1d13b1dace7..5753c500bc9ff8 100644
--- a/files/fr/web/xslt/element/key/index.md
+++ b/files/fr/web/xslt/element/key/index.md
@@ -3,7 +3,7 @@ title: key
slug: Web/XSLT/Element/key
---
-{{ XsltRef() }}
+{{XsltSidebar}}{{ XsltRef() }}
L'élément `` déclare une clef nommée qui peut être utilisée dans toute la feuille de styles à l'aide de la fonction `key( )`.
diff --git a/files/fr/web/xslt/element/message/index.md b/files/fr/web/xslt/element/message/index.md
index 2fafccafe02aff..82d298b269f59a 100644
--- a/files/fr/web/xslt/element/message/index.md
+++ b/files/fr/web/xslt/element/message/index.md
@@ -3,7 +3,7 @@ title: message
slug: Web/XSLT/Element/message
---
-{{ XsltRef() }}
+{{XsltSidebar}}{{ XsltRef() }}
L'élément `` écrit un message de sortie (dans la console JavaScript) et, éventuellement, met fin à l'exécution de la feuille de styles. Il peut être utile pour le débogage.
diff --git a/files/fr/web/xslt/element/namespace-alias/index.md b/files/fr/web/xslt/element/namespace-alias/index.md
index 756776bc0e09a6..fba082e04d871e 100644
--- a/files/fr/web/xslt/element/namespace-alias/index.md
+++ b/files/fr/web/xslt/element/namespace-alias/index.md
@@ -3,7 +3,7 @@ title: namespace-alias
slug: Web/XSLT/Element/namespace-alias
---
-{{ XsltRef() }}
+{{XsltSidebar}}{{ XsltRef() }}
L'élément `` est un dispositif rarement utilisé qui établit une équivalence entre un espace de nommage d'une feuille de styles et un espace de nommage différent dans l'arbre de sortie. L'utilisation la plus courante de cet élément est la génération d'une feuille de styles depuis une autre feuille de styles. Pour éviter qu'un élément résultat correctement préfixé par `xsl:` (qui doit être copié tel quel dans l'arbre résultant) soit interprêté à tort par le processeur, il lui est assigné un espace de nommage temporaire qui est convenablement reconverti en l'espace de nommage XSLT dans l'arbre de sortie.
diff --git a/files/fr/web/xslt/element/number/index.md b/files/fr/web/xslt/element/number/index.md
index 3590261164f2c2..0d111a1cc11247 100644
--- a/files/fr/web/xslt/element/number/index.md
+++ b/files/fr/web/xslt/element/number/index.md
@@ -3,7 +3,7 @@ title: number
slug: Web/XSLT/Element/number
---
-{{ XsltRef() }}
+{{XsltSidebar}}{{ XsltRef() }}
L'élément `` compte des éléments de façon séquentielle. Il peut également être utilisé
pour formater rapidement un nombre.
diff --git a/files/fr/web/xslt/element/otherwise/index.md b/files/fr/web/xslt/element/otherwise/index.md
index 86c91722926473..29e6c75272e1ce 100644
--- a/files/fr/web/xslt/element/otherwise/index.md
+++ b/files/fr/web/xslt/element/otherwise/index.md
@@ -3,7 +3,7 @@ title: otherwise
slug: Web/XSLT/Element/otherwise
---
-{{ XsltRef() }}
+{{XsltSidebar}}{{ XsltRef() }}
L'élément `` est utilisé pour définir une action qui doit être exécutée lorsqu'aucune condition `` ne s'applique. Elle est comparable aux instructions `else` ou `default` d'autres langages de programmation.
diff --git a/files/fr/web/xslt/element/output/index.md b/files/fr/web/xslt/element/output/index.md
index 1767a1df96129e..4ebcf3eb7c0d92 100644
--- a/files/fr/web/xslt/element/output/index.md
+++ b/files/fr/web/xslt/element/output/index.md
@@ -3,7 +3,7 @@ title: output
slug: Web/XSLT/Element/output
---
-{{ XsltRef() }}
+{{XsltSidebar}}{{ XsltRef() }}
L'élément `` contrôle les caractéristiques du document de sortie. Pour fonctionner correctement dans Netscape, cet élément doit être utilisé, avec l'attribut `method`. À partir de Netscape 7.0, `method="text"` fonctionne comme prévu.
diff --git a/files/fr/web/xslt/element/param/index.md b/files/fr/web/xslt/element/param/index.md
index 2710608f34ea67..0d9f5b948119dc 100644
--- a/files/fr/web/xslt/element/param/index.md
+++ b/files/fr/web/xslt/element/param/index.md
@@ -3,7 +3,7 @@ title: param
slug: Web/XSLT/Element/param
---
-{{ XsltRef() }}
+{{XsltSidebar}}{{ XsltRef() }}
L'élément `` définit un paramètre par son nom et, éventuellement, lui attribue une valeur par défaut. Lorsqu'il est utilisé comme élément de premier niveau, le paramètre est global. Utilisé dans un élément ``, le paramètre est local à ce modèle. Dans ce dernier cas, il doit être le premier élément enfant du modèle.
diff --git a/files/fr/web/xslt/element/preserve-space/index.md b/files/fr/web/xslt/element/preserve-space/index.md
index a8f0a4aabbcb59..8aafb9e581631e 100644
--- a/files/fr/web/xslt/element/preserve-space/index.md
+++ b/files/fr/web/xslt/element/preserve-space/index.md
@@ -3,7 +3,7 @@ title: preserve-space
slug: Web/XSLT/Element/preserve-space
---
-{{ XsltRef() }}
+{{XsltSidebar}}{{ XsltRef() }}
L'élément `` définit les éléments du document source pour lesquels les espaces doivent être préservées. Si il y a plus d'un élément, leurs noms doivent être séparés par des espaces. La politique par défaut est de conserver les espaces, cet élément n'est donc utile que pour contrer l'effet de ``.
diff --git a/files/fr/web/xslt/element/processing-instruction/index.md b/files/fr/web/xslt/element/processing-instruction/index.md
index 567f7074b6fd79..11fc3b73ea7b60 100644
--- a/files/fr/web/xslt/element/processing-instruction/index.md
+++ b/files/fr/web/xslt/element/processing-instruction/index.md
@@ -3,7 +3,7 @@ title: processing-instruction
slug: Web/XSLT/Element/processing-instruction
---
-{{ XsltRef() }}
+{{XsltSidebar}}{{ XsltRef() }}
L'élément `` écrit une instruction de traitement dans le document de sortie.
diff --git a/files/fr/web/xslt/element/sort/index.md b/files/fr/web/xslt/element/sort/index.md
index c05277a9265fbe..d3872b1c2bcda9 100644
--- a/files/fr/web/xslt/element/sort/index.md
+++ b/files/fr/web/xslt/element/sort/index.md
@@ -3,7 +3,7 @@ title: sort
slug: Web/XSLT/Element/sort
---
-{{ XsltRef() }}
+{{XsltSidebar}}{{ XsltRef() }}
L'élément `` définit les paramètres de tri pour des nœuds sélectionnés par `` ou par ``.
diff --git a/files/fr/web/xslt/element/strip-space/index.md b/files/fr/web/xslt/element/strip-space/index.md
index 248156625ead89..93ace04e5230ce 100644
--- a/files/fr/web/xslt/element/strip-space/index.md
+++ b/files/fr/web/xslt/element/strip-space/index.md
@@ -3,7 +3,7 @@ title: strip-space
slug: Web/XSLT/Element/strip-space
---
-{{ XsltRef() }}
+{{XsltSidebar}}{{ XsltRef() }}
L'élément `` définit les éléments du document source dont les noeuds descendants ne contenant que des espaces doivent être supprimés.
diff --git a/files/fr/web/xslt/element/stylesheet/index.md b/files/fr/web/xslt/element/stylesheet/index.md
index 1c20ef24c033a6..bfa1d6b98097ca 100644
--- a/files/fr/web/xslt/element/stylesheet/index.md
+++ b/files/fr/web/xslt/element/stylesheet/index.md
@@ -3,7 +3,7 @@ title: stylesheet
slug: Web/XSLT/Element/stylesheet
---
-{{ XsltRef() }}
+{{XsltSidebar}}{{ XsltRef() }}
L'élément `` (ou son équivalent ``) est l'élément le plus externe d'une feuille de style, celui qui contient tout les autres éléments.
diff --git a/files/fr/web/xslt/element/template/index.md b/files/fr/web/xslt/element/template/index.md
index 4a6297633c0e6a..a752a88644f1a5 100644
--- a/files/fr/web/xslt/element/template/index.md
+++ b/files/fr/web/xslt/element/template/index.md
@@ -3,7 +3,7 @@ title: template
slug: Web/XSLT/Element/template
---
-{{ XsltRef() }}
+{{XsltSidebar}}{{ XsltRef() }}
L'élément `` définit un modèle produisant une sortie. Au moins l'un des atttributs match et set doit posséder une valeur.
diff --git a/files/fr/web/xslt/element/text/index.md b/files/fr/web/xslt/element/text/index.md
index 30d93edd445997..115bb4d9ceffbd 100644
--- a/files/fr/web/xslt/element/text/index.md
+++ b/files/fr/web/xslt/element/text/index.md
@@ -3,7 +3,7 @@ title: text
slug: Web/XSLT/Element/text
---
-{{ XsltRef() }}
+{{XsltSidebar}}{{ XsltRef() }}
L'élément `` écrit un texte littéral dans l'arbre de sortie. Il peut contenir des `#PCDATA`, du texte littéral, et des références aux entités.
diff --git a/files/fr/web/xslt/element/transform/index.md b/files/fr/web/xslt/element/transform/index.md
index 0e1238b68b868c..b90bc23e8fe354 100644
--- a/files/fr/web/xslt/element/transform/index.md
+++ b/files/fr/web/xslt/element/transform/index.md
@@ -3,7 +3,7 @@ title: transform
slug: Web/XSLT/Element/transform
---
-{{ XsltRef() }}
+{{XsltSidebar}}{{ XsltRef() }}
L'élément `` est l'équivalent exact de l'élément [``](/fr/XSLT/stylesheet).
diff --git a/files/fr/web/xslt/element/value-of/index.md b/files/fr/web/xslt/element/value-of/index.md
index 90cb5e1e6e2f91..93716d50c5d81e 100644
--- a/files/fr/web/xslt/element/value-of/index.md
+++ b/files/fr/web/xslt/element/value-of/index.md
@@ -3,7 +3,7 @@ title: value-of
slug: Web/XSLT/Element/value-of
---
-{{ XsltRef() }}
+{{XsltSidebar}}{{ XsltRef() }}
L'élément `` évalue une expression XPath, la convertit en chaîne et écrit cette chaîne dans l'arbre de sortie.
diff --git a/files/fr/web/xslt/element/variable/index.md b/files/fr/web/xslt/element/variable/index.md
index 5bf053a2c475cc..93dcf3eef8a8f8 100644
--- a/files/fr/web/xslt/element/variable/index.md
+++ b/files/fr/web/xslt/element/variable/index.md
@@ -3,7 +3,7 @@ title: variable
slug: Web/XSLT/Element/variable
---
-{{ XsltRef() }}
+{{XsltSidebar}}{{ XsltRef() }}
L'élément `` déclare une variable globale ou locale dans une feuille de style et lui attribue une valeur. Comme XSLT ne permet pas d'effet de bord, une fois que la valeur de la variable est établie, elle reste la même jusqu'à ce que la variable soit hors de portée.
diff --git a/files/fr/web/xslt/element/when/index.md b/files/fr/web/xslt/element/when/index.md
index 701c8de3d356f1..66da59a2251da0 100644
--- a/files/fr/web/xslt/element/when/index.md
+++ b/files/fr/web/xslt/element/when/index.md
@@ -3,7 +3,7 @@ title: when
slug: Web/XSLT/Element/when
---
-{{ XsltRef() }}
+{{XsltSidebar}}{{ XsltRef() }}
L'élément `` apparaît toujours dans un élément ``, et se comporte comme une structure conditionelle 'case'.
diff --git a/files/fr/web/xslt/element/with-param/index.md b/files/fr/web/xslt/element/with-param/index.md
index 68348a2c02ca8b..575de83db55209 100644
--- a/files/fr/web/xslt/element/with-param/index.md
+++ b/files/fr/web/xslt/element/with-param/index.md
@@ -3,7 +3,7 @@ title: with-param
slug: Web/XSLT/Element/with-param
---
-{{ XsltRef() }}
+{{XsltSidebar}}{{ XsltRef() }}
L'élément `` définit la valeur d'un paramètre à passer à un modèle.
diff --git a/files/fr/web/xslt/pi_parameters/index.md b/files/fr/web/xslt/pi_parameters/index.md
index 90b7bce28075de..f41c42be7acd2b 100644
--- a/files/fr/web/xslt/pi_parameters/index.md
+++ b/files/fr/web/xslt/pi_parameters/index.md
@@ -3,6 +3,8 @@ title: Paramètres des instructions de traitement
slug: Web/XSLT/PI_Parameters
---
+{{XsltSidebar}}
+
### Présentation
XSLT permet de passer des paramètres à une feuille de style lors de son exécution. C'était déjà possible depuis quelques temps dans l'[XSLTProcessor](/fr/XSLTProcessor) sous JavaScript, mais pas lors de l'utilisation de l'instruction de traitement (_PI_, pour Processing Instruction) ``.
diff --git a/files/fr/web/xslt/transforming_xml_with_xslt/an_overview/index.md b/files/fr/web/xslt/transforming_xml_with_xslt/an_overview/index.md
index bb2989566501f4..b59f5b067c6af0 100644
--- a/files/fr/web/xslt/transforming_xml_with_xslt/an_overview/index.md
+++ b/files/fr/web/xslt/transforming_xml_with_xslt/an_overview/index.md
@@ -3,6 +3,8 @@ title: Présentation
slug: Web/XSLT/Transforming_XML_with_XSLT/An_Overview
---
+{{XsltSidebar}}
+
[« Transformations XML avec XSLT](/fr/docs/Transformations_XML_avec_XSLT)
L'eXtensible Stylesheet Language/Transform est un langage très puissant, et une étude approfondie de celui-ci n'est pas l'objectif de ce document, mais une présentation succincte des concepts fondamentaux vous aidera à mieux appréhender la description des capacités de Netscape qui suit.
diff --git a/files/fr/web/xslt/transforming_xml_with_xslt/for_further_reading/index.md b/files/fr/web/xslt/transforming_xml_with_xslt/for_further_reading/index.md
index e09a4d02f0cd14..43d03d3400d9e3 100644
--- a/files/fr/web/xslt/transforming_xml_with_xslt/for_further_reading/index.md
+++ b/files/fr/web/xslt/transforming_xml_with_xslt/for_further_reading/index.md
@@ -5,6 +5,8 @@ l10n:
sourceCommit: e14e4830bcd43de164623aaf787fbd695be31d91
---
+{{XsltSidebar}}
+
[Transformations XML avec XSLT](/fr/docs/Web/XSLT/Transforming_XML_with_XSLT)
## Publications
diff --git a/files/fr/web/xslt/transforming_xml_with_xslt/index.md b/files/fr/web/xslt/transforming_xml_with_xslt/index.md
index ce7f3e704e3435..a17c479b4bb459 100644
--- a/files/fr/web/xslt/transforming_xml_with_xslt/index.md
+++ b/files/fr/web/xslt/transforming_xml_with_xslt/index.md
@@ -3,6 +3,8 @@ title: Transformations XML avec XSLT
slug: Web/XSLT/Transforming_XML_with_XSLT
---
+{{XsltSidebar}}
+
### [Présentation](/fr/Transformations_XML_avec_XSLT/Présentation)
La séparation du contenu et de la présentation est l'une des caractéristiques principale du [XML](/fr/XML). La structure d'un document XML est conçue pour refléter et clarifier les relations entre les différents aspects du contenu lui-même, sans l'obsurcir par la nécessité d'y intégrer des indications sur la présentation qui lui sera appliquée ensuite. Cette structure intelligente est particulièrement importante, car de plus en plus de transferts de données sont automatisés et se font entre des machines très hétérogènes reliées par un réseau.
diff --git a/files/fr/web/xslt/transforming_xml_with_xslt/the_netscape_xslt_xpath_reference/index.md b/files/fr/web/xslt/transforming_xml_with_xslt/the_netscape_xslt_xpath_reference/index.md
index 3440827030daa3..a9733197cc5f06 100644
--- a/files/fr/web/xslt/transforming_xml_with_xslt/the_netscape_xslt_xpath_reference/index.md
+++ b/files/fr/web/xslt/transforming_xml_with_xslt/the_netscape_xslt_xpath_reference/index.md
@@ -3,6 +3,8 @@ title: Transformations_XML_avec_XSLT/La_référence_XSLT//XPath_de_Netscape
slug: Web/XSLT/Transforming_XML_with_XSLT/The_Netscape_XSLT_XPath_Reference
---
+{{XsltSidebar}}
+
La liste ci-dessous, ordonnée alphabétiquement, présente les élémentes, les axes et les fonctions de la recommandation XSLT 1.0 du W3C, ainsi que les sections appropriées de la recommandation XPath. Le développement de XSLT est toujours en cours, et ce document sera mis à jours au fur et à mesure de l'extension des fonctionnalités.
### Éléments
diff --git a/files/ja/_redirects.txt b/files/ja/_redirects.txt
index f5ad272429b272..6c1d7474ef3cad 100644
--- a/files/ja/_redirects.txt
+++ b/files/ja/_redirects.txt
@@ -903,14 +903,14 @@
/ja/docs/DOM/window.alert /ja/docs/Web/API/Window/alert
/ja/docs/DOM/window.alert-redirect-1 /ja/docs/Web/API/Window/alert
/ja/docs/DOM/window.arguments /ja/docs/Web/API/Window
-/ja/docs/DOM/window.atob /ja/docs/Web/API/atob
-/ja/docs/DOM/window.atob-redirect-1 /ja/docs/Web/API/atob
+/ja/docs/DOM/window.atob /ja/docs/Web/API/Window/atob
+/ja/docs/DOM/window.atob-redirect-1 /ja/docs/Web/API/Window/atob
/ja/docs/DOM/window.back /ja/docs/Web/API/Window/back
/ja/docs/DOM/window.back-redirect-1 /ja/docs/Web/API/Window/back
/ja/docs/DOM/window.blur /ja/docs/Web/API/Window/blur
/ja/docs/DOM/window.blur-redirect-1 /ja/docs/Web/API/Window/blur
-/ja/docs/DOM/window.btoa /ja/docs/Web/API/btoa
-/ja/docs/DOM/window.btoa-redirect-1 /ja/docs/Web/API/btoa
+/ja/docs/DOM/window.btoa /ja/docs/Web/API/Window/btoa
+/ja/docs/DOM/window.btoa-redirect-1 /ja/docs/Web/API/Window/btoa
/ja/docs/DOM/window.cancelAnimationFrame /ja/docs/Web/API/Window/cancelAnimationFrame
/ja/docs/DOM/window.captureEvents /ja/docs/Web/API/Window/captureEvents
/ja/docs/DOM/window.clearInterval /ja/docs/Web/API/clearInterval
@@ -1129,10 +1129,10 @@
/ja/docs/DOM:selection /ja/docs/Web/API/Selection
/ja/docs/DOM:window /ja/docs/Web/API/Window
/ja/docs/DOM:window.alert /ja/docs/Web/API/Window/alert
-/ja/docs/DOM:window.atob /ja/docs/Web/API/atob
+/ja/docs/DOM:window.atob /ja/docs/Web/API/Window/atob
/ja/docs/DOM:window.back /ja/docs/Web/API/Window/back
/ja/docs/DOM:window.blur /ja/docs/Web/API/Window/blur
-/ja/docs/DOM:window.btoa /ja/docs/Web/API/btoa
+/ja/docs/DOM:window.btoa /ja/docs/Web/API/Window/btoa
/ja/docs/DOM:window.captureEvents /ja/docs/Web/API/Window/captureEvents
/ja/docs/DOM:window.clearInterval /ja/docs/Web/API/clearInterval
/ja/docs/DOM:window.clearTimeout /ja/docs/Web/API/clearTimeout
@@ -1338,12 +1338,14 @@
/ja/docs/Glossary/First_interactive /ja/docs/Glossary/First_CPU_idle
/ja/docs/Glossary/Global_attribute /ja/docs/Web/HTML/Global_attributes
/ja/docs/Glossary/Grid_Rows /ja/docs/Glossary/Grid_Row
+/ja/docs/Glossary/Guard /ja/docs/Web/API/Fetch_API/Using_Fetch
/ja/docs/Glossary/Header /ja/docs/Glossary/HTTP_header
/ja/docs/Glossary/I18N /ja/docs/Glossary/Internationalization
/ja/docs/Glossary/Index /ja/docs/Glossary
/ja/docs/Glossary/Internationalization_and_localization /ja/docs/Glossary/Internationalization
/ja/docs/Glossary/POP3 /ja/docs/Glossary/POP
/ja/docs/Glossary/Reference /ja/docs/Glossary/Object_reference
+/ja/docs/Glossary/Rendering_engine /ja/docs/Glossary/Engine/Rendering
/ja/docs/Glossary/Round_Trip_Time_(RTT) /ja/docs/Glossary/Round_Trip_Time
/ja/docs/Glossary/SSL_Glossary /ja/docs/Glossary/SSL
/ja/docs/Glossary/Scrollport /ja/docs/Glossary/Scroll_container
@@ -1557,7 +1559,7 @@
/ja/docs/HTTP/X-Frame-Options /ja/docs/Web/HTTP/Headers/X-Frame-Options
/ja/docs/HTTP_Pipelining_FAQ /ja/docs/Web/HTTP/Connection_management_in_HTTP_1.x
/ja/docs/HTTP_access_control /ja/docs/Web/HTTP/CORS
-/ja/docs/How_to_create_a_DOM_tree /ja/docs/Web/API/Document_Object_Model/How_to_create_a_DOM_tree
+/ja/docs/How_to_create_a_DOM_tree /ja/docs/Web/API/Document_Object_Model/Using_the_Document_Object_Model
/ja/docs/IndexedDB /ja/docs/Web/API/IndexedDB_API
/ja/docs/Installing_Extensions_and_Themes_From_Web_Pages /ja/docs/orphaned/Installing_Extensions_and_Themes_From_Web_Pages
/ja/docs/Introducing_Content_Security_Policy /ja/docs/Web/HTTP/CSP
@@ -2374,7 +2376,6 @@
/ja/docs/Security/CSP_(Content_Security_Policy) /ja/docs/Web/HTTP/CSP
/ja/docs/Security/HTTP_Strict_Transport_Security /ja/docs/Web/HTTP/Headers/Strict-Transport-Security
/ja/docs/Security/混在コンテンツ /ja/docs/Web/Security/Mixed_content
-/ja/docs/Security/混在コンテンツ/How_to_fix_website_with_mixed_content /ja/docs/Web/Security/Mixed_content/How_to_fix_website_with_mixed_content
/ja/docs/Server-sent_events /ja/docs/Web/API/Server-sent_events
/ja/docs/Server-sent_events/Using_server-sent_events /ja/docs/Web/API/Server-sent_events/Using_server-sent_events
/ja/docs/Setting_up_extension_development_environment /ja/docs/orphaned/Setting_up_extension_development_environment
@@ -2665,7 +2666,7 @@
/ja/docs/Web/API/DOMRect/fromRect /ja/docs/Web/API/DOMRect/fromRect_static
/ja/docs/Web/API/DOMRectReadOnly/fromRect /ja/docs/Web/API/DOMRectReadOnly/fromRect_static
/ja/docs/Web/API/DOMString /ja/docs/Glossary/String
-/ja/docs/Web/API/DOMString/Binary /ja/docs/Web/API/btoa
+/ja/docs/Web/API/DOMString/Binary /ja/docs/Web/API/Window/btoa
/ja/docs/Web/API/DOMTimeStamp /ja/docs/Glossary/Unix_time
/ja/docs/Web/API/DeviceAcceleration /ja/docs/Web/API/DeviceMotionEventAcceleration
/ja/docs/Web/API/Document.domConfig /ja/docs/Web/API/Document
@@ -2727,6 +2728,7 @@
/ja/docs/Web/API/DocumentOrShadowRoot/pointerLockElement /ja/docs/Web/API/Document/pointerLockElement
/ja/docs/Web/API/DocumentOrShadowRoot/styleSheets /ja/docs/Web/API/Document/styleSheets
/ja/docs/Web/API/Document_Object_Model/Events /ja/docs/orphaned/Web/API/Document_Object_Model/Events
+/ja/docs/Web/API/Document_Object_Model/How_to_create_a_DOM_tree /ja/docs/Web/API/Document_Object_Model/Using_the_Document_Object_Model
/ja/docs/Web/API/Document_Object_Model/Preface /ja/docs/Web/API/Document_Object_Model
/ja/docs/Web/API/Document_Object_Model/Using_the_W3C_DOM_Level_1_Core /ja/docs/Web/API/Document_Object_Model/Using_the_Document_Object_Model
/ja/docs/Web/API/Element.contentEditable /ja/docs/Web/API/HTMLElement/contentEditable
@@ -2757,6 +2759,7 @@
/ja/docs/Web/API/EventTarget.removeEventListener /ja/docs/Web/API/EventTarget/removeEventListener
/ja/docs/Web/API/EventTarget/attachEvent /ja/docs/Web/API/EventTarget/addEventListener
/ja/docs/Web/API/FetchEvent_clone /ja/docs/Web/API/FetchEvent
+/ja/docs/Web/API/Fetch_API/Basic_concepts /ja/docs/Web/API/Fetch_API/Using_Fetch
/ja/docs/Web/API/File.name /ja/docs/Web/API/File/name
/ja/docs/Web/API/File.size /ja/docs/Web/API/Blob/size
/ja/docs/Web/API/File.type /ja/docs/Web/API/Blob/type
@@ -3191,8 +3194,8 @@
/ja/docs/Web/API/Window/vrdisplaypointerunrestricted_event /ja/docs/Web/API/Window
/ja/docs/Web/API/WindowBase64 /ja/docs/Glossary/Base64
/ja/docs/Web/API/WindowBase64/Base64_encoding_and_decoding /ja/docs/Glossary/Base64
-/ja/docs/Web/API/WindowBase64/atob /ja/docs/Web/API/atob
-/ja/docs/Web/API/WindowBase64/btoa /ja/docs/Web/API/btoa
+/ja/docs/Web/API/WindowBase64/atob /ja/docs/Web/API/Window/atob
+/ja/docs/Web/API/WindowBase64/btoa /ja/docs/Web/API/Window/btoa
/ja/docs/Web/API/WindowEventHandlers/onafterprint /ja/docs/Web/API/Window/afterprint_event
/ja/docs/Web/API/WindowEventHandlers/onbeforeprint /ja/docs/Web/API/Window/beforeprint_event
/ja/docs/Web/API/WindowEventHandlers/onbeforeunload /ja/docs/Web/API/Window/beforeunload_event
@@ -3205,8 +3208,8 @@
/ja/docs/Web/API/WindowEventHandlers/onstorage /ja/docs/Web/API/Window/storage_event
/ja/docs/Web/API/WindowEventHandlers/onunhandledrejection /ja/docs/Web/API/Window/unhandledrejection_event
/ja/docs/Web/API/WindowEventHandlers/onunload /ja/docs/Web/API/Window/unload_event
-/ja/docs/Web/API/WindowOrWorkerGlobalScope/atob /ja/docs/Web/API/atob
-/ja/docs/Web/API/WindowOrWorkerGlobalScope/btoa /ja/docs/Web/API/btoa
+/ja/docs/Web/API/WindowOrWorkerGlobalScope/atob /ja/docs/Web/API/Window/atob
+/ja/docs/Web/API/WindowOrWorkerGlobalScope/btoa /ja/docs/Web/API/Window/btoa
/ja/docs/Web/API/WindowOrWorkerGlobalScope/caches /ja/docs/Web/API/Window/caches
/ja/docs/Web/API/WindowOrWorkerGlobalScope/clearInterval /ja/docs/Web/API/clearInterval
/ja/docs/Web/API/WindowOrWorkerGlobalScope/clearTimeout /ja/docs/Web/API/clearTimeout
@@ -3224,7 +3227,6 @@
/ja/docs/Web/API/WindowTimers/setTimeout /ja/docs/Web/API/setTimeout
/ja/docs/Web/API/Worker/onerror /ja/docs/Web/API/Worker/error_event
/ja/docs/Web/API/Worker/onmessageerror /ja/docs/Web/API/Worker/messageerror_event
-/ja/docs/Web/API/WorkerGlobalScope/caches /ja/docs/Web/API/Window/caches
/ja/docs/Web/API/WorkerGlobalScope/console /ja/docs/conflicting/Web/API/console
/ja/docs/Web/API/XMLDocument/async /ja/docs/Web/API/XMLDocument
/ja/docs/Web/API/XMLHttpRequest/HTML_in_XMLHttpRequest /ja/docs/Web/API/XMLHttpRequest_API/HTML_in_XMLHttpRequest
@@ -3245,6 +3247,8 @@
/ja/docs/Web/API/XRTargetRayMode /ja/docs/Web/API/XRInputSource/targetRayMode
/ja/docs/Web/API/XSLTProcessor/Browser_Differences /ja/docs/orphaned/Web/API/XSLTProcessor/Browser_Differences
/ja/docs/Web/API/XSLTProcessor/Resources /ja/docs/Web/API/XSLTProcessor
+/ja/docs/Web/API/atob /ja/docs/Web/API/Window/atob
+/ja/docs/Web/API/btoa /ja/docs/Web/API/Window/btoa
/ja/docs/Web/API/caches /ja/docs/Web/API/Window/caches
/ja/docs/Web/API/console.dir /ja/docs/Web/API/console/dir_static
/ja/docs/Web/API/console.log /ja/docs/Web/API/console/log_static
@@ -3373,10 +3377,10 @@
/ja/docs/Web/API/window.URL.revokeObjectURL /ja/docs/Web/API/URL/revokeObjectURL_static
/ja/docs/Web/API/window.alert /ja/docs/Web/API/Window/alert
/ja/docs/Web/API/window.arguments /ja/docs/Web/API/Window
-/ja/docs/Web/API/window.atob /ja/docs/Web/API/atob
+/ja/docs/Web/API/window.atob /ja/docs/Web/API/Window/atob
/ja/docs/Web/API/window.back /ja/docs/Web/API/Window/back
/ja/docs/Web/API/window.blur /ja/docs/Web/API/Window/blur
-/ja/docs/Web/API/window.btoa /ja/docs/Web/API/btoa
+/ja/docs/Web/API/window.btoa /ja/docs/Web/API/Window/btoa
/ja/docs/Web/API/window.cancelAnimationFrame /ja/docs/Web/API/Window/cancelAnimationFrame
/ja/docs/Web/API/window.captureEvents /ja/docs/Web/API/Window/captureEvents
/ja/docs/Web/API/window.clearInterval /ja/docs/Web/API/clearInterval
@@ -3713,6 +3717,7 @@
/ja/docs/Web/CSS/Using_media_queries_from_code /ja/docs/Web/CSS/CSS_media_queries/Testing_media_queries
/ja/docs/Web/CSS/Using_multi-column_layouts /ja/docs/Web/CSS/CSS_multicol_layout/Using_multicol_layouts
/ja/docs/Web/CSS/Using_multiple_backgrounds /ja/docs/Web/CSS/CSS_backgrounds_and_borders/Using_multiple_backgrounds
+/ja/docs/Web/CSS/align-tracks /ja/docs/Web/CSS/CSS_grid_layout/Masonry_layout
/ja/docs/Web/CSS/attr() /ja/docs/Web/CSS/attr
/ja/docs/Web/CSS/aural /ja/docs/Web/CSS/@media/aural
/ja/docs/Web/CSS/auto /ja/docs/Web/CSS/width
@@ -3724,6 +3729,7 @@
/ja/docs/Web/CSS/border-top-left-radius_|_-moz-border-radius-topleft /ja/docs/Web/CSS/border-top-left-radius
/ja/docs/Web/CSS/box_model /ja/docs/Web/CSS/CSS_box_model/Introduction_to_the_CSS_box_model
/ja/docs/Web/CSS/calc() /ja/docs/Web/CSS/calc
+/ja/docs/Web/CSS/calc-constant /ja/docs/Web/CSS/calc-keyword
/ja/docs/Web/CSS/clamp() /ja/docs/Web/CSS/clamp
/ja/docs/Web/CSS/color-adjust /ja/docs/conflicting/Web/CSS/print-color-adjust
/ja/docs/Web/CSS/color_value/hexadecimal_rgb /ja/docs/orphaned/Web/CSS/color_value/hexadecimal_rgb
@@ -3763,6 +3769,7 @@
/ja/docs/Web/CSS/image/image() /ja/docs/Web/CSS/image/image
/ja/docs/Web/CSS/image/image-set() /ja/docs/Web/CSS/image/image-set
/ja/docs/Web/CSS/image/paint() /ja/docs/Web/CSS/image/paint
+/ja/docs/Web/CSS/justify-tracks /ja/docs/Web/CSS/CSS_grid_layout/Masonry_layout
/ja/docs/Web/CSS/linear-gradient /ja/docs/Web/CSS/gradient/linear-gradient
/ja/docs/Web/CSS/linear-gradient() /ja/docs/Web/CSS/gradient/linear-gradient
/ja/docs/Web/CSS/margin-new /ja/docs/Web/CSS/margin
@@ -4575,6 +4582,8 @@
/ja/docs/Web/Security/HTTP_Strict_Transport_Security /ja/docs/Web/HTTP/Headers/Strict-Transport-Security
/ja/docs/Web/Security/Information_Security_Basics /ja/docs/orphaned/Web/Security/Information_Security_Basics
/ja/docs/Web/Security/Public_Key_Pinning /ja/docs/conflicting/Web/Security/Certificate_Transparency
+/ja/docs/Web/Security/Securing_your_site /ja/docs/Web/Security/Practical_implementation_guides
+/ja/docs/Web/Security/Securing_your_site/Turning_off_form_autocompletion /ja/docs/Web/Security/Practical_implementation_guides/Turning_off_form_autocompletion
/ja/docs/Web/WebGL /ja/docs/Web/API/WebGL_API
/ja/docs/Web/WebGL/Adding_2D_content_to_a_WebGL_context /ja/docs/Web/API/WebGL_API/Tutorial/Adding_2D_content_to_a_WebGL_context
/ja/docs/Web/WebGL/Animating_objects_with_WebGL /ja/docs/Web/API/WebGL_API/Tutorial/Animating_objects_with_WebGL
diff --git a/files/ja/_wikihistory.json b/files/ja/_wikihistory.json
index 8f5d181ce5e93c..897ebc8fd53d1a 100644
--- a/files/ja/_wikihistory.json
+++ b/files/ja/_wikihistory.json
@@ -702,6 +702,10 @@
"modified": "2019-03-23T22:38:34.635Z",
"contributors": ["mfuji09", "kubota-aoi"]
},
+ "Glossary/Engine/Rendering": {
+ "modified": "2020-09-28T13:40:38.634Z",
+ "contributors": ["mfuji09", "Uemmra3"]
+ },
"Glossary/Entity": {
"modified": "2020-08-26T12:57:35.570Z",
"contributors": ["mfuji09", "Uemmra3", "dskmori", "asuktakahashi"]
@@ -898,10 +902,6 @@
"modified": "2020-03-26T14:31:20.417Z",
"contributors": ["mfuji09", "dynamis"]
},
- "Glossary/Guard": {
- "modified": "2020-01-10T08:49:48.628Z",
- "contributors": ["Wind1808"]
- },
"Glossary/Gutters": {
"modified": "2019-03-18T20:48:45.475Z",
"contributors": ["shuuji3", "applejam9029", "mfuji09", "dynamis"]
@@ -1593,10 +1593,6 @@
"modified": "2020-05-04T13:19:46.805Z",
"contributors": ["Uemmra3", "segayuu"]
},
- "Glossary/Rendering_engine": {
- "modified": "2020-09-28T13:40:38.634Z",
- "contributors": ["mfuji09", "Uemmra3"]
- },
"Glossary/Repo": {
"modified": "2019-03-18T21:21:56.601Z",
"contributors": ["Uemmra3", "takaneichinose"]
@@ -7472,17 +7468,6 @@
"Mgjbot"
]
},
- "Web/API/Document_Object_Model/How_to_create_a_DOM_tree": {
- "modified": "2019-03-24T00:07:13.065Z",
- "contributors": [
- "mfuji09",
- "silverskyvicto",
- "kmaglione",
- "ethertank",
- "Mgjbot",
- "electrolysis"
- ]
- },
"Web/API/Document_Object_Model/Introduction": {
"modified": "2020-08-09T14:35:31.436Z",
"contributors": [
@@ -8449,17 +8434,6 @@
"chikoski"
]
},
- "Web/API/Fetch_API/Basic_concepts": {
- "modified": "2020-10-01T22:06:38.159Z",
- "contributors": [
- "mpcjazz",
- "Uemmra3",
- "dskmori",
- "hamasaki",
- "chikoski",
- "YuichiNukiyama"
- ]
- },
"Web/API/Fetch_API/Cross-global_fetch_usage": {
"modified": "2020-01-07T17:57:37.167Z",
"contributors": ["Wind1808"]
@@ -13872,6 +13846,10 @@
"modified": "2020-10-15T21:49:27.051Z",
"contributors": ["mfuji09", "wbamberg", "fscholz", "YuichiNukiyama"]
},
+ "Web/API/Window/atob": {
+ "modified": "2020-10-15T21:16:19.721Z",
+ "contributors": ["mfuji09", "fscholz", "khalid32", "ethertank", "Potappo"]
+ },
"Web/API/Window/back": {
"modified": "2019-03-23T23:50:55.327Z",
"contributors": ["yyss", "fscholz", "khalid32", "ethertank", "Potappo"]
@@ -13899,6 +13877,17 @@
"modified": "2020-10-15T21:36:49.995Z",
"contributors": ["Marsf", "mfuji09", "Uemmra3", "Kenju"]
},
+ "Web/API/Window/btoa": {
+ "modified": "2020-10-15T21:16:19.842Z",
+ "contributors": [
+ "mfuji09",
+ "SphinxKnight",
+ "fscholz",
+ "khalid32",
+ "ethertank",
+ "Potappo"
+ ]
+ },
"Web/API/Window/caches": {
"modified": "2020-10-15T21:49:48.643Z",
"contributors": ["Wind1808", "unarist", "YuichiNukiyama"]
@@ -15063,21 +15052,6 @@
"modified": "2020-04-13T14:03:23.203Z",
"contributors": ["mfuji09", "Marsf"]
},
- "Web/API/atob": {
- "modified": "2020-10-15T21:16:19.721Z",
- "contributors": ["mfuji09", "fscholz", "khalid32", "ethertank", "Potappo"]
- },
- "Web/API/btoa": {
- "modified": "2020-10-15T21:16:19.842Z",
- "contributors": [
- "mfuji09",
- "SphinxKnight",
- "fscholz",
- "khalid32",
- "ethertank",
- "Potappo"
- ]
- },
"Web/API/clearInterval": {
"modified": "2019-03-23T23:49:51.484Z",
"contributors": [
@@ -21651,10 +21625,6 @@
"modified": "2020-10-15T22:28:37.603Z",
"contributors": ["mfuji09", "tamura4278"]
},
- "Web/HTTP/Headers/Accept-CH-Lifetime": {
- "modified": "2020-10-15T22:28:41.631Z",
- "contributors": ["mfuji09", "Wind1808"]
- },
"Web/HTTP/Headers/Accept-Charset": {
"modified": "2020-10-15T22:09:31.974Z",
"contributors": ["mfuji09", "silverskyvicto"]
@@ -29516,9 +29486,13 @@
"modified": "2020-08-31T12:56:43.359Z",
"contributors": ["mfuji09", "YuichiNukiyama", "hashedhyphen", "clariroid"]
},
- "Web/Security/Mixed_content/How_to_fix_website_with_mixed_content": {
- "modified": "2020-09-26T07:03:01.189Z",
- "contributors": ["mfuji09", "hashedhyphen", "tomg25"]
+ "Web/Security/Practical_implementation_guides": {
+ "modified": "2020-07-25T12:16:18.770Z",
+ "contributors": ["pcw", "mfuji09", "satakeh", "hashedhyphen"]
+ },
+ "Web/Security/Practical_implementation_guides/Turning_off_form_autocompletion": {
+ "modified": "2020-07-25T12:03:22.245Z",
+ "contributors": ["pcw", "mfuji09", "hashedhyphen"]
},
"Web/Security/Referer_header:_privacy_and_security_concerns": {
"modified": "2020-10-24T06:28:29.243Z",
@@ -29553,14 +29527,6 @@
"modified": "2020-10-23T09:50:39.875Z",
"contributors": ["silverskyvicto", "mfuji09", "YuichiNukiyama"]
},
- "Web/Security/Securing_your_site": {
- "modified": "2020-07-25T12:16:18.770Z",
- "contributors": ["pcw", "mfuji09", "satakeh", "hashedhyphen"]
- },
- "Web/Security/Securing_your_site/Turning_off_form_autocompletion": {
- "modified": "2020-07-25T12:03:22.245Z",
- "contributors": ["pcw", "mfuji09", "hashedhyphen"]
- },
"Web/Security/Subdomain_takeovers": {
"modified": "2020-10-23T16:21:24.230Z",
"contributors": ["silverskyvicto"]
diff --git a/files/ja/games/techniques/control_mechanisms/index.md b/files/ja/games/techniques/control_mechanisms/index.md
index da5b88a8472d2b..876bc6f1fa5715 100644
--- a/files/ja/games/techniques/control_mechanisms/index.md
+++ b/files/ja/games/techniques/control_mechanisms/index.md
@@ -37,7 +37,7 @@ create() {
}
```
-ゲーム開始時に一度だけ作成され、クリックされるとそれに割り当てられた `this.clickEnclave()` アクションを実行しますが、 `update()` 関数でマウスのポインタの値を使用してアクションを作成することもできます。
+ゲーム開始時に一度だけ作成され、クリックされるとそれに割り当てられた `this.clickEnclave()` アクションを実行しますが、 `update()` 関数でマウスのポインターの値を使用してアクションを作成することもできます。
```js
update() {
diff --git a/files/ja/games/tutorials/2d_breakout_game_pure_javascript/mouse_controls/index.md b/files/ja/games/tutorials/2d_breakout_game_pure_javascript/mouse_controls/index.md
index 3fbd4217d250f3..29a1700bc47620 100644
--- a/files/ja/games/tutorials/2d_breakout_game_pure_javascript/mouse_controls/index.md
+++ b/files/ja/games/tutorials/2d_breakout_game_pure_javascript/mouse_controls/index.md
@@ -32,7 +32,7 @@ function mouseMoveHandler(e) {
}
```
-この値は、ビューポート内のマウスの水平位置 (`e.clientX`) からキャンバスの左端とビューポートの左端間の距離 (`canvas.offsetLeft`) を引いたもので、実質的にこれはキャンバス左端からマウスポインターまでの距離と等しくなっています。ポインタの相対 X 位置が 0 より大きく、キャンバスの幅よりも小さい場合、ポインタはキャンバスの境界内にあり、`paddleX` 位置(パドルの左端に固定)は `relativeX` 値からパドルの幅の半分を引いた値に設定され、実際の移動はパドルの中央に対して相対的に行われることになります。
+この値は、ビューポート内のマウスの水平位置 (`e.clientX`) からキャンバスの左端とビューポートの左端間の距離 (`canvas.offsetLeft`) を引いたもので、実質的にこれはキャンバス左端からマウスポインターまでの距離と等しくなっています。ポインターの相対 X 位置が 0 より大きく、キャンバスの幅よりも小さい場合、ポインターはキャンバスの境界内にあり、`paddleX` 位置(パドルの左端に固定)は `relativeX` 値からパドルの幅の半分を引いた値に設定され、実際の移動はパドルの中央に対して相対的に行われることになります。
パドルはマウスカーソルの位置を追うようになりますが、動きをキャンバスの大きさに制限しているため、両端で消え失せてしまうようなことはありません。
diff --git a/files/ja/glossary/base64/index.md b/files/ja/glossary/base64/index.md
index feab77654f76bd..078f0e04638d20 100644
--- a/files/ja/glossary/base64/index.md
+++ b/files/ja/glossary/base64/index.md
@@ -2,331 +2,100 @@
title: Base64
slug: Glossary/Base64
l10n:
- sourceCommit: 04e75ce1f83a591a576f52b143f195133bfcbe96
+ sourceCommit: 3b8be0ad781b128b70ef0d208de84932755eb4d0
---
{{GlossarySidebar}}
-**Base64** とは、[バイナリーからテキストへの符号化](https://en.wikipedia.org/wiki/Binary-to-text_encoding)を行う手法のグループであり、バイナリーデータを 64 を基数とする表現に変換することで、 ASCII 文字列で表すことができます。_Base64_ という呼び方は、 [MIME の Content-Transfer-Encoding](https://ja.wikipedia.org/wiki/MIME#Content-Transfer-Encoding) における特定の符号化方式の名前に由来します。
+**Base64** とは、[バイナリーからテキストへの符号化](https://en.wikipedia.org/wiki/Binary-to-text_encoding)を行う手法のグループであり、バイナリーデータを 64 を基数とする表現に変換することで、{{glossary("ASCII")}} 文字列で表すことができます。_Base64_ という用語は、 [MIME の Content-Transfer-Encoding](https://ja.wikipedia.org/wiki/MIME#Content-Transfer-Encoding) における特定の符号化方式の名前に由来します。
-Base64 符号化方式がよく使われるのは、テキストデータを扱うよう設計されたメディア上で、バイナリーデータを格納または転送する必要がある場合です。Base64 符号化により、転送中に変換されることなく、バイナリーデータがそのままであることを保証できます。Base64 は、[MIME](https://ja.wikipedia.org/wiki/MIME) による電子メールや [XML](/ja/docs/Web/XML) における複合型データの格納など、多くのアプリケーションで幅広く使われています。
+"Base64" という用語が自分自身で具体的な{{glossary("algorithm", "アルゴリズム")}}を参照するために使用される場合、それは一般的に [RFC 4648](https://datatracker.ietf.org/doc/html/rfc4648) の第 4 章で概説された Base64 のバージョンを参照します。これは、64 進数を表すための以下のアルファベットと、同時にパディング文字として `=` を使用します。
-ウェブにおける Base64 符号化のよくある用途の一つが、バイナリーデータを符号化することで [data: URL](/ja/docs/Web/HTTP/Basics_of_HTTP/Data_URLs) に入れられるようにすることです。
-
-JavaScript には、Base64 文字列のエンコードとデコードのそれぞれに対応した、次の 2 つの関数があります。
+```plain
+ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/
+```
-- [`btoa()`](/ja/docs/Web/API/btoa): バイナリーデータの「文字列」から Base64 で符号化された ASCII 文字列を生成します ("btoa" は "binary to ASCII" と読んでください)。
-- [`atob()`](/ja/docs/Web/API/atob): Base64 で符号化された文字列をデコードします ("atob" は "ASCII to binary" と読んでください)。
+よくある変化形は "Base64 URL safe" で、{{glossary("URL")}} のパス部分やクエリー引数で問題が発生する可能性のある文字を避けるために、パディングを除外して `+/` を `-_` に置き換えます。パス部分またはクエリー引数にデータを格納しない場合は、このエンコード方式は必要ありません。例えば、[データ URL](/ja/docs/Web/HTTP/Basics_of_HTTP/Data_URLs) にはどちらもないので、標準の Base64 エンコードを使用することができます。
-`atob()` と `btoa()` のアルゴリズムは、 [RFC 4648](https://datatracker.ietf.org/doc/html/rfc4648) section 4 で定義されています。
+Base64 エンコード方式は、ASCII テキスト(または任意のバイナリーデータを受け入れるにはまだ不十分な ASCII のスーパーセット)しか扱えないメディア上で保存や送信を行う際に、バイナリーデータをエンコードするために一般的に使用されます。これにより、転送中にデータが変更されることなく、そのままの状態を確実に保持します。Base64 の一般的な用途としては、以下のものがあります。
-なお、 `btoa()` はバイナリーデータを受け取ることを期待しているため、与えられた文字列に UTF-16 表現の 2 バイト以上を占める文字が含まれていると例外が発生します。詳しくは、 [`btoa()`](/ja/docs/Web/API/btoa) のドキュメントを参照してください。
+- [MIME](https://ja.wikipedia.org/wiki/MIME) による電子メールの場合
+- [XML](/ja/docs/Web/XML) に複雑なデータを格納する場合
+- バイナリーデータをエンコードして [`data:` URL](/ja/docs/Web/HTTP/Basics_of_HTTP/Data_URLs) に含めることができるようにする場合
-#### 符号化によるサイズの増加
+## 符号化によるサイズの増加
Base64 の 1 文字はデータのちょうど 6 ビット分を表します。そのため、入力される文字列やバイナリーファイルに含まれる 3 バイト(3×8 ビット = 24 ビット)は、4 桁の Base64 で表されます(4×6 = 24 ビット)。
-このことにより、Base64 で表された文字列またはファイルは、元のサイズの 133% の大きさになると言えます(33% の増加)。エンコードされるデータが小さい場合は、さらに増加幅が大きくなります。例えば、`length === 1` である文字列 `"a"` は、エンコードされて `length === 4` の文字列 `"YQ=="` になり、これは 300% の増加です。
-
-## 「Unicode 問題」
-
-JavaScript の文字列は 16 ビットでエンコードされているので、ほとんどのブラウザーでは、 Unicode 文字列に対して `window.btoa` を呼び出すと、文字が 8 ビット ASCII エンコード文字の範囲を超えた場合に `Character Out Of Range` という例外が発生します。この問題を解決するために、 2 つの使用可能な方法があります。
-
-- 最初の方法は、文字列全体をエスケープしてからエンコードする方法です。
-- もう 1 つは、 UTF-16 文字列を UTF-8 文字の配列に変換してからエンコードする方法です。
+つまり、文字列やファイルを Base64 にすると、通常、その文字列のソースよりもおよそ 3 分の 1 大きくなります(正確なサイズの増加は、文字列の絶対長、その長さのモジュロ 3、パディング文字を使用しているかどうかなど、さまざまな要因に依存します)。
-以下に、使用可能な2つの方法を示します。
+## JavaScript の対応
-### 解決策その 1 - 文字列をエンコードする前にエスケープする
+ブラウザーは、Base64 文字列をデコードしたりエンコードしたりするための 2 つの JavaScript の関数をネイティブで提供しています。
-```js
-function utf8_to_b64(str) {
- return window.btoa(unescape(encodeURIComponent(str)));
-}
+- {{domxref("Window.btoa()")}}({{domxref("WorkerGlobalScope.btoa()", "ワーカーでも利用可能", "", "nocode")}}): バイナリーデータの文字列から Base64 エンコード方式の ASCII 文字列を作成します("btoa" は "binary to ASCII" と読んでください)。
+- {{domxref("Window.atob()")}}({{domxref("WorkerGlobalScope.atob()", "ワーカーでも利用可能", "", "nocode")}}): Base64 エンコード方式の文字列をデコードします("atob" は "ASCII to binary" と読んでください)。
-function b64_to_utf8(str) {
- return decodeURIComponent(escape(window.atob(str)));
-}
+> **メモ:** Base64 はテキストエンコードではなくバイナリーエンコード方式ですが、`btoa` と `atob` はウェブプラットフォームがバイナリーデータ型に対応する前に追加されました。その結果、2 つの関数は文字列を使用してバイナリーデータを表しており、各文字の{{glossary("code point", "コードポイント")}}が各バイトの値を表します。このため、`btoa` は任意のテキストデータをエンコードするために使用することができます。例えば、テキストや HTML 文書の Base64 `data:` URL を作成する場合などです。
+>
+> しかし、バイトとコードポイントの対応が確実に成り立つのは `0x7f` までのコードポイントだけです。さらに、`0xff` を超えるコードポイントは、1 バイトの最大値を超えるために `btoa` でエラーが発生します。次の節では、任意の Unicode テキストをエンコードするときに、この制限を回避するためにどのように作業するかについて詳しく説明します。
-// Usage:
-utf8_to_b64("✓ à la mode"); // "4pyTIMOgIGxhIG1vZGU="
-b64_to_utf8("4pyTIMOgIGxhIG1vZGU="); // "✓ à la mode"
-```
+## 「Unicode 問題」
-この解決策は [Johan Sundström](https://ecmanaut.blogspot.com/2006/07/encoding-decoding-utf8-in-javascript.html) によって提案されたものです。
+`btoa` は入力文字列のコードポイントをバイト値として解釈するため、文字列に対して `btoa` を呼び出すと、文字のコードポイントが `0xff` を超えた場合に "Character Out Of Range" 例外が発生します。任意の Unicode テキストをエンコードする必要がある使用する用途では、まず文字列を {{glossary("UTF-8")}} で構成されるバイト列に変換し、それからバイト列をエンコードする必要があります。
-もう一つの使用可能な解決策は、今では非推奨となっている 'unescape' と 'escape' 関数を使用しないものです。
-しかし、この方法では、入力文字列の base64 エンコーディングは行われません。
-`utf8_to_b64` と `b64EncodeUnicode` の出力の違いに注意してください。
-この代替手段を採用すると、他のアプリケーションとの相互運用性の問題が発生する可能性があります。
+最も単純な解決策は、 `TextEncoder` と `TextDecoder` を使用して文字列の UTF-8 と単一のバイト表現を変換することです。
```js
-function b64EncodeUnicode(str) {
- return btoa(encodeURIComponent(str));
+function base64ToBytes(base64) {
+ const binString = atob(base64);
+ return Uint8Array.from(binString, (m) => m.codePointAt(0));
}
-function UnicodeDecodeB64(str) {
- return decodeURIComponent(atob(str));
+function bytesToBase64(bytes) {
+ const binString = Array.from(bytes, (byte) =>
+ String.fromCodePoint(byte),
+ ).join("");
+ return btoa(binString);
}
-b64EncodeUnicode("✓ à la mode"); // "JUUyJTlDJTkzJTIwJUMzJUEwJTIwbGElMjBtb2Rl"
-UnicodeDecodeB64("JUUyJTlDJTkzJTIwJUMzJUEwJTIwbGElMjBtb2Rl"); // "✓ à la mode"
+// 使用方法
+bytesToBase64(new TextEncoder().encode("a Ā 𐀀 文 🦄")); // "YSDEgCDwkICAIOaWhyDwn6aE"
+new TextDecoder().decode(base64ToBytes("YSDEgCDwkICAIOaWhyDwn6aE")); // "a Ā 𐀀 文 🦄"
```
-### 解決策その 2 - `atob()` と `btoa()` を `TypedArray` と UTF-8 を使用して書き直す
-
-> **メモ:** 以下のコードは、 [ArrayBuffer](/ja/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer) を Base64 文字列から取得する場合、またはその逆の場合にも有用です([下記参照](#付録_base64_文字列を_uint8array_または_arraybuffer_へデコード))。
+## 任意のバイナリーデータの変換
-```js
-"use strict";
-// Array of bytes to Base64 string decoding
-function b64ToUint6(nChr) {
- return nChr > 64 && nChr < 91
- ? nChr - 65
- : nChr > 96 && nChr < 123
- ? nChr - 71
- : nChr > 47 && nChr < 58
- ? nChr + 4
- : nChr === 43
- ? 62
- : nChr === 47
- ? 63
- : 0;
-}
-
-function base64DecToArr(sBase64, nBlocksSize) {
- const sB64Enc = sBase64.replace(/[^A-Za-z0-9+/]/g, "");
- const nInLen = sB64Enc.length;
- const nOutLen = nBlocksSize
- ? Math.ceil(((nInLen * 3 + 1) >> 2) / nBlocksSize) * nBlocksSize
- : (nInLen * 3 + 1) >> 2;
- const taBytes = new Uint8Array(nOutLen);
-
- let nMod3;
- let nMod4;
- let nUint24 = 0;
- let nOutIdx = 0;
- for (let nInIdx = 0; nInIdx < nInLen; nInIdx++) {
- nMod4 = nInIdx & 3;
- nUint24 |= b64ToUint6(sB64Enc.charCodeAt(nInIdx)) << (6 * (3 - nMod4));
- if (nMod4 === 3 || nInLen - nInIdx === 1) {
- nMod3 = 0;
- while (nMod3 < 3 && nOutIdx < nOutLen) {
- taBytes[nOutIdx] = (nUint24 >>> ((16 >>> nMod3) & 24)) & 255;
- nMod3++;
- nOutIdx++;
- }
- nUint24 = 0;
- }
- }
-
- return taBytes;
-}
-
-/* Base64 string to array encoding */
-function uint6ToB64(nUint6) {
- return nUint6 < 26
- ? nUint6 + 65
- : nUint6 < 52
- ? nUint6 + 71
- : nUint6 < 62
- ? nUint6 - 4
- : nUint6 === 62
- ? 43
- : nUint6 === 63
- ? 47
- : 65;
-}
-
-function base64EncArr(aBytes) {
- let nMod3 = 2;
- let sB64Enc = "";
-
- const nLen = aBytes.length;
- let nUint24 = 0;
- for (let nIdx = 0; nIdx < nLen; nIdx++) {
- nMod3 = nIdx % 3;
- if (nIdx > 0 && ((nIdx * 4) / 3) % 76 === 0) {
- sB64Enc += "\r\n";
- }
-
- nUint24 |= aBytes[nIdx] << ((16 >>> nMod3) & 24);
- if (nMod3 === 2 || aBytes.length - nIdx === 1) {
- sB64Enc += String.fromCodePoint(
- uint6ToB64((nUint24 >>> 18) & 63),
- uint6ToB64((nUint24 >>> 12) & 63),
- uint6ToB64((nUint24 >>> 6) & 63),
- uint6ToB64(nUint24 & 63),
- );
- nUint24 = 0;
- }
- }
- return (
- sB64Enc.substr(0, sB64Enc.length - 2 + nMod3) +
- (nMod3 === 2 ? "" : nMod3 === 1 ? "=" : "==")
- );
-}
+前の節の `bytesToBase64` と `base64ToBytes` 関数を直接使用して、Base64 文字列と [`Uint8Array`](/ja/docs/Web/JavaScript/Reference/Global_Objects/Uint8Array) を変換することができます。
-/* UTF-8 array to JS string and vice versa */
+パフォーマンスを向上させるために、[`FileReader`](/ja/docs/Web/API/FileReader) と [`fetch`](/ja/docs/Web/API/Fetch_API) API を介して、base64 データ URL 同士の非同期変換がウェブプラットフォーム内でネイティブにできます。
-function UTF8ArrToStr(aBytes) {
- let sView = "";
- let nPart;
- const nLen = aBytes.length;
- for (let nIdx = 0; nIdx < nLen; nIdx++) {
- nPart = aBytes[nIdx];
- sView += String.fromCodePoint(
- nPart > 251 && nPart < 254 && nIdx + 5 < nLen /* six bytes */
- ? /* (nPart - 252 << 30) may be not so safe in ECMAScript! So…: */
- (nPart - 252) * 1073741824 +
- ((aBytes[++nIdx] - 128) << 24) +
- ((aBytes[++nIdx] - 128) << 18) +
- ((aBytes[++nIdx] - 128) << 12) +
- ((aBytes[++nIdx] - 128) << 6) +
- aBytes[++nIdx] -
- 128
- : nPart > 247 && nPart < 252 && nIdx + 4 < nLen /* five bytes */
- ? ((nPart - 248) << 24) +
- ((aBytes[++nIdx] - 128) << 18) +
- ((aBytes[++nIdx] - 128) << 12) +
- ((aBytes[++nIdx] - 128) << 6) +
- aBytes[++nIdx] -
- 128
- : nPart > 239 && nPart < 248 && nIdx + 3 < nLen /* four bytes */
- ? ((nPart - 240) << 18) +
- ((aBytes[++nIdx] - 128) << 12) +
- ((aBytes[++nIdx] - 128) << 6) +
- aBytes[++nIdx] -
- 128
- : nPart > 223 && nPart < 240 && nIdx + 2 < nLen /* three bytes */
- ? ((nPart - 224) << 12) +
- ((aBytes[++nIdx] - 128) << 6) +
- aBytes[++nIdx] -
- 128
- : nPart > 191 && nPart < 224 && nIdx + 1 < nLen /* two bytes */
- ? ((nPart - 192) << 6) + aBytes[++nIdx] - 128
- : /* nPart < 127 ? */ /* one byte */
- nPart,
- );
- }
- return sView;
+```js
+async function bytesToBase64DataUrl(bytes, type = "application/octet-stream") {
+ return await new Promise((resolve, reject) => {
+ const reader = Object.assign(new FileReader(), {
+ onload: () => resolve(reader.result),
+ onerror: () => reject(reader.error),
+ });
+ reader.readAsDataURL(new File([bytes], "", { type }));
+ });
}
-function strToUTF8Arr(sDOMStr) {
- let aBytes;
- let nChr;
- const nStrLen = sDOMStr.length;
- let nArrLen = 0;
-
- /* mapping… */
- for (let nMapIdx = 0; nMapIdx < nStrLen; nMapIdx++) {
- nChr = sDOMStr.codePointAt(nMapIdx);
-
- if (nChr > 65536) {
- nMapIdx++;
- }
-
- nArrLen +=
- nChr < 0x80
- ? 1
- : nChr < 0x800
- ? 2
- : nChr < 0x10000
- ? 3
- : nChr < 0x200000
- ? 4
- : nChr < 0x4000000
- ? 5
- : 6;
- }
-
- aBytes = new Uint8Array(nArrLen);
-
- /* transcription… */
- let nIdx = 0;
- let nChrIdx = 0;
- while (nIdx < nArrLen) {
- nChr = sDOMStr.codePointAt(nChrIdx);
- if (nChr < 128) {
- /* one byte */
- aBytes[nIdx++] = nChr;
- } else if (nChr < 0x800) {
- /* two bytes */
- aBytes[nIdx++] = 192 + (nChr >>> 6);
- aBytes[nIdx++] = 128 + (nChr & 63);
- } else if (nChr < 0x10000) {
- /* three bytes */
- aBytes[nIdx++] = 224 + (nChr >>> 12);
- aBytes[nIdx++] = 128 + ((nChr >>> 6) & 63);
- aBytes[nIdx++] = 128 + (nChr & 63);
- } else if (nChr < 0x200000) {
- /* four bytes */
- aBytes[nIdx++] = 240 + (nChr >>> 18);
- aBytes[nIdx++] = 128 + ((nChr >>> 12) & 63);
- aBytes[nIdx++] = 128 + ((nChr >>> 6) & 63);
- aBytes[nIdx++] = 128 + (nChr & 63);
- nChrIdx++;
- } else if (nChr < 0x4000000) {
- /* five bytes */
- aBytes[nIdx++] = 248 + (nChr >>> 24);
- aBytes[nIdx++] = 128 + ((nChr >>> 18) & 63);
- aBytes[nIdx++] = 128 + ((nChr >>> 12) & 63);
- aBytes[nIdx++] = 128 + ((nChr >>> 6) & 63);
- aBytes[nIdx++] = 128 + (nChr & 63);
- nChrIdx++;
- } /* if (nChr <= 0x7fffffff) */ else {
- /* six bytes */
- aBytes[nIdx++] = 252 + (nChr >>> 30);
- aBytes[nIdx++] = 128 + ((nChr >>> 24) & 63);
- aBytes[nIdx++] = 128 + ((nChr >>> 18) & 63);
- aBytes[nIdx++] = 128 + ((nChr >>> 12) & 63);
- aBytes[nIdx++] = 128 + ((nChr >>> 6) & 63);
- aBytes[nIdx++] = 128 + (nChr & 63);
- nChrIdx++;
- }
- nChrIdx++;
- }
-
- return aBytes;
+async function dataUrlToBytes(dataUrl) {
+ const res = await fetch(dataUrl);
+ return new Uint8Array(await res.arrayBuffer());
}
-```
-
-### テスト
-
-```js
-/* Tests */
-
-const sMyInput = "Base 64 \u2014 Mozilla Developer Network";
-const aMyUTF8Input = strToUTF8Arr(sMyInput);
-
-const sMyBase64 = base64EncArr(aMyUTF8Input);
-
-alert(sMyBase64);
-
-const aMyUTF8Output = base64DecToArr(sMyBase64);
-
-const sMyOutput = UTF8ArrToStr(aMyUTF8Output);
-
-alert(sMyOutput);
+// 使用方法
+await bytesToBase64DataUrl(new Uint8Array([0, 1, 2])); // "data:application/octet-stream;base64,AAEC"
+await dataUrlToBytes("data:application/octet-stream;base64,AAEC"); // Uint8Array [0, 1, 2]
```
-### 付録: Base64 文字列を Uint8Array または ArrayBuffer へデコード
-
-これらの関数により、 Base64 エンコードされた文字列から [Uint8Array](/ja/docs/Web/JavaScript/Reference/Global_Objects/Uint8Array) や [ArrayBuffer](/ja/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer) を作成することも可能です。
-
-```js
-// "Base 64 \u2014 Mozilla Developer Network"
-const myArray = base64DecToArr(
- "QmFzZSA2NCDigJQgTW96aWxsYSBEZXZlbG9wZXIgTmV0d29yaw==",
-);
-
-// "Base 64 \u2014 Mozilla Developer Network"
-const myBuffer = base64DecToArr(
- "QmFzZSA2NCDigJQgTW96aWxsYSBEZXZlbG9wZXIgTmV0d29yaw==",
-).buffer;
-
-alert(myBuffer.byteLength);
-```
+## 関連情報
-> **メモ:** `base64DecToArr(sBase64[, nBlocksSize])` 関数は、バイト列の [`Uint8Array`](/ja/docs/Web/JavaScript/Reference/Global_Objects/Uint8Array) を返します。 16 ビット/ 32 ビット/ 64 ビットの生データのバッファーを構築することを目的とする場合、 `nBlocksSize` 引数を使用します。これは、 `uint8Array.buffer.bytesLength` プロパティの結果が倍数となるべきバイト数(ASCII、バイナリー列(すなわち、列内のそれぞれの文字を 1 バイトのバイナリーデータと見なす列)、 UTF-16 列では `2`、 UTF-32 列では `4`)を表します。
+- JavaScript API:
+ - {{domxref("Window.atob()")}}({{domxref("WorkerGlobalScope.atob()", "ワーカーでも利用可能", "", "nocode")}})
+ - {{domxref("Window.btoa()")}}({{domxref("WorkerGlobalScope.btoa()", "ワーカーでも利用可能", "", "nocode")}})
+- [データ URL](/ja/docs/Web/HTTP/Basics_of_HTTP/Data_URLs)
+- [Base64](https://ja.wikipedia.org/wiki/Base64)(ウィキペディア)
+- Base64 のアルゴリズム([RFC 4648](https://datatracker.ietf.org/doc/html/rfc4648) の説明)
diff --git a/files/ja/glossary/bfcache/index.md b/files/ja/glossary/bfcache/index.md
new file mode 100644
index 00000000000000..58aef22c51582b
--- /dev/null
+++ b/files/ja/glossary/bfcache/index.md
@@ -0,0 +1,18 @@
+---
+title: bfcache
+slug: Glossary/bfcache
+---
+
+{{GlossarySidebar}}
+
+**バック/フォワード**キャッシュ、または **bfcache** とは、モダンブラウザーで利用可能なパフォーマンス向上機能で、以前訪れたページ間の瞬時的な前後ナビゲーションを可能にします。ユーザーがページから移動するときに、そのページの完全なスナップショットを保存しておき、ユーザーがそのページに戻ることを選択した場合、ページを読み込むための通信を繰り返す必要なく、すぐにそのスナップショットを復元できます。
+
+このスナップショットには、メモリー内のページ全体の状態が入っており、その中には JavaScript ヒープも含まれます。実行中のコードはユーザーが移動するとき一時停止され、ページに戻ったときに再開されます。一方、通常の HTTP キャッシュエントリーには、過去のリクエストへのレスポンスのみが含まれています。したがって、bfcache は HTTP キャッシュよりも高速な結果をもたらします。
+
+その一方で、bfcache エントリーはより多くのリソースを必要とし、実行中のコードをどのように再現するのかについて、複雑さが生じます。いくつかのコード機能(例えば [`unload`](/ja/docs/Web/API/Window/unload_event) ハンドラー)は互換性がないため、それらがページに存在する場合は bfcache の使用がブロックされます。
+
+bfcache はパフォーマンスに優れているため、ページが bfcache の使用をブロックされていないことを確認することが重要です。[`notRestoredReasons` API](/ja/docs/Web/API/Performance_API/Monitoring_bfcache_blocking_reasons) を使うと、ページが bfcache の使用をブロックされているかどうかと、その理由を監視できます。
+
+## 関連情報
+
+- [Back and forward cache](https://web.dev/articles/bfcache) on web.dev (2023)
diff --git a/files/ja/glossary/rendering_engine/index.md b/files/ja/glossary/engine/rendering/index.md
similarity index 92%
rename from files/ja/glossary/rendering_engine/index.md
rename to files/ja/glossary/engine/rendering/index.md
index f55bae782e3e24..ce05035e966592 100644
--- a/files/ja/glossary/rendering_engine/index.md
+++ b/files/ja/glossary/engine/rendering/index.md
@@ -1,6 +1,7 @@
---
title: Rendering engine (レンダリングエンジン)
-slug: Glossary/Rendering_engine
+slug: Glossary/Engine/Rendering
+original_slug: Glossary/Rendering_engine
---
{{GlossarySidebar}}
diff --git a/files/ja/glossary/flex/index.md b/files/ja/glossary/flex/index.md
index b533de1635e8b1..0a13178efec338 100644
--- a/files/ja/glossary/flex/index.md
+++ b/files/ja/glossary/flex/index.md
@@ -1,19 +1,19 @@
---
title: Flex
slug: Glossary/Flex
+l10n:
+ sourceCommit: 333c924622d7ff78253a662f3d9d4e60263a93d9
---
{{GlossarySidebar}}
-`flex` は CSS {{cssxref("display")}}のプロパティに新しく追加された値です。`inline-flex` と同じく、使用すると Element(要素)に {{glossary("flex container", "Flex コンテナ")}} が適用されます。また、その Element(要素)の子 Element(要素)それぞれには {{glossary("flex item", "Flex アイテム")}} が適用されます。flex アイテムが適用された Element(要素)は flex layout を構成し、CSS Flexible Box Layout Module で定義されているプロパティの全てが適用されるはずです。
+`flex` は CSS の {{cssxref("display")}} プロパティの値です。`inline-flex` と同じく、要素に適用すると{{glossary("flex container", "フレックスコンテナー")}}になり、その要素の子要素はそれぞれ{{glossary("flex item", "フレックスアイテム")}}になります。アイテムはフレックスレイアウトに参加し、[CSS フレックスボックスレイアウト](/ja/docs/Web/CSS/CSS_flexible_box_layout)で定義されているすべてのプロパティが適用されます。
-`flex` プロパティは flexbox プロパティを縮めて表したプロパティです。`flex-grow` や `flex-shrink`、`flex-basis` 等があります。
+{{cssxref("flex")}} プロパティもあり、これはフレックスボックスの {{cssxref("flex-grow")}}、{{cssxref("flex-shrink")}}、{{cssxref("flex-basis")}} の各プロパティの一括指定です。このプロパティはフレックスコンテナーにのみ適用されます。
-`` については、CSS Grid Layout 内の [flexible length](/ja/docs/Web/CSS/flex_value) にて確認できます。
+加えて、[``](/ja/docs/Web/CSS/flex_value) は CSS グリッドレイアウトにおいて[可変長](/ja/docs/Web/CSS/flex_value)を表すこともあります。
-## 関連項目
-
-### プロパティリファレンス
+### 関連する CSS プロパティ
- {{cssxref("align-content")}}
- {{cssxref("align-items")}}
@@ -25,16 +25,18 @@ slug: Glossary/Flex
- {{cssxref("flex-grow")}}
- {{cssxref("flex-shrink")}}
- {{cssxref("flex-wrap")}}
+- {{cssxref("gap")}}
- {{cssxref("justify-content")}}
- {{cssxref("order")}}
+- {{cssxref("place-items")}}
+- {{cssxref("place-self")}}
### 参考文献
-- _[CSS Flexible Box Layout Module Level 1 Specification](https://www.w3.org/TR/css-flexbox-1/)_
-- CSS フレックスボックスガイド: _[フレックスボックスの基本概念](/ja/docs/Web/CSS/CSS_flexible_box_layout/Basic_concepts_of_flexbox)_
-- CSS フレックスボックスガイド: _[フレックスボックスと他のレイアウト方法の関係](/ja/docs/Web/CSS/CSS_flexible_box_layout/Relationship_of_flexbox_to_other_layout_methods)_
-- CSS フレックスボックスガイド: _[フレックスコンテナー内のアイテムの配置](/ja/docs/Web/CSS/CSS_flexible_box_layout/Aligning_items_in_a_flex_container)_
-- CSS フレックスボックスガイド: _[フレックスアイテムの順序](/ja/docs/Web/CSS/CSS_flexible_box_layout/Ordering_flex_items)_
-- CSS フレックスボックスガイド: _[主軸方向のフレックスアイテムの比率の制御](/ja/docs/Web/CSS/CSS_flexible_box_layout/Controlling_ratios_of_flex_items_along_the_main_axis)_
-- CSS フレックスボックスガイド: _[フレックスアイテムの折り返しをマスターする](/ja/docs/Web/CSS/CSS_flexible_box_layout/Mastering_wrapping_of_flex_items)_
-- CSS フレックスボックスガイド: _[フレックスボックスの典型的な用途](/ja/docs/Web/CSS/CSS_flexible_box_layout/Typical_use_cases_of_flexbox)_
+- [フレックスボックスの基本概念](/ja/docs/Web/CSS/CSS_flexible_box_layout/Basic_concepts_of_flexbox)
+- [フレックスボックスと他のレイアウト方法の関係](/ja/docs/Web/CSS/CSS_flexible_box_layout/Relationship_of_flexbox_to_other_layout_methods)
+- [フレックスコンテナー内のアイテムの配置](/ja/docs/Web/CSS/CSS_flexible_box_layout/Aligning_items_in_a_flex_container)
+- [フレックスアイテムの順序](/ja/docs/Web/CSS/CSS_flexible_box_layout/Ordering_flex_items)
+- [主軸方向のフレックスアイテムの比率の制御](/ja/docs/Web/CSS/CSS_flexible_box_layout/Controlling_ratios_of_flex_items_along_the_main_axis)
+- [フレックスアイテムの折り返しをマスターする](/ja/docs/Web/CSS/CSS_flexible_box_layout/Mastering_wrapping_of_flex_items)
+- [フレックスボックスの典型的な用途](/ja/docs/Web/CSS/CSS_flexible_box_layout/Typical_use_cases_of_flexbox)
diff --git a/files/ja/glossary/flex_container/index.md b/files/ja/glossary/flex_container/index.md
index 809a1713b1f973..7d256d6f3487b1 100644
--- a/files/ja/glossary/flex_container/index.md
+++ b/files/ja/glossary/flex_container/index.md
@@ -1,15 +1,17 @@
---
-title: Flex コンテナ
+title: Flex Container (フレックスコンテナー)
slug: Glossary/Flex_Container
+l10n:
+ sourceCommit: 3c5185e55298c2ca14e4e63913a50bb81e3c5609
---
{{GlossarySidebar}}
-{{glossary("Flexbox")}} レイアウトは親要素の `display` プロパティの値に `flex` または `inline-flex` を指定することで定義されます。この親要素が**「flex コンテナ」**となり、その子要素が 「flex アイテム」({{glossary("flex item")}}) となります。
+{{glossary("Flexbox", "フレックスボックス")}}レイアウトは、`flex` または `inline-flex` を親要素の `display` プロパティの値に使用することで定義されます。この要素は**フレックスコンテナー**となり、その子要素それぞれは{{glossary("flex item", "フレックスアイテム")}}となります。
-値に `flex` を指定すると、この要素はブロックレベルの flex コンテナとなり、`inline-flex` を指定すると、インラインレベルの flex コンテナとなります。これらの指定は、その要素に対する**「flex 整形文脈 (flex formatting context)」**を作成します。Flex 整形文脈は、フロートがコンテナに侵入せず、コンテナのマージンがアイテムのマージンによって相殺されないという点で、ブロック整形文脈と同様のものです。
+値に `flex` を指定すると、この要素はブロックレベルのフレックスコンテナーとなり、`inline-flex` を指定すると、インラインレベルのフレックスコンテナーとなります。これらの指定は、その要素に対する**フレックス整形コンテキスト**を作成します。これはブロック整形コンテキストと、不動要素がコンテナーの中に侵入せず、コンテナーのマージンがアイテムのマージンとの間で相殺されないという点で似ています。
-## 関連項目
+## 関連情報
### プロパティリファレンス
@@ -23,6 +25,7 @@ slug: Glossary/Flex_Container
### 参考文献
-- CSS フレックスボックスガイド: _[フレックスボックスの基本概念](/ja/docs/Web/CSS/CSS_flexible_box_layout/Basic_concepts_of_flexbox)_
-- CSS フレックスボックスガイド: _[フレックスコンテナー内のアイテムの配置](/ja/docs/Web/CSS/CSS_flexible_box_layout/Aligning_items_in_a_flex_container)_
-- CSS フレックスボックスガイド: _[フレックスアイテムの折り返しをマスターする](/ja/docs/Web/CSS/CSS_flexible_box_layout/Mastering_wrapping_of_flex_items)_
+- [フレックスボックスの基本概念](/ja/docs/Web/CSS/CSS_flexible_box_layout/Basic_concepts_of_flexbox)
+- [フレックスコンテナー内のアイテムの配置](/ja/docs/Web/CSS/CSS_flexible_box_layout/Aligning_items_in_a_flex_container)
+- [フレックスアイテムの折り返しをマスターする](/ja/docs/Web/CSS/CSS_flexible_box_layout/Mastering_wrapping_of_flex_items)
+- [CSS flexbox inspector: Examine flexbox layouts](https://firefox-source-docs.mozilla.org/devtools-user/page_inspector/how_to/examine_flexbox_layouts/index.html)
diff --git a/files/ja/glossary/flex_item/index.md b/files/ja/glossary/flex_item/index.md
index aa84a0581d6715..879f94b256a388 100644
--- a/files/ja/glossary/flex_item/index.md
+++ b/files/ja/glossary/flex_item/index.md
@@ -1,15 +1,17 @@
---
-title: Flex アイテム
+title: Flex Item (フレックスアイテム)
slug: Glossary/Flex_Item
+l10n:
+ sourceCommit: 3c5185e55298c2ca14e4e63913a50bb81e3c5609
---
{{GlossarySidebar}}
-{{glossary("Flex Container")}} (`display: flex` または `display: inline-flex` が設定された要素) の直下の子要素が**「flex アイテム」**となります。
+{{glossary("Flex Container", "フレックスコンテナー")}}(`display: flex` または `display: inline-flex` が設定された要素)の直下の子要素は**フレックスアイテム**となります。
-Flex コンテナ内で直下に続くテキストも flex アイテムになります。
+フレックスコンテナー内で直下に続くテキストもフレックスアイテムになります。
-## 関連項目
+## 関連情報
### プロパティリファレンス
@@ -21,6 +23,6 @@ Flex コンテナ内で直下に続くテキストも flex アイテムになり
### 参考文献
-- CSS フレックスボックスガイド: _[フレックスボックスの基本概念](/ja/docs/Web/CSS/CSS_flexible_box_layout/Basic_concepts_of_flexbox)_
-- CSS フレックスボックスガイド: _[フレックスアイテムの順序](/ja/docs/Web/CSS/CSS_flexible_box_layout/Ordering_flex_items)_
-- CSS フレックスボックスガイド: _[主軸方向のフレックスアイテムの比率の制御](/ja/docs/Web/CSS/CSS_flexible_box_layout/Controlling_ratios_of_flex_items_along_the_main_axis)_
+- [フレックスボックスの基本概念](/ja/docs/Web/CSS/CSS_flexible_box_layout/Basic_concepts_of_flexbox)
+- [フレックスアイテムの順序](/ja/docs/Web/CSS/CSS_flexible_box_layout/Ordering_flex_items)
+- [主軸方向のフレックスアイテムの比率の制御](/ja/docs/Web/CSS/CSS_flexible_box_layout/Controlling_ratios_of_flex_items_along_the_main_axis)
diff --git a/files/ja/glossary/flexbox/index.md b/files/ja/glossary/flexbox/index.md
index 704a0d68c39a2b..1d72979db7bce8 100644
--- a/files/ja/glossary/flexbox/index.md
+++ b/files/ja/glossary/flexbox/index.md
@@ -1,17 +1,19 @@
---
title: Flexbox (フレックスボックス)
slug: Glossary/Flexbox
+l10n:
+ sourceCommit: 52dc11c43d656c48532096f1765b56d05c537711
---
{{GlossarySidebar}}
-Flexbox は、アイテムを列方向や行方向など一次元に並べて表示するためのレイアウトモデルである [CSS Flexible Box Layout Module](https://www.w3.org/TR/css-flexbox-1/) に対する一般的な通称です。
+フレックスボックスは、アイテムを列方向や行方向など一次元に並べて表示するためのレイアウトモデルである [CSS flexible box layout module](/ja/docs/Web/CSS/CSS_flexible_box_layout) に対する一般的な通称です。
-この仕様書では、Flexbox はユーザーインターフェイスの設計のためのレイアウトモデルとして説明されています。Flexbox の重要な特徴として、フレックスレイアウト内のアイテムが伸縮することができるという点が挙げられます。余白はアイテム自体に割り当てることも、アイテム間やアイテム周りに配分することも出来ます。
+この仕様書では、フレックスボックスはユーザーインターフェイスの設計のためのレイアウトモデルとして説明されています。フレックスボックスの重要な特徴が、フレックスレイアウト内のアイテムが伸縮することができることです。余白はアイテム自体に割り当てることも、アイテムの間や周囲に配分することもできます。
-また、Flexbox はでは主軸や交差軸にそった位置合わせをすることもでき、アイテムグループのサイズと配置に対する高レベルな制御を提供します。
+また、フレックスボックスはでは主軸や交差軸上の配置を指定することもでき、アイテムグループのサイズと配置に対する高レベルな制御を提供します。
-## 理解を深める
+## 関連情報
### プロパティリファレンス
@@ -28,36 +30,14 @@ Flexbox は、アイテムを列方向や行方向など一次元に並べて表
- {{cssxref("justify-content")}}
- {{cssxref("order")}}
-### 関連情報
+### 参考文献
+- CSS フレックスボックスガイド:
+ - [フレックスボックスの基本概念](/ja/docs/Web/CSS/CSS_flexible_box_layout/Basic_concepts_of_flexbox)
+ - [フレックスボックスと他のレイアウト方法の関係](/ja/docs/Web/CSS/CSS_flexible_box_layout/Relationship_of_flexbox_to_other_layout_methods)
+ - [フレックスコンテナー内のアイテムの配置](/ja/docs/Web/CSS/CSS_flexible_box_layout/Aligning_items_in_a_flex_container)
+ - [フレックスアイテムの順序](/ja/docs/Web/CSS/CSS_flexible_box_layout/Ordering_flex_items)
+ - [主軸方向のフレックスアイテムの比率の制御](/ja/docs/Web/CSS/CSS_flexible_box_layout/Controlling_ratios_of_flex_items_along_the_main_axis)
+ - [フレックスアイテムの折り返しのマスター](/ja/docs/Web/CSS/CSS_flexible_box_layout/Mastering_wrapping_of_flex_items)
+ - [フレックスボックスの典型的な用途](/ja/docs/Web/CSS/CSS_flexible_box_layout/Typical_use_cases_of_flexbox)
- _[CSS Flexible Box Layout Module Level 1 Specification](https://www.w3.org/TR/css-flexbox-1/)_
-- CSS フレックスボックスガイド: _[フレックスボックスの基本概念](/ja/docs/Web/CSS/CSS_flexible_box_layout/Basic_concepts_of_flexbox)_
-- CSS フレックスボックスガイド: _[フレックスボックスと他のレイアウト方法の関係](/ja/docs/Web/CSS/CSS_flexible_box_layout/Relationship_of_flexbox_to_other_layout_methods)_
-- CSS フレックスボックスガイド: _[フレックスコンテナー内のアイテムの配置](/ja/docs/Web/CSS/CSS_flexible_box_layout/Aligning_items_in_a_flex_container)_
-- CSS フレックスボックスガイド: _[フレックスアイテムの順序](/ja/docs/Web/CSS/CSS_flexible_box_layout/Ordering_flex_items)_
-- CSS フレックスボックスガイド: _[主軸方向のフレックスアイテムの比率の制御](/ja/docs/Web/CSS/CSS_flexible_box_layout/Controlling_ratios_of_flex_items_along_the_main_axis)_
-- CSS フレックスボックスガイド: _[フレックスアイテムの折り返しのマスター](/ja/docs/Web/CSS/CSS_Flexible_Box_Layout/Mastering_Wrapping_of_Flex_Items)_
-- CSS フレックスボックスガイド: _[フレックスボックスの典型的な用途](/ja/docs/Web/CSS/CSS_flexible_box_layout/Typical_use_cases_of_flexbox)_
-
-1. [MDN Web Docs 用語集](/ja/docs/Glossary)
-
- 1. {{Glossary("Cross Axis", "交差軸")}}
- 2. {{Glossary("Flex")}}
- 3. {{Glossary("Flex Container", "フレックスコンテナー")}}
- 4. {{Glossary("Flex Item", "フレックスアイテム")}}
- 5. {{Glossary("Grid", "グリッド")}}
-
-2. 関連する CSS プロパティ
-
- 1. {{cssxref("align-content")}}
- 2. {{cssxref("align-items")}}
- 3. {{cssxref("align-self")}}
- 4. {{cssxref("flex")}}
- 5. {{cssxref("flex-basis")}}
- 6. {{cssxref("flex-direction")}}
- 7. {{cssxref("flex-flow")}}
- 8. {{cssxref("flex-grow")}}
- 9. {{cssxref("flex-shrink")}}
- 10. {{cssxref("flex-wrap")}}
- 11. {{cssxref("justify-content")}}
- 12. {{cssxref("order")}}
diff --git a/files/ja/glossary/guard/index.md b/files/ja/glossary/guard/index.md
deleted file mode 100644
index e2f100c4c092d4..00000000000000
--- a/files/ja/glossary/guard/index.md
+++ /dev/null
@@ -1,8 +0,0 @@
----
-title: Guard (ガード)
-slug: Glossary/Guard
----
-
-{{GlossarySidebar}}
-
-ガードは、{{domxref("Fetch_API","Fetch 仕様")}}で定義されている {{domxref("Headers")}} オブジェクトの機能で、{{domxref("Headers.set","set()")}} や {{domxref("Headers.append","append()")}} などのメソッドがヘッダーのコンテンツを変更できるかどうかに影響します。 例えば、`immutable`(不変)ガードは、ヘッダーを変更できないことを意味します。 詳しくは、[Fetch の基本概念: ガード](/ja/docs/Web/API/Fetch_API/Basic_concepts#Guard)を参照してください。
diff --git a/files/ja/glossary/payload_header/index.md b/files/ja/glossary/payload_header/index.md
new file mode 100644
index 00000000000000..fa5d7e292be94f
--- /dev/null
+++ b/files/ja/glossary/payload_header/index.md
@@ -0,0 +1,26 @@
+---
+title: Payload header (ペイロードヘッダー)
+slug: Glossary/Payload_header
+l10n:
+ sourceCommit: ada5fa5ef15eadd44b549ecf906423b4a2092f34
+---
+
+{{GlossarySidebar}}
+
+**ペイロードヘッダー**は、{{Glossary("HTTP_header", "HTTP ヘッダー")}}の一種で、1 つ以上のメッセージから、元リソースの{{Glossary("Representation header", "表現")}}の安全な伝送と再構築に関連するペイロード(本体)情報を記述するものです。これには、メッセージペイロードの長さ、リソースのどの部分がこのペイロードで運ばれるのか(マルチパートメッセージの場合)、トランスポートに適用されるエンコード方式、メッセージの整合性チェックなどの情報が含まれます。
+
+ペイロードヘッダーは HTTP リクエストメッセージとレスポンスメッセージ(すなわちペイロードデータを運ぶメッセージ)のどちらにも入れることができます。
+
+ペイロードヘッダーには、 {{HTTPHeader("Content-Length")}}, {{HTTPHeader("Content-Range")}}, {{HTTPHeader("Trailer")}}, {{HTTPHeader("Transfer-Encoding")}} などがあります。
+
+## 関連情報
+
+- [すべての HTTP ヘッダーの一覧](/ja/docs/Web/HTTP/Headers)
+
+ - {{HTTPHeader("Content-Length")}}
+ - {{HTTPHeader("Content-Range")}}
+ - {{HTTPHeader("Trailer")}}
+ - {{HTTPHeader("Transfer-Encoding")}}
+ - {{Glossary("Representation header", "表現ヘッダー")}}
+
+- [RFC 7231, section 3.3: Payload semantics](https://datatracker.ietf.org/doc/html/rfc7231#section-3.3)
diff --git a/files/ja/glossary/physical_properties/index.md b/files/ja/glossary/physical_properties/index.md
new file mode 100644
index 00000000000000..8bd9275896d97b
--- /dev/null
+++ b/files/ja/glossary/physical_properties/index.md
@@ -0,0 +1,19 @@
+---
+title: Physical properties (物理プロパティ)
+slug: Glossary/Physical_properties
+---
+
+{{GlossarySidebar}}
+
+CSS の**物理プロパティ**は、物理的な方向もしくは要素の辺に基づいた位置を定義します。例えば:
+
+- {{cssxref("top")}}、{{cssxref("right")}}、{{cssxref("bottom")}}、{{cssxref("left")}} の [inset プロパティ](/ja/docs/Glossary/Inset_properties) は、ビューポートの物理的な寸法を参照します。
+- {{cssxref("margin-top")}}、{{cssxref("border-right")}}、{{cssxref("padding-bottom")}}、{{cssxref("border-bottom-left-radius")}} などの機能は、要素の特定の辺を参照し、その物理的な方向にスタイルを適用します。
+
+これは{{glossary("logical properties", "論理プロパティ")}}とは対照的です。論理プロパティはコンテンツフローに相対的で、ブロック軸とインライン軸を基準とした方向キーワードを使用します。
+
+## 関連情報
+
+- [CSS 位置指定レイアウト](/ja/docs/Web/CSS/CSS_positioned_layout)モジュール
+- [CSS ボックスモデル](/ja/docs/Web/CSS/CSS_box_model)モジュール
+- [CSS ボックスサイズ](/ja/docs/Web/CSS/CSS_box_sizing)モジュール
diff --git a/files/ja/learn/css/building_blocks/backgrounds_and_borders/index.md b/files/ja/learn/css/building_blocks/backgrounds_and_borders/index.md
index ecc42f89d4da74..15cdfb832e73ef 100644
--- a/files/ja/learn/css/building_blocks/backgrounds_and_borders/index.md
+++ b/files/ja/learn/css/building_blocks/backgrounds_and_borders/index.md
@@ -43,7 +43,8 @@ CSS の {{cssxref("background")}} プロパティは、このレッスンで説
105deg,
rgb(255 255 255 / 20%) 39%,
rgb(51 56 57 / 100%) 96%
- ) center center / 400px 200px no-repeat,
+ )
+ center center / 400px 200px no-repeat,
url(big-star.png) center no-repeat,
rebeccapurple;
}
diff --git a/files/ja/learn/forms/advanced_form_styling/index.md b/files/ja/learn/forms/advanced_form_styling/index.md
index 8fd96a5eb8b244..8dc607475e74a3 100644
--- a/files/ja/learn/forms/advanced_form_styling/index.md
+++ b/files/ja/learn/forms/advanced_form_styling/index.md
@@ -2,19 +2,18 @@
title: フォームへの高度なスタイル設定
slug: Learn/Forms/Advanced_form_styling
l10n:
- sourceCommit: 05324ee8658ea78ab284a736511581effbaf784b
+ sourceCommit: d54192c90e24a1ca5d3a4a65b7d5bf8b1c0ef1e5
---
{{LearnSidebar}}{{PreviousMenuNext("Learn/Forms/Styling_web_forms", "Learn/Forms/UI_pseudo-classes", "Learn/Forms")}}
-この記事では、スタイル設定がより難しい、「不良」「劣悪」に分類される種類のフォームコントロールにスタイル設定するために、 CSS で何ができるかを見ていきます。[前の記事](/ja/docs/Learn/Forms/Styling_web_forms)で見たように、テキストフィールドやボタンでの CSS 使用はまったく問題がありません。ここからは、ウェブフォームへのスタイル設定の闇の部分を見ていきます。
+この記事では、スタイル設定がより難しい、「不良」「劣悪」に分類される種類のフォームコントロールにスタイル設定するために、CSS で何ができるかを見ていきます。[前の記事](/ja/docs/Learn/Forms/Styling_web_forms)で見たように、テキストフィールドやボタンでの CSS 使用はまったく問題がありません。ここからは、より問題のある部分のスタイル設定を掘り下げます。
前提条件:
- 基本的なコンピューターリテラシーと、
HTML および
CSS に対する基本的な理解。
@@ -46,7 +45,7 @@ l10n:
最初に [`appearance`](/ja/docs/Web/CSS/appearance) プロパティについて説明します。これは上記のすべてをよりスタイル付けできるようにするためにかなり有用なプロパティです。
-## 見た目: OS レベルのスタイル制御
+## appearance: OS レベルのスタイル制御
前の記事では歴史的に、ウェブフォームのスタイル設定は OS で行われており、それがこのコントロールの見た目のカスタマイズの問題の一部となっていました。
@@ -95,7 +94,7 @@ input {
たいていの場合、効果は枠線を除去し、 CSS でのスタイル設定を少し簡単にしますが、それは本質できありません。いくつかの場合 — 検索やラジオボタン/チェックボックスでは、もっと便利です。これを見ていきましょう。
-### 検索ボックスを変更する
+### 検索ボックスの変更
[` `](/ja/docs/Web/HTML/Element/input/search) は基本的に単なるテキスト入力ですが、なぜ `appearance: none;` が便利なのでしょうか? 答えは Safari では、検索ボックスにスタイル設定の制限があるからです。例えば `height` や `font-size` を自在に調整できません。
@@ -117,7 +116,7 @@ input[type="search"] {
> **メモ:** 検索フィールドでは、Edge と Chrome で入力がフォーカスされないときに "x" の削除アイコンが消えるが、Safari では残ることに気づくこともあるでしょう。CSS で消すには、`input[type="search"]::-webkit-search-cancel-button { display: none; }`を使用できますが、フォーカス時のアイコンも取り除き、見た目が元に戻らないようです。
-### チェックボックスとラジオボタン
+### チェックボックスとラジオボタンのスタイル設定
チェックボックスやラジオボタンのスタイル設定は、初期設定のままでは厄介です。チェックボックスやラジオボタンのサイズは初期設定のままでは変更できないようになっていますし、変更しようとするとブラウザーの反応もとても異なります。
@@ -146,14 +145,13 @@ input[type="checkbox"] {
ブラウザーによってチェックボックスとスパンの扱いは異なっており多くは劣悪なものです。
-| ブラウザー | 描画結果 |
-| ----------------------------------- | --------------------------------- |
-| Firefox 71 (macOS) | ![](firefox-mac-checkbox.png) |
-| Firefox 57 (Windows 10) | ![](firefox-windows-checkbox.png) |
-| Chrome 77 (macOS), Safari 13, Opera | ![](chrome-mac-checkbox.png) |
-| Chrome 63 (Windows 10) | ![](chrome-windows-checkbox.png) |
-| Internet Explorer 11 (Windows 10) | ![](ie11-checkbox.png) |
-| Edge 16 (Windows 10) | ![](edge-checkbox.png) |
+| ブラウザー | 描画結果 |
+| ----------------------------------- | -------------------------------------------------------------------------------- |
+| Firefox 71 (macOS) | ![角が丸く 1px の淡灰色の境界線](firefox-mac-checkbox.png) |
+| Firefox 57 (Windows 10) | ![角ばった 1px の中灰色の境界線](firefox-windows-checkbox.png) |
+| Chrome 77 (macOS), Safari 13, Opera | ![角が丸く 1px の中灰色の境界線](chrome-mac-checkbox.png) |
+| Chrome 63 (Windows 10) | ![白の代わりにやや灰色がかった背景の角ばった境界線](chrome-windows-checkbox.png) |
+| Edge 16 (Windows 10) | ![白の代わりにやや灰色がかった背景の角ばった境界線](edge-checkbox.png) |
#### ラジオボタン/チェックボックスで appearance: none を使う
@@ -245,8 +243,6 @@ input[type="checkbox"]:disabled {
{{cssxref("appearance")}} に対応していないブラウザーで、これらのチェックボックスを表示できます。カスタムデザインは失われますが、チェックボックスのままに見えて使用できます。
-> **メモ:** Internet Explorer はどのバージョンでも `appearance` に対応していませんが、`input[type=checkbox]::-ms-check` にて IE のみチェックボックスをターゲットにできます。この手法は、`-ms-check` という名前にもかかわらず、ラジオボタンでも機能します。
-
## 「劣悪」要素に何ができるか
今度は「劣悪」コントロールに注目しましょう。これは完全にスタイル設定するのが本当に難しいものです。簡単にいうと、これはドロップダウンボックス、 [`color`](/ja/docs/Web/HTML/Element/input/color) や [`datetime-local`](/ja/docs/Web/HTML/Element/input/datetime-local) のような複合コントロール型、 {{HTMLElement("progress")}} や {{HTMLElement("meter")}} のようなコントロール志向のフィードバックです。
@@ -274,6 +270,8 @@ form > div {
select {
appearance: none;
+ width: 100%;
+ height: 100%;
}
.select-wrapper {
@@ -283,7 +281,7 @@ select {
.select-wrapper::after {
content: "▼";
font-size: 1rem;
- top: 6px;
+ top: 3px;
right: 10px;
position: absolute;
}
@@ -407,7 +405,7 @@ select {
}
```
-2 つ目の、もう少し大きな問題は、 `` ボックスをクリックして開いたときに現れる、選択肢の入ったボックスを操作することができないことです。選択肢は親に設定されたフォントを引き継がないことに気がつくでしょう。また、余白の設定や色なども一貫して設定することができません。例えば、 Firefox では [`color`](/ja/docs/Web/CSS/color) と [`background-color`](/ja/docs/Web/CSS/background-color) が [``](/ja/docs/Web/HTML/Element/option) 要素に適用できますが、 Chrome ではそうなりません。どちらも余白(例えば [`padding`](/ja/docs/Web/CSS/padding))を適用できません。同じことはデータリスト用に出てくる自動補完リストにも当てはまります。
+2 つ目の、もう少し重要な問題は、 `` ボックスをクリックして開いたときに現れる、選択肢の入ったボックスを操作することができないことです。親要素に設定されているフォントを継承することはできますが、間隔や色などを設定することはできません。{{HTMLElement("datalist")}} で現れる自動補完リストも同様です。
本当に選択肢をスタイル設定する必要がある場合、カスタムコントロールを生成するライブラリーを使用するか、独自のカスタムコントロールを作成するかのどちらかが必要で、あるいは `multiple` 属性を使う select の場合、これはページ上に出てくるすべての選択肢を作成し、この特殊な問題を避けることができます。
@@ -506,9 +504,7 @@ label[for="file"]:active {
スタイル設定を制御したい場合は、この機能のカスタムソリューションを作ったり、[progressbar.js](https://kimmobrunfeldt.github.io/progressbar.js/#例) のようなサードパーティのソリューションを使ったりした方が簡単です。
-## スキルテスト
-
-この記事の最後に達しましたが、最も大切な情報を覚えていますか?次に進む前に、この情報が身に付いたかどうかを確認するテストがあります。[Test your skills: Advanced styling](/ja/docs/Learn/Forms/Test_your_skills:_Advanced_styling) を見てください。心に留めておくこととして、この評価シリーズでの質問は、[次の記事](/ja/docs/Learn/Forms/UI_pseudo-classes)の知識も前提していてるので、試す前にその記事に取り組むとよいかもしれません。
+[カスタムフォームコントロールの作成方法](/ja/docs/Learn/Forms/How_to_build_custom_form_controls)の記事には、HTML、CSS、JavaScript を用いた独自デザインの選択フィールドを構築する方法の例があります。
## まとめ
@@ -517,3 +513,9 @@ HTML フォームで CSS を使用するのはまだ困難ですが、しばし
このガイドの次の記事では、現代のブラウザーでさまざまな状態のフォームをスタイル設定できるさまざまな [UI 擬似クラス](/ja/docs/Learn/Forms/UI_pseudo-classes)を見ていきます。
{{PreviousMenuNext("Learn/Forms/Styling_web_forms", "Learn/Forms/UI_pseudo-classes", "Learn/Forms")}}
+
+### 高度なトピック
+
+- [カスタムフォームコントロールの作成方法](/ja/docs/Learn/Forms/How_to_build_custom_form_controls)
+- [JavaScript によるフォームの送信](/ja/docs/Learn/Forms/Sending_forms_through_JavaScript)
+- [フォームウィジェット向けのプロパティの互換性一覧表](/ja/docs/Learn/Forms/Property_compatibility_table_for_form_controls)
diff --git a/files/ja/learn/forms/basic_native_form_controls/index.md b/files/ja/learn/forms/basic_native_form_controls/index.md
index 8029af07fced19..e2c2dba5aa6f0e 100644
--- a/files/ja/learn/forms/basic_native_form_controls/index.md
+++ b/files/ja/learn/forms/basic_native_form_controls/index.md
@@ -2,7 +2,7 @@
title: 基本的なネイティブフォームコントロール
slug: Learn/Forms/Basic_native_form_controls
l10n:
- sourceCommit: 25233e77fc3d3de84511203fd41eaddf361880ef
+ sourceCommit: 238e8acc4909bb7f2ba783e9198379502399effc
---
{{LearnSidebar}}{{PreviousMenuNext("Learn/Forms/How_to_structure_a_web_form", "Learn/Forms/HTML5_input_types", "Learn/Forms")}}
@@ -14,7 +14,7 @@ l10n:
前提条件:
- 基本的なコンピューターリテラシーと、基本的な
+ 基本的な
HTML の理解 。
@@ -65,10 +65,12 @@ l10n:
単一行のテキストフィールドは、ひとつだけ厳密な制約があります。改行を含むテキストを入力した場合、ブラウザーはデータを送信する前に改行を取り除きます。
-_下記のスクリーンショットは macOS での Firefox 71 と Safari、および Windows 10 の Chrome 79 と Edge 18 において、テキストフィールドが既定の場合、フォーカスされた場合、無効にされた場合を示しています。_
+下記のスクリーンショットは、テキスト入力の既定状態、フォーカス状態、無効状態を示しています。ほとんどのブラウザーは、コントロールの周りにフォーカスリングを使用してフォーカス状態を示し、灰色のテキストまたはフェード/半透明のコントロールを使用して無効状態を示します。
![Firefox、Safari、Chrome、Edge における、テキスト入力の disabled 属性と既定の :focus スタイルを表示したスクリーンショットです。](disabled.png)
+この文書内で使用しているスクリーンショットは、macOS 上の Chrome ブラウザーで撮影したものです。ブラウザーによって、これらのフィールドやボタンに若干の違いがあるかもしれませんが、基本的なハイライト手法は同じです。
+
> **メモ:** 特定の検証制約を強制する [`type`](/ja/docs/Web/HTML/Element/input#type) 属性の値、例えば color、email、url 入力型については、次の記事の [HTML5 の入力型](/ja/docs/Learn/Forms/HTML5_input_types)で説明します。
#### パスワードフィールド
@@ -79,6 +81,10 @@ _下記のスクリーンショットは macOS での Firefox 71 と Safari、
```
+以下のスクリーンショットでは、パスワードの入力フィールドがドットで表示されています。
+
+![Password field in chrome 115 on macOS](password.png)
+
`password` の値は、入力されるテキストに特別な制約を加えるものではありませんが、フィールドに入力された値を (ドットやアスタリスクなどで) 不明瞭にして、他の人が簡単に読めないようにします。
これはユーザーインターフェイスの機能でしかないことに注意してください。テキストは JavaScript を使用してあなた自身でエンコードしなければ、平文で送信されてしまい、セキュリティ上で好ましくありません。 — 悪意のある第三者がデータを傍受し、パスワードやクレジットカード情報などを盗む可能性があります。このようなことからユーザーを保護する最善の方法は、フォームを含むページを安全な接続(すなわち、 `https://` ... を指すアドレス)でホストし、データを送信する前に暗号化することです。
@@ -99,13 +105,13 @@ _下記のスクリーンショットは macOS での Firefox 71 と Safari、
## チェック可能項目: チェックボックスとラジオボタン
-チェック可能項目は、そのものや、関連したラベルをクリックすることで状態を変更できるコントロールです。チェック可能項目は 2 種類あります。チェックボックスとラジオボタンです。どちらもそのウィジェットが既定でチェック状態にするかどうかを示すために、 [`checked`](/ja/docs/Web/HTML/Element/input/checkbox#attr-checked) 属性を使用します。
+チェック可能項目は、そのものや、関連したラベルをクリックすることで状態を変更できるコントロールです。チェック可能項目は 2 種類あります。チェックボックスとラジオボタンです。どちらもそのウィジェットが既定でチェック状態にするかどうかを示すために、 [`checked`](/ja/docs/Web/HTML/Element/input/checkbox#checked) 属性を使用します。
これらのウィジェットは、他のフォームウィジェットと同じようには動作しない点が特徴です。ほとんどのフォームウィジェットでは、フォームを送信すると [`name`](/ja/docs/Web/HTML/Element/input#name) 属性を持つすべてのウィジェットが、値が入力されていなくても送信されます。チェック可能項目では、チェックされている場合にのみ値が送信されます。チェックされていない場合は、 name も含めて何も送信されません。チェックされているが値がない場合、 name が _on_ という値で送信されます。
> **メモ:** この節の例は、[checkable-items.html](https://github.com/mdn/learning-area/blob/main/html/forms/native-form-widgets/checkable-items.html) として GitHub にあります([ライブで確認できます](https://mdn.github.io/learning-area/html/forms/native-form-widgets/checkable-items.html))。
-最大限のユーザビリティ/アクセシビリティを実現するために、関連項目の各リストを {{htmlelement("fieldset")}} で囲み、リストの全体的な説明を示す {{htmlelement("legend")}} で囲むことをお勧めします。 {{htmlelement("label")}}/{{htmlelement("input")}} 要素の個々のペアは、それぞれ独自のリスト項目(または同様のもの)に含める必要があります。関連した {{htmlelement('label')}} はラジオボタンやチェックボックスの直後に、 {{htmlelement("legend")}} の中身にラジオボタンやチェックボックスのグループの説明が置かれます。これは上の例に示されています。
+最大限のユーザビリティ/アクセシビリティを実現するために、関連する項目のリストをそれぞれ {{htmlelement("fieldset")}} で囲み、リストの全体的な説明を示す {{htmlelement("legend")}} で囲むことをお勧めします。 {{htmlelement("label")}}/{{htmlelement("input")}} 要素の個々のペアは、それぞれ独自のリスト項目(または同様のもの)に含める必要があります。関連した {{htmlelement('label')}} はラジオボタンやチェックボックスの直前または直後に、 {{htmlelement("legend")}} の中身にラジオボタンやチェックボックスのグループの説明が置かれます。これは上の例に示されています。
### チェックボックス
@@ -142,11 +148,11 @@ _下記のスクリーンショットは macOS での Firefox 71 と Safari、
```
-下記のスクリーンショットは macOS での Firefox 71 と Safari、および Windows 10 の Chrome 79 と Edge 18 において、チェックボックスが既定の場合、フォーカスされた場合、無効にされた場合を示しています。
+以下のスクリーンショットは、既定、フォーカス、無効の各状態のチェックボックスを示しています。既定と無効の状態のチェックボックスはチェックされた状態で表示され ています。一方、フォーカスの状態では、チェックボックスはチェックされておらず、その周りにフォーカスのリングがあります。
-![Mac での Firefox 71 および Safari 13 と、 Windows 10 での Chrome 79 および Edge 18 の既定、フォーカス、無効状態のチェックボックス](checkboxes.png)
+![macOS の Chrome 115 での既定、フォーカス、無効のチェックボックス](checkboxes.png)
-> **メモ:** チェックボックスやラジオボタンで読み込み時に [`checked`](/ja/docs/Web/HTML/Element/input/checkbox#attr-checked) 属性が付いていれば、チェック状態が解除されても {{cssxref(':default')}} 擬似クラスに一致します。現在チェックされているものは `{{cssxref(':checked')}}` 擬似クラスに一致します。
+> **メモ:** チェックボックスやラジオボタンで読み込み時に [`checked`](/ja/docs/Web/HTML/Element/input/checkbox#checked) 属性が付いていれば、チェック状態が解除されても {{cssxref(':default')}} 擬似クラスに一致します。現在チェックされているものは {{cssxref(':checked')}} 擬似クラスに一致します。
チェックボックスにはオンとオフになるという性質があるため、チェックボックスはトグルボタンと考えられており、多くの開発者やデザイナーが既定のチェックボックスのスタイルを拡張して、トグルスイッチのように見えるボタンを作成しています。[ここで動作する例を](https://mdn.github.io/learning-area/html/forms/toggle-switch-example/)見ることができます([ソースコード](https://github.com/mdn/learning-area/blob/main/html/forms/toggle-switch-example/index.html)も見られます)。
@@ -155,7 +161,7 @@ _下記のスクリーンショットは macOS での Firefox 71 と Safari、
ラジオボタンは、 {{HTMLElement("input")}} 要素の [`type`](/ja/docs/Web/HTML/Element/input#type) 属性を `radio` に設定して生成します。
```html
-
+
```
複数のラジオボタンを結びつけることができます。 [`name`](/ja/docs/Web/HTML/Element/input#name) 属性の値が同じであれば、同じグループのボタンであるとみなされます。グループ内のボタンは同時に一つしかチェックできません。つまり、あるボタンがチェックされると、他のボタンは自動的にチェックが外されます。フォームが送信される際には、チェックされたラジオボタンの値のみが送信されます。一つもチェックされていない場合、ラジオボタンのグループ全体が未知の状態であるとみなされ、値はフォームと共に送信されません。同じ名前のグループのラジオボタンの一つがチェックされると、ユーザーはフォームをリセットせずに、すべてのボタンのチェックを外すことはできません。
@@ -180,9 +186,9 @@ _下記のスクリーンショットは macOS での Firefox 71 と Safari、
```
-下記のスクリーンショットは macOS での Firefox 71 と Safari、および Windows 10 の Chrome 79 と Edge 18 において、ラジオボタンがチェックされていない場合といる場合、フォーカスがある場合、無効にされていてチェックされていない場合といる場合を示しています。
+以下のスクリーンショットでは、既定と無効のラジオボタンがチェックされた状態で、フォーカスされたラジオボタンがチェックされていない状態で示されています。
-![Mac の Firefox 71 と Safari 13 および Windows 10 の Chrome 79 と Edge 18 のラジオボタン](radios.png)
+![macOS の chrome 115 の既定、フォーカス、無効のラジオボタン](radios.png)
## 実際のボタン
@@ -193,10 +199,50 @@ _下記のスクリーンショットは macOS での Firefox 71 と Safari、
- `reset`
- : すべてのフォームウィジェットを既定値にリセットします。
- `button`
- - : 自動的な効果のないボタンで、 JavaScript コードを用いてカスタマイズできるものです。
+ - : 自動的な効果のないボタンで、JavaScript コードを用いてカスタマイズできるものです。
また、ボタンそのものを示す {{htmlelement("button")}} 要素もあります。これは `type` 属性に `submit`, `reset`, `button` の値を取り、上記の 3 つの ` ` 型を模倣できます。この 2 つの主な違いは、実際の `` 要素の方がはるかにスタイル付けしやすいことです。
+```html
+
+
+
+
+このフォームを送信
+このフォームをリセット
+JavaScript なしでは何もしない
+```
+
+```html hidden
+
+```
+
+```css hidden
+button,
+input {
+ display: none;
+}
+.buttondemo button,
+.buttondemo input {
+ all: revert;
+}
+```
+
+{{ EmbedLiveSample('Actual_buttons', '500', '250') }}
+
> **メモ:** `image` 入力型もボタンとしてレンダリングされます。それについては後で触れます。
> **メモ:** この節の例は [button-examples.html](https://github.com/mdn/learning-area/blob/main/html/forms/native-form-widgets/button-examples.html) として GitHub にあります([ライブで確認できます](https://mdn.github.io/learning-area/html/forms/native-form-widgets/button-examples.html))。
@@ -227,17 +273,17 @@ _下記のスクリーンショットは macOS での Firefox 71 と Safari、
```
-ボタンは {{HTMLElement("button")}} 要素と {{HTMLElement("input")}} 要素のどちらを使用しても常に同じ動作になります。しかし、上記の例で分かるように、 {{HTMLElement("button")}} 要素は中身として HTML を使用することができ、これが `` の開始・終了タグの間に挿入されます。一方で{{HTMLElement("input")}} 要素は空要素です。つまり `value` 属性に中身が挿入され、したがってプレーンテキストのコンテンツのみ使用できます。
+ボタンは {{HTMLElement("button")}} 要素と {{HTMLElement("input")}} 要素のどちらを使用しても常に同じ動作になります。しかし、上記の例で分かるように、 {{HTMLElement("button")}} 要素は中身として HTML を、`` の開始・終了タグの間に挿入して使用することができます。一方で {{HTMLElement("input")}} 要素は{{glossary("void element", "空要素")}}です。つまり `value` 属性に中身が挿入され、したがってプレーンテキストのコンテンツのみ使用できます。
-下記の例は macOS での Firefox 71 と Safari 13、および Windows 10 の Chrome 79 と Edge 18 にて、ボタンの既定、フォーカス、無効状態を示しています。
+次のスクリーンショットは、既定、フォーカス、無効の各状態のボタンを示しています。フォーカス状態では、ボタンの周りにフォーカスリングがあり、無効状態では、ボタンはグレーアウトしています。
-![Mac 版の Firefox 71 と Safari 13、 Windows 版の Chrome 79 と Edge 18 の既定、フォーカス、無効状態の button 入力型](buttons.png)
+![macOS の Chrome 115 の既定、フォーカス、無効の各状態のボタン](buttons.png)
### 画像ボタン
**画像ボタン**コントロールは {{HTMLElement("img")}} 要素とまったく同じように表示されますが、ユーザーがクリックすると送信ボタン(前述)のように動作します。
-画像ボタンは、 {{HTMLElement("input")}} 要素の[`type`](/ja/docs/Web/HTML/Element/input#type) 属性を `image` に設定することで作成します。この要素は {{HTMLElement("img")}} 要素とまったく同じ属性に対応しており、さらに他のフォームボタンが対応している属性にもすべて対応しています。
+画像ボタンは、 {{HTMLElement("input")}} 要素の [`type`](/ja/docs/Web/HTML/Element/input#type) 属性を `image` に設定することで作成します。この要素は {{HTMLElement("img")}} 要素とまったく同じ属性に対応しており、さらに他のフォームボタンが対応している属性にもすべて対応しています。
```html
@@ -250,7 +296,7 @@ _下記のスクリーンショットは macOS での Firefox 71 と Safari、
サンプルをご覧ください。フォームの画像上の座標 (123, 456) でクリックすると、 `get` メソッド経由で送信されて、以下のような値の追加された URL が送信されます。
-```
+```url
http://foo.com?pos.x=123&pos.y=456
```
@@ -262,7 +308,7 @@ http://foo.com?pos.x=123&pos.y=456
[ファイルピッカーウィジェット](/ja/docs/Web/HTML/Element/input/file)を作成するには、 {{HTMLElement("input")}} 要素の [`type`](/ja/docs/Web/HTML/Element/input#type) 属性を `file` に設定します。 [`accept`](/ja/docs/Web/HTML/Element/input#accept) 属性を使用して、受け入れるファイルの種類を制限することができます。加えて、ユーザーが複数のファイルを選択できるようにしたい場合は、 [`multiple`](/ja/docs/Web/HTML/Element/input#multiple) 属性を付加します。
-#### 例
+### 例
以下の例では、画像ファイルを要求するファイルピッカーを作成しています。ユーザーは複数のファイルを指定できます。
@@ -278,6 +324,10 @@ http://foo.com?pos.x=123&pos.y=456
```
+以下のスクリーンショットは、ファイルが選択されていないときのファイルピッカーウィジェットの既定、フォーカス、無効の各状態を示しています。
+
+![macOS の Chrome 115 で、ファイルピッカーウィジェットの既定、フォーカス、無効の状態](filepickers.png)
+
## 共通の属性
フォームコントロールの定義に使われる要素の多くは、それぞれ固有の属性を持っています。しかし、すべてのフォーム要素に共通する属性があります。これらの属性のいくつかはすでに見たことがあると思いますが、参考までに共通の属性を以下に列挙します。
@@ -343,10 +393,16 @@ http://foo.com?pos.x=123&pos.y=456
## スキルテスト
-この記事の最後に到着しましたが、もっとも大事な情報を覚えていますか? 次に進む前に、この情報を保持しているか検証するテストがあります — [Test your skills: Basic controls](/ja/docs/Learn/Forms/Test_your_skills:_Basic_controls) を見てください。
+この記事の最後に達しましたが、最も大切な情報を覚えていますか?次に進む前に、この情報が身に付いたかどうかを確認するテストがあります。[スキルテスト: 基本的なコントロール](/ja/docs/Learn/Forms/Test_your_skills:_Basic_controls)を見てください。
## まとめ
この記事では古い入力型を扱ってきました。 — これは HTML の初期の頃に導入された元からのもので、すべてのブラウザーがよく対応しています。次の節では、もっと新しい `type` 属性の値を見ていきます。
{{PreviousMenuNext("Learn/Forms/How_to_structure_a_web_form", "Learn/Forms/HTML5_input_types", "Learn/Forms")}}
+
+### 高度なトピック
+
+- [カスタムフォームコントロールの作成方法](/ja/docs/Learn/Forms/How_to_build_custom_form_controls)
+- [JavaScript によるフォームの送信](/ja/docs/Learn/Forms/Sending_forms_through_JavaScript)
+- [フォームウィジェット向けのプロパティの互換性一覧表](/ja/docs/Learn/Forms/Property_compatibility_table_for_form_controls)
diff --git a/files/ja/learn/forms/form_validation/index.md b/files/ja/learn/forms/form_validation/index.md
index 117dc00b976a91..e14c8ca7f9cd81 100644
--- a/files/ja/learn/forms/form_validation/index.md
+++ b/files/ja/learn/forms/form_validation/index.md
@@ -2,7 +2,7 @@
title: クライアント側のフォーム検証
slug: Learn/Forms/Form_validation
l10n:
- sourceCommit: af0e71822122feda89495ab9215c131bbe34d65c
+ sourceCommit: bec03e8b1bcf690b86b30bbb23575ecf139bc47d
---
{{LearnSidebar}}{{PreviousMenuNext("Learn/Forms/UI_pseudo-classes", "Learn/Forms/Sending_and_retrieving_form_data", "Learn/HTML/Forms")}}
@@ -78,7 +78,7 @@ l10n:
- [`minlength`](/ja/docs/Web/HTML/Attributes/minlength) と [`maxlength`](/ja/docs/Web/HTML/Attributes/maxlength): テキストデータ(文字列)の最小・最大長を指定します。
- [`min`](/ja/docs/Web/HTML/Attributes/min) と [`max`](/ja/docs/Web/HTML/Attributes/max): 数値入力型の最小値、最大値を指定します。
- [`type`](/ja/docs/Web/HTML/Element/input#input_の型): データを数字にするか、メールアドレスにするか、その他のプリセットされた特定の型にするかを指定します。
-- [`pattern`](/ja/docs/Web/HTML/Attributes/pattern): データが指定された[正規表現](/ja/docs/Web/JavaScript/Guide/Regular_Expressions)に一致するかどうかを指定します。
+- [`pattern`](/ja/docs/Web/HTML/Attributes/pattern): データが指定された[正規表現](/ja/docs/Web/JavaScript/Guide/Regular_expressions)に一致するかどうかを指定します。
入力データをこの指定されたルールに基いて検証します。検証にパスすれば妥当で検証にパスしなければ妥当ではないと考えます。
@@ -174,7 +174,7 @@ input:valid {
### 正規表現での検証
-もう一つとてもよく使われる機能は [`pattern`](/ja/docs/Web/HTML/Attributes/pattern) 属性で、値として[正規表現](/ja/docs/Web/JavaScript/Guide/Regular_Expressions)を取ります。
+もう一つとてもよく使われる機能は [`pattern`](/ja/docs/Web/HTML/Attributes/pattern) 属性で、値として[正規表現](/ja/docs/Web/JavaScript/Guide/Regular_expressions)を取ります。
正規表現 (regexp) はテキスト文字列の中の文字の組み合わせに一致させるために使うことができるため、フォームの検証には理想的であり、JavaScript と同様に様々な利用ができます。
正規表現はかなり複雑です。このモジュールでは正規表現のすべてを説明する意図はありません。
@@ -187,7 +187,7 @@ input:valid {
- `a|b` — 一文字の `a` または `b` に一致する
- `abc|xyz` — `abc` の並びまたは `xyz` の並びに一致する。これは `abcxyz` や `a` や `y` などには一致しない。
-正規表現には多くの組合せがあるので例はここまでとします。完全な一覧や多くの例は、[正規表現](/ja/docs/Web/JavaScript/Guide/Regular_Expressions)のドキュメントを参照してください。
+正規表現には多くの組合せがあるので例はここまでとします。完全な一覧や多くの例は、[正規表現](/ja/docs/Web/JavaScript/Guide/Regular_expressions)のドキュメントを参照してください。
使用例を実装しましょう。HTML を更新して [`pattern`](/ja/docs/Web/HTML/Attributes/pattern) 属性を追加しましょう。
@@ -233,7 +233,7 @@ input:valid {
フィールドが値をもっており、その文字数が [`minlength`](/ja/docs/Web/HTML/Attributes/minlength) の値より少ないか、文字数が [`maxlength`](/ja/docs/Web/HTML/Attributes/maxlength) の値より大きい場合は、フィールドは不正です。
ブラウザーはよくテキストフィールドに期待している以上に入力させないことがあります。単に `maxlength` を使うよりも良いユーザーエクスペリエンスは、入力文字数のフィードバックを提供してサイズ以下でコンテンツを編集できるようにもしておくことです。
-例えば、Twitter の文字入力の制限があります。これは JavaScript と [`maxlength` を使った解決策](https://github.com/mimo84/bootstrap-maxlength)の組み合わせ実現できます。
+この例のひとつが、ソーシャルメディアに投稿する際の文字数制限です。これは JavaScript と [`maxlength` を使った解決策](https://github.com/mimo84/bootstrap-maxlength)の組み合わせ実現できます。
### 入力欄の値に制約を加える
@@ -299,54 +299,73 @@ HTML の内蔵検証機能の使い方を示す例の全体を示します。ま
```html
```
-この HTML をスタイル設定する CSS は:
+この HTML をスタイル設定する CSS は次の通りです。
```css
form {
@@ -383,7 +402,7 @@ input:focus:invalid {
入力値と、それをサポートする入力型の制約に使える属性の完全なリストは、[検証関連属性](/ja/docs/Web/HTML/Constraint_validation#検証関連属性)を見てください。
-> **メモ:** GitHub の [fruit-length.html](https://mdn.github.io/learning-area/html/forms/form-validation/fruit-length.html) でライブサンプルを見ることができます([ソースコード](https://github.com/mdn/learning-area/blob/main/html/forms/form-validation/fruit-pattern.html)も見てください)
+> **メモ:** GitHub の [full-example.html](https://mdn.github.io/learning-area/html/forms/form-validation/full-example.html) でライブサンプルを見ることができます([ソースコード](https://github.com/mdn/learning-area/blob/main/html/forms/form-validation/full-example.html)も見てください)
## JavaScript を使用したフォーム検証
@@ -432,9 +451,10 @@ input:focus:invalid {
- CSS でメッセージの表示方法を変更するための標準的な方法がありません。
- メッセージはブラウザーのロケールに依存しており、ある言語のページでエラーメッセージが別の言語で表示されることがあります。これは下記の Firefox スクリーンショットで見ることができます。
-![Example of an error message with Firefox in French on an English page](error-firefox-win7.png)
+![英語のページにフランス語で表示される Firefox のエラーメッセージの例](error-firefox-win7.png)
-これらのメッセージの外見やテキストを変更するには、制約検証 API の最も一般的なユースケースです。この使用法を例で詳しく見てみましょう。
+これらのメッセージの外見やテキストを変更するには、制約検証 API の最も一般的なユースケースです。
+この使用法を例で詳しく見てみましょう。
いくつかの簡単な HTML で開始します (空の HTML ファイルにこれを入力します; もしよければ、[fruit-start.html](https://github.com/mdn/learning-area/blob/main/html/forms/form-validation/fruit-start.html) を基礎としてもいいでしょう):
@@ -466,9 +486,9 @@ email.addEventListener("input", (event) => {
`validity.typeMismatch` が `false`の場合、空文字で `setCustomValidity()` メソッドを呼び出します。これは入力が妥当となり、フォームが送信されます。
-次のもので試すことができます。
+以下で試すことができます。
-{{EmbedGHLiveSample("learning-area/html/forms/form-validation/custom-error-message.html", '100%', 80)}}
+{{EmbedGHLiveSample("learning-area/html/forms/form-validation/custom-error-message.html", '100%', 120)}}
> **メモ:** この例は GitHub の [custom-error-message.html](https://mdn.github.io/learning-area/html/forms/form-validation/custom-error-message.html) で見ることができます ([ソースコード](https://github.com/mdn/learning-area/blob/main/html/forms/form-validation/custom-error-message.html)も見てください)。
@@ -495,7 +515,7 @@ email.addEventListener("input", (event) => {
検証する入力は [` `](/ja/docs/Web/HTML/Element/input/email)で、これは `required` (入力必須) で、8 文字の `minlength` があります。これをわれわれのコードで確認して、それぞれカスタムエラーメッセージを表示させてみましょう。
-`` 要素の中にエラーメッセージを表示させようとしています。 ``にセットされた [`aria-live`](/ja/docs/Accessibility/ARIA/ARIA_Live_Regions) 属性は、スクリーンリーダーのような支援技術を使用している人々を含む皆に、独自のエラーメッセージを提示するようにします。
+`` 要素の中にエラーメッセージを表示させようとしています。 ``にセットされた [`aria-live`](/ja/docs/Web/Accessibility/ARIA/ARIA_Live_Regions) 属性は、スクリーンリーダーのような支援技術を使用している人々を含む皆に、独自のエラーメッセージを提示するようにします。
> **メモ:** ここでの要点は、フォームに `novalidate` 属性をつけると、フォームがエラーメッセージのバブルを表示するのを停止して、その代わり DOM 内にカスタムエラーメッセージを選択した方法で表示させられることです。
@@ -782,7 +802,7 @@ form.addEventListener("submit", (event) => {
## スキルテスト
-この記事の最後に到着しましたが、最も大事な情報を覚えていますか? 次に進む前に、この情報を保持しているか検証するテストがあります — [スキルテスト: フォーム検証](/ja/docs/Learn/Forms/Test_your_skills:_Form_validation) を見てください。
+この記事の最後に達しましたが、最も大切な情報を覚えていますか?次に進む前に、この情報が身に付いたかどうかを確認するテストがあります。[スキルテスト: フォーム検証](/ja/docs/Learn/Forms/Test_your_skills:_Form_validation) を見てください。
## まとめ
diff --git a/files/ja/learn/forms/how_to_structure_a_web_form/index.md b/files/ja/learn/forms/how_to_structure_a_web_form/index.md
index 91600ee13cdbcf..3c3052e81bb840 100644
--- a/files/ja/learn/forms/how_to_structure_a_web_form/index.md
+++ b/files/ja/learn/forms/how_to_structure_a_web_form/index.md
@@ -2,7 +2,7 @@
title: フォームの構築方法
slug: Learn/Forms/How_to_structure_a_web_form
l10n:
- sourceCommit: 456818a08b697e125ddb765d8f18020bc80c9747
+ sourceCommit: ccec5393a2b1bbddfdfc1c1d71b076c6ddd3942f
---
{{LearnSidebar}}{{PreviousMenuNext("Learn/Forms/Your_first_form", "Learn/Forms/Basic_native_form_controls", "Learn/Forms")}}
@@ -14,7 +14,6 @@ l10n:
前提条件:
- 基本的なコンピューターリテラシーと、
HTML の基本的な理解 .
@@ -134,15 +133,15 @@ l10n:
@@ -150,7 +149,7 @@ l10n:
Name: *
-
+
```
@@ -174,7 +173,7 @@ l10n:
サンプルでわかるように、ラベルとそのウィジェットを {{HTMLElement("ul")}} や {{HTMLElement("ol")}} リストの中の {{HTMLElement("li")}} 要素で包み込むのが一般的な慣習です。HTML リストにあるように、{{HTMLElement("p")}} 要素と {{HTMLElement("div")}} 要素も良く使われます。リストは複数のチェックボックスやラジオボタンを構造化するのに最もよく使われます。
-{{HTMLElement("fieldset")}} 要素に加えて、複雑なフォームの構築に HTML の見出し (例{{htmlelement("h1")}}, {{htmlelement("h2")}}) やセクション (例 {{htmlelement("section")}}) を使うことも一般的です。
+{{HTMLElement("fieldset")}} 要素に加えて、複雑なフォームの構築に HTML の見出し (例{{htmlelement("Heading_Elements", "h1")}}, {{htmlelement("Heading_Elements", "h2")}}) やセクション (例 {{htmlelement("section")}}) を使うことも一般的です。
とりわけ、コーディングスタイルがどうあるのが心地よく、どれがアクセシブルで使いやすいフォームとなるのかを見つけるのはあなた次第です。別の機能セクションは別の {{htmlelement("section")}} 要素と、ラジオボタンを含む {{htmlelement("fieldset")}} にそれぞれ分けておくべきです。
@@ -182,31 +181,25 @@ l10n:
これらのアイデアを実践し、もう少し複雑なフォーム構造、つまり支払いフォームを作成しましょう。このフォームはあなたがまだ理解していないかもしれないウィジェットタイプをいくつも含みますが、今はそのことを心配しないでください。次の記事 ([基本的なネイティブフォームコントロール](/ja/docs/Learn/Forms/Basic_native_form_controls)) でそれらがどのように機能するのかがわかります。今のところ、以下の説明に沿って説明を注意深く読み、フォームを構成するためにどのラッパー要素を使用しているか、そしてその理由を理解することから始めてください。
-1. あらかじめ、[空のテンプレートファイル](https://github.com/mdn/learning-area/blob/master/html/introduction-to-html/getting-started/index.html)と[お支払いフォームの CSS](https://github.com/mdn/learning-area/blob/master/html/forms/html-form-structure/payment-form.css) のローカルコピーをコンピューターの新しいディレクトリーに作成します。
-2. まず最初に、HTML {{htmlelement("head")}} 内に次の行を追加して CSS を HTML に適用します。
+1. あらかじめ、[空のテンプレートファイル](https://github.com/mdn/learning-area/blob/main/html/introduction-to-html/getting-started/index.html)のローカルコピーをコンピューターの新しいディレクトリーに作成します。
- ```html
-
- ```
-
-3. 次に、外側の {{htmlelement("form")}} 要素を追加してフォームを作成します:
+2. 次に、外側の {{htmlelement("form")}} 要素を追加してフォームを作成します:
- ```html
-
+ ```html-nolint
+
```
-4. ` ` タグ内に、必須フィールドにマークを付ける方法をユーザーに通知するための見出しと段落を追加します:
+3. ` ` タグ内に、必須フィールドにマークを付ける方法をユーザーに通知するための見出しと段落を追加します:
- ```html
+ ```html-nolint
Payment form
Required fields are followed by
- * .
+ * .
```
-5. 次に、前のエントリーの下に、より大きなコードセクションをフォームに追加します。ここでは、連絡先情報フィールドを個別の {{htmlelement("section")}} 要素内にラップしていることがわかります。さらに、2 つのラジオボタンのセットがあり、それぞれ独自のリスト ({{htmlelement("li")}}) 要素の中に入れています。最後に、2 つの標準テキスト {{htmlelement("input")}} とそれに関連する {{htmlelement("label")}} 要素があり、それぞれ {{htmlelement("p")}} の内側に含まれていて、パスワードを入力するためのパスワード入力があります。フォームにこのコードを追加してください:
+4. 次に、前のエントリーの下に、より大きなコードセクションをフォームに追加します。ここでは、連絡先情報フィールドを個別の {{htmlelement("section")}} 要素内にラップしていることがわかります。さらに、2 つのラジオボタンのセットがあり、それぞれ独自のリスト ({{htmlelement("li")}}) 要素の中に入れています。最後に、2 つの標準テキスト {{htmlelement("input")}} とそれに関連する {{htmlelement("label")}} 要素があり、それぞれ {{htmlelement("p")}} の内側に含まれていて、パスワードを入力するためのパスワード入力があります。フォームにこのコードを追加してください:
```html
```
-6. それでは、フォームの 2 番目の `
+ ```
+
+ ```css hidden
+ h1 {
+ margin-top: 0;
+ }
+
+ ul {
+ margin: 0;
+ padding: 0;
+ list-style: none;
+ }
+
+ form {
+ margin: 0 auto;
+ width: 400px;
+ padding: 1em;
+ border: 1px solid #ccc;
+ border-radius: 1em;
+ }
+
+ div + div {
+ margin-top: 1em;
+ }
+
+ label span {
+ display: inline-block;
+ text-align: right;
+ }
+
+ input,
+ textarea {
+ font: 1em sans-serif;
+ width: 250px;
+ box-sizing: border-box;
+ border: 1px solid #999;
+ }
+
+ input[type="checkbox"],
+ input[type="radio"] {
+ width: auto;
+ border: none;
+ }
+
+ input:focus,
+ textarea:focus {
+ border-color: #000;
+ }
+
+ textarea {
+ vertical-align: top;
+ height: 5em;
+ resize: vertical;
+ }
+
+ fieldset {
+ width: 250px;
+ box-sizing: border-box;
+ border: 1px solid #999;
+ }
+
+ button {
+ margin: 20px 0 0 0;
+ }
+
+ label {
+ position: relative;
+ display: inline-block;
+ }
+
+ p label {
+ width: 100%;
+ }
+
+ label em {
+ position: absolute;
+ right: 5px;
+ top: 20px;
+ }
```
-完成したフォームは以下のように動作しています (GitHub でも確認できます。payment-form.html [ソース](https://github.com/mdn/learning-area/blob/master/html/forms/html-form-structure/payment-form.html)を参照して[ライブ実行](https://mdn.github.io/learning-area/html/forms/html-form-structure/payment-form.html)してください)。
+下記では完了したフォームに追加 CSS を適用しました。フォームの外観を変更したい場合は、[例](/ja/docs/Learn/Forms/How_to_structure_a_web_form/Example)からスタイルをコピーするか、[ウェブフォームのスタイル設定](/ja/docs/Learn/Forms/Styling_web_forms)を参照してください。
-{{EmbedLiveSample("A_payment_form","100%",620, "", "Learn/Forms/How_to_structure_a_web_form/Example")}}
+{{EmbedLiveSample("active_learning_building_a_form_structure","100%",620)}}
-## あなたのスキルをテストしてみましょう!
+## スキルをテスト
-この記事はここまでですが、最も重要な情報を覚えていますか? 先に進む前に、この情報を保持しているかどうかを確認するためのテストがあります — [Test your skills: Form structure](/ja/docs/Learn/Forms/Test_your_skills:_Form_structure) を参照してください。
+この記事の最後に達しましたが、最も大切な情報を覚えていますか?次に進む前に、この情報が身に付いたかどうかを確認するテストがあります。[スキルテスト: フォームの構築](/ja/docs/Learn/Forms/Test_your_skills:_Form_structure)を参照してください。
## まとめ
@@ -316,3 +408,9 @@ l10n:
- [A List Apart: _Sensible Forms: A Form Usability Checklist_](https://alistapart.com/article/sensibleforms/)
{{PreviousMenuNext("Learn/Forms/Your_first_form", "Learn/Forms/Basic_native_form_controls", "Learn/Forms")}}
+
+### 高度なトピック
+
+- [カスタムフォームコントロールの作成方法](/ja/docs/Learn/Forms/How_to_build_custom_form_controls)
+- [JavaScript によるフォームの送信](/ja/docs/Learn/Forms/Sending_forms_through_JavaScript)
+- [フォームウィジェット向けのプロパティの互換性一覧表](/ja/docs/Learn/Forms/Property_compatibility_table_for_form_controls)
diff --git a/files/ja/learn/forms/html5_input_types/index.md b/files/ja/learn/forms/html5_input_types/index.md
index 0f233188707a9c..113cf515b43d1a 100644
--- a/files/ja/learn/forms/html5_input_types/index.md
+++ b/files/ja/learn/forms/html5_input_types/index.md
@@ -2,7 +2,7 @@
title: HTML5 の入力型
slug: Learn/Forms/HTML5_input_types
l10n:
- sourceCommit: fead53324d271aa05e93b369966a773bb328c64b
+ sourceCommit: 4bddde3e2b86234eb4594809082873fc5bf00ee3
---
{{LearnSidebar}}{{PreviousMenuNext("Learn/Forms/Basic_native_form_controls", "Learn/Forms/Other_form_controls", "Learn/Forms")}}
@@ -14,7 +14,7 @@ l10n:
前提条件:
- コンピューターリテラシーの基本と、
+ 基本的な
HTML の理解 。
@@ -29,13 +29,13 @@ l10n:
-> **メモ:** この記事のたいていの機能はブラウザー間で広くを対応されています。例外は注記しておきます。ブラウザーサポートについての詳細は、[HTML フォーム要素のリファレンス](/ja/docs/Web/HTML/Element#フォーム)、特に [\ 型](/ja/docs/Web/HTML/Element/input)リファレンスを見てください。
+> **メモ:** この記事のたいていの機能はブラウザー間で広く対応されています。例外は注記しておきます。ブラウザーの対応についての詳細は、[HTML フォーム要素のリファレンス](/ja/docs/Web/HTML/Element#フォーム)、特に [\ 型](/ja/docs/Web/HTML/Element/input)リファレンスを見てください。
HTML フォームコントロールの見た目はデザイナーの仕様により全く異なるため、ウェブ開発者はときどき独自のフォームコントロールを作成します。これは上級のチュートリアル — [カスタムフォームウィジェットの作成方法](/ja/docs/Learn/Forms/How_to_build_custom_form_controls) — で扱います。
## メールアドレスフィールド
-このフィールド型は [`type`](/ja/docs/Web/HTML/Element/input#type)属性の `email` の値でセットされます:
+このフィールド型は [`type`](/ja/docs/Web/HTML/Element/input#type) 属性の `email` の値に設定されます。
```html
@@ -51,11 +51,11 @@ HTML フォームコントロールの見た目はデザイナーの仕様によ
```
-いくつかの端末 — 特にスマートフォンのような動的キーボードつきのタッチ端末 — では、 `@` キーを含むメールアドレス入力に適した別の仮想キーパッドが現れることもあります。Android 版 Firefox のキーボードの例として下記のスクリーンショットを見てください:
+いくつかの端末 — 特にスマートフォンのような動的キーボードつきのタッチ端末 — では、 `@` キーを含むメールアドレス入力に適した別の仮想キーパッドが現れることもあります。Android 版 Firefox のキーボードの例として下記のスクリーンショットを見てください。
-![既定でアット記号が付いている、 Android 版 Firefox のメールアドレス入力キーボード](fx-android-email-type-keyboard.jpg)
+![既定でアットマークが付いている、 Android 版 Firefox のメールアドレス入力キーボード](fx-android-email-type-keyboard.jpg)
-> **メモ:** 基本的なテキスト入力型の例は [basic input examples](https://mdn.github.io/learning-area/html/forms/basic-input-examples/) にあります([ソースコード](https://github.com/mdn/learning-area/blob/main/html/forms/basic-input-examples/index.html) も見てください)。
+> **メモ:** 基本的なテキスト入力型の例は [basic input の例](https://mdn.github.io/learning-area/html/forms/basic-input-examples/)にあります([ソースコード](https://github.com/mdn/learning-area/blob/main/html/forms/basic-input-examples/index.html) も見てください)。
これは新しい入力型を使う良い理由であり、こうした端末のユーザーの使い勝手を向上させます。
@@ -65,7 +65,7 @@ HTML フォームコントロールの見た目はデザイナーの仕様によ
しかしこれは完全なセキュリティ対策と*考えるべきではありません*! アプリは送信データのセキュリティ確認をクライアント側と同様に*サーバー側*でも行うべきで、なぜならクライアント側の検証は簡単にオフにできるため悪意のあるユーザーは簡単にサーバーに不正なデータを送信できるためです。起こりうることについては[ウェブサイトセキュリティ](/ja/docs/Learn/Server-side/First_steps/Website_security)を読んで下さい。サーバー側の検証を実装するのはこのモジュールの範囲を超えていますが、記憶しておくべきです。
-既定の制約では `a@b` は有効なメールアドレスです。これは既定では `email` 入力型はイントラネットのメールアドレスを許可しているためです。異なる検証動作を実装するには、[`pattern`](/ja/docs/Web/HTML/Attributes/pattern) 属性を用いたり、エラーメッセージをカスタムできます。この機能の使い方は後の [クライアントサイド検証](/ja/docs/Learn/Forms/Form_validation)の記事で話します。
+既定の制約では `a@b` は有効なメールアドレスです。これは既定では `email` 入力型はイントラネットのメールアドレスを許可しているためです。異なる検証動作を実装するには、[`pattern`](/ja/docs/Web/HTML/Attributes/pattern) 属性を用いたり、エラーメッセージをカスタムできます。この機能の使い方は後の [クライアント側の検証](/ja/docs/Learn/Forms/Form_validation)の記事で話します。
> **メモ:** 入力データがメールアドレスでない場合、{{cssxref(':invalid')}} 擬似クラスがマッチして、{{domxref('validityState.typeMismatch')}} プロパティは `true` を返します。
@@ -101,7 +101,7 @@ HTML フォームコントロールの見た目はデザイナーの仕様によ
世界中にはいろいろな電話番号の書式があるため、このフィールドはユーザーが入力した値に制約を一切つけません(つまり、文字が入っていることもありえます)。
-前に触れた通り、 [`pattern`](/ja/docs/Web/HTML/Attributes/pattern) 属性が制約を強化するのに使われます。これは[クライアントサイド検証](/ja/docs/Learn/Forms/Form_validation)で学びます。
+前に触れた通り、 [`pattern`](/ja/docs/Web/HTML/Attributes/pattern) 属性が制約を強化するのに使われます。これは[クライアント側検証](/ja/docs/Learn/Forms/Form_validation)で学びます。
## URL フィールド
@@ -127,7 +127,7 @@ URL を入力するための特殊な型のフィールドは、 `url` の値を
![Firefox for Android email keyboard, with ampersand displayed by default.](fx-android-number-type-keyboard.jpg)
-`number` の入力型では、[`min`](/ja/docs/Web/HTML/Element/input#min) と [`max`](/ja/docs/Web/HTML/Element/input#max) 属性をセットすることで最小値と最大値の制約をつけることができます。
+`number` 入力型では、[`min`](/ja/docs/Web/HTML/Element/input#min) と [`max`](/ja/docs/Web/HTML/Element/input#max) 属性を設定することで最小値と最大値の制約をつけることができます。
スピナーボタンを押すことで増減させる増分を接とするのに `step` 属性を使うこともできます。既定では、 number 入力型は数値が整数値の場合のみ検証します。浮動小数を許可するには、 [`step="any"`](/ja/docs/Web/HTML/Attributes/step) を指定します。省略された場合、`step` 値は既定で `1` となり、つまりすべての数値が有効です。
@@ -147,13 +147,13 @@ URL を入力するための特殊な型のフィールドは、 `url` の値を
## スライダーコントロール
-数字を選ぶもう1つの方法は**スライダー**です。家造りのようなサイトで資産の価格をフィルターするのによく見ることでしょう。これを示す例をライブで見てみましょう。
+数字を選ぶもう 1 つの方法は**スライダー**です。家造りのようなサイトで資産の価格をフィルターするのによく見ることでしょう。これを示す例をライブで見てみましょう。
{{EmbedGHLiveSample("learning-area/html/forms/range-example/index.html", '100%', 200)}}
使用からすると、スライダーはテキストフィールドより不正確です。このため、*正確な*値が必ずしも重要でない数値の選択に使われます。
-スライダーは {{HTMLElement("input")}} に [`type`](/ja/docs/Web/HTML/Element/input#type) 属性を `range` にセットして作成します。スライダーはマウスやタッチや、キーパッドの矢印で移動できます。
+スライダーは {{HTMLElement("input")}} の [`type`](/ja/docs/Web/HTML/Element/input#type) 属性を `range` にセットして作成します。スライダーはマウスやタッチや、キーパッドの矢印で移動できます。
スライダーを適切に設定するのは重要です。そのためには、それぞれ最小、最大、増分値を設定する [`min`](/ja/docs/Web/HTML/Attributes/min), [`max`](/ja/docs/Web/HTML/Attributes/max), [`step`](/ja/docs/Web/HTML/Attributes/step) 属性を設定するのを強くお奨めします。
@@ -264,9 +264,7 @@ HTML の日付コントロールは、カレンダーウィジェットを提供
```
-対応しているいる場合、色コントロールは OS の既定の色選択機能を呼び出して選択できるようにする傾向があります。下記のスクリーンショットは macOS の Firefox の例です。
-
-![macOS 版 Firefox の色選択のスクリーンショットです。](fx-macos-color.jpg)
+通常、色コントロールをクリックすると、選択するためにオペレーティングシステムで既定の色選択機能が表示されます。
次のライブサンプルも試してみてください。
@@ -276,10 +274,16 @@ HTML の日付コントロールは、カレンダーウィジェットを提供
## スキルテスト
-この記事の最後に到着しましたが、最も大事な情報を覚えていますか?次に進む前に、この情報を保持しているか検証するテストがあります — [Test your skills: HTML5 controls](/ja/docs/Learn/Forms/Test_your_skills:_HTML5_controls) を見てください。
+この記事の最後に達しましたが、最も大切な情報を覚えていますか?次に進む前に、この情報が身に付いたかどうかを確認するテストがあります。[スキルテスト: HTML5 のコントロール](/ja/docs/Learn/Forms/Test_your_skills:_HTML5_controls)を見てください。
## まとめ
-ここで HTML5 フォーム入力型の旅が終了です。動作が特殊なため簡単に分類できないその他のコントロール型も少しあって、それを知るのも大事です。次の記事で扱います。
+これで、HTML5 フォーム入力型のツアーは終わりです。他にもいくつかコントロール型があり、その動作がとても特殊なため簡単にまとめることはできませんが、知っておく必要があります。次の記事でそれらに応じて説明します。
{{PreviousMenuNext("Learn/Forms/Basic_native_form_controls", "Learn/Forms/Other_form_controls", "Learn/Forms")}}
+
+### 高度なトピック
+
+- [カスタムフォームコントロールの作成方法](/ja/docs/Learn/Forms/How_to_build_custom_form_controls)
+- [JavaScript によるフォームの送信](/ja/docs/Learn/Forms/Sending_forms_through_JavaScript)
+- [フォームウィジェット向けのプロパティの互換性一覧表](/ja/docs/Learn/Forms/Property_compatibility_table_for_form_controls)
diff --git a/files/ja/learn/forms/index.md b/files/ja/learn/forms/index.md
index 9dfc0e199a41a0..0029ddbc60e41e 100644
--- a/files/ja/learn/forms/index.md
+++ b/files/ja/learn/forms/index.md
@@ -1,80 +1,70 @@
---
-title: HTML フォーム
+title: ウェブフォームの構成要素
slug: Learn/Forms
+l10n:
+ sourceCommit: d964af13b8e50c7fa827b2116a3906af3de45243
---
{{LearnSidebar}}
このモジュールは、ウェブフォームの基本をマスターするのに役立つ一連の記事を提供しています。ウェブフォームはユーザーと対話するためのとても強力なツールです。最も一般的には、ユーザーからデータを収集したり、ユーザーがユーザーインターフェイスを操作できるようにするために使用されます。しかし、歴史的・技術的な理由から、フォームを最大限に使用する方法は必ずしも明らかではありません。以下の一覧の記事では、 HTML 構造のマークアップ、フォーム操作のスタイル、フォームデータの検証、サーバーへのデータ送信など、ウェブフォームの本質的な部分をすべて取り上げます。
-> **注目:**
->
-> #### フロントエンドのウェブ開発者になりたいですか?
->
-> これは、あなたが目標に向かって作業するために必要なすべての必須情報を含んだコースを用意しました。
->
-> [**始めましょう**](/ja/docs/Learn/Front-end_web_developer)
-
## 前提条件
-このモジュールを始める前に、少なくとも [HTML 入門](/ja/docs/Learn/HTML/Introduction_to_HTML)を一通り読んでおくべきです。ここでは簡単に理解できる[導入ガイド](#introductory_guides)が見つかり、[ネイティブフォームコントロール](/ja/docs/Learn/Forms/Basic_native_form_controls)ガイドも利用できます。
+このモジュールを始める前に、少なくとも [HTML 入門](/ja/docs/Learn/HTML/Introduction_to_HTML)を一通り読んでおくべきです。ここでは簡単に理解できる[導入ガイド](#導入ガイド)があり、[ネイティブフォームコントロール](/ja/docs/Learn/Forms/Basic_native_form_controls)ガイドも利用できます。
-しかしそれ以外のモジュールは HTML 知識よりも少し高度です — ページにフォームウィジェットを置くのは簡単ですが、高度なフォームの機能や CSS や JavaScript を使わないと実際に活用できません。このため、その他の節を見る前にまずは [CSS](/ja/docs/Learn/CSS) と [JavaScript](/ja/docs/Learn/JavaScript) を学んでおくのをお勧めします。
+しかしそれ以外のモジュールは HTML 知識よりも少し高度です。ページにフォームウィジェットを置くのは簡単ですが、高度なフォームの機能や CSS や JavaScript を使わないと実際に活用できません。このため、その他の節を見る前にまずは [CSS](/ja/docs/Learn/CSS) と [JavaScript](/ja/docs/Learn/JavaScript) を学んでおくのをお勧めします。
-上記のテキストは、ウェブフォームを HTML、CSS、JavaScript エリアに混ぜずに、独立したモジュールに置くことの良い指針です — フォーム要素は HTML 要素より複雑で、最大限利用するには、関連する CSS と JavaScript テクニックを最大限活用する。
+上記のテキストは、なぜ私たちがウェブフォームを HTML、CSS、JavaScript のトピックに混ぜるのではなく、独立したモジュールにしたかを示す良い指標です。フォーム要素は他のほとんどの HTML 要素よりも複雑であり、またフォーム要素を最大限に活用するためには、関連する CSS と JavaScript のテクニックを密接に組み合わせる必要があります。
> **メモ:** 自分のファイルを作ることができないコンピューター/タブレット/その他の端末で作業している場合、(大半の)コード例を [JSBin](https://jsbin.com/) や [Glitch](https://glitch.com/) といったオンラインコーディングプログラムで試すことができます。
## 導入ガイド
-- [初めてのウェブフォーム](/ja/docs/Learn/HTML/Forms/Your_first_HTML_form)
+- [初めてのウェブフォーム](/ja/docs/Learn/Forms/Your_first_form)
- : このシリーズの最初の記事では ウェブフォーム作成のほんの最初を提供し、それには簡単なフォームのデザインや、適切な HTML 要素で実装することや、CSS で簡単なスタイルづけをすることや、データがサーバーに送られる方法などが含まれます。
-- [HTML フォームの構築方法](/ja/docs/Learn/HTML/Forms/How_to_structure_an_HTML_form)
+- [HTML フォームの構築方法](/ja/docs/Learn/Forms/How_to_structure_a_web_form)
- : 基本的な話と共に、ここではフォームの色々な部分に構造と意味を与えるのに使う要素を詳しく見ていきます。
## どんなフォームウィジェットが利用できますか?
-- [ネイティブフォームウィジェット](/ja/docs/Learn/HTML/Forms/The_native_form_widgets)
- - : オリジナルの HTML {{htmlelement("input")}}タイプの詳細や、色々なデータ型を集めるのにどんなオプションが使えるかを見ていきます。
-- [HTML5 入力タイプ](/ja/docs/Learn/Forms/HTML5_input_types)
- - : ここでは ` ` 要素を深く見ていき、HTML5 リリースにて追加された入力タイプや、さまざまな UI コントロールとデータコレクションの改良を見ます。さらには、{{htmlelement('output')}} 要素も見ます。
+- [ネイティブフォームウィジェット](/ja/docs/Learn/Forms/Basic_native_form_controls)
+ - : オリジナルの HTML の {{htmlelement("input")}} 型の詳細や、色々なデータ型を集めるのにどんなオプションが使えるかを見ていきます。
+- [HTML5 の入力型](/ja/docs/Learn/Forms/HTML5_input_types)
+ - : ここでは ` ` 要素を深く見ていき、HTML5 リリースにて追加された入力型や、さまざまな UI コントロールとデータコレクションの改良を見ます。さらには、{{htmlelement('output')}} 要素も見ます。
- [その他のフォームコントロール](/ja/docs/Learn/Forms/Other_form_controls)
- : 次には` ` 以外のフォームコントロールと関連するツール、例えば {{htmlelement('select')}}、{{htmlelement('textarea')}}、{{htmlelement('meter')}}、{{htmlelement('progress')}} を見ていきます。
## フォームのスタイルガイド
-- [ウェブフォームをスタイリングする](/ja/docs/Learn/HTML/Forms/Styling_HTML_forms)
+- [ウェブフォームをスタイリングする](/ja/docs/Learn/Forms/Styling_web_forms)
- : この記事では基本的なスタイリング作業のために知るべき基本を含む、フォームを CSS でスタイリングするための入門を紹介します。
-- [ウェブフォームの高度なスタイリング](/ja/docs/Learn/HTML/Forms/Advanced_styling_for_HTML_forms)
+- [ウェブフォームの高度なスタイリング](/ja/docs/Learn/Forms/Advanced_form_styling)
- : ここでは、スタイルが難しい要素を扱うために必要な、さらに高度なフォームスタイリングテクニックを紹介します。
- [UI 擬似クラス](/ja/docs/Learn/Forms/UI_pseudo-classes)
- : 現在の状態に応じて制御される HTML フォームコントロールを可能とする、UI 擬似クラス の入門です。
## フォームデータを検証して送信する
-- [クライアント側のフォームデータ検証](/ja/docs/Learn/HTML/Forms/Data_form_validation)
- - : データ送信だけで充分ではありません — ユーザーがフォームに記入したデータが、我々が処理に成功するような正しいフォーマットであり、アプリケーションが破綻しないかを確認する必要があります。またユーザーが正しくフォームを記入してアプリを使うのにイライラしないよう手助けしたいです。フォーム検証はこの目的を達成するのに役立ちます — この記事では知っておくべきことを教えます。
-- [フォームデータの](/ja/docs/Learn/HTML/Forms/Sending_and_retrieving_form_data)[送信](/ja/docs/Learn/HTML/Forms/Sending_and_retrieving_form_data)
+- [クライアント側のフォームデータ検証](/ja/docs/Learn/Forms/Form_validation)
+ - : データ送信だけで充分ではありません。ユーザーがフォームに記入したデータが、我々が処理に成功するような正しいフォーマットであり、アプリケーションが破綻しないかを確認する必要があります。またユーザーが正しくフォームを記入してアプリを使うのにイライラしないよう手助けしたいです。フォーム検証はこの目的を達成するのに役立ちます。この記事では知っておくべきことを教えます。
+- [フォームデータの送信](/ja/docs/Learn/Forms/Sending_and_retrieving_form_data)
- : この記事ではユーザーがフォームを送信するときに何が起こるのかを見ます — データがどこに行くのか、そしてそこでデータを受けたらどう扱うかなどです。また、フォームデータ送信に関連するセキュリティ上の懸念もその一部です。
## 高度なガイド
下記の記事は学習コースに必須ではないですが、上記のテクニックをマスターしてそれ以上知りたいときには、興味深く役立つものでしょう。
-- [カスタムフォームコントロールの作成方法](/ja/docs/Learn/HTML/Forms/How_to_build_custom_form_widgets)
+- [カスタムフォームコントロールの作成方法](/ja/docs/Learn/Forms/How_to_build_custom_form_controls)
- : 場合によってはネイティブのフォームウィジェットが必要となるものを提供していないことがあるでしょう。例えばスタイリングや機能で。この場合、生の HTML から自分自身のフォームウィジェットを作る必要があります。この記事ではその方法と考慮すべき点を、実際のケーススタディと一緒に説明します。
-- [JavaScript によるフォームの送信](/ja/docs/Learn/HTML/Forms/Sending_forms_through_JavaScript)
- - : この記事では、標準フォームの送信ではなく、カスタム JavaScript 内で HTTP リクエストを組み立てて送る方法を見ます。またそうしたい理由と、そうする意味も見ていきます([FormData オブジェクトの使用](/ja/docs/Web/API/FormData/Using_FormData_Objects)もご覧ください)。
-
-
-
+- [JavaScript によるフォームの送信](/ja/docs/Learn/Forms/Sending_forms_through_JavaScript)
+ - : この記事では、標準フォームの送信ではなく、カスタム JavaScript 内で HTTP リクエストを組み立てて送る方法を見ます。またそうしたい理由と、そうする意味も見ていきます([FormData オブジェクトの使用](/ja/docs/Web/API/XMLHttpRequest_API/Using_FormData_Objects)もご覧ください)。
- [フォームコントロール用の CSS プロパティ互換性テーブル](/ja/docs/Learn/Forms/Property_compatibility_table_for_form_controls)
- : この最後の記事では、どの CSS プロパティがフォーム要素に互換性があるのかを引くことのできるハンディリファレンスを提供します。
-
-
## 関連情報
-- [HTML フォーム要素リファレンス](/ja/docs/Web/HTML/Element#Forms)
+- [HTML フォーム要素リファレンス](/ja/docs/Web/HTML/Element#forms)
- [HTML \ タイプリファレンス](/ja/docs/Web/HTML/Element/input)
- [HTML 属性リファレンス](/ja/docs/Web/HTML/Attributes)
+- [ユーザー入力とコントロール](/ja/docs/Learn/Forms/User_input_methods)
diff --git a/files/ja/learn/forms/other_form_controls/index.md b/files/ja/learn/forms/other_form_controls/index.md
index 48a255c9772256..0f7e2771502732 100644
--- a/files/ja/learn/forms/other_form_controls/index.md
+++ b/files/ja/learn/forms/other_form_controls/index.md
@@ -2,19 +2,19 @@
title: その他のフォームコントロール
slug: Learn/Forms/Other_form_controls
l10n:
- sourceCommit: 89175e6714699477a461efef4d3eddd9213cba86
+ sourceCommit: 0798c75c919a1a87b73bf5be46e2eb35c8ebb910
---
{{LearnSidebar}}{{PreviousMenuNext("Learn/Forms/HTML5_input_types","Learn/Forms/Styling_web_forms", "Learn/Forms")}}
-ここでは、 ` ` 以外のフォーム要素の機能を、ドロップダウンリストや複数行のテキストフィールドなどの他の操作型から、 {{htmlelement('output')}} 要素(前回の記事で実際に使用しました)やプログレスバーなどの他の便利なフォーム機能まで、詳しく見ていきましょう。
+ここでは、` ` 以外のフォーム要素の機能を、ドロップダウンリストや複数行のテキストフィールドなどの他の操作型から、 {{htmlelement('output')}} 要素(前回の記事で実際に使用しました)やプログレスバーなどの他の便利なフォーム機能まで、詳しく見ていきましょう。
前提条件:
- 基本的なコンピューターリテラシーと、基本的な
+ 基本的な
HTML の理解 。
@@ -41,9 +41,9 @@ l10n:
{{EmbedLiveSample("Multi-line_text_fields", 120, 160)}}
-`` と通常の単一行のテキストフィールドとの主な違いは、ユーザーが送信データの中に改行を (リターンを押すことで) 入れることができることです。
+`` と通常の単一行のテキストフィールドとの主な違いは、ユーザーが送信データの中に改行を(リターンキーを押すことで)入れることができることです。
-`` は閉じタグを取ることができ、既定のテキストを開始タグと終了タグの間に置いてください。これに対し、 {{HTMLElement("input")}} は閉じタグのない空要素です。 [`value`](/ja/docs/Web/HTML/Element/input#値) 属性の中に既定の値が入ります。
+`` は閉じタグを取ることができ、既定のテキストを開始タグと終了タグの間に置いてください。これに対し、 {{HTMLElement("input")}} は閉じタグのない{{glossary("void element", "空要素")}}です。 [`value`](/ja/docs/Web/HTML/Element/input#値) 属性の中に既定の値が入ります。
注意として、`` 要素(その他の HTML 要素、CSS、JavaScript を含む)には何でも入れられるものの、この性質により、プレーンテキストコンテンツのように描画されます(フォームコントロール以外で [`contenteditable`](/ja/docs/Web/HTML/Global_attributes/contenteditable) を使うと、プレーンテキストの代わりに HTML/「リッチ」コンテンツの API を使用できます)。
@@ -80,7 +80,7 @@ l10n:
## ドロップダウンコントロール
-ドロップダウンコントロールは、ユーザーインターフェイスのスペースをあまり取らずに、ユーザーがさまざまなオプションから選択できるようにするためのシンプルな方法です。HTML には、**選択ボックス**と**自動補完ボックス**という 2 つの形式のドロップダウンコンテンツがあります。どちらの場合も相互作用は同じです。コントロールを有効にすると、ブラウザーにはユーザーが選択できる値のリストが表示されます。
+ドロップダウンコントロールは、ユーザーがさまざまな選択肢から選択できるようにすることを、ユーザーインターフェイスのスペースをあまり取らずに実現するシンプルな方法です。HTML には、**選択ボックス**と**自動補完ボックス**という 2 種類のドロップダウンコントロールがあります。どちらの場合も相互作用は同じです。コントロールを有効にすると、ブラウザーにはユーザーが選択できる値のリストが表示されます。
> **メモ:** すべてのドロップダウンボックスの例は、GitHub の [drop-down-content.html](https://github.com/mdn/learning-area/blob/main/html/forms/native-form-widgets/drop-down-content.html)にあります ([ライブでもご覧ください](https://mdn.github.io/learning-area/html/forms/native-form-widgets/drop-down-content.html))。
@@ -101,7 +101,7 @@ l10n:
{{EmbedLiveSample("Basic_example", 120, 120)}}
必要に応じて、希望する {{HTMLElement("option")}} 要素の [`selected`](/ja/docs/Web/HTML/Element/option#selected) 属性を用いて、選択ボックスの既定値を設定することができます。
-このオプションは、ページが読み込まれたときにあらかじめ選択されています。
+この選択肢は、ページが読み込まれたときにあらかじめ選択されています。
#### optgroup の使用
@@ -124,11 +124,11 @@ l10n:
{{EmbedLiveSample("Using_optgroup", 120, 120)}}
-{{HTMLElement("optgroup")}} 要素では、 [`label`](/ja/docs/Web/HTML/Element/optgroup#attr-label) 属性の値が入れ子になったオプションの値の前に表示されます。ブラウザーは通常、それらをオプションから視覚的に離して(すなわち太字にしたり、入れ子レベルを変えたりして)表示しますので、実際のオプションと混同される可能性は低くなります。
+{{HTMLElement("optgroup")}} 要素では、 [`label`](/ja/docs/Web/HTML/Element/optgroup#label) 属性の値が入れ子になった選択肢の値の前に表示されます。ブラウザーは通常、それらを選択肢から視覚的に離して(すなわち太字にしたり、入れ子レベルを変えたりして)表示しますので、実際の選択肢と混同される可能性は低くなります。
#### value 属性の使用
-{{HTMLElement("option")}} 要素に明示的な value 属性が設定されている場合、そのオプションが選択された状態でフォームが送信された時にその値が送信されます。上の例のように value 属性を省略した場合は、 {{HTMLElement("option")}} 要素の内容が値として使われます。そのため、 value 属性は必要ありませんが、選択ボックスに視覚的に表示されている値とは異なる値を短くしたり、サーバーに送信したい理由があるかもしれません。
+{{HTMLElement("option")}} 要素に明示的な value 属性が設定されている場合、その選択肢が選択された状態でフォームが送信された時にその値が送信されます。上の例のように value 属性を省略した場合は、 {{HTMLElement("option")}} 要素の内容が値として使われます。そのため、 value 属性は必要ありませんが、選択ボックスに視覚的に表示されている値とは異なる値を短くしたり、サーバーに送信したい理由があるかもしれません。
例えば、
@@ -140,11 +140,11 @@ l10n:
```
-既定では、選択ボックスの高さは、単一の値を表示するのに十分です。オプションの [`size`](/ja/docs/Web/HTML/Attributes/size) 属性は、選択ボックスにフォーカスがない場合に表示されるオプションの数を制御します。
+既定では、選択ボックスの高さは、単一の値を表示するのに十分です。選択肢の [`size`](/ja/docs/Web/HTML/Attributes/size) 属性は、選択ボックスにフォーカスがない場合に表示される選択肢の数を制御します。
### 複数選択の選択ボックス
-既定では、選択ボックスは、ユーザーに単一の値を選択させるだけです。 {{HTMLElement("select")}} 要素に [`multiple`](/ja/docs/Web/HTML/Element/select#multiple) 属性を追加することで、オペレーティングシステムが提供するデフォルトのメカニズム(例えば、 Cmd /Ctrl を押しながらデスクトップ上で複数の値をクリックするなど)を使用して、ユーザーが複数の値を選択できるようにすることができます。
+既定では、選択ボックスは、ユーザーに単一の値を選択させるだけです。 {{HTMLElement("select")}} 要素に [`multiple`](/ja/docs/Web/HTML/Element/select#multiple) 属性を追加することで、オペレーティングシステムが提供する既定のメカニズム(例えば、デスクトップでは、 Cmd /Ctrl を押しながら複数の値をクリックするなど)を使用して、ユーザーが複数の値を選択できるようにすることができます。
```html
@@ -163,17 +163,17 @@ l10n:
{{EmbedLiveSample("Multiple_choice_select_box", 120, 120)}}
-> **メモ:** 複数選択可能な選択ボックスの場合、選択ボックスはドロップダウンコンテンツとして値を表示しないことに気づくでしょう - 代わりに、すべての値がリストに一度に表示され、オプションの [`size`](/ja/docs/Web/HTML/Attributes/size)属性はウィジェットの高さを決定します。
+> **メモ:** 複数選択可能な選択ボックスの場合、選択ボックスはドロップダウンコンテンツとして値を表示しないことに気づくでしょう - 代わりに、すべての値がリストに一度に表示され、選択肢の [`size`](/ja/docs/Web/HTML/Attributes/size)属性はウィジェットの高さを決定します。
-> **メモ:** {{HTMLElement("select")}} 要素に対応しているすべてのブラウザーは、 [`multiple`](/ja/docs/Web/HTML/Element/select#multiple)/select#multiple)/select#multiple) 属性にも対応しています。
+> **メモ:** {{HTMLElement("select")}} 要素に対応しているすべてのブラウザーは、 [`multiple`](/ja/docs/Web/HTML/Element/select#multiple) 属性にも対応しています。
### 自動補完のボックス
-表示する値を指定する {{HTMLElement("option")}} 子要素つきの {{HTMLElement("datalist")}} 要素を使って、フォームウィジェット用の自動補完の提案値を提供できます。 `` には `id`が必要です。
+フォームウィジェット用の自動補完の提案値は、{{HTMLElement("datalist")}} 要素と {{HTMLElement("option")}} 子要素を用いて提供することができます。この `` には `id`が必要です。
データリストは、 {{htmlelement("input")}} 要素(つまり`text` や `email` の入力型)の [`list`](/ja/docs/Web/HTML/Element/input#list) 属性の値をデータリストの `id` の値を指定することで結びつけます。
-データリストがフォームウィジェットに関連づけられると、オプションはユーザーが入力する自動補完テキストに使われます。典型的には、これはユーザーが入力に打ち込んだものに一致するドロップダウンボックスで表示されます。
+データリストがフォームウィジェットに関連づけられると、選択肢はユーザーが入力する自動補完テキストに使われます。典型的には、これはユーザーが入力に打ち込んだものに一致するドロップダウンボックスで表示されます。
#### 基本的な例
@@ -233,7 +233,7 @@ l10n:
[HTML 仕様書](https://html.spec.whatwg.org/multipage/input.html#attr-input-list)によると、 [`list`](/ja/docs/Web/HTML/Element/input#list) 属性と {{HTMLElement("datalist")}} 要素はユーザーの入力を必要とするあらゆる種類のウィジェットに使用することができます。このため、少し目立たないと思われるような使用法もあります。
-例えば、 `range` 入力型で `{{htmlelement("datalist")}}` に対応しているブラウザーでは、 datalist の `{{htmlelement("option")}}` 値の範囲ごとに小さなチェックマークが範囲の上に表示されます。 [` ` のリファレンスページでこの例](/ja/docs/Web/HTML/Element/input/range#a_range_control_with_hash_marks)を見ることができます。
+例えば、 `range` 入力型で `{{htmlelement("datalist")}}` に対応しているブラウザーでは、 datalist の `{{htmlelement("option")}}` 値の範囲ごとに小さなチェックマークが範囲の上に表示されます。 [` ` のリファレンスページの例](/ja/docs/Web/HTML/Element/input/range#目盛の追加)で見ることができます。
また、 {{htmlelement('datalist')}} と [` `](/ja/docs/Web/HTML/Element/input/color) に対応しているブラウザーは、フルカラーパレットを利用できるようにしつつ、カスタマイズしたパレットを既定で表示することができます。
@@ -247,21 +247,7 @@ l10n:
### メーターとプログレスバー
-メーターやプログレスバーは、数値を視覚的に表現するものです。
-
-#### progress
-
-プログレスバーは、 [`max`](/ja/docs/Web/HTML/Element/progress#max) 属性を用いて指定した最大値まで時間と共に変化する値を表します。このようなバーは、 {{ HTMLElement("progress")}} 要素を使用して作成されます。
-
-```html
-75/100
-```
-
-{{EmbedLiveSample("Progress", 120, 120)}}
-
-これは、ダウンロードされたファイルの総数の割合や、アンケートで記入された質問の数など、進捗状況の報告が必要なものを実装するためにあります。
-
-{{HTMLElement("progress")}} 要素の内側の内容は、この要素に対応していないブラウザーや、スクリーンリーダーが発声するための代替となります。
+メーターとプログレスバーは数値の視覚表現です。{{HTMLElement("progress")}} と {{HTMLElement("meter")}} の対応はすべての現行ブラウザーで利用できます。
#### meter
@@ -288,18 +274,30 @@ l10n:
このようなバーは {{HTMLElement("meter")}} 要素を使用して作成されます。これは、例えば、ディスク上で使用されている総容量を示すバーで、それがいっぱいになりそうなときには赤色に変わるような、あらゆる種類のメーターを実装するためのものです。
```html
-75
+75
```
{{EmbedLiveSample("Meter", 120, 120)}}
-{{HTMLElement("meter")}} 要素の中の内容は、その要素に対応していないブラウザーと支援技術が発声するための代替です。
+{{HTMLElement("meter")}} 要素内のコンテンツは、その要素に対応していないブラウザーと支援技術が発声するための代替です。
-HTMLElement("progress")}} と {{HTMLElement("meter")}} の対応はかなり良好です - Internet Explorer は対応していませんが、他のブラウザーは十分に対応しています。
+#### progress
-## スキルをテストしよう!
+プログレスバーは、 [`max`](/ja/docs/Web/HTML/Element/progress#max) 属性を用いて指定した最大値まで時間と共に変化する値を表します。このようなバーは、 {{ HTMLElement("progress")}} 要素を使用して作成されます。
-この記事の終わりまで到達しましたが、最も重要な情報を覚えていますか?次に移る前に、この情報を保持しているか検証するテストがあります — [Test your skills: Other controls](/ja/docs/Learn/Forms/Test_your_skills:_Other_controls) を見てください。
+```html
+75/100
+```
+
+{{EmbedLiveSample("Progress", 120, 120)}}
+
+これは、ダウンロードされたファイルの総数の割合や、アンケートで記入された質問の数など、進捗状況の報告が必要なものを実装するためにあります。
+
+{{HTMLElement("progress")}} 要素内のコンテンツは、この要素に対応していないブラウザーや、スクリーンリーダーが発声するための代替となります。
+
+## スキルテスト
+
+この記事の最後に達しましたが、最も大切な情報を覚えていますか?次に進む前に、この情報が身に付いたかどうかを確認するテストがあります。[スキルテスト: その他のコントロール](/ja/docs/Learn/Forms/Test_your_skills:_Other_controls) を見てください。
## まとめ
@@ -308,3 +306,9 @@ HTMLElement("progress")}} と {{HTMLElement("meter")}} の対応はかなり良
いろいろなフォームコントロールの背後にある HTML をざっと理解したので、[それらのスタイル設定](/ja/docs/Learn/Forms/Styling_web_forms)について見ていきましょう。
{{PreviousMenuNext("Learn/Forms/HTML5_input_types","Learn/Forms/Styling_web_forms", "Learn/Forms")}}
+
+### 高度なトピック
+
+- [カスタムフォームコントロールの作成方法](/ja/docs/Learn/Forms/How_to_build_custom_form_controls)
+- [JavaScript によるフォームの送信](/ja/docs/Learn/Forms/Sending_forms_through_JavaScript)
+- [フォームウィジェット向けのプロパティの互換性一覧表](/ja/docs/Learn/Forms/Property_compatibility_table_for_form_controls)
diff --git a/files/ja/learn/forms/sending_and_retrieving_form_data/index.md b/files/ja/learn/forms/sending_and_retrieving_form_data/index.md
index c766229917726d..6d3c56006463fe 100644
--- a/files/ja/learn/forms/sending_and_retrieving_form_data/index.md
+++ b/files/ja/learn/forms/sending_and_retrieving_form_data/index.md
@@ -2,7 +2,7 @@
title: フォームデータの送信
slug: Learn/Forms/Sending_and_retrieving_form_data
l10n:
- sourceCommit: 994af9536bab4117b160cf29d61acf2489f27eb0
+ sourceCommit: 9087a17d60546adb8806da3b7c575b6adb8aebd1
---
{{LearnSidebar}}{{PreviousMenu("Learn/Forms/Form_validation", "Learn/Forms")}}
@@ -14,7 +14,6 @@ l10n:
前提知識:
- 基本的なコンピューターリテラシー、
HTML の理解 、基本的な
@@ -25,7 +24,7 @@ l10n:
- 目標:
+ 目的:
フォームデータが送信されたら何が起こるかを、データがサーバー上でどのように処理されるかの基本的な考えも含めて理解すること。
@@ -37,7 +36,7 @@ l10n:
## クライアント/サーバー構成
-ウェブはごく基本的なクライアント/サーバー構成に基づいており、簡単に言うと次のようになります。クライアント (通常はウェブブラウザー) は、サーバー (ほとんどの場合 [Apache](https://httpd.apache.org/)、[Nginx](https://nginx.org/)、[IIS](https://www.iis.net/)、[Tomcat](https://tomcat.apache.org/) などのウェブサーバー) に [HTTP プロトコル](/ja/docs/Web/HTTP)を使用してリクエストを送ります。サーバーは同じプロトコルを使用して、リクエストに応答します。
+ウェブはごく基本的なクライアント/サーバー構成に基づいており、簡単に言うと次のようになります。クライアント(通常はウェブブラウザー)は、サーバー (ほとんどの場合 [Apache](https://httpd.apache.org/)、[Nginx](https://nginx.org/)、[IIS](https://www.iis.net/)、[Tomcat](https://tomcat.apache.org/) などのウェブサーバー) に [HTTP プロトコル](/ja/docs/Web/HTTP)を使用してリクエストを送ります。サーバーは同じプロトコルを使用して、リクエストに応答します。
![基本的なクライアント/サーバー構成](client-server.png)
@@ -47,28 +46,28 @@ l10n:
## クライアント側: データ送信方法の定義
-{{HTMLElement("form")}} 要素で、データを送信する方法を定義します。その属性すべてが、ユーザーが送信ボタンを押すと送信されるリクエストを調整できるように設計されています。もっとも重要な属性は [`action`](/ja/docs/Web/HTML/Element/form#action) と [`method`](/ja/docs/Web/HTML/Element/form#method) の 2 つです。
+{{HTMLElement("form")}} 要素で、データを送信する方法を定義します。その属性すべてが、ユーザーが{{Glossary("submit button", "送信ボタン")}}を押すと送信されるリクエストを調整できるように設計されています。もっとも重要な属性は [`action`](/ja/docs/Web/HTML/Element/form#action) と [`method`](/ja/docs/Web/HTML/Element/form#method) の 2 つです。
### action 属性
-[`action`](/ja/docs/Web/HTML/Element/form#action) 属性は、どこにデータを送信するかを定義します。値は妥当な相対/絶対 [URL](/ja/docs/Learn/Common_questions/What_is_a_URL) でなければなりません。この属性が与えられなかった場合は、フォームが含まれているページの URL にデータが送信されます。
+[`action`](/ja/docs/Web/HTML/Element/form#action) 属性は、どこにデータを送信するかを定義します。値は妥当な相対/絶対 [URL](/ja/docs/Learn/Common_questions/Web_mechanics/What_is_a_URLL) でなければなりません。この属性が与えられなかった場合は、フォームが含まれているページの URL にデータが送信されます。
この例では、データを絶対 URL の `http://example.com` に送信します。
```html
-
+…
```
こちらは、相対 URL を使用しています。データは同一オリジン上の別の URL に送信されます。
```html
-
+…
```
以下のように属性を指定しない場合は、{{HTMLElement("form")}} 要素はフォームが表示されているページ自身に対してデータを送信します。
```html
-
+…
```
> **メモ:** HTTPS (secure HTTP) プロトコルを使用して URL を指定することができます。このようにすると、フォーム自体が HTTP でアクセスされる安全ではないページで提供される場合でも、データはリクエストの残りの部分とともに暗号化されます。一方、フォームが安全なページ提供されていても、[`action`](/ja/docs/Web/HTML/Element/form#action) 属性で安全ではない HTTP の URL を指定すると、どのブラウザーでもデータを送信する際にユーザーに対してセキュリティの警告を表示します。これは、データが暗号化されないためです。
@@ -123,6 +122,8 @@ Host: foo.com
> **メモ:** この例は GitHub にあります。— [get-method.html](https://github.com/mdn/learning-area/blob/main/html/forms/sending-form-data/get-method.html) を参照してください ([ライブはこちら](https://mdn.github.io/learning-area/html/forms/sending-form-data/get-method.html)).
+> **メモ:** `action` の URL スキームが `file:` などのクエリーを処理しないものであった場合は、データは追加されません。
+
#### POST メソッド
[`POST` メソッド](/ja/docs/Web/HTTP/Methods/POST)は少し異なります。これは、HTTP リクエストの本文で提供したデータを考慮したレスポンスの要求を、ブラウザーがサーバーに送信するためのメソッドです。"やあサーバー、このデータを見て適切な結果を返してよ。" このメソッドを使用してフォームを送信する場合は、データが HTTP リクエストの本文の後に追加されます。
@@ -160,6 +161,8 @@ say=Hi&to=Mom
> **メモ:** この例は GitHub で見つけることができます。— [post-method.html](https://github.com/mdn/learning-area/blob/main/html/forms/sending-form-data/post-method.html) を参照してください ([ライブ版も見てください](https://mdn.github.io/learning-area/html/forms/sending-form-data/post-method.html))。
+> **メモ:** `action` の URL スキームが `data:` などのリクエスト本体を処理できないものであった場合は、代わりに `GET` メソッドが使用されます。
+
### HTTP リクエストの表示
当然ながら HTTP リクエストはユーザーには表示されません (見たいのであれば、[Firefox ネットワークモニター](https://firefox-source-docs.mozilla.org/devtools-user/network_monitor/index.html)や [Chrome デベロッパー ツール](https://developer.chrome.com/docs/devtools/)などのツールが必要です)。例のように、フォームのデータは Chrome の Network タブに以下のように表示されます。フォームの送信後に、以下のように操作してください。
@@ -232,17 +235,30 @@ if __name__ == "__main__":
- [form.html](https://github.com/mdn/learning-area/blob/main/html/forms/sending-form-data/templates/form.html): 以前に [POST メソッド](#post_メソッド)の節で見たフォームと同じですが、`action` が `\{{ url_for('hello') }}` に設定されています (これは [Jinja](https://jinja.palletsprojects.com) テンプレートで、基本的に HTML ですが、波括弧の中にウェブサーバーで実行されている Python のコードの呼び出しを含めることができます。`url_for('hello')` は基本的に、「フォームが送信されたら `/hello` にリダイレクトしてください」と言っています。)
- [greeting.html](https://github.com/mdn/learning-area/blob/main/html/forms/sending-form-data/templates/greeting.html): このテンプレートは、表示時に渡された 2 つの小さいデータを表示する行だけを含みます。`/hello` の URL が呼び出されるときに実行される、前述の `hello()` 関数によって行われます。
-> **メモ:** 繰り返しますが、このコードはブラウザーに直接読み込もうとしても動作しません。Python は PHP とは若干異なる動作をします。— ローカルでこのコードを実行するには、[Python/PIP をインストール](/ja/docs/Learn/Server-side/Django/development_environment#installing_python_3)する必要があり、それから `pip3 install flask` を使用して Flask をインストールしてください。この時点で `python3 python-example.py` を実行し、ブラウザーで `localhost:5000` に移動することで実行することができるでしょう。
+> **メモ:** 繰り返しますが、このコードはブラウザーに直接読み込もうとしても動作しません。Python は PHP とは若干異なる動作をします。— ローカルでこのコードを実行するには、[Python/PIP をインストール](/ja/docs/Learn/Server-side/Django/development_environment#python_3_のインストール)する必要があり、それから `pip3 install flask` を使用して Flask をインストールしてください。この時点で `python3 python-example.py` を実行し、ブラウザーで `localhost:5042` に移動することで実行することができるでしょう。
### その他の言語やフレームワーク
フォームの操作に使用できるサーバー側の技術は、Perl、Java、.Net、Ruby などたくさんあります。もっとも好きなものを選びましょう。しかしそれらの技術を直接使用することは、扱いにくいため一般的ではないことが特筆に値します。以下のような、フォームをより簡単に扱えるようにする多くの高品質フレームワークのひとつを使用する方がより一般的です。
-- [Django](/ja/docs/Learn/Server-side/Django) (Python 向け、[Flask](https://flask.palletsprojects.com/) より若干重いものですが、ツールとオプションがより豊富です。)
-- [Express](/ja/docs/Learn/Server-side/Express_Nodejs) (Node.js 向け)
-- [Laravel](https://laravel.com/) (PHP 向け)
-- [Ruby On Rails](http://rubyonrails.org/) (Ruby 向け)
-- [Spring Boot](https://spring.io/guides/gs/handling-form-submission/) (Java 向け)
+- Python
+ - [Django](/ja/docs/Learn/Server-side/Django)
+ - [Flask](https://flask.palletsprojects.com/)
+ - [web2py](https://github.com/web2py/web2py) (始めるのに最も簡単)
+ - [py4web](https://py4web.com/) (web2py と同じ開発者によって書かれ、より Django に近いセットアップがあります)
+- Node.js
+ - [Express](/ja/docs/Learn/Server-side/Express_Nodejs)
+ - [Next.js](https://nextjs.org/) (React アプリ向け)
+ - [Nuxt](https://nuxt.com/) (Vue アプリ向け)
+ - [Remix](https://remix.run/)
+- PHP
+ - [Laravel](https://laravel.com/)
+ - [Laminas](https://getlaminas.org/) (以前の Zend フレームワーク)
+ - [Symfony](https://symfony.com/)
+- Ruby
+ - [Ruby On Rails](https://rubyonrails.org/)
+- Java
+ - [Spring Boot](https://spring.io/guides/gs/handling-form-submission/)
言うまでもなく、これらのフレームワークを使用したとしても、フォームでの作業が必ずしも*簡単に*なるとは限りません。しかし、すべての機能を自分で 1 から書こうとするよりずっと簡単で、また多くの時間を節約できるでしょう。
@@ -282,7 +298,7 @@ if __name__ == "__main__":
サーバーにデータを送信するたびに、セキュリティについて考える必要があります。HTML フォームはサーバーに対するもっともよくある攻撃の入口 (攻撃が行われる場所) になります。問題が HTML フォーム自身から発生することはありません — サーバーがどのようにデータを扱うかによります。
-[ウェブサイトセキュリティ](/ja/docs/Learn/Server-side/First_steps/Website_security) の記事が[サーバーサイド](/ja/docs/Learn/Server-side)の学習トピックにあり、一般的な攻撃とその防御を詳細に扱っています。そちらへ行って記事を確認し、何が起こり得るかを理解してください。
+[ウェブサイトセキュリティ](/ja/docs/Learn/Server-side/First_steps/Website_security) の記事が[サーバーサイド](/ja/docs/Learn/Server-side)の学習トピックにあり、いくつかの一般的な攻撃とその防御を詳細に扱っています。そちらへ行って記事を確認し、何が起こり得るかを理解してください。
### 疑い深くあれ: ユーザーを信用してはいけません
@@ -312,20 +328,7 @@ if __name__ == "__main__":
{{PreviousMenu("Learn/Forms/Form_validation", "Learn/Forms")}}
-## モジュール内の記事
-
-- [初めてのフォーム](/ja/docs/Learn/Forms/Your_first_form)
-- [フォームの構築方法](/ja/docs/Learn/Forms/How_to_structure_a_web_form)
-- [基本的なネイティブフォームコントロール](/ja/docs/Learn/Forms/Basic_native_form_controls)
-- [HTML5 の入力型](/ja/docs/Learn/Forms/HTML5_input_types)
-- [その他のフォームコントロール](/ja/docs/Learn/Forms/Other_form_controls)
-- [フォームへのスタイル設定](/ja/docs/Learn/Forms/Styling_web_forms)
-- [フォームへの高度なスタイル設定](/ja/docs/Learn/Forms/Advanced_form_styling)
-- [UI 擬似クラス](/ja/docs/Learn/Forms/UI_pseudo-classes)
-- [クライアントサイドのフォーム検証](/ja/docs/Learn/Forms/Form_validation)
-- [フォームデータの送信](/ja/docs/Learn/Forms/Sending_and_retrieving_form_data)
-
-### 上級トピック
+### 高度なトピック
- [カスタムフォームコントロールの作成方法](/ja/docs/Learn/Forms/How_to_build_custom_form_controls)
- [JavaScript によるフォームの送信](/ja/docs/Learn/Forms/Sending_forms_through_JavaScript)
diff --git a/files/ja/learn/forms/styling_web_forms/index.md b/files/ja/learn/forms/styling_web_forms/index.md
index d606467eeacef3..7dfd7308147852 100644
--- a/files/ja/learn/forms/styling_web_forms/index.md
+++ b/files/ja/learn/forms/styling_web_forms/index.md
@@ -2,19 +2,18 @@
title: ウェブフォームへのスタイル設定
slug: Learn/Forms/Styling_web_forms
l10n:
- sourceCommit: 4ca03cbbfe78d66e4e7efd7ceaf04acb08a18572
+ sourceCommit: fbc9980c0718c3ead40863b20a74fc8535ebcc85
---
{{LearnSidebar}}{{PreviousMenuNext("Learn/Forms/Other_form_controls","Learn/Forms/Advanced_form_styling","Learn/Forms")}}
-これまでのいくつかの記事では、ウェブフォームを作成し、構成するために必要なすべての HTML について見てきました。この記事では、[CSS](/ja/docs/Web/CSS) を使用してフォームコントロールのスタイルを設定する方法について移動します。これは過去には難しいことでした。フォームコントロールは CSS でカスタマイズしやすいかどうかで大きく異なりますが、古いブラウザーが引退し、現代のブラウザーがより多くの機能を使用するようになるにつれて、簡単になってきています。
+前回までのいくつかの記事では、HTML でウェブフォームを作成する方法を示しました。これで、[CSS](/ja/docs/Web/CSS) でスタイル設定する方法を示します。
前提条件:
- 基本的なコンピューターリテラシーと、
HTML および
CSS に対する基本的な理解。
@@ -28,42 +27,34 @@ l10n:
-## なぜフォームウィジェットへのスタイル設定は難しいのか
+## フォームウィジェットのスタイル設定の挑戦
-1995 年頃に [HTML 2 仕様書](https://www.ietf.org/rfc/rfc1866.txt)へフォームコントロールが追加されました。 CSS は 1996 年までリリースされず、その後も数年は部hラウザーの対応が充分ではありませんでした。ブラウザーは、フォームコントロールの管理とレンダリングを、オペレーティングシステムに頼っていました。
+### 歴史
-CSS が HTML のスタイル設定できるようになってからも、ユーザーは各プラットフォームの視覚的な外見に慣れていましたので、ブラウザーベンダーはフォームコントロールをスタイル付け可能にすることに乗り気ではありませんでした。しかしこれは変わりました。ウェブサイトのオーナーはこれまでよりも、サイト全体に適するスタイルを欲しており、ウェブプラットフォームはこれを実現可能にしました。
+1995 年に [HTML 2 仕様書](https://datatracker.ietf.org/doc/html/rfc1866)へフォームコントロール(別名「フォームウィジェット」または「フォーム要素」)が導入されました。しかし、CSS は 1996 年後期までリリースされず、その後も数年はブラウザーの対応が充分ではありませんでした。ブラウザーは、フォームコントロールの管理とレンダリングを、オペレーティングシステムに頼っていました。
-一部のフォームウィジェットは、コントロールをスタイル設定できるように作成し直すのは難しいのですが、ユーザビリティを破綻させないよう気をつける必要はあるものの、 CSS を使って多くのフォーム機能をスタイル設定できます。
+CSS が利用できるようになっても、ユーザーがそれぞれのブラウザーの外見に慣れていたため、ブラウザーベンダーは最初のうちはフォーム要素をスタイル設定することに消極的でした。しかし状況が変わり、フォームウィジェットはいくつかの例外を除き、これでほとんどがスタイル設定できるようになりました。
-### CSS を使用する場合、すべてのウィジェットが同じように作成されるわけではない
+### ウィジェットの種類
-いまだに、フォームで CSS を使用する際に困ることが存在します。この問題は、3 つのカテゴリーに分けられます。
-
-#### 良好
-
-いくつかの要素はプラットフォーム間の問題があるとしても、ほとんど問題なくスタイルを設定できます。これらは以下の構造的な要素が含まれます。
+#### スタイル設定しやすいもの
1. {{HTMLElement("form")}}
-2. {{HTMLElement("fieldset")}} と {{HTMLElement("legend")}}
+2. {{HTMLElement("fieldset")}} および {{HTMLElement("legend")}}
3. 単一行のテキストの {{HTMLElement("input")}} (例えば text, url, email 型) [` `](/ja/docs/Web/HTML/Element/input/search) 以外
4. 複数行の {{HTMLElement("textarea")}}
-5. ボタン({{HTMLElement("input")}} と {{HTMLElement("button")}}の両方)
+5. ボタン({{HTMLElement("input")}} と {{HTMLElement("button")}} の両方)
6. {{HTMLElement("label")}}
7. {{HTMLElement("output")}}
-#### 不良
-
-一部の要素はほとんどスタイル設定ができず、時に CSS の高度な知識やトリックが必要になるかもしれません。
+#### スタイル設定が困難なもの
1. チェックボックスとラジオボタン
2. [` `](/ja/docs/Web/HTML/Element/input/search)
これら特殊なケースをどのように扱うかについては、[フォームへの高度なスタイル設定](/ja/docs/Learn/Forms/Advanced_form_styling)の記事で見ていきます。
-#### 劣悪
-
-一部の要素は、CSS でスタイルを設定できません。たとえば次のものです。
+#### 内部が CSS 単独ではスタイル設定できないもの
- [` `](/ja/docs/Web/HTML/Element/input/color)
- [` `](/ja/docs/Web/HTML/Element/input/datetime-local)のような日時関連コントロール
@@ -72,21 +63,17 @@ CSS が HTML のスタイル設定できるようになってからも、ユー
- ドロップダウンウィジェットの作成に含まれる要素、 {{HTMLElement("select")}}, {{HTMLElement("option")}}, {{HTMLElement("optgroup")}}, {{HTMLElement("datalist")}} を含む。
- {{HTMLElement("progress")}} と {{HTMLElement("meter")}}
-これらの要素をスタイル設定するのに関して何ができるかについては、[フォームへの高度なスタイル設定](/ja/docs/Learn/Forms/Advanced_form_styling)の記事で見ていきます。
+例えば、日付ピッカーのカレンダーや、クリックするとオプションリストが表示されるボタンなどは、CSS を使用するだけではスタイル設定することができません。
-これらすべてのウィジェットの主な問題は、ウィジェットの構造がとても複雑であるという事実と、(コントロールの width や margin の変更といった)基本的なスタイル設定を超えると、現在の CSS では(例えばカレンダー日付ピッカーや、選択肢のリストを表示する \ のボタンのような)ウィジェットの細かい部分すべてにスタイルを設定できるほどの表現力がないことによります。
+[フォームへの高度なスタイル設定](/ja/docs/Learn/Forms/Advanced_form_styling)および[カスタムウィジェットの作成方法](/ja/docs/Learn/Forms/How_to_build_custom_form_controls)の記事で、これらのスタイル設定の方法を説明します。
-これらのウィジェットを完全にカスタマイズしたい場合は、 HTML, CSS, JavaScript を使って独自のものを作成する必要があります。それはこのコアフォームの記事の範囲を超えますが、高度な記事の[カスタムウィジェットの作成方法](/ja/docs/Learn/Forms/How_to_build_custom_form_controls)の記事で説明します。
+> **メモ:** フォームコントロールの内部コンポーネントにスタイル設定するプロプライエタリな CSS 擬似要素、例えば {{cssxref('::-moz-range-track')}} がありますが、これはブラウザー同士で整合していないので、これに頼るべきではありません。これについては後程でも触れます。
-> **メモ:** フォームコントロールの内部コンポーネントにスタイル設定するプロプライエタリな CSS 擬似要素、例えば {{cssxref('::-moz-range-track')}}がありますが、これはブラウザー同士で整合していないので、これに頼るべきではありません。これについては後程でも触れます。
+## 単純なフォームウィジェットのスタイル設定
-## 良好
+前節の「スタイル設定しやすい」ウィジェットは、[初めてのフォーム](/ja/docs/Learn/Forms/Your_first_form)および [CSS の構成要素](/ja/docs/Learn/CSS/Building_blocks)の記事で紹介したテクニックを使用してスタイル設定することができます。また、UI の現在の状態に基づいたスタイル設定を可能にする特別なセレクター [UI 擬似クラス](/ja/docs/Learn/Forms/UI_pseudo-classes)もあります。
-CSS でスタイルを設定するのが簡単なフォームコントロールは、他の HTML 要素とほとんど同じように動作するため、困難はあまりないはずです。[最初のフォーム](/ja/docs/Learn/Forms/Your_first_form)で、いくつかの簡単なフォームのスタイルを既に見ましたし、 [CSS の構成要素](/ja/docs/Learn/CSS/Building_blocks)モジュールにもいくつかの[役立つフォームのスタイル設定の基本](/ja/docs/Learn/CSS/Building_blocks/Images_media_form_elements#フォーム要素)が含まれています。
-
-CSS での[スタイル設定が容易な要素](#良好)は、振る舞いが他の HTML 要素とほとんど同じであるため、問題に直面することはないでしょう。ただし、ブラウザー間でユーザーエージェントのスタイルシートが若干矛盾するかもしれませんので、より簡単にスタイルを設定できるようにするためのトリックがあります。
-
-この記事の最後で基本的なフォームコントロールのスタイル設定と配置について理解できる実例を詳しく見ていきます。しかしその前に、知っておくと良いフォームスタイル設定の特定の面をいくつか述べておきます。
+この記事の終わりで例を説明しますが、最初の段階で、フォームのスタイル設定について知っておくべきいくつかの特別な側面について説明します。
### フォントとテキスト
@@ -114,9 +101,9 @@ textarea {
### ボックスモデル
-すべてのテキストフィールドは、CSS のボックスモデルに関する全プロパティ ({{cssxref("width")}}、{{cssxref("height")}}、{{cssxref("padding")}}、{{cssxref("margin")}}、および {{cssxref("border")}}) を完全にサポートしています。ただし前述のとおり、ブラウザーがウィジェットを表示する際はシステムのデフォルトスタイルに依存します。コンテンツに対してそれらをどのように混ぜ合わせるかを決めるのは、あなた次第です。ウィジェットでネイティブのルックアンドフィールを維持したいのでしたら、ウィジェットのサイズを調和させたい場合に若干の問題に直面するでしょう。
+すべてのテキストフィールドは、CSS のボックスモデルに関する全プロパティ ({{cssxref("width")}}、{{cssxref("height")}}、{{cssxref("padding")}}、{{cssxref("margin")}}、{{cssxref("border")}}) を完全にサポートしています。ただし前述のとおり、ブラウザーがウィジェットを表示する際はシステムのデフォルトスタイルに依存します。コンテンツに対してそれらをどのように混ぜ合わせるかを決めるのは、あなた次第です。ウィジェットでネイティブのルックアンドフィールを維持したいのでしたら、ウィジェットのサイズを調和させたい場合に若干の問題に直面するでしょう。
-**これは各ウィジェットが境界、パディング、マージンについて独自のルールを持っているためです。**このためさまざまなウィジェットを同じサイズにしたい場合に、 {{cssxref("box-sizing")}} プロパティを使用しなければなりません。
+**これは各ウィジェットが境界、パディング、マージンについて独自のルールを持っているためです。** このためさまざまなウィジェットを同じサイズにしたい場合に、{{cssxref("box-sizing")}} プロパティを使用しなければなりません。
```css
input,
@@ -130,15 +117,15 @@ button {
}
```
-下のスクリーンショットで、左の列は \ , \ , \ , \ , \ input, {{htmlelement('select')}}, {{htmlelement('textarea')}},\ , {{htmlelement('button')}} の既定の描画、右の列は同じ要素に上のルールを使用して作成したものです。各種のウィジェットのプラットフォームのデフォルトルールと比較して、すべての要素が同じ領域を占めるようにすることが可能な点に注目してください。
+下のスクリーンショットで、左の列は ` `、` `、` `、` `、` `、{{htmlelement('select')}}、{{htmlelement('textarea')}}、` `、{{htmlelement('button')}} の既定の描画、右の列は同じ要素に上のルールを使用して作成したものです。各種のウィジェットのプラットフォームのデフォルトルールと比較して、すべての要素が同じ領域を占めるようにすることが可能な点に注目してください。
-![box model properties effect most input types.](boxmodel_formcontrols1.png)
+![ボックスモデルのプロパティは、ほとんどの入力型に効果があります。](boxmodel_formcontrols1.png)
スクリーンショットではわからないかもしれませんが、ラジオやチェックボックスの操作はそのままで、 {{cssxref('width')}} プロパティで提供される 150px の水平空間に中央配置されています。他のブラウザーでは、ウィジェットが中央に配置されないことがありますが、割り当てられた空間は守られます。
### legend の配置
-{{HTMLElement("legend")}} 要素はスタイル設定では問題ありませんが、その配置を操作するのは少し厄介かもしれません。既定では、それは常に親である {{HTMLElement("fieldset")}} の上境界の上、左上隅の近くに配置されます。他の場所、例えばfieldsetの内部や左下隅の近くに配置するには、位置指定に頼る必要があります。
+{{HTMLElement("legend")}} 要素はスタイル設定では問題ありませんが、その配置を操作するのは少し厄介かもしれません。既定では、常に親である {{HTMLElement("fieldset")}} の上境界の上、左上隅の近くに配置されます。他の場所、例えば fieldset の内部や左下隅の近くに配置するには、位置指定を行う必要があります。
下記の例を見てください。
@@ -203,15 +190,15 @@ HTML は、[ガイドの最初の記事](/ja/docs/Learn/Forms/Your_first_form)
### 資産を揃える
-ここからがおもしろいところです! コードを書き始める前に、ここでは 3 つの追加要素が必要です。
+ここからが面白いところです。コードを書き始める前に、ここでは 3 つの追加要素が必要です。
-1. はがきの[背景](background.jpg) — この画像をダウンロードして作業している HTML ファイルと同じディレクトリーに保存します。
-2. タイプライター風フォント: [fontsquirrel.com の "Secret Typewriter"](https://www.fontsquirrel.com/fonts/Secret-Typewriter) — TTF ファイルを上記と同じディレクトリーにダウンロードします。
-3. 手書き風フォント: [fontsquirrel.com の "Journal"](https://www.fontsquirrel.com/fonts/Journal) — TTF ファイルを上記と同じディレクトリーにダウンロードします。
+1. [はがきの背景](background.jpg) — この画像をダウンロードして作業している HTML ファイルと同じディレクトリーに保存してください。
+2. タイプライター風フォント: [dafont.com の "Mom's Typewriter" フォント](https://www.dafont.com/moms-typewriter.font?back=theme)、TTF ファイルを上記と同じディレクトリーにダウンロードしてください。
+3. 手書き風フォント: [fontsquirrel.com の "Journal"](https://www.dafont.com/journal.font) — TTF ファイルを上記と同じディレクトリーにダウンロードしてください。
始める前にフォントの処理が必要です。
-1. fontsquirrel の [Webfont Generator](https://www.fontsquirrel.com/tools/webfont-generator) に移動します。
+1. fontsquirrel.com の [Webfont Generator](https://www.fontsquirrel.com/tools/webfont-generator) に移動します。
2. フォームを使って、両方のフォントファイルをアップロードして webfont キットを生成します。キットをコンピューターにダウンロードします。
3. zip ファイルを展開します。
4. 展開した中身には 2 つの `.woff` ファイルと 2 つの `.woff2` ファイルがあります。このファイルを、前と同じ fonts というディレクトリーにコピーします。各フォントの 2 つのファイルはブラウザー互換性を最大化するのに使います; より詳しい情報は [Web fonts](/ja/docs/Learn/CSS/Styling_text/Web_fonts) の記事を見てください。
@@ -222,7 +209,7 @@ HTML は、[ガイドの最初の記事](/ja/docs/Learn/Forms/Your_first_form)
#### 全体レイアウト
-まず、 {{cssxref("@font-face")}} ルールと、すべての {{HTMLElement("body")}} と {{HTMLElement("form")}} 要素に設定するスタイルを定義して準備します。 fontsquirrel 出力が上記で述べたものと異なる場合、 `stylesheet.css` ファイル内にダウンロード済みの webfont キットの中から正しい `@font-face` ブロックを見つけることができます(下記の `@font-face` ブロックをそれで置換し、パスをフォントファイルのものに更新する必要があります)。
+まず、 {{cssxref("@font-face")}} ルールと、すべての {{HTMLElement("body")}} と {{HTMLElement("form")}} 要素に設定するスタイルを定義して準備します。 fontsquirrel の出力が上記で述べたものと異なる場合、 `stylesheet.css` ファイル内にダウンロード済みの webfont キットの中から正しい `@font-face` ブロックを見つけることができます(下記の `@font-face` ブロックをそれで置換し、パスをフォントファイルのものに更新する必要があります)。
```css
@font-face {
@@ -237,8 +224,8 @@ HTML は、[ガイドの最初の記事](/ja/docs/Learn/Forms/Your_first_form)
@font-face {
font-family: "typewriter";
src:
- url("fonts/veteran_typewriter-webfont.woff2") format("woff2"),
- url("fonts/veteran_typewriter-webfont.woff") format("woff");
+ url("fonts/momot___-webfont.woff2") format("woff2"),
+ url("fonts/momot___-webfont.woff") format("woff");
font-weight: normal;
font-style: normal;
}
@@ -267,7 +254,7 @@ form {
}
```
-注意として、フォームのレイアウトに [CSS グリッド](/ja/docs/Web/CSS/CSS_grid_layout)と[フレックスボックス](/ja/docs/Web/CSS/CSS_Flexible_Box_Layout) を使っています。これで、タイトルやフォーム要素といった各要素を配置できます。
+注意として、フォームのレイアウトに [CSS グリッド](/ja/docs/Web/CSS/CSS_grid_layout)と[フレックスボックス](/ja/docs/Web/CSS/CSS_flexible_box_layout) を使っています。これで、タイトルやフォーム要素といった各要素を配置できます。
```css
h1 {
@@ -321,7 +308,7 @@ textarea {
```css
input:focus,
textarea:focus {
- background: rgba(0, 0, 0, 0.1);
+ background: rgb(0 0 0 / 10%);
border-radius: 5px;
}
```
@@ -369,7 +356,6 @@ button:after {
button:hover,
button:focus {
- outline: none;
background: #000;
color: #fff;
}
@@ -377,18 +363,24 @@ button:focus {
### 最終結果
-これでよし! フォームは次のようになるでしょう。
+出来上がりです。これでフォームがこのようになっているはずです。
![上記のようにスタイル設定と微調整を行った後の、フォームの最終的な外観とレイアウト](updated-form-screenshot.jpg)
-> **メモ:** 例が期待どおり動かず、私たちのバージョンを確認したい場合は、 GitHub を参照してください。[ライブ版](https://mdn.github.io/learning-area/html/forms/postcard-example/)を見てください ([ソースコード](https://github.com/mdn/learning-area/tree/main/html/forms/postcard-example)も見てください)。
+> **メモ:** 例が期待どおり動かず、私たちのバージョンを確認したい場合は、 GitHub を参照してください。[ライブ版](https://mdn.github.io/learning-area/html/forms/postcard-example/)を見てください([ソースコード](https://github.com/mdn/learning-area/tree/main/html/forms/postcard-example)も見てください)。
-## スキルを試しましょう!
+## スキルテスト
-この記事の終わりまで到達しました。しかし、肝要な点を思い起こせるでしょうか?次に進む前に、テストによって知識の定着を試すことができます——[スキルテスト:スタイル設定の基本](/ja/docs/Learn/Forms/Test_your_skills:_Styling_basics)をご覧ください。
+この記事の最後に達しましたが、最も大切な情報を覚えていますか?次に進む前に、この情報が身に付いたかどうかを確認するテストがあります。[スキルテスト: スタイル設定の基本](/ja/docs/Learn/Forms/Test_your_skills:_Styling_basics)をご覧ください。
## まとめ
ご覧いただいたとおり、テキストフィールドとボタンだけでフォームを作成する限りでは、CSS を使用したスタイル設定は容易です。[次の記事では](/ja/docs/Learn/Forms/Advanced_form_styling)、「不良」や「劣悪」に分類されているウィジェットの扱い方を見ていきます。
{{PreviousMenuNext("Learn/Forms/Other_form_controls","Learn/Forms/Advanced_form_styling","Learn/Forms")}}
+
+### 高度なトピック
+
+- [カスタムフォームコントロールの作成方法](/ja/docs/Learn/Forms/How_to_build_custom_form_controls)
+- [JavaScript によるフォームの送信](/ja/docs/Learn/Forms/Sending_forms_through_JavaScript)
+- [フォームウィジェット向けのプロパティの互換性一覧表](/ja/docs/Learn/Forms/Property_compatibility_table_for_form_controls)
diff --git a/files/ja/learn/forms/test_your_skills_colon__advanced_styling/index.md b/files/ja/learn/forms/test_your_skills_colon__advanced_styling/index.md
new file mode 100644
index 00000000000000..de1283736eeefa
--- /dev/null
+++ b/files/ja/learn/forms/test_your_skills_colon__advanced_styling/index.md
@@ -0,0 +1,67 @@
+---
+title: "スキルテスト: 高度なスタイル設定"
+slug: Learn/Forms/Test_your_skills:_Advanced_styling
+l10n:
+ sourceCommit: c64e813d8ab9dbe22cbc049c26f7c6703370a2b7
+---
+
+{{learnsidebar}}
+
+このスキルテストの目的は、あなたが[フォームへの高度なスタイル設定](/ja/docs/Learn/Forms/Advanced_form_styling)および [UI 擬似クラス](/ja/docs/Learn/Forms/UI_pseudo-classes)の記事を理解したかどうかを評価することです。.
+
+> **メモ:** このページのインタラクティブエディターや、[CodePen](https://codepen.io/)、[JSFiddle](https://jsfiddle.net/)、[Glitch](https://glitch.com/)などのオンラインエディターで解決策を試すことができます。
+>
+> もし行き詰まったら、[コミュニケーションチャンネル](/ja/docs/MDN/Community/Communication_channels)のいずれかに連絡してみてください。
+
+## フォームの高度なスタイル設定 1
+
+最初の高度なスタイル設定では、検索入力フィールドをブラウザー間で可能な限り一貫性のあるものにします。
+
+基本的なリセットはすでに指定されています。
+
+1. 最初のすべて、検索ボックスの幅、高さ、パディング、協会の色をブラウザー間で統一してみてください。
+2. フォーム要素の高さについて、ブラウザーによっては動作しないことが分かるでしょう。これはOSのネイティブスタイル設定を使用している用途があるためです。このネイティブスタイル設定はどのように除去すればよいでしょうか。
+3. ネイティブのスタイル設定を除去したら、元々指定されたものと同じ見てくれを保つために、提供していた機能の一つを追加する必要があります。これはどのように行いますか。
+4. ブラウザー間で(ここでは具体的な Safari を見て)一貫性がないことのひとつに、標準の青いフォーカスの輪郭線の位置があります。これを除去するにはどうすればよいでしょうか。
+5. 青いフォーカスの輪郭線を取るするだけでは大きな問題があります。それは何でしょうか。検索ボックスがホバーされているとき、またはフォーカスされているときにユーザーが指示できるように、何らかのスタイル設定を追加することはできますか。
+6. 検索ボックスを表すもう一つのこととして、虫眼鏡のアイコンがあります。HTML ファイルと同じディレクトリーで利用できるようにしました。 [search-24px.png](https://github.com/mdn/learning-area/blob/main/html/forms/tasks/advanced-styling/search-24px.png) を参照してください。また、検索入力の後に `` 要素を追加して、必要であれば添付できるようにしました。また、CSS を使用して検索ボックスの右側に配置し、縦に並べることができますか。
+
+下記のライブコードを更新して、完成例を再現してみてください。
+
+{{EmbedGHLiveSample("learning-area/html/forms/tasks/advanced-styling/advanced-styling1.html", '100%', 700)}}
+
+> **注目:**
+>
+> [この課題の開始点をダウンロード](https://github.com/mdn/learning-area/blob/main/html/forms/tasks/advanced-styling/advanced-styling1-download.html)すると、自分のエディターやオンラインエディターで取り組むことができます。
+
+## フォームの高度なスタイル設定 2
+
+次の課題では、3 つのラジオボタンを設定します。これらに独自のスタイル設定を施してください。
+
+基本的なリセットはすでに指定されています。
+
+1. まずすべて、既定のスタイル設定を取り除きます。
+2. 次に、ラジオボタンに合理的な基本スタイル(ページが最初に読み込まれたときに保有するスタイル)を与えます。これは何らかのスタイルにすることができますが、おそらく幅と高さ(約 18 ピクセルから 24ピクセルの間)、および微妙な境界線や背景色を設定したいと思うでしょう。
+3. これで、ラジオボタンが選択されたときのために、異なるスタイルを与えます。
+4. ラジオボタンをラベルとうまく配置します。
+
+下記のライブコードを更新して、完成例を再現してみてください。
+
+{{EmbedGHLiveSample("learning-area/html/forms/tasks/advanced-styling/advanced-styling2.html", '100%', 700)}}
+
+> **注目:**
+>
+> [この課題の開始点をダウンロード](https://github.com/mdn/learning-area/blob/main/html/forms/tasks/advanced-styling/advanced-styling2-download.html)すると、自分のエディターやオンラインエディターで取り組むことができます。
+
+## フォームの高度なスタイル設定 3
+
+この評価シリーズの最後の課題では、すでにきれいなスタイル設定のフィードバックフォームを提供します。[UI 擬似クラス](/ja/docs/Learn/Forms/UI_pseudo-classes) の記事を読み終えていれば、同じようなものをすでに見ているでしょう。
+
+あなたにしてほしいことは、いくつかの高度な擬似クラスを使用して、有効性の有益な指標を提供することです。
+
+1. まずすべて、どの入力が入力されなければならないかを視覚的に示すために、固有のスタイル設定を提供してください。
+2. 2 つ目は、各入力に指定されたデータが有効かどうかを視覚的に示す有益なインジケーターを提供することです。
+
+> **注目:**
+>
+> [この課題の開始点をダウンロード](https://github.com/mdn/learning-area/blob/main/html/forms/tasks/advanced-styling/advanced-styling3-download.html)すると、自分のエディターやオンラインエディターで取り組むことができます。
diff --git a/files/ja/learn/forms/test_your_skills_colon__basic_controls/index.md b/files/ja/learn/forms/test_your_skills_colon__basic_controls/index.md
new file mode 100644
index 00000000000000..41a39d25d208f6
--- /dev/null
+++ b/files/ja/learn/forms/test_your_skills_colon__basic_controls/index.md
@@ -0,0 +1,63 @@
+---
+title: "スキルテスト: 基本的なコントロール"
+slug: Learn/Forms/Test_your_skills:_Basic_controls
+l10n:
+ sourceCommit: c64e813d8ab9dbe22cbc049c26f7c6703370a2b7
+---
+
+{{learnsidebar}}
+
+このスキルテストの目的は、あなたが[基本的なネイティブフォームコントロール](/ja/docs/Learn/Forms/Basic_native_form_controls)の記事を理解したかどうかを評価することです。
+
+> **メモ:** このページのインタラクティブエディターや、[CodePen](https://codepen.io/)、[JSFiddle](https://jsfiddle.net/)、[Glitch](https://glitch.com/)などのオンラインエディターで解決策を試すことができます。
+>
+> もし行き詰まったら、[コミュニケーションチャンネル](/ja/docs/MDN/Community/Communication_channels)のいずれかに連絡してみてください。
+
+## 基本的なコントロール 1
+
+この課題は、ユーザー ID とパスワードのための 2 つの `
` 要素と送信ボタンを作成するという、簡単なところから始めましょう。
+
+1. ユーザー ID とパスワードの適切な入力フィールドを作成します。
+2. また、これらのテキストラベルを意味づけしてください。
+3. 残りのリストアイテムの中に、"Log in" というボタンテキストで送信ボタンを作成します。
+
+下記のライブコードを更新して、完成例を再現してみてください。
+
+{{EmbedGHLiveSample("learning-area/html/forms/tasks/basic-controls/basic-controls1.html", '100%', 700)}}
+
+> **注目:**
+>
+> [この課題の開始点をダウンロード](https://github.com/mdn/learning-area/blob/main/html/forms/tasks/basic-controls/basic-controls1-download.html)すると、自分のエディターやオンラインエディターで取り組むことができます。
+
+## 基本的なコントロール 2
+
+次の課題では、指定されたテキストラベルから、チェックボックスとラジオボタンの動作セットを作成していただきます。
+
+1. 最初の `
` のコンテンツをラジオボタンの設定にしてください。一度に 1 頭のポニーしか選択できないようにしてください。
+2. ページを読み込んだときに最初のラジオボタンが選択されるようにします。
+3. 2 つ目の `` のコンテンツをチェックボックスの設定にします。
+4. 自分自身でホットドッグの選択肢を追加します。
+
+下記のライブコードを更新して、完成例を再現してみてください。
+
+{{EmbedGHLiveSample("learning-area/html/forms/tasks/basic-controls/basic-controls2.html", '100%', 700)}}
+
+> **注目:**
+>
+> [この課題の開始点をダウンロード](https://github.com/mdn/learning-area/blob/main/html/forms/tasks/basic-controls/basic-controls2-download.html)すると、自分のエディターやオンラインエディターで取り組むことができます。
+
+## 基本的なコントロール 3
+
+一連の最後の課題として、ファイルピッカーを作成していただきます。
+
+1. 基本的なファイルピッカーを作成します。
+2. ユーザーが一度に複数のファイルを選択できるようにします。
+3. ファイルピッカーは JPG と PNG 画像のみ受け入れられるようにします。
+
+下記のライブコードを更新して、完成例を再現してみてください。
+
+{{EmbedGHLiveSample("learning-area/html/forms/tasks/basic-controls/basic-controls3.html", '100%', 700)}}
+
+> **注目:**
+>
+> [この課題の開始点をダウンロード](https://github.com/mdn/learning-area/blob/main/html/forms/tasks/basic-controls/basic-controls3-download.html)すると、自分のエディターやオンラインエディターで取り組むことができます。
diff --git a/files/ja/learn/forms/test_your_skills_colon__form_structure/index.md b/files/ja/learn/forms/test_your_skills_colon__form_structure/index.md
new file mode 100644
index 00000000000000..f16040704847ef
--- /dev/null
+++ b/files/ja/learn/forms/test_your_skills_colon__form_structure/index.md
@@ -0,0 +1,28 @@
+---
+title: "スキルテスト: フォームの構築"
+slug: Learn/Forms/Test_your_skills:_Form_structure
+l10n:
+ sourceCommit: c64e813d8ab9dbe22cbc049c26f7c6703370a2b7
+---
+
+{{learnsidebar}}
+
+このスキルテストの目的は、あなたが[フォームの構築方法](/ja/docs/Learn/Forms/How_to_structure_a_web_form)の記事を理解したかどうかを評価することです。
+
+> **メモ:** このページのインタラクティブエディターや、[CodePen](https://codepen.io/)、[JSFiddle](https://jsfiddle.net/)、[Glitch](https://glitch.com/)などのオンラインエディターで解決策を試すことができます。
+>
+> もし行き詰まったら、[コミュニケーションチャンネル](/ja/docs/MDN/Community/Communication_channels)のいずれかに連絡してみてください。
+
+## フォームの構築 1
+
+この課題では、指定されたフォーム機能を構築してください。
+
+1. 最初の 2 つと次の 2 つのフォームフィールドを 2 つの異なるコンテナーに区切り、それぞれに説明的な凡例を付けてください(最初の 2 つには "Personal details"、2 つ目には "Comment information" を使用してください)。
+2. 各テキストラベルを適切な要素でマークアップし、それぞれのフォームフィールドと意味づけしてください。
+3. ラベルとフィールドのペアの周りに適切な構造要素セットを追加して、それらを別個のものにしてください。
+
+{{EmbedGHLiveSample("learning-area/html/forms/tasks/form-structure/form-structure1.html", '100%', 700)}}
+
+> **注目:**
+>
+> [この課題の開始点をダウンロード](https://github.com/mdn/learning-area/blob/main/html/forms/tasks/form-structure/form-structure1-download.html)すると、自分のエディターやオンラインエディターで取り組むことができます。
diff --git a/files/ja/learn/forms/test_your_skills_colon__form_validation/index.md b/files/ja/learn/forms/test_your_skills_colon__form_validation/index.md
new file mode 100644
index 00000000000000..cded4fd88a8a58
--- /dev/null
+++ b/files/ja/learn/forms/test_your_skills_colon__form_validation/index.md
@@ -0,0 +1,55 @@
+---
+title: "スキルテスト: フォーム検証"
+slug: Learn/Forms/Test_your_skills:_Form_validation
+l10n:
+ sourceCommit: c64e813d8ab9dbe22cbc049c26f7c6703370a2b7
+---
+
+{{learnsidebar}}
+
+このスキルテストの目的は、あなたが[Client-side form validation](/ja/docs/Learn/Forms/Form_validation)の記事を理解したかどうかを評価することです。
+
+> **メモ:** このページのインタラクティブエディターや、[CodePen](https://codepen.io/)、[JSFiddle](https://jsfiddle.net/)、[Glitch](https://glitch.com/)などのオンラインエディターで解決策を試すことができます。
+>
+> もし行き詰まったら、[コミュニケーションチャンネル](/ja/docs/MDN/Community/Communication_channels)のいずれかに連絡してみてください。
+
+## フォーム検証 1
+
+この課題では、単純なサポートの問い合わせフォームを提供し、それに検証機能を追加してもらいます。
+
+1. フォームを送信する前に、入力フィールドをすべて入力必須にしてください。
+2. 「メールアドレス」と「電話番号」フィールドの型を変更し、ブラウザーが要求するデータに適した、より具体的な検証が適用するようにします。
+3. 「ユーザー名」フィールドの要求される長さを 5 文字から 20 文字、「電話番号」フィールドの最大長を 15 文字、「コメント」フィールドの最大長を 200 文字にします。
+
+フォームを送信してみてください。上記の制約が続くまで送信されず、適切なエラーメッセージが表示されるはずです。フォームフィールドが有効か不正かを表示させる単純な CSS を追加することを検討してください。
+
+> **注目:**
+>
+> [この課題の開始点をダウンロード](https://github.com/mdn/learning-area/blob/main/html/forms/tasks/form-validation/form-validation1-download.html)すると、自分のエディターやオンラインエディターで取り組むことができます。
+
+## フォーム検証 2
+
+これで前回の課題と同じフォームを取り(必要であれば前回の回答を使用します)、正規表現を使って最初の 3 つのフィールドに固有のパターン検証を追加してください。
+
+1. アプリケーションのユーザー名はすべて、単一の文字、続いてドット、続いて 3 つ以上の文字もしくは数字で構成されます。文字はすべて小文字にしてください。
+2. ユーザーのメールアドレスはすべて、1 文字以上の英字(小文字または大文字)または数字の後に "@bigcorp.eu" が続きます。
+3. 電話番号フィールドに長さの検証が存在する場合は、それを除去し、10 桁を受け入れられるように設定します。10 桁を連続して入力するか、3 桁、3 桁、4 桁のパターンをスペース、ダッシュ、ドットのいずれかで区切って入力してください。
+
+> **メモ:** 正規表現は実に難しいものですが、絶望しないでください。助けを求めることは恥ずかしいことではありません。[正規表現リファレンス](/ja/docs/Web/JavaScript/Guide/Regular_expressions)や、[Stack Overflow](https://stackoverflow.com/) で検索すれば、これらの質問に答えるのに必要なものはすべて見つかります。
+
+この場合も、フォームフィールドが有効か無効かを表示させる単純な CSS を追加することを検討するとよいでしょう。
+
+> **注目:**
+>
+> [この課題の開始点をダウンロード](https://github.com/mdn/learning-area/blob/main/html/forms/tasks/form-validation/form-validation2-download.html)すると、自分のエディターやオンラインエディターで取り組むことができます。
+
+## フォーム検証 3
+
+この最後の課題では、制約検証 API といくつかのフォーム検証属性を使用して、独自のエラーメッセージを提供してください。制約検証 API とフォーム検証属性を使用して、独自の有効性メッセージをプログラムしてください。
+
+1. 入力必須とし、最小 10 文字とします。
+2. 入力された値がメールアドレスであるかどうか、十分な長さであるかどうかを調べるイベントリスナーを追加してください。メールアドレスに見えないか、短すぎる場合は、適切なカスタムエラーメッセージをユーザーに提供してください。
+
+> **注目:**
+>
+> [この課題の開始点をダウンロード](https://github.com/mdn/learning-area/blob/main/html/forms/tasks/form-validation/form-validation3-download.html)すると、自分のエディターやオンラインエディターで取り組むことができます。
diff --git a/files/ja/learn/forms/test_your_skills_colon__html5_controls/index.md b/files/ja/learn/forms/test_your_skills_colon__html5_controls/index.md
new file mode 100644
index 00000000000000..9a0dbf0831f18d
--- /dev/null
+++ b/files/ja/learn/forms/test_your_skills_colon__html5_controls/index.md
@@ -0,0 +1,47 @@
+---
+title: "スキルテスト: HTML5 のコントロール"
+slug: Learn/Forms/Test_your_skills:_HTML5_controls
+l10n:
+ sourceCommit: c64e813d8ab9dbe22cbc049c26f7c6703370a2b7
+---
+
+{{learnsidebar}}
+
+このスキルテストの目的は、あなたが [HTML5 の入力型](/ja/docs/Learn/Forms/HTML5_input_types)の記事を理解したかどうかを評価することです。
+
+> **メモ:** このページのインタラクティブエディターや、[CodePen](https://codepen.io/)、[JSFiddle](https://jsfiddle.net/)、[Glitch](https://glitch.com/)などのオンラインエディターで解決策を試すことができます。
+>
+> もし行き詰まったら、[コミュニケーションチャンネル](/ja/docs/MDN/Community/Communication_channels)のいずれかに連絡してみてください。
+
+## HTML のコントロール 1
+
+最初に、いくつかの入力型を調べてみましょう。ユーザーが詳細を更新するために適切な入力を作成しましょう。
+
+1. Email
+2. Website
+3. Phone number
+4. Favorite color
+
+下記のライブコードを更新して、完成例を再現してみてください。
+
+{{EmbedGHLiveSample("learning-area/html/forms/tasks/html5-controls/html5-controls1.html", '100%', 700)}}
+
+> **注目:**
+>
+> [この課題の開始点をダウンロード](https://github.com/mdn/learning-area/blob/main/html/forms/tasks/html5-controls/html5-controls1-download.html)すると、自分のエディターやオンラインエディターで取り組むことができます。
+
+## HTML のコントロール 2
+
+次に、ユーザーがパーティーに招待する最大人数を選べるスライダーコントロールを実装していただきます。
+
+1. 指定されたラベルに沿った基本的なスライダーコントロールを実装します。
+2. 最小値 1、最大値 30、初期値 10、要素 `id` に `max-invite` を指定します。
+3. スライダーの現在値を入れるために、対応する出力要素を作成します。この要素に `invite-output` というクラスを与え、意味づけします。これを正しく行えば、スライダーが移動されたときにページに記載されている JavaScript が自動的に出力値を更新します。
+
+下記のライブコードを更新して、完成例を再現してみてください。
+
+{{EmbedGHLiveSample("learning-area/html/forms/tasks/html5-controls/html5-controls2.html", '100%', 700)}}
+
+> **注目:**
+>
+> [この課題の開始点をダウンロード](https://github.com/mdn/learning-area/blob/main/html/forms/tasks/html5-controls/html5-controls2-download.html)すると、自分のエディターやオンラインエディターで取り組むことができます。
diff --git a/files/ja/learn/forms/test_your_skills_colon__other_controls/index.md b/files/ja/learn/forms/test_your_skills_colon__other_controls/index.md
new file mode 100644
index 00000000000000..dfd59c8f0a03e0
--- /dev/null
+++ b/files/ja/learn/forms/test_your_skills_colon__other_controls/index.md
@@ -0,0 +1,63 @@
+---
+title: "スキルテスト: その他のコントロール"
+slug: Learn/Forms/Test_your_skills:_Other_controls
+l10n:
+ sourceCommit: c64e813d8ab9dbe22cbc049c26f7c6703370a2b7
+---
+
+{{learnsidebar}}
+
+このスキルテストの目的は、あなたが[Other form controls](/ja/docs/Learn/Forms/Other_form_controls)の記事を理解したかどうかを評価することです。
+
+> **メモ:** このページのインタラクティブエディターや、[CodePen](https://codepen.io/)、[JSFiddle](https://jsfiddle.net/)、[Glitch](https://glitch.com/)などのオンラインエディターで解決策を試すことができます。
+>
+> もし行き詰まったら、[コミュニケーションチャンネル](/ja/docs/MDN/Community/Communication_channels)のいずれかに連絡してみてください。
+
+## その他のコントロール 1
+
+「その他のコントロール」の最初の評価では、複数行のテキスト入力フィールドを作成してもらいます。
+
+1. 基本的な複数行テキスト入力を作成します。
+2. 指定された「コメント」ラベルと意味づけします。
+3. コメントを追加するために、入力に 35 列と 10 行の空間を与えます。
+4. コメントの長さは最大 100 文字です。
+
+入力フィールドを作成するには、下記のエディターで HTML コードを更新してください。
+
+{{EmbedGHLiveSample("learning-area/html/forms/tasks/other-controls/other-controls1.html", '100%', 500)}}
+
+> **注目:**
+>
+> [この課題の開始点をダウンロード](https://github.com/mdn/learning-area/blob/main/html/forms/tasks/other-controls/other-controls1-download.html)すると、自分のエディターやオンラインエディターで取り組むことができます。
+
+## その他のコントロール 2
+
+それでは、ユーザーが指定された選択肢から好きな食べ物を選べるように、ドロップダウンセレクトメニューを実装してみましょう。
+
+1. 基本的なセレクトボックスの構造を作成します。
+2. 指定された "food" ラベルと意味づけします。
+3. リストの中で、選択肢を 2 つのサブグループ、"mains" と "snacks" に分割します。
+
+メニューを作成するには、下記エディターで HTML コードを更新してください。
+
+{{EmbedGHLiveSample("learning-area/html/forms/tasks/other-controls/other-controls2.html", '100%', 500)}}
+
+> **注目:**
+>
+> [この課題の開始点をダウンロード](https://github.com/mdn/learning-area/blob/main/html/forms/tasks/other-controls/other-controls2-download.html)すると、自分のエディターやオンラインエディターで取り組むことができます。
+
+## その他のコントロール 3
+
+一連の最後の課題では、ほとんど同じ食品リストから始めます。しかし、今回は違うことをします。
+
+1. 指定されたラベルに意味づけされた基本的なテキスト入力を作成します。
+2. 食べ物の選択肢をフォーム入力と関連付けられるリストに入れます。
+3. 文字を入力すると、その文字列に一致するリストオプションが自動補完候補としてドロップダウンリストに指定されるように、リストをテキスト入力に関連付けます。
+
+入力を作成するには、下記のエディターで HTML コードを更新してください。
+
+{{EmbedGHLiveSample("learning-area/html/forms/tasks/other-controls/other-controls3.html", '100%', 500)}}
+
+> **注目:**
+>
+> [この課題の開始点をダウンロード](https://github.com/mdn/learning-area/blob/main/html/forms/tasks/other-controls/other-controls3-download.html)すると、自分のエディターやオンラインエディターで取り組むことができます。
diff --git a/files/ja/learn/forms/test_your_skills_colon__styling_basics/index.md b/files/ja/learn/forms/test_your_skills_colon__styling_basics/index.md
new file mode 100644
index 00000000000000..30d84b193d9819
--- /dev/null
+++ b/files/ja/learn/forms/test_your_skills_colon__styling_basics/index.md
@@ -0,0 +1,26 @@
+---
+title: "スキルテスト: スタイル設定の基本"
+slug: Learn/Forms/Test_your_skills:_Styling_basics
+l10n:
+ sourceCommit: c64e813d8ab9dbe22cbc049c26f7c6703370a2b7
+---
+
+{{learnsidebar}}
+
+このスキルテストの目的は、あなたが[ウェブフォームへのスタイル設定](/ja/docs/Learn/Forms/Styling_web_forms)の記事を理解したかどうかを評価することです。
+
+> **メモ:** このページのインタラクティブエディターや、[CodePen](https://codepen.io/)、[JSFiddle](https://jsfiddle.net/)、[Glitch](https://glitch.com/)などのオンラインエディターで解決策を試すことができます。
+>
+> もし行き詰まったら、[コミュニケーションチャンネル](/ja/docs/MDN/Community/Communication_channels)のいずれかに連絡してみてください。
+
+## スタイル設定の基本 1
+
+基本的なフォームのスタイル設定はかなり自由な形になっており、最終的に何をするかについてはかなり柔軟性があります。しかし、CSS で以下の要求を満たすことを目指してください。
+
+1. フォント、パディング、マージン、サイズ設定の一貫性を持たせるために、何らかの軽量な「リセット」を追加してください。
+2. その上で、入力フィールドとボタンに一貫性のある素敵なスタイル設定を追加してください。
+3. 何らかのレイアウト技術を使用して、入力フィールドとラベルがきれいに並ぶようにします。
+
+> **注目:**
+>
+> [この課題の開始点をダウンロード](https://github.com/mdn/learning-area/blob/main/html/forms/tasks/styling-basics/styling-basics1-download.html)すると、自分のエディターやオンラインエディターで取り組むことができます。
diff --git a/files/ja/learn/forms/ui_pseudo-classes/index.md b/files/ja/learn/forms/ui_pseudo-classes/index.md
index a07c862c3f6907..cd595687f0532c 100644
--- a/files/ja/learn/forms/ui_pseudo-classes/index.md
+++ b/files/ja/learn/forms/ui_pseudo-classes/index.md
@@ -611,7 +611,7 @@ input[type="radio"]:indeterminate {
## スキルテスト
-この記事の終わりまで来ましたが、最も重要な情報を覚えていますか?次に進む前に、この情報を覚えているかどうかを確認するためのテストがいくつかあります。[スキルテスト:高度なスタイル設定](/ja/docs/Learn/Forms/Test_your_skills:_Advanced_styling)を見てください。
+この記事の最後に達しましたが、最も大切な情報を覚えていますか?次に進む前に、この情報が身に付いたかどうかを確認するテストがあります。[スキルテスト:高度なスタイル設定](/ja/docs/Learn/Forms/Test_your_skills:_Advanced_styling)を見てください。
## まとめ
diff --git a/files/ja/learn/forms/your_first_form/index.md b/files/ja/learn/forms/your_first_form/index.md
index 735b6e9a6aeca5..b97724f53b686f 100644
--- a/files/ja/learn/forms/your_first_form/index.md
+++ b/files/ja/learn/forms/your_first_form/index.md
@@ -2,7 +2,7 @@
title: 初めてのフォーム
slug: Learn/Forms/Your_first_form
l10n:
- sourceCommit: 3c4825249f93a53f0fd2b0b6d0a371663086718e
+ sourceCommit: 27bc03cfbc87309f091567a50b484eb1f9355b03
---
{{LearnSidebar}}{{NextMenu("Learn/Forms/How_to_structure_a_web_form", "Learn/Forms")}}
@@ -15,7 +15,7 @@ l10n:
前提条件:
- 基本的なコンピューターリテラシーと、HTML を理解する を理解していること。
+ HTML を理解する を理解していること。
@@ -52,19 +52,19 @@ l10n:
## アクティブラーニング: フォームの HTML の実装
-これで、HTML に移ってフォームのコードを書く準備ができました。問い合わせフォームを作るために、以下の HTML 要素、 {{HTMLElement("form")}}、{{HTMLElement("label")}}、{{HTMLElement("input")}}、{{HTMLElement("textarea")}}、{{HTMLElement("button")}} を使用します。
+これで、HTML に移ってフォームのコードを書く準備ができました。問い合わせフォームを作るために、以下の HTML 要素、 {{HTMLelement("form")}}、{{HTMLelement("label")}}、{{HTMLelement("input")}}、{{HTMLelement("textarea")}}、{{HTMLelement("button")}} を使用します。
前に進む前に、[簡単な HTML テンプレート](https://github.com/mdn/learning-area/blob/main/html/introduction-to-html/getting-started/index.html)をローカルにコピーします。 — ここにフォームの HTML を入力します。
### `` 要素
-すべてのフォームは、以下のように {{HTMLElement("form")}} 要素から始まります。
+すべてのフォームは、以下のように {{HTMLelement("form")}} 要素から始まります。
```html
-
+…
```
-これは、フォームを正式に定義します。これは {{HTMLElement("section")}} や {{HTMLElement("footer")}} 要素と同様にコンテナー要素ですが、フォームを含めるのに特化しています。フォームの動作方法を設定するための特有の属性にも対応しています。すべての属性は省略可能ですが、少なくとも [`action`](/ja/docs/Web/HTML/Element/form#attr-action) 属性と [`method`](/ja/docs/Web/HTML/Element/form#attr-method) 属性は常に設定するのがふつうです。
+これは、フォームを正式に定義します。これは {{HTMLelement("section")}} や {{HTMLelement("footer")}} 要素と同様にコンテナー要素ですが、フォームを含めるのに特化しています。フォームの動作方法を設定するための特有の属性にも対応しています。すべての属性は省略可能ですが、少なくとも [`action`](/ja/docs/Web/HTML/Element/form#action) 属性と [`method`](/ja/docs/Web/HTML/Element/form#method) 属性は常に設定するのがふつうです。
- `action` 属性は、フォームで収集したデータを送信すべき場所 (URL) を定義します。
- `method` 属性は、データを送信するために使用する HTTP メソッド(`get` または `post`)を定義します。
@@ -91,7 +91,7 @@ l10n:
- E-mail:
+ Email:
@@ -106,12 +106,13 @@ l10n:
{{HTMLelement("li")}} 要素はコードを扱いやすく構造化するとともに、スタイル設定を容易にするため (後述) に置いています。
ユーザビリティとアクセシビリティのため、それぞれのフォームコントロールに明示的にラベルをつけます。
-[`for`](/ja/docs/Web/HTML/Attributes/for) 属性をすべての {{HTMLElement("label")}} 要素に使用し、その値として関連付けるフォームコントロールの [`id`](/ja/docs/Web/HTML/Global_attributes/id) を取ります。これで、フォームコントロールをラベルと関連付けることができます。
+[`for`](/ja/docs/Web/HTML/Attributes/for) 属性をすべての {{HTMLelement("label")}} 要素に使用し、その値として関連付けるフォームコントロールの [`id`](/ja/docs/Web/HTML/Global_attributes/id) を取ります。これで、フォームコントロールをラベルと関連付けることができます。
-これには利点があります — フォームコントロールにラベルを関連付けて、ユーザーがマウス、トラックパッド、タッチ端末でラベルをクリックすると、対応するウィジェットがアクティブになり、スクリーンリーダーのユーザーに読み上げられるアクセシブルな名前が提供されます。この属性の利点をさらに知りたいのでしたら、 [ウェブフォームの構築方法](/ja/docs/Learn/Forms/How_to_structure_a_web_form) の記事ですべてを詳しく説明しています。
+これには利点があります。フォームコントロールにラベルを関連付けて、ユーザーがマウス、トラックパッド、タッチ端末でラベルをクリックすると、対応するウィジェットがアクティブになり、スクリーンリーダーのユーザーに読み上げられるアクセシブルな名前が提供されます。
+この属性の利点をさらに知りたいのであれば、[ウェブフォームの構築方法](/ja/docs/Learn/Forms/How_to_structure_a_web_form) の記事ですべてを詳しく説明しています。
-{{HTMLElement("input")}} 要素において、もっとも重要な属性は、`type` 属性です。
-この属性は {{HTMLElement("input")}} 要素の見た目や動作を定義するため、とても重要です。
+{{HTMLelement("input")}} 要素において、もっとも重要な属性は、`type` 属性です。
+この属性は {{HTMLelement("input")}} 要素の見た目や動作を定義するため、とても重要です。
これについてもっと詳しいことは、[基本的なネイティブフォームコントロール](/ja/docs/Learn/Forms/Basic_native_form_controls)の記事にあります。
- このシンプルな例では、最初の input に {{HTMLelement("input/text", "text")}} という値を使用しています。これはこの属性の既定値です。
@@ -123,15 +124,15 @@ l10n:
大事なことを言い忘れましたが、` ` と ` ` の構文に注意してください。
これは HTML の奇妙な点の 1 つです。
-` ` タグは空要素です。つまり、終了タグは不要です。
-一方 {{HTMLElement("textarea")}} は空要素ではないので、適切な終了タグで閉じる必要があります。これは HTML フォームの特定の機能、つまり既定値の定義方法に影響があります。
-{{HTMLElement("input")}} 要素の既定値を定義するには、次のように [`value`](/ja/docs/Web/HTML/Element/input#値) 属性を使う必要があります。
+` ` タグは{{glossary("void element", "空要素")}}です。つまり、終了タグは不要です。
+一方 {{HTMLelement("textarea")}} は空要素ではないので、適切な終了タグで閉じる必要があります。これは HTML フォームの特定の機能、つまり既定値の定義方法に影響があります。
+{{HTMLelement("input")}} 要素の既定値を定義するには、次のように [`value`](/ja/docs/Web/HTML/Element/input#値) 属性を使う必要があります。
```html
```
-一方、 {{HTMLElement("textarea")}} の既定値を定義したい場合は、次のように既定値を {{HTMLElement("textarea")}} の開始タグと終了タグの間に書いてください。
+一方、 {{HTMLelement("textarea")}} の既定値を定義したい場合は、次のように既定値を {{HTMLelement("textarea")}} の開始タグと終了タグの間に書いてください。
```html
@@ -142,7 +143,7 @@ l10n:
### `` 要素
フォームはほぼできあがりました。あとは、ユーザーがフォームに記入したらデータを「送信」するためのボタンを追加します。
-これは、{{HTMLElement("button")}} 要素を使用して簡単にできます。終了タグ `` の直前に次の行を追加してください。
+これは、{{HTMLelement("button")}} 要素を使用して簡単にできます。終了タグ `` の直前に次の行を追加してください。
```html
@@ -152,11 +153,11 @@ l10n:
{{htmlelement("button")}} 要素は `type` 属性を受け入れます。これは `submit`、`reset`、`button` の 3 種類の値のうち 1 つを受け入れます。
-- `submit` ボタン(既定値)をクリックすると、フォームのデータを {{HTMLElement("form")}} 要素の `action` 属性で定義したウェブページへ送信します。
+- `submit` ボタン(既定値)をクリックすると、フォームのデータを {{HTMLelement("form")}} 要素の `action` 属性で定義したウェブページへ送信します。
- `reset` ボタンをクリックすると、直ちにすべてのフォームウィジェットを既定値にリセットします。 UX の観点では、このボタンは悪い行為であると考えられており、必要な理由がない限りこのボタンは使用しないようにしてください。
- `button` ボタンをクリックすると*何もしません*! おかしなことのように見えますが、独自のボタンを作成するのに驚くほど役立ちます。 JavaScript でその機能を定義することができます。
-> **メモ:** {{HTMLElement("input")}} 要素を使用して、対応する `type` を指定してボタンを作成することもできます。例えば ` ` のように。{{HTMLElement("button")}} 要素との大きな違いは、{{HTMLElement("input")}} 要素ではラベルとしてプレーンテキストしか許容しませんが、{{HTMLElement("button")}} 要素ではすべての HTML コンテンツを使用して、もっと複雑でクリエイティブなボタンの内容を作成することができます。
+> **メモ:** {{HTMLelement("input")}} 要素を使用して、対応する `type` を指定してボタンを作成することもできます。例えば ` ` のように。{{HTMLelement("button")}} 要素との大きな違いは、{{HTMLelement("input")}} 要素ではラベルとしてプレーンテキストしか許容しませんが、{{HTMLelement("button")}} 要素ではすべての HTML コンテンツを使用して、もっと複雑でクリエイティブなボタンの内容を作成することができます。
## 基本的なフォームの整形
@@ -169,17 +170,22 @@ l10n:
最初に、ページの HTML の head 内に {{htmlelement("style")}} 要素を追加します。次のようになります。
```html
-
+
```
`style` タグの中に、以下の CSS を追加してください。
```css
-form {
+body {
/* フォームをページの中央に配置 */
- margin: 0 auto;
- width: 400px;
- /* フォームの輪郭 */
+ text-align: center;
+}
+
+form {
+ display: inline-block;
+ /* フォームの外枠 */
padding: 1em;
border: 1px solid #ccc;
border-radius: 1em;
@@ -198,7 +204,7 @@ form li + li {
label {
/* 大きさと配置を統一 */
display: inline-block;
- width: 90px;
+ min-width: 90px;
text-align: right;
}
@@ -207,11 +213,9 @@ textarea {
/* すべてのテキストフィールドのフォント設定を一致させる
既定で、 textarea には等幅フォントが設定されている */
font: 1em sans-serif;
-
/* テキストフィールドの大きさを統一 */
width: 300px;
box-sizing: border-box;
-
/* フォームフィールド境界に合わせる */
border: 1px solid #999;
}
@@ -225,7 +229,6 @@ textarea:focus {
textarea {
/* 複数行のテキストフィールドをラベルに揃える */
vertical-align: top;
-
/* テキスト入力に十分な空間を与える */
height: 5em;
}
@@ -244,12 +247,12 @@ button {
保存して再読み込みすると、フォームがよりきれいになりました。
-> **メモ:** Github の [first-form-styled.html](https://github.com/mdn/learning-area/blob/main/html/forms/your-first-HTML-form/first-form-styled.html) にあります([ライブ版も確認](https://mdn.github.io/learning-area/html/forms/your-first-HTML-form/first-form-styled.html))。
+> **メモ:** GitHub の [first-form-styled.html](https://github.com/mdn/learning-area/blob/main/html/forms/your-first-HTML-form/first-form-styled.html) にあります([ライブ版も確認](https://mdn.github.io/learning-area/html/forms/your-first-HTML-form/first-form-styled.html))。
## ウェブサーバーへのデータの送信
最後の、またもっともややこしいであろう部分が、サーバー側でのフォームデータの扱いです。
-{{HTMLElement("form")}} 要素は [`action`](/ja/docs/Web/HTML/Element/form#attr-action) 属性と [`method`](/ja/docs/Web/HTML/Element/form#attr-method) 属性により、どこへどのようにデータを送信するかを定義できます。
+{{HTMLelement("form")}} 要素は [`action`](/ja/docs/Web/HTML/Element/form#action) 属性と [`method`](/ja/docs/Web/HTML/Element/form#method) 属性により、どこへどのようにデータを送信するかを定義できます。
フォームコントロールには `name` をつけます。これらの名前はクライアント側とサーバー側の両側で重要です。ブラウザー側ではそれぞれのデータにどのような名前をつけるかを示すものであり、サーバー側では名前によってそれぞれのデータを扱うことができます。フォームデータは名前/値のペアとしてサーバーに送信されます。
@@ -263,7 +266,7 @@ button {
- E-mail:
+ Email:
@@ -296,7 +299,7 @@ button {
- E-mail:
+ Email:
@@ -385,3 +388,9 @@ button {
これはほんの開始点です、しかし — さて、より深く見ていくときが来ました。ウェブフォームはここで見てきたものよりさらに強力であり、ガイドの他の記事で残りの部分を習得できます。
{{NextMenu("Learn/Forms/How_to_structure_a_web_form", "Learn/Forms")}}
+
+### 高度なトピック
+
+- [カスタムフォームコントロールの作成方法](/ja/docs/Learn/Forms/How_to_build_custom_form_controls)
+- [JavaScript によるフォームの送信](/ja/docs/Learn/Forms/Sending_forms_through_JavaScript)
+- [フォームウィジェット向けのプロパティの互換性一覧表](/ja/docs/Learn/Forms/Property_compatibility_table_for_form_controls)
diff --git a/files/ja/learn/javascript/client-side_web_apis/video_and_audio_apis/index.md b/files/ja/learn/javascript/client-side_web_apis/video_and_audio_apis/index.md
index 20a0b4dbd29ee8..78e82b92a122a0 100644
--- a/files/ja/learn/javascript/client-side_web_apis/video_and_audio_apis/index.md
+++ b/files/ja/learn/javascript/client-side_web_apis/video_and_audio_apis/index.md
@@ -146,7 +146,8 @@ HTML のインデックスファイルを開いてください。多くの機能
font-family: "HeydingsControlsRegular";
src: url("fonts/heydings_controls-webfont.eot");
src:
- url("fonts/heydings_controls-webfont.eot?#iefix") format("embedded-opentype"),
+ url("fonts/heydings_controls-webfont.eot?#iefix")
+ format("embedded-opentype"),
url("fonts/heydings_controls-webfont.woff") format("woff"),
url("fonts/heydings_controls-webfont.ttf") format("truetype");
font-weight: normal;
diff --git a/files/ja/learn/performance/web_performance_basics/index.md b/files/ja/learn/performance/web_performance_basics/index.md
index e4027857292ef6..c308c7cc7f3330 100644
--- a/files/ja/learn/performance/web_performance_basics/index.md
+++ b/files/ja/learn/performance/web_performance_basics/index.md
@@ -3,6 +3,8 @@ title: ウェブパフォーマンスの基礎
slug: Learn/Performance/Web_Performance_Basics
---
+{{LearnSidebar}}
+
あなたのウェブサイトが可能な限りのパフォーマンスを発揮すべき[理由](https://web.dev/why-speed-matters/)はたくさんあります。
以下に、各トピックの詳細情報を提供するためのリンク付きのベストプラクティス、ツール、API の簡単なレビューを示します。
diff --git a/files/ja/learn/server-side/configuring_server_mime_types/index.md b/files/ja/learn/server-side/configuring_server_mime_types/index.md
index 7c1d7589106913..bae4c6b55ab5b2 100644
--- a/files/ja/learn/server-side/configuring_server_mime_types/index.md
+++ b/files/ja/learn/server-side/configuring_server_mime_types/index.md
@@ -22,7 +22,7 @@ MIME タイプの例です。
Apache ウェブサーバーの **2.2.7 より前**のバージョンでは、未知のコンテンツの種類に対して `text/plain` か `application/octet-stream` の MIME タイプを報告するように設定されていました。
-[Nginx](https://nginx.org/) は既定ののコンテンツの種類を定義しない場合、`text/plain` を報告します。
+[Nginx](https://nginx.org/) は既定のコンテンツの種類を定義しない場合、`text/plain` を報告します。
新しいコンテンツの種類が生まれたりウェブサーバーに追加されたりすると、ウェブ管理者は新しい MIME タイプをウェブサーバーの設定に追加しないことがあります。これは、ウェブサーバーやアプリケーションから報告される MIME タイプを尊重するブラウザー のユーザーにとって、主要な問題の原因となります。
diff --git a/files/ja/learn/tools_and_testing/client-side_javascript_frameworks/index.md b/files/ja/learn/tools_and_testing/client-side_javascript_frameworks/index.md
index 6137bfaab3d82d..97aae83387346a 100644
--- a/files/ja/learn/tools_and_testing/client-side_javascript_frameworks/index.md
+++ b/files/ja/learn/tools_and_testing/client-side_javascript_frameworks/index.md
@@ -2,14 +2,14 @@
title: クライアントサイドの JavaScript フレームワークを理解する
slug: Learn/Tools_and_testing/Client-side_JavaScript_frameworks
l10n:
- sourceCommit: 5fa776ca3c79d0298cdf07c50ed0024d8b185716
+ sourceCommit: 26e2f9883e0e73def04c0e86fec6da3ec42e66b3
---
{{LearnSidebar}}
JavaScript フレームワークは、最新のフロントエンドウェブ開発に欠かせないものであり、開発者にスケーラブルでインタラクティブなウェブアプリケーションを構築するための試行錯誤されたツールを提供しています。現代の多くの企業では、フレームワークをツールの標準的な一部として使用しているため、多くのフロントエンド開発の仕事でフレームワークの経験が必要とされています。
-フロントエンド開発者を目指していると、フレームワークを学ぶ際にどこから始めればいいのか悩むことがあります。フレームワークは常に新しいものが登場するため、非常に多くの種類の中から選ぶことができます。これらはほとんど同じように動作しますが、いくつかの点において異なっています。そしてフレームワークを利用する上では、具体的に注意しなければならないこともあります。
+フロントエンド開発者を目指していると、フレームワークを学ぶ際にどこから始めればいいのか悩むことがあります。フレームワークは常に新しいものが登場するため、多くの種類の中から選ぶことができます。これらはほとんど同じように動作しますが、いくつかの点において異なっています。そしてフレームワークを利用する上では、具体的に注意しなければならないこともあります。
この記事では、あなたがフレームワークを学び始めるための快適な出発点を提供することを目的としています。私たちは、React/ReactDOM や Vue、その他の特定のフレームワークについて知っておく必要があるすべてのことを網羅的に教えることを目指しているわけではありません。その代わりに、以下のようなより基本的な質問に答えたいと思います。
@@ -28,14 +28,6 @@ JavaScript フレームワークは、最新のフロントエンドウェブ開
ウェブプラットフォームの基本的な機能を理解すれば、その上で構築されているフレームワークのトラブルも自信を持って解決できるでしょう。そうすれば、あなたの書くコードはより豪華でプロフェッショナルなものになるはずです。
-> **注目:**
->
-> #### フロントエンドのウェブ開発者になりたい方へ
->
-> このコースの中には、目標に向かって作業するために必要な、すべての必須情報が記載されています。
->
-> [**始めましょう**](/ja/docs/Learn/Front-end_web_developer)
-
## 入門ガイド
- [1. クライアントサイドフレームワークの紹介](/ja/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Introduction)
@@ -45,9 +37,9 @@ JavaScript フレームワークは、最新のフロントエンドウェブ開
## React のチュートリアル
-> **メモ:** この React のチュートリアルは React/ReactDOM 16.13.1 と create-react-app 3.4.1 で、2020 年 5 月に動作確認を行いました。
+> **メモ:** この React のチュートリアルは 2023 年 1 月に、React/ReactDOM 18.2.0 と create-react-app 5.0.1 で動作確認を行いました。
>
-> もし、コードとサンプルのバージョンとを確認する必要があれば、 [todo-react リポジトリー](https://github.com/mdn/todo-react)で最新版を見ることができます。実行中のライブバージョンについては、 から確認ができます。
+> もし、コードとサンプルのバージョンとを確認する必要があれば、 [todo-react リポジトリー](https://github.com/mdn/todo-react)で最新版を見ることができます。実行中のライブバージョンについては、 から確認ができます。
- [1. React を始める](/ja/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/React_getting_started)
- : この記事では React のはじめかたを説明します。React の背景と使い方について説明し、ローカル環境で基本的な React ツールチェーンを設定します。また、シンプルな基本アプリを作成して、React がどのようなプロセスで機能するのかを学んでいきます。
@@ -66,7 +58,7 @@ JavaScript フレームワークは、最新のフロントエンドウェブ開
## Ember のチュートリアル
-> **メモ:** この Ember チュートリアルは Ember/Ember CLI version 3.18.0 で、2020 年 5 月に動作確認を行いました。
+> **メモ:** この Ember チュートリアルは 2020 年 5 月に Ember/Ember CLI version 3.18.0 で動作確認を行いました。
>
> もし、コードとサンプルのバージョンとを確認する必要があれば、[ember-todomvc-tutorial リポジトリー](https://github.com/NullVoxPopuli/ember-todomvc-tutorial/tree/master/steps/00-finished-todomvc/todomvc) で最新版を見ることができます。実行中のライブバージョンについては から確認ができます(ただしチュートリアルで取り扱っていない機能も含まれています)。
@@ -85,9 +77,9 @@ JavaScript フレームワークは、最新のフロントエンドウェブ開
## Vue のチュートリアル
-> **メモ:** この Vue チュートリアルは Vue 2.6.11 で、2020 年 5 月に動作確認を行いました。
+> **メモ:** この Vue チュートリアルは 2023 年 1 月に、Vue 3.2.45 で動作確認を行いました。
>
-> もし、コードとサンプルのバージョンとを確認する必要があれば、 [todo-vue リポジトリー](https://github.com/mdn/todo-vue)で最新版を見ることができます。実行中のライブバージョンについては から確認ができます。
+> もし、コードとサンプルのバージョンとを確認する必要があれば、 [todo-vue リポジトリー](https://github.com/mdn/todo-vue)で最新版を見ることができます。実行中のライブバージョンについては から確認ができます。
- [1. Vue を始める](/ja/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Vue_getting_started)
- : これで、フレームワークの 3 つ目である Vue を紹介することができます。この記事では、 Vue の背景を少し見て、インストールと新しいプロジェクトの作成方法を学び、プロジェクト全体と個々のコンポーネントのハイレベルな構造を勉強し、プロジェクトをローカルで実行する方法を確認し、例の構築を始めるために取得します。
@@ -103,7 +95,7 @@ JavaScript フレームワークは、最新のフロントエンドウェブ開
- : この記事では、 Vue の computed プロパティと呼ばれる機能を使用して、完了した Todo アイテムの数を表示するカウンターを追加します。この著作物はメソッドと似たような作業をしますが、依存関係の 1 つが動作したときだけ再実行されます。
- [7. Vue の条件付きレンダリング: 既存の TODO の編集](/ja/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Vue_conditional_rendering)
- : これで、まだ欠けている機能の主要な部分の一つである、既存のTodoアイテムを編集する機能を追加する時が来ました。この機能を実現するために、 Vue の条件付きレンダリング機能である `v-if` と `v-else` を利用して、既存の Todo アイテムビューと、 Todo アイテムのラベルを更新できる編集ビューを切り替えられるようにします。また、 Todo アイテムを削除する機能の追加も見ていきます。
-- [8. Vue refs によるフォーカス管理](/ja/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Vue_refs_focus_management)
+- [8. Vue のフォーカス管理のための refs と lifecycle メソッド](/ja/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Vue_refs_focus_management)
- : Vue の使用はほぼ終了しました。最後に見るべき機能は、フォーカス管理です。別の言い方をすれば、アプリのキーボードアクセシビリティをどのように向上させるか、ということです。この処理に Vue refs を使用することを見ていきます。この機能は、仮想 DOM の下にある基礎 DOM ノードに直接アクセスしたり、あるコンポーネントから子コンポーネントの内部 DOM 構造に直接アクセスしたりすることができる先進的な機能です。
- [9. Vue のリソース](/ja/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Vue_resources)
- : これで、 Vue の学習の締めくくりとして、さらに学習を進めるために使用できるリソースのリストと、他にも有益なヒントを提供します。
@@ -125,7 +117,7 @@ JavaScript フレームワークは、最新のフロントエンドウェブ開
- [5. 高度な Svelte: リアクティブ、ライフサイクル、アクセシビリティ](/ja/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Svelte_reactivity_lifecycle_accessibility)
- : この記事では、アプリの最終的な機能を追加し、さらにアプリをコンポーネント化します。オブジェクトや配列の更新に関連するリアクティビティの問題に対処する方法について学びます。よくある落とし穴を避けるために、 Svelte のリアクティブシステムを少し深く掘り下げる必要があります。また、アクセシビリティのフォーカスに関する問題の解決や、その他の問題にも目を向けていきます。
- [6. Svelte のストアでの作業](/ja/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Svelte_stores)
- - : この記事では、Svelteで状態管理を処理するもう一つの方法である[ストア](https://svelte.dev/tutorial/writable-stores)を示します。ストアは、値を格納するグローバルなデータリポジトリーです。コンポーネントはストアに格納され、その値が変更されたときに通知を受け取ることができます。
+ - : この記事では、Svelteで状態管理を処理するもう一つの方法である[ストア](https://learn.svelte.dev/tutorial/writable-stores)を示します。ストアは、値を格納するグローバルなデータリポジトリーです。コンポーネントはストアに格納され、その値が変更されたときに通知を受け取ることができます。
- [7. TypeScript support in Svelte](/ja/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Svelte_TypeScript)
- : これで、 Svelte アプリケーションで TypeScript を使用する方法を学ぶことができます。まず、 TypeScript とは何か、そして TypeScript が私たちにもたらす好ましいこととは何かを学びます。次に、 TypeScript ファイルを使用して作業するために、プロジェクトをどのように設定するかを見ていきます。最後に、 TypeScript の機能を十分に活かすためにはどのような修正が必要なのか、アプリを確認します。
- [8. 展開と次の手順](/ja/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Svelte_deployment_next)
@@ -161,4 +153,4 @@ JavaScript フレームワークは、最新のフロントエンドウェブ開
前もって言っておきますが、取り上げたフレームワークは私たちがベストだと思うから選んだわけでは**ありません**。また推奨しているわけでもありません。ただ、上記の基準を満たしていると考えただけです。
-初期の段階では、もっと多くのフレームワークを取り上げたいと考えていましたが、このコンテンツの公開を遅らせることよりも、後からフレームワークを追加する方が良いと考えました。もし、あなたのお気に入りのフレームワークがこのコンテンツに含まれておらず、それを変える手助けをしたいのであれば、私たちと気軽に意見を交わしましょう![Matrix](https://wiki.mozilla.org/Matrix) や [Discourse](https://discourse.mozilla.org/c/mdn/236) を通じて私たちと連絡を取るか、[mdn-admins list](mailto:mdn-admins@mozilla.org) にメールを送ってください。
+初期の段階では、もっと多くのフレームワークを取り上げたいと考えていましたが、このコンテンツの公開を遅らせることよりも、後からフレームワークを追加する方が良いと考えました。もし、あなたのお気に入りのフレームワークがこのコンテンツに含まれておらず、それを変える手助けをしたいのであれば、私たちと気軽に[意見を交わしましょう](/ja/docs/MDN/Community/Communication_channels)!
diff --git a/files/ja/learn/tools_and_testing/client-side_javascript_frameworks/introduction/index.md b/files/ja/learn/tools_and_testing/client-side_javascript_frameworks/introduction/index.md
index 8466ce44eb11ce..41b87c5bd486ee 100644
--- a/files/ja/learn/tools_and_testing/client-side_javascript_frameworks/introduction/index.md
+++ b/files/ja/learn/tools_and_testing/client-side_javascript_frameworks/introduction/index.md
@@ -2,7 +2,7 @@
title: クライアントサイドフレームワークの概要
slug: Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Introduction
l10n:
- sourceCommit: 7c7473588e7fb487df574c64307b11a3ecd55cd1
+ sourceCommit: 70da4a8f77d691220aa8ed9d7305b290d52e7337
---
{{LearnSidebar}}{{NextMenu("Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Main_features", "Learn/Tools_and_testing/Client-side_JavaScript_frameworks")}}
@@ -30,7 +30,7 @@ JavaScript とフレームワークの簡単な歴史を見て、フレームワ
## 簡単な歴史
-1996 年に JavaScript が登場すると、それまで静的なドキュメントで構成されていたウェブに、ところどころの操作の可能性と興奮が加わりました。 ウェブは単に _ものを読む_ だけではなく、 _何かをする_ ための場所になりました。 JavaScript の人気は着実に高まりました。 JavaScript を扱う開発者は、直面した問題を解決するためのツールを作成し、**ライブラリー**と呼ばれる再利用可能なパッケージにパッケージ化して、他のユーザーとソリューションを共有できるようにしました。このライブラリーの共有エコシステムは、ウェブの成長を形作るのに役立ちました。
+1996 年に JavaScript が登場すると、それまで静的な文書で構成されていたウェブに、ところどころの操作の可能性と興奮が加わりました。 ウェブは単に _ものを読む_ だけではなく、 _何かをする_ ための場所になりました。 JavaScript の人気は着実に高まりました。 JavaScript を扱う開発者は、直面した問題を解決するためのツールを作成し、**ライブラリー**と呼ばれる再利用可能なパッケージにパッケージ化して、他のユーザーとソリューションを共有できるようにしました。このライブラリーの共有エコシステムは、ウェブの成長を形作るのに役立ちました。
現在、 JavaScript はウェブに不可欠な部分となり、[すべてのウェブサイトの 98% で使用されており](https://w3techs.com/technologies/details/cp-javascript)、ウェブは現代生活に不可欠な部分です。ユーザーは論文を書いたり、予算を管理したり、音楽をストリーミングしたり、映画を鑑賞したり、テキスト、音声、またはビデオチャットを使って遠距離の他のユーザーと瞬時にコミュニケーションしたりできます。ウェブを使用すると、これまでコンピューターにインストールされたネイティブアプリケーションでのみ可能であったことが実行できるようになります。これらの最新の複雑でインタラクティブなウェブサイトは、**ウェブアプリケーション**と呼ばれることがよくあります。
@@ -38,9 +38,9 @@ JavaScript とフレームワークの簡単な歴史を見て、フレームワ
JavaScript フレームワークは、あなたが毎日使用するウェブサイトの多くを含む、現代のウェブ上の優れたソフトウェアの多くを強化しています。現在この記事を読んでいる MDN Web Docs は、React/ReactDOM フレームワークを使用してフロントエンドを強化します。
-## どのようなフレームワークがあるのでしょうか?
+## どのようなフレームワークがあるのか
-さまざまなフレームワークが存在しますが、現在「ビッグ 4 」は次のとおりであると考えられています。
+さまざまなフレームワークが存在しますが、現在「ビッグ 4」は次のとおりであると考えられています。
### Ember
@@ -74,7 +74,7 @@ React は、 [JSX](https://react.dev/learn/writing-markup-with-jsx) として知
[React の学習を開始する](/ja/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/React_getting_started)
-## 何故フレームワークが存在するのでしょうか?
+## 何故フレームワークが存在するのか
フレームワークの作成にインスピレーションを与えた環境について説明しましたが、実際には、開発者がフレームワークを作成する必要性を _なぜ_ 感じたのかというと、そうではありません。その理由を探るには、まずソフトウェア開発の課題を検討する必要があります。
@@ -103,9 +103,8 @@ const state = [
function buildTodoItemEl(id, name) {
const item = document.createElement("li");
const span = document.createElement("span");
- const textContent = document.createTextNode(name);
- span.appendChild(textContent);
+ span.textContent = name;
item.id = id;
item.appendChild(span);
@@ -115,17 +114,15 @@ function buildTodoItemEl(id, name) {
}
```
-ここでは、 [`document.createElement()`](/ja/docs/Web/API/Document/createElement) メソッドを使用して ` ` を作成し、さらに数行のコードで必要なプロパティと子を作成しています。
+ここでは、 [`document.createElement()`](/ja/docs/Web/API/Document/createElement) メソッドを使用して ` ` を作成し、さらに数行のコードで必要なプロパティと子要素を作成しています。
-前のスニペットの 10 行目は、別のビルド関数 `buildDeleteButtonEl()` を参照しています。これは、リスト項目要素を構築するために使用したパターンと同様のパターンに従います。
+前のスニペットでは、別のビルド関数 `buildDeleteButtonEl()` を参照しています。これは、リスト項目要素を構築するために使用したパターンと同様のパターンに従います。
```js
function buildDeleteButtonEl(id) {
const button = document.createElement("button");
- const textContent = document.createTextNode("Delete");
-
button.setAttribute("type", "button");
- button.appendChild(textContent);
+ button.textContent = "Delete";
return button;
}
@@ -148,7 +145,7 @@ function renderTodoList() {
}
```
-これで、UI 専用のコードが 30 行を _はるかに_ 超えています。つまり、 DOM 内で _何かを_ レンダリングするためだけに、後でリスト項目のスタイルを設定するために使用できるクラスを追加する必要はありません。
+これで、UI 専用のコードが 30 行をおよそ超えています。つまり、 DOM 内で _何かを_ レンダリングするためだけに、後でリスト項目のスタイルを設定するために使用できるクラスを追加する必要はありません。
DOM を直接操作して、この例のように要素の作り方、プロパティを変更する方法、要素を互いの内側に配置する方法、ページ上にそれらを表示する方法など DOM の仕組みについて多くのことを理解する必要があります。このコードは実際にユーザー操作を処理したり、タスクの追加や削除に対処したりするものはありません。これらの機能を追加する場合は、適切なタイミングで適切な方法で UI を更新することを忘れないでください。
@@ -156,14 +153,15 @@ JavaScript フレームワークは、この種の作業をはるかに簡単に
このセクションのコードサンプルの動作を確認したい場合は、 [CodePen 上のアプリの動作バージョン](https://codepen.io/mxmason/pen/XWbPNmw) をチェックアウトしてください。これにより、ユーザーは次の機能を追加したり、新しいタスクを削除します。
-このセクションで使用される JavaScript について詳しくは、以下をご覧ください。
+このセクションで使用される JavaScript 機能について詳しくは、以下をご覧ください。
-- [`document.createElement()`](/ja/docs/Web/API/Document/createElement)
-- [`document.createTextNode()`](/ja/docs/Web/API/Document/createTextNode)
-- [`document.createDocumentFragment()`](/ja/docs/Web/API/Document/createDocumentFragment)
-- [`eventTarget.addEventListener()`](/ja/docs/Web/API/EventTarget/addEventListener)
-- [`node.appendChild()`](/ja/docs/Web/API/Node/appendChild)
-- [`node.removeChild()`](/ja/docs/Web/API/Node/removeChild)
+- [`Array.forEach()`](/ja/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach)
+- [`Document.createDocumentFragment()`](/ja/docs/Web/API/Document/createDocumentFragment)
+- [`Document.createElement()`](/ja/docs/Web/API/Document/createElement)
+- [`Element.setAttribute()`](/ja/docs/Web/API/Element/setAttribute)
+- [`Node.appendChild()`](/ja/docs/Web/API/Node/appendChild)
+- [`Node.removeChild()`](/ja/docs/Web/API/Node/removeChild)
+- [`Node.textContent`](/ja/docs/Web/API/Node/textContent)
## UI を構築する別の方法
@@ -180,15 +178,15 @@ JavaScript フレームワークは、この種の作業をはるかに簡単に
```
-これだけです。このスニペットにより、約 32 行のコードが 6 行に減ります。 ここでの中括弧と `v-` 属性に馴染みがなくても大丈夫です。 Vue 固有の構文については、モジュールの後半で学習します。ここで理解すべきことは、このコードはそれが表す UI に似ているのに対し、 Vanilla Javascript コードはそうではないということです。
+これだけです。このスニペットにより、約 32 行のコードが 6 行に減ります。 ここでの中括弧と `v-` 属性に馴染みがなくても大丈夫です。 Vue 固有の構文については、モジュールの後半で学習します。ここで理解すべきことは、このコードはそれが表す UI に似ているのに対し、バニラ Javascript コードはそうではないということです。
Vue のおかげで、 UI を構築するために独自の関数を作成する必要がなくなりました。フレームワークは、最適化された効率的な方法でそれを処理します。ここでの私たちの唯一の役割は、各項目がどのように見えるべきかを Vue に記述することでした。 Vue に精通している開発者は、プロジェクトに参加すると何が起こっているのかをすぐに理解できます。これは Vue だけではありません。フレームワークを使用すると、チームだけでなく個人の効率も向上します。
-これと _似たようなこと_ を Vanilla Javascript でも実現できます。[テンプレートリテラル文字列](/ja/docs/Web/JavaScript/Reference/Template_literals)を使用すると、最終的な要素がどのようになるかを表す HTML の文字列を簡単に作成できます。これは、 To Do リストアプリケーションのような単純なものには便利なアイデアかもしれませんが、数千のデータレコードを管理し、ユーザーインターフェイスに同じ数の固有の要素をレンダリングする可能性がある大規模なアプリケーションでは維持できません。
+これと _似たようなこと_ をバニラ Javascript でも実現できます。[テンプレートリテラル文字列](/ja/docs/Web/JavaScript/Reference/Template_literals)を使用すると、最終的な要素がどのようになるかを表す HTML の文字列を簡単に作成できます。これは、 To Do リストアプリケーションのような単純なものには便利なアイデアかもしれませんが、数千のデータレコードを管理し、ユーザーインターフェイスに同じ数の固有の要素をレンダリングする可能性がある大規模なアプリケーションでは維持できません。
## フレームワークが私たちに与えてくれるその他のこと
-フレームワークが提供する他の利点を見てみましょう。前にも述べたように、フレームワークの利点は Vanilla Javascript でも実現可能ですが、フレームワークを使うことで、これらの問題を自分で解決しなければならないという認知的な負荷をすべて取り除くことができます。
+フレームワークが提供する他の利点を見てみましょう。前にも述べたように、フレームワークの利点はバニラ Javascript でも実現可能ですが、フレームワークを使うことで、これらの問題を自分で解決しなければならないという認知的な負荷をすべて取り除くことができます。
### ツール
@@ -198,7 +196,7 @@ Vue のおかげで、 UI を構築するために独自の関数を作成する
### コンパートメント化
-ほとんどの主要なフレームワークは、開発者がユーザーインターフェイスのさまざまな部分を _コンポーネント_ 、つまり相互に通信できる保守可能で再利用可能なコードの塊に抽象化することを推奨しています。特定のコンポーネントに関連するすべてのコードは 1 つのファイル (またはいくつかの特定のファイル)に保存できるため、開発者はそのコンポーネントに変更を加えるためにどこに行けばよいかを正確に知ることができます。 Vanilla Javascript アプリでは、これを効率的かつスケーラブルな方法で実現するには、独自の規則セットを作成する必要があります。多くの JavaScript 開発者は、自分のデバイスに任せると、 UI の一部に関連するすべてのコードが 1 つのファイル全体に、または別のファイル全体に分散されてしまう可能性があります。
+ほとんどの主要なフレームワークは、開発者がユーザーインターフェイスのさまざまな部分を _コンポーネント_ 、つまり相互に通信できる保守可能で再利用可能なコードの塊に抽象化することを推奨しています。特定のコンポーネントに関連するすべてのコードは 1 つのファイル (またはいくつかの特定のファイル)に保存できるため、開発者はそのコンポーネントに変更を加えるためにどこに行けばよいかを正確に知ることができます。バニラ Javascript アプリでは、これを効率的かつスケーラブルな方法で実現するには、独自の規則セットを作成する必要があります。多くの JavaScript 開発者は、自分のデバイスに任せると、 UI の一部に関連するすべてのコードが 1 つのファイル全体に、または別のファイル全体に分散されてしまう可能性があります。
### ルーティング
@@ -216,7 +214,7 @@ JavaScript とブラウザーのネイティブ機能を使用してルーター
### ツールに精通している
-Vanilla Javascript と同様に、フレームワークは学習に時間がかかり、癖があります。プロジェクトにフレームワークを使用することを決定する前に、そのフレームワークが自分にとって不利になるのではなく、自分にとって役立つように、その機能を十分に学習する時間を確保し、チームメイトもそのフレームワークに慣れているかどうかを確認してください。
+バニラ Javascript と同様に、フレームワークは学習に時間がかかり、癖があります。プロジェクトにフレームワークを使用することを決定する前に、そのフレームワークが自分にとって不利になるのではなく、自分にとって役立つように、その機能を十分に学習する時間を確保し、チームメイトもそのフレームワークに慣れているかどうかを確認してください。
### オーバーエンジニアリング
@@ -291,13 +289,13 @@ Vue チームは [Vue を他の一般的なフレームワークと徹底的に
**コンテンツ管理システム** (**CMS: Content-management systems**) は、ユーザーが自分で直接コードを書かずにウェブ用のコンテンツを作成できるツールのことです。大規模なプロジェクト、特にコーディング能力に乏しいコンテンツ・ライターからのインプットを必要とするプロジェクトや時間を節約したいプログラマーにとっては良いソリューションです。しかし CMS のセットアップにはかなりの時間を要し、 CMS を利用するということは、少なくともウェブサイトの最終的なアウトプットをコントロールする手段を放棄することを意味します。例えば、選択したCMSがデフォルトでアクセシブルなコンテンツを作成しない場合、これを改善するのは難しいことが多いです。
-一般的な例としては、 [Wordpress](https://wordpress.com/) 、 [Joomla](https://www.joomla.org/) 、 [Drupal](https://www.drupal.org/) などがあります。
+有名な CMS システムには、 [Wordpress](https://wordpress.com/)、[Joomla](https://www.joomla.org/)、[Drupal](https://www.drupal.org/) などがあります。
### サーバーサイドレンダリング
**サーバーサイドレンダリング** (**SSR: Server-side rendering**) は、単一ページアプリケーションをレンダリングするのが _サーバー_ の仕事であるアプリケーションアーキテクチャです。これは、JavaScript アプリケーションを構築する最も一般的で最も簡単な方法である _クライアントサイドレンダリング_ の逆です。サーバーサイドレンダリングは、レンダリングされた HTML ファイルをクライアントのデバイスに送信するだけなので、クライアントのデバイスでは簡単ですが、クライアント側でレンダリングされるアプリケーションに比べてセットアップが難しい場合があります。
-このモジュールで説明されているフレームワークはすべて、クライアントサイドのレンダリングだけでなくサーバーサイドのレンダリングもサポートしています。 React については [Next.js](https://nextjs.org/) 、Vue については [Nuxt.js](https://nuxtjs.org/)(はい、わかりにくいです、いいえ、これらのプロジェクトは関係ありません!)、 Ember の場合は [FastBoot](https://github.com/ember-fastboot/ember-cli-fastboot)、 Angular の場合は [Angular Universal](https://angular.io/guide/universal) をチェックしてください。
+このモジュールで説明されているフレームワークはすべて、クライアントサイドのレンダリングだけでなくサーバーサイドのレンダリングもサポートしています。 React については [Next.js](https://nextjs.org/) 、Vue については [Nuxt](https://nuxtjs.com/)(はい、わかりにくいです、いいえ、これらのプロジェクトは関係ありません!)、 Ember の場合は [FastBoot](https://github.com/ember-fastboot/ember-cli-fastboot)、 Angular の場合は [Angular Universal](https://angular.io/guide/universal) をチェックしてください。
> **メモ:** SSR ソリューションの中にはコミュニティによって作成および保守されているものもありますが、フレームワークの保守者によって提供される「公式」ソリューションもあります。
@@ -307,7 +305,7 @@ Vue チームは [Vue を他の一般的なフレームワークと徹底的に
静的サイトには、必要な数の固有のページを含めることができます。フレームワークを使用すると、クライアント側の JavaScript アプリケーションを迅速に作成できるようになりますが、静的サイトジェネレーターを使用すると、個別に作成する必要があった HTML ファイルを迅速に作成できます。フレームワークと同様、静的サイトジェネレーターを使用すると、開発者はウェブページの共通部分を定義するコンポーネントを作成し、それらのコンポーネントを組み合わせて最終ページを作成できます。静的サイトジェネレーターのコンテキストでは、これらのコンポーネントは **テンプレート** と呼ばれます。静的サイトジェネレーターによって構築されたウェブページは、フレームワークアプリケーションのホームとなることもあります。たとえば、静的に生成されたウェブサイトの特定のページで、ユーザーがそのページにアクセスしたときに React アプリケーションを起動したい場合は、それが可能です。
-静的サイトジェネレーターはかなり昔から存在しており、最近のウェブの歴史の中で少しずつ復活を遂げています。 [Hugo](https://gohugo.io/) 、 [Jekyll](https://jekyllrb.com/) 、[Eleventy](https://www.11ty.dev/) および [Gatsby](https://www.gatsbyjs.com/) などのいくつかの強力なオプションが利用可能になりました。
+静的サイトジェネレーターはかなり古くから存在しており、最近になって新たな関心と革新の波が押し寄せています。[Astro](https://astro.build/)、[Eleventy](https://www.11ty.dev/)、[Hugo](https://gohugo.io/)、[Jekyll](https://jekyllrb.com/)、[Gatsby](https://www.gatsbyjs.com/) などのいくつかの強力な選択肢が利用可能になりました。
静的サイトジェネレーター全体について詳しく知りたい場合は、Tatiana Mac の [Eleventy の初心者ガイド](https://www.tatianamac.com/posts/beginner-eleventy-tutorial-parti/)を参照してください。シリーズの最初の記事では、静的サイトジェネレーターとは何か、そしてそれがウェブコンテンツを公開する他の手段とどのように関連するのかについて説明します。
diff --git a/files/ja/learn/tools_and_testing/client-side_javascript_frameworks/main_features/index.md b/files/ja/learn/tools_and_testing/client-side_javascript_frameworks/main_features/index.md
index 7f39b1e487c06c..6f408164036ab7 100644
--- a/files/ja/learn/tools_and_testing/client-side_javascript_frameworks/main_features/index.md
+++ b/files/ja/learn/tools_and_testing/client-side_javascript_frameworks/main_features/index.md
@@ -14,14 +14,14 @@ l10n:
前提条件:
- HTML 、
- CSS 、
- JavaScript に精通していること。
+ HTML 、
+ CSS 、
+ JavaScript に精通していること。
目的:
- フレームワークの主なコード機能を理解します。
+ フレームワークの主なコード機能を理解すること。
@@ -32,7 +32,7 @@ l10n:
Angular アプリでは、**TypeScript** が頻繁に使用されます。 TypeScript はユーザーインターフェイスの記述には関与しませんが、ドメイン固有の言語であり、通常の JavaScript とは大きな違いがあります。
-DSL はブラウザーで直接読み取ることはできません。最初に JavaScript または HTML に変換する必要があります。[開発プロセスにおいて、変換という追加のステップ](/ja/docs/Learn/Tools_and_testing/Understanding_client-side_tools/Overview#transformation)が必要になります。しかし、フレームワークツールには通常、このステップを処理するために必要なツールが含まれているか、このステップを含めるように調整することができます。これらのドメイン固有言語を使用せずにフレームワークアプリを構築することも可能ですが、これらの言語を採用すると、開発プロセスが合理化され、それらのフレームワークに関するコミュニティからのヘルプを見つけやすくなります。
+DSL はブラウザーで直接読み取ることはできません。最初に JavaScript または HTML に変換する必要があります。[開発プロセスにおいて、変換という追加のステップ](/ja/docs/Learn/Tools_and_testing/Understanding_client-side_tools/Overview#変換)が必要になります。しかし、フレームワークツールには通常、このステップを処理するために必要なツールが含まれているか、このステップを含めるように調整することができます。これらのドメイン固有言語を使用せずにフレームワークアプリを構築することも可能ですが、これらの言語を採用すると、開発プロセスが合理化され、それらのフレームワークに関するコミュニティからのヘルプを見つけやすくなります。
### JSX
@@ -128,9 +128,9 @@ function add(a: number, b: number) {
コンポーネントをどのように記述するべきかについての意見に関係なく、各フレームワークのコンポーネントは、必要となる可能性のある外部プロパティ、コンポーネントが管理する必要がある内部状態、およびユーザーがコンポーネントのマークアップでトリガーできるイベントを記述する方法を提供します。
-このセクションの残りのコードスニペットは例として React を使用し、 JSX で書かれています。
+この節の残りのコードスニペットは例として React を使用し、 JSX で書かれています。
-### プロパティ(Properties)
+### プロパティ (Properties)
Properties 、または **props** は、コンポーネントがレンダリングするために必要な外部データです。オンラインマガジンのウェブサイトを構築していて、各寄稿者が自分の作品に対してクレジットを取得できるようにする必要があるとします。各記事に付随する `AuthorCredit` コンポーネントを作成することもできます。このコンポーネントは、著者の肖像と著者に関する短い署名文を表示する必要があります。どの画像をレンダリングするか、どの署名欄を印刷するかを知るために、 `AuthorCredit` はいくつかの props を受け入れる必要があります。
@@ -166,7 +166,7 @@ function AuthorCredit(props) {
```
-### 状態(State)
+### 状態 (State)
前の章で **state** の概念について説明しました。効果的なフレームワークの鍵となるのは堅牢な状態処理メカニズムであり、各コンポーネントには状態の制御が必要なデータが含まれる場合があります。この state は、コンポーネントが使用されている限り、何らかの形で持続します。 props と同様に、 state を使用してコンポーネントのレンダリング方法に影響を与えることができます。
@@ -204,7 +204,7 @@ function CounterButton() {
このバージョンでは、追加の `useState()` 機能を使用して特別な `setCount()` 関数を作成し、これを呼び出して `count` の値を更新します。この関数を `onClick` イベントハンドラー内で呼び出して、「count」を現在の値に 1 を加えた値に設定します。
-## スタイリングコンポーネント
+## スタイル設定コンポーネント
各フレームワークは、コンポーネント、またはアプリケーション全体のスタイルを定義する方法を提供します。コンポーネントのスタイルを定義するための各フレームワークのアプローチは若干異なりますが、いずれのフレームワークでも複数の方法が提供されています。いくつかのヘルパーモジュールを追加すると、 [Sass](https://sass-lang.com/) または [Less](https://lesscss.org/) でフレームワークアプリのスタイルを設定したり、 CSS スタイルシートを [PostCSS](https://postcss.org/) を使用してトランスパイルしたりできます。
@@ -230,7 +230,7 @@ import AuthorCredit from "./components/AuthorCredit";
```
-### 依存関係の注入(Dependency injection)
+### 依存関係の注入
実際のアプリケーションには、多くの場合、複数レベルのネストを含むコンポーネント構造が含まれることがあります。多くのレベルでネストされた `AuthorCredit` コンポーネントは、何らかの理由で、アプリケーションのまさにルートレベルからのデータを必要とする場合があります。
diff --git a/files/ja/learn/tools_and_testing/client-side_javascript_frameworks/react_getting_started/index.md b/files/ja/learn/tools_and_testing/client-side_javascript_frameworks/react_getting_started/index.md
index 804fa8881781c3..41c67b3858915e 100644
--- a/files/ja/learn/tools_and_testing/client-side_javascript_frameworks/react_getting_started/index.md
+++ b/files/ja/learn/tools_and_testing/client-side_javascript_frameworks/react_getting_started/index.md
@@ -2,7 +2,7 @@
title: React を始める
slug: Learn/Tools_and_testing/Client-side_JavaScript_frameworks/React_getting_started
l10n:
- sourceCommit: 8d0cbeacdc1872f7e4d966177151585c58fb879e
+ sourceCommit: 420f761d5883416e606ddf21a3e7bcc079bf0c9f
---
{{LearnSidebar}}{{PreviousMenuNext("Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Main_features","Learn/Tools_and_testing/Client-side_JavaScript_frameworks/React_todo_list_beginning", "Learn/Tools_and_testing/Client-side_JavaScript_frameworks")}}
@@ -31,7 +31,7 @@ l10n:
目的:
- ローカルの React 開発環境をセットアップし、開始アプリを作成して、それがどのように機能するかの基本を理解する。
+ ローカルの React 開発環境をセットアップし、開始アプリを作成して、それがどのように機能するかの基本を理解すること。
@@ -42,7 +42,7 @@ l10n:
公式のキャッチフレーズにあるように、[React](https://react.dev/) はユーザーインターフェイスを構築するためのライブラリーです。React はフレームワークではなく、ウェブに限定されるものでもありません。他のライブラリーと共に使用して、特定の環境にレンダリングします。たとえば、[React Native](https://reactnative.dev/) はモバイルアプリケーションの構築に使用できます。
-ウェブ向けに構築するには、開発者は [ReactDOM](https://reactjs.org/docs/react-dom.html) と連携して React を使用します。React と ReactDOM は、他の本当のウェブ開発フレームワークと同じ土台で頻繫に議論され、同じような問題を解決するために用いられます。React を「フレームワーク」と呼ぶとき、それは口語的な理解として扱います。
+ウェブ向けに構築するには、開発者は [ReactDOM](https://react.dev/reference/react-dom) と連携して React を使用します。React と ReactDOM は、他の本当のウェブ開発フレームワークと同じ土台で頻繫に議論され、同じような問題を解決するために用いられます。React を「フレームワーク」と呼ぶとき、それは口語的な理解として扱います。
React が目指すところは、開発者が UI を構築しているときに発生するバグを最小限に抑えることです。これは、コンポーネント(ユーザーインターフェイスの一部を記述する自己完結型の論理的なコード)を使用して行われます。これらのコンポーネントを組み合わせて完全な UI を作成でき、React はレンダリング作業の大部分を抽象化して、UI デザインに集中できるようにします。
@@ -50,11 +50,11 @@ React が目指すところは、開発者が UI を構築しているときに
このモジュールで取り上げられている他のフレームワークとは異なり、React はコード規則やファイル編成に関する厳密なルールを適用しません。これにより、チームは自分に最適な規則を設定し、React を好きなように採用することができます。React は、単一のボタン、一部のインターフェイス、またはアプリのユーザーインターフェイス全体を処理できます。
-React は[インターフェイスの一部](https://reactjs.org/docs/add-react-to-a-website.html)に適用することが _できます_ が、jQuery のようなライブラリーや Vue のようなフレームワークほどアプリケーションに「ドロップ」するのは簡単ではありません。React でアプリ全体を構築するのに適しています。
+React は[インターフェイスの一部](https://react.dev/learn/add-react-to-an-existing-project)に適用することが _できます_ が、jQuery のようなライブラリーや Vue のようなフレームワークほどアプリケーションに「ドロップ」するのは簡単ではありません。React でアプリ全体を構築するのに適しています。
さらに、JSX のインターフェイスの作成など、React アプリの開発者体験にはコンパイルプロセスが必要とします。Babel のようなコンパイラーをウェブサイトに追加すると、コードの実行が遅くなるため、開発者はビルドステップでそのようなツールをセットアップすることがよくあります。間違いなく React には厳しいツール要件がありますが、学習することはできます。
-この記事では、Facebook 独自の [create-react-app](https://create-react-app.dev/) を使って、アプリケーションのインターフェイスを構築していきます。
+この記事では、現行のフロントエンドビルドツールである [Vite](https://vitejs.dev/) に対応し、アプリケーションのユーザーインターフェイス全体をレンダリングするために React を使用する用途に焦点を当てます。
## React における JavaScript の書き方
@@ -96,7 +96,7 @@ const header = React.createElement(
);
```
-コンパイルステップとコンパイル自体をスキップし、[`React.createElement()`](https://reactjs.org/docs/react-api.html#createelement) を使って、独自の UI を自分で書くことができます。ただし、こうすると JSX の宣言的なメリットが失われ、コードが読みにくくなってしまいます。コンパイルは開発プロセスとは別のステップですが、React コミュニティの多くの開発者は、JSX の読みやすさに価値があると考えています。さらに、現代のフロントエンド開発は常にビルドプロセスを伴います。古いブラウザーとの互換性を保つために現代の構文をダウンレベルしなければなりませんし、読み込みパフォーマンスを最適化するためにコードを[ミニファイ](/ja/docs/Glossary/Minification)したくなることがあります。 Babel のような人気のあるツールはすでに JSX 対応をしているので、コンパイラーを自分で設定する必要はありません。
+コンパイルステップとコンパイル自体をスキップし、[`React.createElement()`](https://react.dev/reference/react/createElement) を使って、独自の UI を自分で書くことができます。ただし、こうすると JSX の宣言的なメリットが失われ、コードが読みにくくなってしまいます。コンパイルは開発プロセスとは別のステップですが、React コミュニティの多くの開発者は、JSX の読みやすさに価値があると考えています。さらに、現代のフロントエンド開発は常にビルドプロセスを伴います。古いブラウザーとの互換性を保つために現代の構文をダウンレベルしなければなりませんし、読み込みパフォーマンスを最適化するためにコードを[ミニファイ](/ja/docs/Glossary/Minification)したくなることがあります。 Babel のような人気のあるツールはすでに JSX 対応をしているので、コンパイラーを自分で設定する必要はありません。
JSX は HTML と JavaScript を交ぜたものなので、一部の開発者にとっては直感的に使うことができます。しかしそうでない人にとってはは、交ぜられてされていることで混乱させられると言います。ただし、慣れれば、ユーザーインターフェイスをより迅速かつ直感的に構築できるようになり、他の人がコードを一目で理解しやすくなります。
@@ -104,335 +104,362 @@ JSX の詳細については、React チームの [Writing Markup with JSX](http
## 最初の React アプリをセットアップする
-React を使用する方法はたくさんありますが、前述のように、コマンドラインインターフェイス (CLI) ツールの create-react-app を使用します。これにより、いくつかのパッケージをインストールして作成することにより、React アプリケーションの開発プロセスをスムーズにします。
+新しい React アプリケーションを作成する方法はたくさんあります。今回は Vite を使用してコマンドラインから新しいアプリケーションを作成します。
-[`
```
@@ -75,25 +70,32 @@ if (document.readyState === "loading") {
}
```
-### ライブデモ
+> **メモ:** ここでは競合条件はありません。 `if` チェックと `addEventListener()` 呼び出しの間に文書が読み込まれることはあり得ません。JavaScript には run-to-completion という意味づけがあります。つまり、イベントループのある特定のタイミングで文書が読み込まれていたとしても、次のサイクルまで読み込まれることはなく、その時には `doSomething` ハンドラーはすでに取り付けられており、発生します。
+
+### ライブサンプル
#### HTML
```html
- Reload
+ 再読み込み
- Event log:
-
+ イベントログ:
+
```
```css hidden
body {
display: grid;
- grid-template-areas: "control log";
+ grid-template-areas: "control log";
}
.controls {
@@ -121,7 +123,7 @@ button {
}
```
-#### JS
+#### JavaScript
```js
const log = document.querySelector(".event-log-contents");
@@ -129,27 +131,27 @@ const reload = document.querySelector("#reload");
reload.addEventListener("click", () => {
log.textContent = "";
- window.setTimeout(() => {
+ setTimeout(() => {
window.location.reload(true);
}, 200);
});
window.addEventListener("load", (event) => {
- log.textContent = log.textContent + "load\n";
+ log.textContent += "load\n";
});
document.addEventListener("readystatechange", (event) => {
- log.textContent = log.textContent + `readystate: ${document.readyState}\n`;
+ log.textContent += `readystate: ${document.readyState}\n`;
});
document.addEventListener("DOMContentLoaded", (event) => {
- log.textContent = log.textContent + `DOMContentLoaded\n`;
+ log.textContent += "DOMContentLoaded\n";
});
```
#### 結果
-{{ EmbedLiveSample('Live_example', '100%', '160px') }}
+{{ EmbedLiveSample('ライブサンプル', '100%', '160px') }}
## 仕様書
@@ -162,4 +164,3 @@ document.addEventListener("DOMContentLoaded", (event) => {
## 関連情報
- 関連イベント: {{domxref("Window/load_event", "load")}}, {{domxref("Document/readystatechange_event", "readystatechange")}}, {{domxref("Window/beforeunload_event", "beforeunload")}}, {{domxref("Window/unload_event", "unload")}}
-- {{domxref("Window")}} を対象とした同じイベント: {{domxref("Window/DOMContentLoaded_event", "DOMContentLoaded")}}
diff --git a/files/ja/web/api/document/elementfrompoint/index.md b/files/ja/web/api/document/elementfrompoint/index.md
index df84ca32b1fd24..fa98c27c55a77a 100644
--- a/files/ja/web/api/document/elementfrompoint/index.md
+++ b/files/ja/web/api/document/elementfrompoint/index.md
@@ -1,6 +1,9 @@
---
-title: Document.elementFromPoint()
+title: "Document: elementFromPoint() メソッド"
+short-title: elementFromPoint()
slug: Web/API/Document/elementFromPoint
+l10n:
+ sourceCommit: 41a8b9c9832359d445d136b6d7a8a28737badc6b
---
{{APIRef("DOM")}}
@@ -19,8 +22,8 @@ slug: Web/API/Document/elementFromPoint
## 構文
-```js
-elementFromPoint(x, y);
+```js-nolint
+elementFromPoint(x, y)
```
### 引数
@@ -57,7 +60,7 @@ function changeColor(newColor) {
赤
```
-HTMLには、色を変更する段落と、色を青に変更するボタン、色を赤に変更するボタンの 2 つが用意されています。
+HTML には、色を変更する段落と、色を青に変更するボタン、色を赤に変更するボタンの 2 つが用意されています。
### 結果
diff --git a/files/ja/web/api/document/elementsfrompoint/index.md b/files/ja/web/api/document/elementsfrompoint/index.md
index e9af0f00b5aff0..5543feaece971c 100644
--- a/files/ja/web/api/document/elementsfrompoint/index.md
+++ b/files/ja/web/api/document/elementsfrompoint/index.md
@@ -1,8 +1,9 @@
---
title: "Document: elementsFromPoint() メソッド"
+short-title: elementsFromPoint()
slug: Web/API/Document/elementsFromPoint
l10n:
- sourceCommit: 41a8b9c9832359d445d136b6d7a8a28737badc6b
+ sourceCommit: 0a881eea07f0cec6ca4ed85a24af43b367a9f80d
---
{{APIRef("DOM")}}
diff --git a/files/ja/web/api/document/embeds/index.md b/files/ja/web/api/document/embeds/index.md
index f2625d85cae39b..52acf2b560e0f7 100644
--- a/files/ja/web/api/document/embeds/index.md
+++ b/files/ja/web/api/document/embeds/index.md
@@ -1,19 +1,16 @@
---
-title: Document.embeds
+title: "Document: embeds プロパティ"
+short-title: embeds
slug: Web/API/Document/embeds
+l10n:
+ sourceCommit: 41a8b9c9832359d445d136b6d7a8a28737badc6b
---
{{ApiRef}}
-{{domxref("Document")}} インターフェイスの **`embeds`** プロパティは読み取り専用で、現在の文書の埋め込み {{htmlelement("object")}} 要素のリストを返します。
+**`embeds`** は {{domxref("Document")}} インターフェイスの読み取り専用プロパティで、現在の文書に埋め込まれた {{htmlelement("embed")}} 要素のリストを返します。
-## 構文
-
-```
-nodeList = document.embeds
-```
-
-### 値
+## 値
{{domxref("HTMLCollection")}} です。
diff --git a/files/ja/web/api/document/enablestylesheetsforset/index.md b/files/ja/web/api/document/enablestylesheetsforset/index.md
index 61cecbc8dec5f1..d7554091d17132 100644
--- a/files/ja/web/api/document/enablestylesheetsforset/index.md
+++ b/files/ja/web/api/document/enablestylesheetsforset/index.md
@@ -1,16 +1,19 @@
---
-title: Document.enableStyleSheetsForSet()
+title: "Document: enableStyleSheetsForSet() メソッド"
+short-title: enableStyleSheetsForSet()
slug: Web/API/Document/enableStyleSheetsForSet
+l10n:
+ sourceCommit: 3966c40a3917825e6e467f1592bc7f8d59458e74
---
-{{APIRef("DOM")}}{{deprecated_header}}
+{{APIRef("DOM")}}{{deprecated_header}}{{Non-standard_header}}
現在のスタイルシートセットの中で指定された名前に一致するスタイルシートを有効化し、それ以外のスタイルシートを (常に有効になるタイトルなしのものを除いて) 無効化します。
## 構文
-```js
-enableStyleSheetsForSet(name);
+```js-nolint
+enableStyleSheetsForSet(name)
```
### 引数
@@ -35,6 +38,10 @@ enableStyleSheetsForSet(name);
document.enableStyleSheetsForSet("Some style sheet set name");
```
+## 仕様書
+
+どの仕様書にも含まれていません。
+
## ブラウザーの互換性
{{Compat}}
@@ -47,4 +54,3 @@ document.enableStyleSheetsForSet("Some style sheet set name");
- {{domxref("document.preferredStyleSheetSet")}}
- {{domxref("document.selectedStyleSheetSet")}}
- {{domxref("document.enableStyleSheetsForSet()")}}
-- [外部スタイルシートでタイトルを正しく使用する](/ja/docs/Archive/Web_Standards/Correctly_Using_Titles_With_External_Stylesheets)
diff --git a/files/ja/web/api/document/evaluate/index.md b/files/ja/web/api/document/evaluate/index.md
index 4c6ddbfd5b653c..44252c5e7f632e 100644
--- a/files/ja/web/api/document/evaluate/index.md
+++ b/files/ja/web/api/document/evaluate/index.md
@@ -1,101 +1,142 @@
---
-title: Document.evaluate()
+title: "Document: evaluate() メソッド"
+short-title: evaluate()
slug: Web/API/Document/evaluate
+l10n:
+ sourceCommit: 8d89e9669f59f208a80c0bdbee48ba75d37a726e
---
{{ ApiRef("DOM") }}
-[XPath](/ja/docs/XPath) 式やその他与えられたパラメータに基づいて [`XPathResult`](/ja/docs/XPathResult) を返します。
+**`evaluate()`** は {{domxref("Document")}} インターフェイスのメソッドで、引数で与えられた [XPath](/ja/docs/Web/XPath) 式に基づいて要素を選択します。
+
+XPath 式は HTML および XML 文書の両方を評価することができます。
## 構文
-```
-var xpathResult = document.evaluate(
- xpathExpression,
- contextNode,
- namespaceResolver,
- resultType,
- result
-);
+```js-nolint
+evaluate(xpathExpression, contextNode, namespaceResolver, resultType, result)
```
-- `xpathExpression` は評価される Xpath を示す文字列です。
-- `contextNode` はクエリの*コンテキストノード*を指定します([XPath の仕様](http://www.w3.org/TR/xpath)を参照してください) コンテキストノードとして `document` を渡すのが一般的です。
-- `namespaceResolver` は、任意の名前空間接頭辞を受け取り、その接頭辞に関連付けられた名前空間 URI を文字列として返す関数です。接頭辞が文書の中でマッチされるように、XPath 自身の中で接頭辞を解決するために使われます。HTML 文書向け、または名前空間接頭辞を使わないときは `null` を指定するのが一般的です。
-- `resultType` は返り値である `XPathResult` のタイプに対応する整数です。XPathResult コンストラクタの[名前付き定数プロパティ](#Result_types) (例えば `XPathResult.ANY_TYPE`) を使用してください。これらは 0 から 9 までの整数に対応しています。
-- `result` は結果として使われる既存の `XPathResult` です。`null` を指定するのが最も一般的です。`null` は新しい `XPathResult を生成します。`
+### 引数
+
+- `xpathExpression`
+ - : 文字列で、評価される xpath を表します。
+- `contextNode`
+ - : このクエリーのコンテキストノードです([XPath 仕様書](https://www.w3.org/TR/1999/REC-xpath-19991116/)を参照してください)。
+ コンテキストノードとして `document` を渡すのが一般的です。
+- `namespaceResolver`
+ - : 名前空間接頭辞を渡すと、その接頭辞に関連付けられた名前空間 URI を表す文字列を返す関数です。
+ これは、_xpath_ 自身の中で接頭辞を解決し、文書と照合できるようにするために使用することができます。
+ 値が `null` の場合は、HTML 文書や 名前空間接頭辞を使用していない場合によく用いられます。
+- `resultType`
+
+ - : 整数で、返す結果の `XPathResult` の型に対応する整数。
+ 取りうる値は以下の通りです。
+ - `ANY_TYPE` (`0`)
+ - : 指定された式から自然に得られるあらゆる型。
+ - `NUMBER_TYPE` (`1`)
+ - : 単一の数値を含む結果セット。例えば `count()` 関数を使用する _xpath_ 式で有益なものです。
+ - `STRING_TYPE` (`2`)
+ - : 単一の文字列を含む結果セット。
+ - `BOOLEAN_TYPE` (`3`)
+ - : 単一の論理値を含む結果セット。例えば、 `not()` 関数を使用した _xpath_ 式に有用です。
+ - `UNORDERED_NODE_ITERATOR_TYPE` (`4`)
+ - : 式に一致するすべてのノードを含む結果セット。結果セット内のノードは、必ずしも文書内に現れる順番とは限りません。
+ > **メモ:** この型の結果は、文書内のノードへの参照を格納します。
+ > ノードを変更すると、イテレーターは無効になります。
+ > ノードを変更した後、結果を反復処理しようとするとエラーになります。
+ - `ORDERED_NODE_ITERATOR_TYPE` (`5`)
+ - : 式に一致するすべてのノードを含む結果セット。結果セット内のノードは、文書内に現れる順序と同じです。
+ > **メモ:** この型の結果は、文書内のノードへの参照を格納します。
+ > ノードを変更すると、イテレーターは無効になります。
+ > ノードを変更した後、結果を反復処理しようとするとエラーになります。
+ - `UNORDERED_NODE_SNAPSHOT_TYPE` (`6`)
+ - : 式に一致するすべてのノードのスナップショットを格納した結果セット。結果セット内のノードは、必ずしも文書内のノードと同じ順序ではありません。
+ > **メモ:** この型の結果はスナップショットで、基本的に一致するノードのリストです。
+ > スナップショットノードを変更することで、文書に変更を加えることができます。
+ > 文書を変更してもスナップショットは無効にはなりません。
+ > しかし、文書が変更された場合、スナップショットは文書の現在の状態と一致しないことがあります。
+ > ノードが移動されたり、変更されたり、追加されたり、除去されたりすることがあるからです。
+ - `ORDERED_NODE_SNAPSHOT_TYPE` (`7`)
+ - : 式に一致するすべてのノードのスナップショットを含む結果セット。結果セット内のノードは、文書内に現れる順序と同じです。
+ > **メモ:** この型の結果はスナップショットで、基本的に一致するノードのリストです。
+ > スナップショットノードを変更することで、文書に変更を加えることができます。
+ > 文書を変更してもスナップショットは無効にはなりません。
+ > しかし、文書が変更された場合、スナップショットは文書の現在の状態と一致しないことがあります。
+ > ノードが移動されたり、変更されたり、追加されたり、除去されたりすることがあるからです。
+ - `ANY_UNORDERED_NODE_TYPE` (`8`)
+ - : 式に一致する単一のノードを含む結果セット。このノードは、必ずしも文書内の式に一致する最初のノードであるとは限りません。
+ - `FIRST_ORDERED_NODE_TYPE` (`9`)
+ - : 式に一致する文書内の最初のノードを含む結果設定します。
+
+- `result`
+ - : 結果に使用する既存の `XPathResult`。`null` を設定すると、メソッドは新しい `XPathResult` を作成して返します。
+
+### 返値
+
+選択されたノードにリンクする {{domxref("XPathResult")}} です。もし `result` が `null` であった場合は新しいオブジェクトとなり、そうでなかった場合は `result` 引数に渡したオブジェクトと同じオブジェクトとなります。
## 例
+### XPath によりすべての H2 見出しを検索
+
```js
-var headings = document.evaluate(
+const headings = document.evaluate(
"/html/body//h2",
document,
null,
XPathResult.ANY_TYPE,
null,
);
-/* Search the document for all h2 elements.
- * The result will likely be an unordered node iterator. */
-var thisHeading = headings.iterateNext();
-var alertText = "Level 2 headings in this document are:\n";
+/* この文書ですべての h2 要素を検索する。
+ * 結果は、おそらく順序なしのノードイテレーターになる。 */
+let thisHeading = headings.iterateNext();
+let alertText = "この文書のレベル 2 見出し:\n";
while (thisHeading) {
- alertText += thisHeading.textContent + "\n";
+ alertText += `${thisHeading.textContent}\n`;
thisHeading = headings.iterateNext();
}
-alert(alertText); // Alerts the text of all h2 elements
+alert(alertText); // すべての h2 要素のテキストをアラート表示
```
-Note, in the above example, a more verbose XPath is preferred over common shortcuts such as `//h2`. Generally, more specific XPath selectors as in the above example usually gives a significant performance improvement, especially on very large documents. This is because the evaluation of the query spends does not waste time visiting unnecessary nodes. Using // is generally slow as it visits _every_ node from the root and all subnodes looking for possible matches.
+上の例では、`//h2` のような一般的なショートカットよりも、より冗長な _xpath_ が推奨されていることに注意してください。一般的に、上記の例のように、より詳細な _xpath_ セレクターを使用すると、特に非常に大きな文書において、パフォーマンスが大幅に向上します。これは、クエリーの評価で不必要なノードを訪問して時間を浪費しないためです。 // を使用すると、ルートとすべてのサブノードからすべてのノードを訪問して一致する可能性があるものを探すため、一般的に遅くなります。
-Further optimization can be achieved by careful use of the context parameter. For example, if you know the content you are looking for is somewhere inside the body tag, you can use this:
+コンテキスト引数を注意深く使用することで、さらなる最適化を図ることができます。例えば、探しているコンテンツが body タグの内側のどこかにあることがわかっている場合は、このように使用することができます。
```js
document.evaluate(".//h2", document.body, null, XPathResult.ANY_TYPE, null);
```
-Notice in the above `document.body` has been used as the context instead of `document` so the XPath starts from the body element. (In this example, the `"."` is important to indicate that the querying should start from the context node, document.body. If the "." was left out (leaving `//h2`) the query would start from the root node (`html`) which would be more wasteful.)
-
-See [Introduction to using XPath in JavaScript](/ja/docs/Introduction_to_using_XPath_in_JavaScript) for more information.
-
-## 注釈
-
-- XPath expressions can be evaluated on HTML and XML documents.
-- While using document.evaluate() works in FF2, in FF3 one must use someXMLDoc.evaluate() if evaluating against something other than the current document.
+上記の例では、コンテキストとして `document` の代わりに `document.body` が使用されているので、_xpath_ は body 要素から始まることに注意してください。(この例内の `"."` は、コンテキストノードである document.body からクエリーを始めることを示すために重要です。"." が省略された場合(`//h2`のまま)、クエリーはルートノード (`html`) から開始することになり、より無駄が多くなります)。
+詳しくは[JavaScript での XPath の利用の手引き](/ja/docs/Web/XPath/Introduction_to_using_XPath_in_JavaScript)を参照してください。
-## 戻り値の分類
+### xml:id で要素を取得
-(Merge with [Template:XPathResultConstants](/Template:XPathResultConstants)?
+この関数は {{domxref("Document.getElementById()")}} の置き換えで、`xml:id` で検索したい場合に使います。
-These are supported values for the `resultType` parameter of the `evaluate` method:
-
-| Result Type | Value | Description |
-| ------------------------------ | ----- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| `ANY_TYPE` | 0 | Whatever type naturally results from the given expression. |
-| `NUMBER_TYPE` | 1 | A result set containing a single number. Useful, for example, in an XPath expression using the `count()` function. |
-| `STRING_TYPE` | 2 | A result set containing a single string. |
-| `BOOLEAN_TYPE` | 3 | A result set containing a single boolean value. Useful, for example, an an XPath expression using the `not()` function. |
-| `UNORDERED_NODE_ITERATOR_TYPE` | 4 | A result set containing all the nodes matching the expression. The nodes in the result set are not necessarily in the same order they appear in the document. |
-| `ORDERED_NODE_ITERATOR_TYPE` | 5 | A result set containing all the nodes matching the expression. The nodes in the result set are in the same order they appear in the document. |
-| `UNORDERED_NODE_SNAPSHOT_TYPE` | 6 | A result set containing snapshots of all the nodes matching the expression. The nodes in the result set are not necessarily in the same order they appear in the document. |
-| `ORDERED_NODE_SNAPSHOT_TYPE` | 7 | A result set containing snapshots of all the nodes matching the expression. The nodes in the result set are in the same order they appear in the document. |
-| `ANY_UNORDERED_NODE_TYPE` | 8 | A result set containing any single node that matches the expression. The node is not necessarily the first node in the document that matches the expression. |
-| `FIRST_ORDERED_NODE_TYPE` | 9 | A result set containing the first node in the document that matches the expression. |
-
-Results of `NODE_ITERATOR` types contain references to nodes in the document. Modifying a node will invalidate the iterator. After modifying a node, attempting to iterate through the results will result in an error.
-
-Results of `NODE_SNAPSHOT` types are snapshots, which are essentially lists of matched nodes. You can make changes to the document by altering snapshot nodes. Modifying the document doesn't invalidate the snapshot; however, if the document is changed, the snapshot may not correspond to the current state of the document, since nodes may have moved, been changed, added, or removed.
+```js
+function getElementByIdWrapper(xmldoc, id) {
+ return xmldoc.evaluate(
+ `//*[@xml:id="${id}"]`,
+ xmldoc,
+ () => "http://www.w3.org/XML/1998/namespace",
+ XPathResult.FIRST_ORDERED_NODE_TYPE,
+ null,
+ ).singleNodeValue;
+}
+```
-## 仕様
+## 仕様書
{{Specifications}}
-## ブラウザ互換性
+## ブラウザーの互換性
{{Compat}}
-## 関連項目
+## 関連情報
-- [DOM:document.createExpression](/ja/docs/DOM/document.createExpression)
-- [XPath Code Snippets](/ja/docs/Code_snippets/XPath)
-- [Check for browser support](https://codepen.io/johan/full/ckFgn)
+- {{domxref("Document.createExpression()")}}
+- {{domxref("XPathResult")}}
+- [ブラウザーの対応のチェック](https://codepen.io/johan/full/DJoqaX)(英語)
diff --git a/files/ja/web/api/document/execcommand/index.md b/files/ja/web/api/document/execcommand/index.md
index cdf5c2156e8f56..ac8946fead68e4 100644
--- a/files/ja/web/api/document/execcommand/index.md
+++ b/files/ja/web/api/document/execcommand/index.md
@@ -1,17 +1,20 @@
---
title: "Document: execCommand() メソッド"
+short-title: execCommand()
slug: Web/API/Document/execCommand
l10n:
- sourceCommit: 41a8b9c9832359d445d136b6d7a8a28737badc6b
+ sourceCommit: 72ca3d725e3e56b613de3ac9727bd0d6d619c38a
---
{{ApiRef("DOM")}}{{deprecated_header}}
-HTML 文書がデザインモード ([`designMode`](/ja/docs/Web/API/Document/designMode)) に切り替わっていると、その `document` オブジェクトは **`execCommand`** メソッドを公開して、[フォーム入力欄](/ja/docs/Web/HTML/Element/input)や [`contentEditable`](/ja/docs/Web/HTML/Global_attributes/contenteditable) を持った要素など、現在編集可能な領域を操作するためのコマンドが実行できるようにします。
+**`execCommand`** メソッドは、複数の異なるコマンドを実装しています。クリップボードへのアクセスを提供するものもあれば、[フォーム入力フィールド](/ja/docs/Web/HTML/Element/input)や [`contenteditable`](/ja/docs/Web/HTML/Global_attributes/contenteditable) の要素、文書全体([デザインモード](/ja/docs/Web/API/Document/designMode)に切り替えた場合)を編集するためのものもあります。
-多くのコマンドは、文書の[選択範囲](/ja/docs/Web/API/Selection)に対して影響を及ぼしますが(太字、イタリック、など)、他にも新しい要素の挿入(リンクの追加)や行全体に影響するもの(字下げ)もあります。 `contentEditable` を使用した場合、 `execCommand()` は現在アクティブな編集可能要素に影響を及ぼします。
+クリップボードにアクセスするには、`execCommand()` よりも新しい[クリップボード API](/ja/docs/Web/API/Clipboard_API) が推奨されます。しかし、編集コマンドを置き換えるものはありません。DOM を直接操作するのとは異なり、`execCommand()` によって実行された変更はアンドゥバッファ (編集履歴) を保持します。
-[クリップボード API](/ja/docs/Web/API/Clipboard_API) は多くの場合、`execCommand` の代わりに使用することができますが、`execCommand` が便利なこともあります。特に、クリップボード API は `insertText` コマンドの代わりを提供していません。これは `textarea` や `input` 要素でアンドゥバッファー(編集履歴)に保存してからカーソル位置のテキストをプログラムから置き換えるのに使うことができます。
+多くのコマンドは、文書の[選択範囲](/ja/docs/Web/API/Selection)に対して影響を及ぼします。例えば、一部のコマンド(太字、斜体など)は現在選択されているテキストを整形する一方で、他のコマンドは選択範囲を削除したり、新しい要素を挿入したり(選択範囲を置き換えたり)、行全体に影響を与えたり(インデント)します。変更することができるのは現在アクティブになっている編集可能な要素だけですが、一部のコマンド(`copy`など)は編集可能な要素がなくても動作します。
+
+> **メモ:** `execCommand()` によって行われた変更は、ブラウザーや構成によって {{domxref("Element/beforeinput_event", "beforeinput")}} と {{domxref("Element/input_event", "input")}} イベントを発生させる場合と発生させない場合があります。起動されると、イベントのハンドラーは `execCommand()` を返す前に実行されます。制作者はこのような再帰的な呼び出し、特にこれらのイベントに応答して `execCommand()` を呼び出す場合には注意が必要です。Firefox 82 以降、入れ子になった `execCommand()` 呼び出しは常に失敗します。[バグ 1634262](https://bugzil.la/1634262) を参照してください。
## 構文
@@ -134,7 +137,7 @@ execCommand(aCommandName, aShowDefaultUI, aValueArgument)
論理値で、コマンドが対応していないか無効であれば `false` になります。
-> **メモ:** `document.execCommand()` はユーザーの操作の中で行われた場合にのみ `true` を返します。コマンドを呼び出す前に、ブラウザーが対応しているかどうかを調べるために返値を使用しないでください。 Firefox 82 以降は、`document.execCommand()` を重ねて呼び出すと常に `false` を返します。
+> **メモ:** `document.execCommand()` はユーザーの操作の中で行われた場合にのみ `true` を返します。コマンドを呼び出す前に、ブラウザーが対応しているかどうかを調べるために返値を使用しないでください。
## 例
@@ -213,7 +216,7 @@ function insertText(newText, selector) {
## 仕様書
-この機能は現行の仕様書に含まれていません。標準化の予定もありません。
+この機能は現在のどの仕様にも属しませんが、これを規定しようとする[非公式な草案](https://w3c.github.io/editing/docs/execCommand/)があります。
## ブラウザーの互換性
diff --git a/files/ja/web/api/document/exitpictureinpicture/index.md b/files/ja/web/api/document/exitpictureinpicture/index.md
index 3896e4bfaa1923..77f2a3687f2a9c 100644
--- a/files/ja/web/api/document/exitpictureinpicture/index.md
+++ b/files/ja/web/api/document/exitpictureinpicture/index.md
@@ -3,12 +3,12 @@ title: "Document: exitPictureInPicture() メソッド"
short-title: exitPictureInPicture()
slug: Web/API/Document/exitPictureInPicture
l10n:
- sourceCommit: 04ebe57066db2cff350018649bdb15b2a10c67ba
+ sourceCommit: 4cbb657f882495b1cd18cbbaa8d1c5237bce4eb8
---
-{{ApiRef("Picture-in-Picture API")}}
+{{APIRef("Picture-in-Picture API")}}
-{{domxref("Document")}} の **`exitPictureInPicture()`** メソッドは、この文書に含まれ、現在浮動している動画をピクチャインピクチャモードから外し、画面の前回状態に戻すようリクエストします。これは通常、 {{domxref("HTMLVideoElement.requestPictureInPicture()")}} を前回呼び出したときの効果を逆転させます。
+**`exitPictureInPicture()`** は {{domxref("Document")}} インターフェイスのメソッドで、この文書に含まれ、現在浮動している動画をピクチャインピクチャモードから外し、画面の前回状態に戻すようリクエストします。これは通常、 {{domxref("HTMLVideoElement.requestPictureInPicture()")}} を前回呼び出したときの効果を逆転させます。
## 構文
@@ -24,6 +24,11 @@ exitPictureInPicture()
プロミス ({{jsxref("Promise")}}) で、{{Glossary("user agent", "ユーザーエージェント")}}がピクチャインピクチャモードを終了した時点で解決されます。全画面モードを終了しようとしてエラーが発生した場合、プロミスの `catch()` ハンドラーが呼び出されます。
+### 例外
+
+- `InvalidStateError` {{domxref("DOMException")}}
+ - : `document.pictureInPictureElement` が `null` の場合に発生します。
+
## 例
この例では、現在の文書内でマウスボタンがクリックされるたびに、ピクチャインピクチャモードを終了させます。
diff --git a/files/ja/web/api/document/exitpointerlock/index.md b/files/ja/web/api/document/exitpointerlock/index.md
index a2c3fc606130a3..888289501293b0 100644
--- a/files/ja/web/api/document/exitpointerlock/index.md
+++ b/files/ja/web/api/document/exitpointerlock/index.md
@@ -1,13 +1,16 @@
---
-title: Document.exitPointerLock()
+title: "Document: exitPointerLock() メソッド"
+short-title: exitPointerLock()
slug: Web/API/Document/exitPointerLock
l10n:
- sourceCommit: d4619276d67ca1ee02bd964d884ec52c2aa2ad4b
+ sourceCommit: c99ff93a1b71e7d664509fdd3e0c168920be967a
---
-{{APIRef("DOM")}}
+{{APIRef("Pointer Lock API")}}
-**`exitPointerLock()`** メソッドは、以前 {{domxref("Element.requestPointerLock()")}} でリクエストされたポインターロックを非同期に解放します。
+**`exitPointerLock()`** は {{domxref("Document")}} インターフェイスのメソッドで、以前 {{domxref("Element.requestPointerLock")}} でリクエストされたポインターロックを非同期に解放します。
+
+> **メモ:** **`exitPointerLock()`** メソッドは文書に対して呼び出されるのに対し、**`requestPointerLock()`** メソッドは要素に対して呼び出されます。
リクエストが成功したか失敗したかを追跡するには、 {{domxref("Document/pointerlockchange_event", "pointerlockchange")}} および {{domxref("Document/pointerlockerror_event", "pointerlockerror")}} イベントを待ち受けする必要があります。
diff --git a/files/ja/web/api/document/featurepolicy/index.md b/files/ja/web/api/document/featurepolicy/index.md
index 7e0d7725fa4baa..278501cb276678 100644
--- a/files/ja/web/api/document/featurepolicy/index.md
+++ b/files/ja/web/api/document/featurepolicy/index.md
@@ -1,19 +1,16 @@
---
-title: Document.featurePolicy
+title: "Document: featurePolicy プロパティ"
+short-title: featurePolicy
slug: Web/API/Document/featurePolicy
+l10n:
+ sourceCommit: 41a8b9c9832359d445d136b6d7a8a28737badc6b
---
{{APIRef("Feature Policy")}}
-**`featurePolicy`** は {{domxref("Document")}} インターフェイスの読み取り専用プロパティで、特定の文書に適用される機能ポリシーを見ることができる簡単な API を提供する {{domxref("Policy")}} インターフェイスを返します。
+**`featurePolicy`** は {{domxref("Document")}} インターフェイスの読み取り専用プロパティで、特定の文書に適用される[権限ポリシー](/ja/docs/Web/HTTP/Permissions_Policy)を見ることができる簡単な API を提供する {{domxref("FeaturePolicy")}} インターフェイスを返します。
-## 構文
-
-```
-var policy = iframeElement.featurePolicy
-```
-
-### 値
+## 値
{{domxref("FeaturePolicy")}} オブジェクトで、文書に適用された機能ポリシーの設定を調べるために使用するうことができます。
diff --git a/files/ja/web/api/document/fgcolor/index.md b/files/ja/web/api/document/fgcolor/index.md
index 29d8df85f51b4a..830244c3e3d3f8 100644
--- a/files/ja/web/api/document/fgcolor/index.md
+++ b/files/ja/web/api/document/fgcolor/index.md
@@ -1,22 +1,18 @@
---
-title: Document.fgColor
+title: "Document: fgColor プロパティ"
+short-title: fgColor
slug: Web/API/Document/fgColor
+l10n:
+ sourceCommit: 41a8b9c9832359d445d136b6d7a8a28737badc6b
---
{{ApiRef}}{{Deprecated_header}}
**`fgColor`** は、現在の文書の前景色またはテキストの色を取得または設定します。
-## 構文
-
-```
-var color = document.fgColor;
-document.fgColor = color;
-```
-
### 引数
-- `color` は文字列で、色を表すキーワード ("red" など) または 16 進数の値 (`"#000000"` など) です。
+文字列で、色を表すキーワード ("red" など) または 16 進数の値 (`"#ff0000"` など) です。
## 例
diff --git a/files/ja/web/api/document/firstelementchild/index.md b/files/ja/web/api/document/firstelementchild/index.md
new file mode 100644
index 00000000000000..51ac8426b95ca7
--- /dev/null
+++ b/files/ja/web/api/document/firstelementchild/index.md
@@ -0,0 +1,38 @@
+---
+title: "Document: firstElementChild プロパティ"
+short-title: firstElementChild
+slug: Web/API/Document/firstElementChild
+l10n:
+ sourceCommit: 41a8b9c9832359d445d136b6d7a8a28737badc6b
+---
+
+{{ APIRef("DOM") }}
+
+**`Document.firstElementChild`** は読み取り専用プロパティで、この文書の最初の子要素 ({{domxref("Element")}}) を返します。子要素がなければ `null` を返します。
+
+HTML 文書においては、これは普通は唯一の子である、ルートの `` 要素です。
+
+文書内の特定の要素における最初の子要素については、 {{domxref("Element.firstElementChild")}} を参照してください。
+
+## 値
+
+{{domxref("Element")}} オブジェクト、または `null` です。
+
+## 例
+
+```js
+document.firstElementChild;
+// この文書の唯一の子でである、ルート 要素を返す
+```
+
+## 仕様書
+
+{{Specifications}}
+
+## ブラウザーの互換性
+
+{{Compat}}
+
+## 関連情報
+
+- {{domxref("Element.firstElementChild")}}
diff --git a/files/ja/web/api/document/forms/index.md b/files/ja/web/api/document/forms/index.md
index 60f1b8ee2a792f..40ba94b4ea88e0 100644
--- a/files/ja/web/api/document/forms/index.md
+++ b/files/ja/web/api/document/forms/index.md
@@ -1,23 +1,22 @@
---
-title: Document.forms
+title: "Document: forms プロパティ"
+short-title: forms
slug: Web/API/Document/forms
+l10n:
+ sourceCommit: acfe8c9f1f4145f77653a2bc64a9744b001358dc
---
-{{domxref("Document")}} インターフェイスの **`forms`** プロパティは読み取り専用で、文書内に含まれるすべての {{HTMLElement("form")}} を列挙した {{domxref("HTMLCollection")}} を返します。
-
-> **メモ:** 同様に、{{domxref("HTMLFormElement.elements")}} プロパティを使用すると、フォームコンポーネントのユーザー入力要素のリストにアクセスすることができます。
+{{APIRef("DOM")}}
-## 構文
+**`forms`** は {{domxref("Document")}} インターフェイスの読み取り専用プロパティで、文書内に含まれるすべての {{HTMLElement("form")}} を列挙した {{domxref("HTMLCollection")}} を返します。
-```
-collection = document.forms;
-```
+> **メモ:** 同様に、{{domxref("HTMLFormElement.elements")}} プロパティを使用すると、フォームコンポーネントのユーザー入力要素のリストにアクセスすることができます。
-### 値
+## 値
-文書のすべてのフォームを列挙する {{domxref("HTMLCollection")}} オブジェクトです。コレクションのそれぞれの項目は、単一の `` 要素を表す {{domxref("HTMLFormElement")}} です。
+文書のすべてのフォームを列挙する {{domxref("HTMLCollection")}} オブジェクトです。このコレクションのそれぞれの項目は、単一の ` ` 要素を表す {{domxref("HTMLFormElement")}} です。
-文書にフォームがない場合、返されるコレクションは空で、長さはゼロです。
+文書にフォームがない場合、返されるコレクションは空で、長さはゼロになります。
## 例
@@ -58,8 +57,8 @@ collection = document.forms;
### フォーム内要素の取得
```js
-var selectForm = document.forms[index];
-var selectFormElement = document.forms[index].elements[index];
+const selectForm = document.forms[index];
+const selectFormElement = document.forms[index].elements[index];
```
### 名前付きフォームへのアクセス
@@ -79,7 +78,7 @@ var selectFormElement = document.forms[index].elements[index];
@@ -97,7 +96,5 @@ var selectFormElement = document.forms[index].elements[index];
## 関連情報
-- [HTML forms](/ja/docs/Learn/HTML/Forms)
+- [HTML フォーム](/ja/docs/Learn/Forms)
- {{HTMLElement("form")}} および {{domxref("HTMLFormElement")}} インターフェイス
-
-{{APIRef("DOM")}}
diff --git a/files/ja/web/api/document/fragmentdirective/index.md b/files/ja/web/api/document/fragmentdirective/index.md
index 4a4e3e2d2b7119..b779765e79366a 100644
--- a/files/ja/web/api/document/fragmentdirective/index.md
+++ b/files/ja/web/api/document/fragmentdirective/index.md
@@ -3,7 +3,7 @@ title: "Document: fragmentDirective プロパティ"
short-title: fragmentDirective
slug: Web/API/Document/fragmentDirective
l10n:
- sourceCommit: 41a8b9c9832359d445d136b6d7a8a28737badc6b
+ sourceCommit: 9aaaa8597f2b1b952a9ed116cbe48e4810254cea
---
{{APIRef}}{{SeeCompatTable}}
@@ -20,27 +20,8 @@ l10n:
```js
document.fragmentDirective;
-```
-
-以下のような構造を持つ {{domxref("FragmentDirective")}} オブジェクトインスタンスが返されるはずです。
-
-```js
-items: [
- {
- prefix: "",
- textStart: "Module Workers",
- textEnd: "",
- suffix: "support",
- type: "text",
- },
- {
- prefix: "feedback on",
- textStart: "usability",
- textEnd: "",
- suffix: "",
- type: "text",
- },
-];
+// 対応していれば FragmentDirective オブジェクトが返される
+// そうでなければ undefined となる
```
この機能は、現在は主に機能検出を目的としていますが、将来的には、翻訳ヒントなど他の情報を記載するために展開することができます。
diff --git a/files/ja/web/api/document/fullscreenenabled/index.md b/files/ja/web/api/document/fullscreenenabled/index.md
index c87d023e2da7c4..e20bc4a04066f4 100644
--- a/files/ja/web/api/document/fullscreenenabled/index.md
+++ b/files/ja/web/api/document/fullscreenenabled/index.md
@@ -1,34 +1,33 @@
---
-title: Document.fullscreenEnabled
+title: "Document: fullscreenEnabled プロパティ"
+short-title: fullscreenEnabled
slug: Web/API/Document/fullscreenEnabled
+l10n:
+ sourceCommit: 41a8b9c9832359d445d136b6d7a8a28737badc6b
---
{{APIRef("Fullscreen API")}}
-{{domxref("Document")}} インターフェイスの **`fullscreenEnabled`** プロパティは読み取り専用で、全画面モードが使用できるかを示します。全画面モードは文書内にウィンドウ化されたプラグインを含まないページ、および文書内のすべての {{HTMLElement("iframe")}} 要素が [`allowfullscreen`](/ja/docs/Web/HTML/Element/iframe#allowfullscreen) 属性を持つページに限り使用することができます。
+**`fullscreenEnabled`** は {{domxref("Document")}} インターフェイスの読み取り専用プロパティで、全画面モードが使用できるかどうかを示します。
-このプロパティは読み取り専用ですが、変更されても (strict モードでも) 例外を投げません。セッターは何もしないので、無視されます。
+全画面モードは、文書内にウィンドウ化されたプラグインを含まないページ、および文書内のすべての {{HTMLElement("iframe")}} 要素が [`allowfullscreen`](/ja/docs/Web/HTML/Element/iframe#allowfullscreen) 属性を持つページに限り使用することができます。
-## 構文
+このプロパティは読み取り専用ですが、変更されても(厳格モードでも)例外を発生させません。セッターは何もしないので、無視されます。
-```
-var isFullscreenAvailable = document.fullscreenEnabled;
-```
-
-### 値
+## 値
-{{domxref("Boolean")}} 値であり、文書や要素が {{domxref("Element.requestFullscreen()")}} を呼び出すことで全画面モードに移行できるのであれば `true` です。全画面モードが利用できないのであれば、値は `false` になります。
+論理値であり、文書や要素が {{domxref("Element.requestFullscreen()")}} を呼び出すことで全画面モードに移行できるのであれば `true` です。全画面モードが利用できないのであれば、値は `false` になります。
## 例
この例では、 {{htmlElement("video")}} 要素に全画面モードへの移行を試みる前に `fullscreenEnabled` の値をチェックし、利用できない場合には移行を試みないようにします。
```js
-function requestFullScreen() {
+function requestFullscreen() {
if (document.fullscreenEnabled) {
- videoElement.requestFullScreen();
+ videoElement.requestFullscreen();
} else {
- console.log("現在ブラウザーは全画面モードを使用することができません");
+ console.log("このブラウザーは全画面モードを使用することができません");
}
}
```
@@ -43,8 +42,8 @@ function requestFullScreen() {
## 関連情報
-- [Fullscreen API](/ja/docs/Web/API/Fullscreen_API)
-- [Fullscreen API ガイド](/ja/docs/Web/API/Fullscreen_API/Guide)
+- [全画面 API](/ja/docs/Web/API/Fullscreen_API)
+- [全画面 API ガイド](/ja/docs/Web/API/Fullscreen_API/Guide)
- {{domxref("Element.requestFullscreen()")}}
- {{domxref("Document.exitFullscreen()")}}
- {{domxref("Document.fullscreenElement")}}
diff --git a/files/ja/web/api/document/getanimations/index.md b/files/ja/web/api/document/getanimations/index.md
index ee6e01dd4f51d7..8a734d2fab6eb9 100644
--- a/files/ja/web/api/document/getanimations/index.md
+++ b/files/ja/web/api/document/getanimations/index.md
@@ -1,16 +1,19 @@
---
-title: Document.getAnimations()
+title: "Document: getAnimations() メソッド"
+short-title: getAnimations()
slug: Web/API/Document/getAnimations
+l10n:
+ sourceCommit: 76717f752447b6eef25bf29c12272e407ee5cb6b
---
-{{ SeeCompatTable() }}{{APIRef("Web Animations")}}
+{{APIRef("Web Animations")}}
-`getAnimations()` メソッドは {{domxref("Document")}} インターフェイスのメソッドで、この文書の配下にあるターゲット要素にあるすべての {{domxref("Animation")}} オブジェクトの配列を返します。この配列には [CSS アニメーション](/ja/docs/Web/CSS/CSS_Animations), [CSS トランジション](/ja/docs/Web/CSS/CSS_Transitions), [ウェブアニメーション](/ja/docs/Web/API/Web_Animations_API) が含まれます。
+`getAnimations()` メソッドは {{domxref("Document")}} インターフェイスのメソッドで、この文書の配下にあるターゲット要素にあるすべての {{domxref("Animation")}} オブジェクトの配列を返します。この配列には [CSS アニメーション](/ja/docs/Web/CSS/CSS_animations), [CSS トランジション](/ja/docs/Web/CSS/CSS_transitions), [ウェブアニメーション](/ja/docs/Web/API/Web_Animations_API) が含まれます。
## 構文
-```
-var allAnimations = Document.getAnimations();
+```js-nolint
+getAnimations()
```
### 引数
@@ -19,14 +22,14 @@ var allAnimations = Document.getAnimations();
### 返値
-{{domxref("Animation")}} オブジェクトの {{jsxref("Array")}} で、それぞれの要素は呼び出された {{domxref("Document")}} の配下にある要素に現在関連付けられているアニメーション 1 つを表します。
+{{domxref("Animation")}} オブジェクトの配列 ({{jsxref("Array")}}) で、それぞれの要素は呼び出された {{domxref("Document")}} の配下にある要素に現在関連付けられているアニメーション 1 つを表します。
## 例
次のコードスニペットは、ページ上のすべてのアニメーションの {{domxref("Animation.playbackRate")}} を半分にすることで速度をゆっくりにします。
```js
-document.getAnimations().forEach(function (animation) {
+document.getAnimations().forEach((animation) => {
animation.playbackRate *= 0.5;
});
```
@@ -42,7 +45,7 @@ document.getAnimations().forEach(function (animation) {
## 関連情報
- [ウェブアニメーション API](/ja/docs/Web/API/Web_Animations_API)
-- [CSS アニメーション](/ja/docs/Web/CSS/CSS_Animations)
-- [CSS トランジション](/ja/docs/Web/CSS/CSS_Transitions)
+- [CSS アニメーション](/ja/docs/Web/CSS/CSS_animations)
+- [CSS トランジション](/ja/docs/Web/CSS/CSS_transitions)
- {{domxref("Element.getAnimations()")}} - 単一の要素 ({{domxref("Element")}}) とその子孫にあるアニメーションのみを読み取る
- {{domxref("Animation")}}
diff --git a/files/ja/web/api/document/getelementbyid/index.md b/files/ja/web/api/document/getelementbyid/index.md
index 4bfc11a1387cb0..19eaa974b7dcf8 100644
--- a/files/ja/web/api/document/getelementbyid/index.md
+++ b/files/ja/web/api/document/getelementbyid/index.md
@@ -1,20 +1,27 @@
---
-title: Document.getElementById()
+title: "Document: getElementById() メソッド"
+short-title: getElementById()
slug: Web/API/Document/getElementById
+l10n:
+ sourceCommit: 8d89e9669f59f208a80c0bdbee48ba75d37a726e
---
{{ ApiRef("DOM") }}
-{{domxref("Document")}} の **`getElementById()`** メソッドは、 {{domxref("Element.id", "id")}} プロパティが指定された文字列に一致する要素を表す {{domxref("Element")}} オブジェクトを返します。要素の ID は指定されていれば固有であることが求められているため、特定の要素にすばやくアクセスするには便利な方法です。
+**`getElementById()`** は {{domxref("Document")}} インターフェイスのメソッドで、 {{domxref("Element.id", "id")}} プロパティが指定された文字列に一致する要素を表す {{domxref("Element")}} オブジェクトを返します。要素の ID は指定されていれば固有であることが求められているため、特定の要素にすばやくアクセスするには便利な方法です。
ID を持たない要素にアクセスする必要がある場合は、 {{domxref("Document.querySelector", "querySelector()")}} で何らかの{{Glossary("CSS selector", "セレクター")}}を使用して要素を検索することができます。
+> **メモ:** ID は文書内で固有である必要があります。単一の文書内で 2 つ以上の要素が同じ ID であった場合、このメソッドは最初に見つかった要素を返します。
+
## 構文
-```
-var element = document.getElementById(id);
+```js-nolint
+getElementById(id)
```
+> **メモ:** メソッド名における `"Id"` の部分は、関数のコードに対して正しくなければなりません。 `getElementByID()` は自然に見えるかもしれませんが、正しくなく動作しません。
+
### 引数
- `id`
@@ -29,14 +36,14 @@ var element = document.getElementById(id);
### HTML
```html
-
+
- getElementById example
+ getElementById の例
- Some text here
- blue
- red
+ いくらかのテキスト
+ 青
+ 赤
```
@@ -45,26 +52,24 @@ var element = document.getElementById(id);
```js
function changeColor(newColor) {
- var elem = document.getElementById("para");
+ const elem = document.getElementById("para");
elem.style.color = newColor;
}
```
### 結果
-{{ EmbedLiveSample('Example', 250, 100) }}
+{{ EmbedLiveSample('Examples', 250, 120) }}
## 使用上のメモ
-コードが機能するためには、メソッドの名前の中の `"Id"` は、大文字と小文字を正しく表記し*なければなりません*。 `getElementByID()` は自然に見えますが、妥当では*なく*動作しません。
-
-{{domxref("Document.querySelector()")}} や {{domxref("Document.querySelectorAll()")}} などの他の要素検索メソッドとは異なり、 `getElementById()` はグローバルの `document` オブジェクトに対してのみ利用可能であり、 DOM のすべての要素オブジェクトのメソッドとしては利用*できません*。 ID の値は文書全体を通して固有でなければならないため、機能の「ローカル」バージョンは必要ないのです。
+{{domxref("Document.querySelector()")}} や {{domxref("Document.querySelectorAll()")}} などの他の要素検索メソッドとは異なり、`getElementById()` はグローバルの `document` オブジェクトに対してのみ利用可能であり、 DOM のすべての要素オブジェクトのメソッドとしては利用*できません*。ID の値は文書全体を通して固有でなければならないため、機能の「ローカル」バージョンは必要ないのです。
### 例
```html
-
+
Document
@@ -77,26 +82,26 @@ function changeColor(newColor) {
hello word4
```
-もし指定された `id` を持つ要素がなければ、この関数は `null` を返します。なお、 `id` 引数は大文字小文字の区別があるため、 `document.getElementById("Main")` は `` 要素の代わりに `null` を返し、これは "M" と "m" がこのメソッドの目的では区別されるためです。
+もし指定された `id` を持つ要素がなければ、この関数は `null` を返します。なお、 `id` 引数は大文字小文字の区別があるため、 `document.getElementById("Main")` は `
` 要素ではなく `null` を返します。これは "M" と "m" がこのメソッドの目的では区別されるためです。
-**文書内にない要素** は `getElementById()` で検索されません。要素を作成し ID を割り当てたとき、 `getElementById()` でアクセスする前に {{domxref("Node.insertBefore()")}} またはそのたぐいのメソッドで、要素を文書ツリーに挿入しておく必要があります。
+文書内にない要素は `getElementById()` で検索されません。要素を作成し ID を割り当てたとき、 `getElementById()` でアクセスする前に {{domxref("Node.insertBefore()")}} またはそのたぐいのメソッドで、要素を文書ツリーに挿入しておく必要があります。
```js
-var element = document.createElement("div");
+const element = document.createElement("div");
element.id = "testqq";
-var el = document.getElementById("testqq"); // el は null になります
+const el = document.getElementById("testqq"); // el は null になります
```
-**HTML 以外の文書**の場合。 DOM の実装では、どの属性が ID 類であるかを示す情報が必要です。 "id" という名前の属性は、文書の DTD で定義されていない限り ID 類とみなされません。 `id` 属性は [XHTML](/ja/docs/XHTML), [XUL](/ja/docs/XUL) などの一般的な場合には ID 類として定義されています。属性が ID 類であるかどうかが分からない実装では、 `null` を返すでしょう。
+HTML 以外の文書の場合。 DOM の実装では、どの属性が ID 類であるかを示す情報が必要です。 "id" という名前の属性は、文書の DTD で定義されていない限り ID 類とみなされません。 `id` 属性は [XHTML](/ja/docs/Glossary/XHTML), XUL などの一般的な場合には ID 型として定義されています。属性が ID 類であるかどうかが分からない実装では、 `null` を返すでしょう。
## 仕様書
@@ -109,5 +114,5 @@ var el = document.getElementById("testqq"); // el は null になります
## 関連情報
- {{domxref("Document")}}: 文書内で要素への参照を取得するために使うことができる他のメソッドやプロパティで使用するための参照。
-- {{domxref("Document.querySelector()")}}: `'div.myclass'` のようなセレクターを通したクエリのためのもの。
-- [xml:id](/ja/docs/xml/xml:id) - `getElementById()` による XML 文書 (Ajax 呼び出しによって返されるものなど) の 'xml:id' の取得を可能とする便利なメソッドを持つ
+- {{domxref("Document.querySelector()")}}: `'div.myclass'` のようなセレクターを通したクエリーのためのもの。
+- {{domxref("Document.evaluate()")}} `xml:id` によって {{glossary("XML")}} 文書内を選択するユーティリティーメソッド
diff --git a/files/ja/web/api/document/getelementsbyclassname/index.md b/files/ja/web/api/document/getelementsbyclassname/index.md
index bae1af8f639596..6e4060eabf7d8d 100644
--- a/files/ja/web/api/document/getelementsbyclassname/index.md
+++ b/files/ja/web/api/document/getelementsbyclassname/index.md
@@ -1,22 +1,33 @@
---
-title: Document.getElementsByClassName()
+title: "Document: getElementsByClassName() メソッド"
+short-title: getElementsByClassName()
slug: Web/API/Document/getElementsByClassName
+l10n:
+ sourceCommit: 0a881eea07f0cec6ca4ed85a24af43b367a9f80d
---
{{APIRef("DOM")}}
-{{domxref("Document")}} インターフェイスの **`getElementsByClassName`** メソッドは、指定されたクラス名をすべて持つすべての子要素の配列風オブジェクトを返します。 {{domxref("document")}} オブジェクトに対して呼び出したときは、ルートノードを含む文書全体が検索されます。任意の要素に対して {{domxref("Element.getElementsByClassName", "getElementsByClassName()")}} を呼び出すこともできます。その場合は、指定されたルート要素下の指定されたクラス名を持つ要素だけを返します。
+**`getElementsByClassName`** は {{domxref("Document")}} インターフェイスのメソッドで、指定されたクラス名をすべて持つすべての子要素の配列風オブジェクトを返します。
+
+{{domxref("document")}} オブジェクトに対して呼び出したときは、ルートノードを含む文書全体が検索されます。任意の要素に対して {{domxref("Element.getElementsByClassName", "getElementsByClassName()")}} を呼び出すこともできます。その場合は、指定されたルート要素下の指定されたクラス名を持つ要素だけを返します。
+
+> **警告:** これは生きた {{domxref("HTMLCollection")}} です。DOM の変更は、その都度配列に反映されます。この配列で選択された要素がセレクターに該当しなくなった場合は、 自動的に除去されます。反復処理する際には、このことに注意しましょう。
## 構文
+```js-nolint
+getElementsByClassName(names)
```
-var elements = document.getElementsByClassName(names); // または
-var elements = rootElement.getElementsByClassName(names);
-```
-- _elements_ は、見つかった要素の生きた {{domxref("HTMLCollection")}} です。
-- _names_ は文字列で、一致させるクラス名を表します。複数のクラス名はホワイトスペースで区切ります。
-- {{domxref("Element.getElementsByClassName", "getElementsByClassName")}} は、 {{domxref("document")}} だけでなく、任意の要素に対して呼び出すことができます。呼び出した要素が検索のルートとして使われます。
+### 引数
+
+- `names`
+ - : 照合するクラス名を表す文字列です。複数のクラス名はホワイトスペースで区切ります。
+
+### 返値
+
+見つかった要素の生きた {{domxref("HTMLCollection")}} です。
## 例
@@ -44,15 +55,13 @@ document.getElementById("main").getElementsByClassName("test");
document.getElementsByClassName("test")[0];
```
-メソッドの _this_ 値として {{domxref("HTMLCollection")}} を渡すことで、 Array プロトタイプのメソッドを `HTMLCollection` で使用することができます。ここでは、 'test' クラスを持つすべての div 要素を検索します。
+メソッドの _this_ 値として {{domxref("HTMLCollection")}} を渡すことで、Array.prototype のメソッドを `HTMLCollection` で使用することができます。ここでは、 'test' クラスを持つすべての div 要素を検索します。
```js
-var testElements = document.getElementsByClassName("test");
-var testDivs = Array.prototype.filter.call(
+const testElements = document.getElementsByClassName("test");
+const testDivs = Array.prototype.filter.call(
testElements,
- function (testElement) {
- return testElement.nodeName === "DIV";
- },
+ (testElement) => testElement.nodeName === "DIV",
);
```
@@ -60,26 +69,26 @@ var testDivs = Array.prototype.filter.call(
これは最もよく使われる操作のメソッドです。
-```
-
-
+```html
+
+
-
hello world 1
-
hello world 2
-
hello world 3
-
hello world 4
+
hello world 1
+
hello world 2
+
hello world 3
+
hello world 4
-
+
```
@@ -101,25 +110,17 @@ var testDivs = Array.prototype.filter.call(
```js
// getElementsByClassName は指定された両方のクラスを持つ要素のみを選択する
-var allOrangeJuiceByClass = document.getElementsByClassName("orange juice");
-var result = "document.getElementsByClassName('orange juice')";
-for (
- var i = 0, len = allOrangeJuiceByClass.length | 0;
- i < len;
- i = (i + 1) | 0
-) {
- result += "\n " + allOrangeJuiceByClass[i].textContent;
+const allOrangeJuiceByClass = document.getElementsByClassName("orange juice");
+let result = "document.getElementsByClassName('orange juice')";
+for (let i = 0; i < allOrangeJuiceByClass.length; i++) {
+ result += `\n ${allOrangeJuiceByClass[i].textContent}`;
}
-// querySelector は完全一致で選択する
-var allOrangeJuiceQuery = document.querySelectorAll(".orange.juice");
+// querySelector は完全一致するもののみ選択する
+const allOrangeJuiceQuery = document.querySelectorAll(".orange.juice");
result += "\n\ndocument.querySelectorAll('.orange.juice')";
-for (
- var i = 0, len = allOrangeJuiceQuery.length | 0;
- i < len;
- i = (i + 1) | 0
-) {
- result += "\n " + allOrangeJuiceQuery[i].textContent;
+for (let i = 0; i < allOrangeJuiceQuery.length; i++) {
+ result += `\n ${allOrangeJuiceQuery[i].textContent}`;
}
document.getElementById("resultArea").value = result;
diff --git a/files/ja/web/api/document/getelementsbyname/index.md b/files/ja/web/api/document/getelementsbyname/index.md
index 3a293778993531..b63b5ba9dc4f4c 100644
--- a/files/ja/web/api/document/getelementsbyname/index.md
+++ b/files/ja/web/api/document/getelementsbyname/index.md
@@ -1,50 +1,56 @@
---
-title: Document.getElementsByName()
+title: "Document: getElementsByName() メソッド"
+short-title: getElementsByName()
slug: Web/API/Document/getElementsByName
+l10n:
+ sourceCommit: acfe8c9f1f4145f77653a2bc64a9744b001358dc
---
{{APIRef("DOM")}}
-{{domxref("Document")}} オブジェクトの **`getElementsByName()`** メソッドは、文書内で指定した {{domxref("element.name","name")}} を持つ要素の {{domxref("NodeList")}} コレクションを返します。
+**`getElementsByName()`** は {{domxref("Document")}} オブジェクトのメソッドで、文書内で指定した `name` を持つ要素の {{domxref("NodeList")}} コレクションを返します。
## 構文
+```js-nolint
+getElementsByName(name)
```
-var elements = document.getElementsByName(name);
-```
-- _elements_ は、生きた {{domxref("NodeList")}} コレクション、つまり文書内で同じ `name` を持った新しい要素が追加されたり削除されたりすると自動的に更新されるものです。
-- `name` は、要素の `name` 属性の値です。
+### 引数
+
+- `name`
+ - : 探している要素の `name` 属性の値です。
+
+### 返値
+
+生きた {{domxref("NodeList")}} コレクション、つまり文書内で同じ `name` を持った新しい要素が追加されたり削除されたりすると自動的に更新されるものです。
## 例
```html
-
-
document.getElementsByName の使用例
-
-
-
-
-
+
+
+
document.getElementsByName の使用例
+
+
+
+
+
```
+```js
+const up_names = document.getElementsByName("up");
+console.log(up_names[0].tagName); // "INPUT" と表示
+```
+
## メモ
-{{domxref("element.name","name")}} 属性は、(X)HTML 文書にのみ適用可能です。
+`name` 属性は、(X)HTML 文書にのみ適用可能です。
返却された {{domxref("NodeList")}} コレクションには、 {{htmlelement("meta")}} や {{htmlelement("object")}} など、それに `name` 属性にまったく対応していない要素も含め、指定された `name` を持つ*すべての*要素が含まれます。
-> **警告:** **getElementsByName** メソッドは、 IE10 以前では動作が異なります。この場合、 `getElementsByName()` は指定された [`id` 属性](/ja/docs/Web/HTML/Global_attributes/id)を持つ要素も返します。 `name` および `id` で同じ文字列を使用しないように注意してください。
-
-> **警告:** **getElementsByName** メソッドは IE では動作が異なります。この場合、 `getElementsByName()` は `name` 属性を許容しない要素 (`
` など) を返しません。
-
-> **警告:** IE および Edge では、 {{domxref("NodeList")}} ではなく {{domxref("HTMLCollection")}} を返します。
-
## 仕様書
{{Specifications}}
@@ -57,4 +63,4 @@ var elements = document.getElementsByName(name);
- {{domxref("document.getElementById()")}} : 固有の `id` を持つ要素への参照を返す
- {{domxref("document.getElementsByTagName()")}} : 同じ[タグ名](/ja/docs/Web/API/Element/tagName)の要素への参照を返す
-- {{domxref("document.querySelector()")}} : `'div.myclass'` のような CSS セレクターによって要素への参照をかえす
+- {{domxref("document.querySelector()")}}: `'div.myclass'` のような CSS セレクターによって要素への参照を返す
diff --git a/files/ja/web/api/document/getelementsbytagname/index.md b/files/ja/web/api/document/getelementsbytagname/index.md
index c96b592a5b8eac..b6986c67a1c68b 100644
--- a/files/ja/web/api/document/getelementsbytagname/index.md
+++ b/files/ja/web/api/document/getelementsbytagname/index.md
@@ -1,81 +1,95 @@
---
-title: Document.getElementsByTagName()
+title: "Document: getElementsByTagName() メソッド"
+short-title: getElementsByTagName()
slug: Web/API/Document/getElementsByTagName
+l10n:
+ sourceCommit: 88241bf466f1025d3c2f4ce2752586dd85d1ae13
---
{{APIRef("DOM")}}
-**`getElementsByTagName`** は {{domxref("Document")}} インターフェイスのメソッドで、指定されたタグ名を持つ要素の {{domxref("HTMLCollection")}} を返します。ルートノードを含めた文書全体が検索されます。返された `HTMLCollection` は生きたものであり、つまり `document.getElementsByTagName()` を再度呼び出さなくても DOM ツリーと同期を取り続けるよう、自動的に自分自身を更新します。.
+**`getElementsByTagName`** は {{domxref("Document")}} インターフェイスのメソッドで、指定されたタグ名を持つ要素の {{domxref("HTMLCollection")}} を返します。
+
+ルートノードを含めた文書全体が検索されます。返された `HTMLCollection` は生きたものであり、つまり `document.getElementsByTagName()` を再度呼び出さなくても DOM ツリーと同期を取り続けるよう、自動的に自分自身を更新します。
## 構文
+```js-nolint
+getElementsByTagName(name)
```
-var elements = document.getElementsByTagName(name);
-```
-- _elements_ は生きた {{domxref("HTMLCollection")}} であり、見つかった要素がツリーに出現する順に並んでいます (ただし、下記のメモを見てください)。
-- _name_ は文字列で、要素の名前を表します。特殊な文字列 "\*" は全ての要素を表します。
+### 引数
+
+- `name`
+ - : 要素の名前を表す文字列。特別な文字列 `*` はすべての要素を表します。
+
+### 返値
-> **メモ:** [最新の W3C 仕様書](https://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html) では `elements` は `HTMLCollection` です。しかし、 WebKit ブラウザーではこのメソッドは {{domxref("NodeList")}} を返します。詳しくは [Firefox バグ 14869](https://bugzil.la/14869) を見てください。
+生きた {{domxref("HTMLCollection")}} であり、見つかった要素がツリーに出現する順に並んでいます。
+
+> **メモ:** [最新の W3C 仕様書](https://dom.spec.whatwg.org/#interface-document) では返値は `HTMLCollection` です。しかし、 WebKit ブラウザーではこのメソッドは {{domxref("NodeList")}} を返します。詳しくは [Firefox バグ 14869](https://bugzil.la/14869) を見てください。
## 例
-以下の例では、 `getElementsByTagName()` は特定の親要素から開始し、その親要素から DOM を上から下へ再帰的に検索し、タグが `name` パラメータと一致する子要素を探します。これは `document.getElementsByTagName()` と、機能的に同等な {{domxref("Element.getElementsByTagName()")}} は、 DOM ツリー内の特定の要素から検索を始めることを示します。
+以下の例では、 `getElementsByTagName()` は特定の親要素から開始し、その親要素から DOM を上から下へ再帰的に検索し、タグが `name` 引数と一致する子要素を探します。これは `document.getElementsByTagName()`、および機能的に同等な {{domxref("Element.getElementsByTagName()")}} は、 DOM ツリー内の特定の要素から検索を始めることを示します。
ボタンをクリックすると `getElementsByTagName()` を使用して、特定の親 (文書自体または 2 つの {{HTMLElement("div")}} 要素の何れかに囲まれたもの) の子孫の段落要素を数えます。
-```html
-
-
+```html-nolint
+
+
- getElementsByTagName example
+ getElementsByTagName の例
- Some outer text
- Some outer text
+ 外部のテキスト
+ 外部のテキスト
-
Some div1 text
-
Some div1 text
-
Some div1 text
+
div1 のテキスト
+
div1 のテキスト
+
div1 のテキスト
-
Some div2 text
-
Some div2 text
+
div2 のテキスト
+
div2 のテキスト
- Some outer text
- Some outer text
+ 外部のテキスト
+ 外部のテキスト
- 文書内のすべての p 要素を表示
+
+ 文書内のすべての p 要素を表示
+
+
- div1 要素内のすべての p 要素を表示
+ div1 要素内のすべての p 要素を表示
+
+
div2 要素内のすべての p 要素を表示
@@ -84,9 +98,10 @@ var elements = document.getElementsByTagName(name);
```
-## 注
+## メモ
-HTML 文書上で呼び出された場合、 `getElementsByTagName()` は処理前に引数を小文字に変換します。これは HTML 文書内のサブツリーにあるキャメルケースの SVG 要素に一致させようとする場合には望ましくありません。この場合は {{Domxref("document.getElementsByTagNameNS()")}} が便利です。 [Firefox バグ 499656](https://bugzil.la/499656) を参照してください。
+HTML 文書上で呼び出された場合、 `getElementsByTagName()` は処理前に引数を小文字に変換します。これは HTML 文書内のサブツリーにある{{Glossary("camel_case", "キャメルケース")}}の SVG 要素に一致させようとする場合には望ましくありません。
+この場合は {{Domxref("document.getElementsByTagNameNS()")}} が便利です。 [Firefox バグ 499656](https://bugzil.la/499656) を参照してください。
`document.getElementsByTagName()` は、検索が文書全体を含むという点以外は {{domxref("Element.getElementsByTagName()")}} と類似しています。
diff --git a/files/ja/web/api/document/getelementsbytagnamens/index.md b/files/ja/web/api/document/getelementsbytagnamens/index.md
index fe01c56ae69866..9bf488e83d02a3 100644
--- a/files/ja/web/api/document/getelementsbytagnamens/index.md
+++ b/files/ja/web/api/document/getelementsbytagnamens/index.md
@@ -1,6 +1,9 @@
---
-title: Document.getElementsByTagNameNS()
+title: "Document: getElementsByTagNameNS() メソッド"
+short-title: getElementsByTagNameNS()
slug: Web/API/Document/getElementsByTagNameNS
+l10n:
+ sourceCommit: 0a881eea07f0cec6ca4ed85a24af43b367a9f80d
---
{{APIRef("DOM")}}
@@ -9,17 +12,27 @@ slug: Web/API/Document/getElementsByTagNameNS
## 構文
+```js-nolint
+getElementsByTagNameNS(namespace, name)
```
-elements = document.getElementsByTagNameNS(namespace, name)
-```
-- _elements_ は見つかった要素の生きた {{DOMxRef("NodeList")}} (但し下記のメモを参照) で、ツリーに現れる順です。
-- _namespace_ は検索する要素の名前空間 URI です ({{domxref("Node.namespaceURI", "element.namespaceURI")}} を参照)。
-- _name_ は検索する要素の局所名、またはすべての要素に一致する特殊な値 `*` です ({{domxref("Node.localName", "element.localName")}} を参照)。
+### 引数
+
+- `namespace`
+ - : 検索する要素の名前空間 URI です({{domxref("Element.namespaceURI", "element.namespaceURI")}} を参照)。
+- `name`
+ - : 検索する要素のローカル名、またはすべての要素に一致する特殊な値 `*` です({{domxref("Element.localName", "element.localName")}} を参照)。
+
+### 返値
+
+見つかった要素の生きた {{DOMxRef("NodeList")}}(但し下記のメモを参照)で、ツリーに現れる順です。
-> **メモ:** W3C の仕様書では `elements` は `NodeList` であるとされていますが、 Gecko および Internet Explorer ではこのメソッドは {{DOMxRef("HTMLCollection")}} を返します。 Opera は `NodeList` を返しますが、 `namedItem` メソッドを実装しているので、 `HTMLCollection` と同様になります。2012 年 1 月時点で、 WebKit ブラウザーのみが純粋な `NodeList` の値を返します。詳しくは [bug 14869](https://bugzilla.mozilla.org/show_bug.cgi?id=14869) を参照してください。
+> **メモ:** W3C の仕様書では返値は `NodeList` であるとされていますが、Firefox ではこのメソッドは {{DOMxRef("HTMLCollection")}} を返します。
+> Opera は `NodeList` を返しますが、 `namedItem` メソッドを実装しているので、 `HTMLCollection` と同様になります。2012 年 1 月時点で、 WebKit ブラウザーのみが純粋な `NodeList` の値を返します。
+> 詳しくは [bug 14869](https://bugzil.la/14869) を参照してください。
-> **メモ:** 現在、このメソッドの引数は大文字と小文字を区別しますが、 Firefox 3.5 以前は大文字と小文字を区別していませんでした。詳しくは [Firefox 3.6 の開発者リリースノート](/ja/docs/Mozilla/Firefox/Releases/3.6#DOM)および {{domxref("Element.getElementsByTagNameNS")}} のブラウザーの互換性のメモをご覧ください。
+> **メモ:** 現在、このメソッドの引数は大文字と小文字を区別しますが、 Firefox 3.5 以前は大文字と小文字を区別していませんでした。
+> 詳しくは [Firefox 3.6 の開発者リリースノート](/ja/docs/Mozilla/Firefox/Releases/3.6#dom)および {{domxref("Element.getElementsByTagNameNS")}} のブラウザーの互換性のメモをご覧ください。
## 例
@@ -29,110 +42,78 @@ elements = document.getElementsByTagNameNS(namespace, name)
以下の例を使用するには、新しいファイルにそのままコピー&ペーストして、 .xhtml の拡張子で保存してください。
-```html
-
+```html-nolint
+
- getElementsByTagNameNS example
+ getElementsByTagNameNS の例
-
- Some outer text
- Some outer text
+ 外側のテキスト
+ 外側のテキスト
-
Some div1 text
-
Some div1 text
-
Some div1 text
+
div1 のテキスト
+
div1 のテキスト
+
div1 のテキスト
-
Some div2 text
-
Some div2 text
+
div2 のテキスト
+
div2 のテキスト
- Some outer text
- Some outer text
+ 外側のテキスト
+ 外側のテキスト
- show all p elements in document
+
+ 文書内のすべての p 要素
+
+
- show all p elements in div1 element
+ div1 要素内のすべての p 要素
+
+
- show all p elements in div2 element
+ div2 要素内のすべての p 要素
```
-## 対応していないブラウザーでの代替方法
-
-要求されたブラウザーが XPath に対応していない場合、他のアプローチ (DOM のすべての子要素をたどって、すべての @xmlns インスタンスで識別する、など) で要求された局所名および名前空間を持つすべてのタグを検索する必要がありますが、 XPath の方がはるかに高速です。 (Explorer に対応するためには、[このラッパークラス](http://www.davidflanagan.com/javascript5/display.php?n=21-10&f=21/10.js)のように、以下の関数で XPath の代わりに XPath のラッパーを呼び出すことができます (Explorer は異なる API を持つ XPath に対応しています)。
-
-```js
-function getElementsByTagNameNSWrapper(ns, elName, doc, context) {
- if (!doc) {
- doc = document;
- }
- if (!context) {
- context = doc;
- }
-
- var result = doc.evaluate(
- '//*[local-name()="' + elName + '" and namespace-uri() = "' + ns + '"]',
- context,
- null,
- XPathResult.ORDERED_NODE_SNAPSHOT_TYPE,
- null,
- );
-
- var a = [];
- for (var i = 0; i < result.snapshotLength; i++) {
- a[i] = result.snapshotItem(i);
- }
- return a;
-}
-```
-
## 仕様書
{{Specifications}}
diff --git a/files/ja/web/api/document/getselection/index.md b/files/ja/web/api/document/getselection/index.md
index 38100091860724..6671bf9caeec42 100644
--- a/files/ja/web/api/document/getselection/index.md
+++ b/files/ja/web/api/document/getselection/index.md
@@ -1,16 +1,19 @@
---
-title: Document.getSelection()
+title: "Document: getSelection() メソッド"
+short-title: getSelection()
slug: Web/API/Document/getSelection
+l10n:
+ sourceCommit: 41a8b9c9832359d445d136b6d7a8a28737badc6b
---
{{APIRef("DOM")}}
-**`getSelection()`** は {{DOMxRef("Document")}} インターフェイスのプロパティで、ユーザーが選択したテキストの範囲、またはキャレットの現在位置を表す {{DOMxRef("Selection")}} オブジェクトを返します。
+**`getSelection()`** は {{DOMxRef("Document")}} インターフェイスのメソッドで、ユーザーが選択したテキストの範囲、またはキャレットの現在位置を表す {{DOMxRef("Selection")}} オブジェクトを返します。
## 構文
-```js
-getSelection();
+```js-nolint
+getSelection()
```
### 引数
diff --git a/files/ja/web/api/document/hasfocus/index.md b/files/ja/web/api/document/hasfocus/index.md
index af39e91da9018c..dd9c9ccbf05ef9 100644
--- a/files/ja/web/api/document/hasfocus/index.md
+++ b/files/ja/web/api/document/hasfocus/index.md
@@ -1,8 +1,9 @@
---
title: "Document: hasFocus() メソッド"
+short-title: hasFocus()
slug: Web/API/Document/hasFocus
l10n:
- sourceCommit: 41a8b9c9832359d445d136b6d7a8a28737badc6b
+ sourceCommit: acfe8c9f1f4145f77653a2bc64a9744b001358dc
---
{{APIRef}}
diff --git a/files/ja/web/api/document/hasstorageaccess/index.md b/files/ja/web/api/document/hasstorageaccess/index.md
index 27d648bce895a3..5a16798d1bed65 100644
--- a/files/ja/web/api/document/hasstorageaccess/index.md
+++ b/files/ja/web/api/document/hasstorageaccess/index.md
@@ -1,18 +1,23 @@
---
-title: Document.hasStorageAccess()
+title: "Document: hasStorageAccess() メソッド"
+short-title: hasStorageAccess()
slug: Web/API/Document/hasStorageAccess
+l10n:
+ sourceCommit: b97c61b40d8b71532d54fe5af1eab4ca014605ec
---
-{{APIRef}}{{seecompattable}}
+{{APIRef("Storage Access API")}}
-{{domxref("Document")}} インターフェイスの **`hasStorageAccess()`** メソッドは、文書がファーストパーティのストレージへのアクセス権を持っているかどうかを真偽値で解決する {{jsxref("Promise")}} を返します。
+**`hasStorageAccess()`** は {{domxref("Document")}} インターフェイスのメソッドで、この文書が[サードパーティ](/ja/docs/Web/Privacy/Third-party_cookies)の[分離された](/ja/docs/Web/API/Storage_Access_API#unpartitioned_versus_partitioned_cookies)クッキーへのアクセス権を持っているかどうかを示す論理値で解決する {{jsxref("Promise")}} を返します。
-詳しくは [Storage Access API](/ja/docs/Web/API/Storage_Access_API) を参照してください。
+詳しくは [ストレージアクセス API](/ja/docs/Web/API/Storage_Access_API) を参照してください。
+
+> **メモ:** このメソッドは {{DOMxRef("Document.hasUnpartitionedCookieAccess()")}} の別名です。{{DOMxRef("Document.hasUnpartitionedCookieAccess()")}} のためにこのメソッドを削除する予定はありません。
## 構文
-```
-var promise = document.hasStorageAccess();
+```js-nolint
+hasStorageAccess()
```
### 引数
@@ -21,9 +26,19 @@ var promise = document.hasStorageAccess();
### 返値
-文書がファーストパーティのストレージへのアクセス権を持っているかどうかを真偽値で解決する {{jsxref("Promise")}} です。
+文書がサードパーティ Cookie にアクセスできるかどうかを示す論理値で解決する {{jsxref("Promise")}} です。サードパーティ Cookie にアクセスできる場合は `true`、できない場合は `false` です。
+
+このメソッドが返す結果は、状況によっては不正確なことがあります。
+
+1. ユーザーがサードパーティクッキーをブロックするブラウザー設定をアクティブにしている場合があります。この場合、サードパーティのクッキーにはまだアクセスできないにもかかわらず、`true` が返されるかもしれません。このような状況を処理するには、クッキーの値が回復不可能になるようなエラーを適切に処理しなければなりません。例えば、個人設定へのアクセスがブロックされていることをユーザーに知らせ、それを使用するには再度サインインするよう促してください。
+2. ブラウザーは既定で、サードパーティクッキーへのアクセスをブロックしない場合があります。この場合、サードパーティクッキーがアクセス可能であっても `false` が返されるかもしれませんし、ストレージへのアクセスは(つまり {{domxref("Document.requestStorageAccess()")}} を通して)リクエストされる必要はないでしょう。この課題を回避するには、{{domxref("Document.cookie")}} に問い合わせてクッキーがアクセス可能かどうかを探し、アクセス可能でない場合は {{domxref("Document.requestStorageAccess()")}} を呼び出します。
-Promise が解決され、関数が最初に呼び出されたときにユーザージェスチャーイベントを処理していた場合、解決ハンドラーはユーザージェスチャーが処理されているかのように実行されるため、ユーザーによるアクティベーションを必要とする API を呼び出すことができます。
+> **メモ:** プロミスが解決され、関数が元々呼び出されたときにユーザージェスチャーイベントが処理されていた場合、解決ハンドラーはユーザーによるジェスチャーが処理されているかのように実行サレルるので、ユーザーによるアクティブ化が要求される API を呼び出すことができます。
+
+### 例外
+
+- `InvalidStateError` {{domxref("DOMException")}}
+ - : 現在の {{domxref("Document")}} がまだアクティブでない場合に発生します。
## 例
@@ -31,16 +46,20 @@ Promise が解決され、関数が最初に呼び出されたときにユーザ
document.hasStorageAccess().then((hasAccess) => {
if (hasAccess) {
// ストレージへのアクセスはすでに許可されています。
+ console.log("クッキーへのアクセスが許可されました");
} else {
// ストレージへのアクセスはまだ許可されていません。
// requestStorageAccess() を呼び出す必要があります。
+ console.log("クッキーへのアクセスが拒否されました");
}
});
```
+> **メモ:** より完全な例は、[ストレージアクセス API の使用](/ja/docs/Web/API/Storage_Access_API/Using)を参照してください。
+
## 仕様書
-この API はまだ提案段階にあります。 — 標準化プロセスはまだ始まっていません。現在のところ、この API の詳細の仕様書は、アップルのブログ投稿の [Introducing Storage Access API](https://webkit.org/blog/8124/introducing-storage-access-api/)、および [WHATWG HTML issue 3338 — Proposal: Storage Access API](https://github.com/whatwg/html/issues/3338) で見ることができます。
+{{Specifications}}
## ブラウザーの互換性
@@ -48,4 +67,6 @@ document.hasStorageAccess().then((hasAccess) => {
## 関連情報
-[Storage Access API](/ja/docs/Web/API/Storage_Access_API)
+- {{domxref("Document.hasUnpartitionedCookieAccess()")}}, {{domxref("Document.requestStorageAccess()")}}, {{domxref("Document.requestStorageAccessFor()")}}
+- [ストレージアクセス API の使用](/ja/docs/Web/API/Storage_Access_API/Using)
+- [Introducing Storage Access API](https://webkit.org/blog/8124/introducing-storage-access-api/) (WebKit blog)
diff --git a/files/ja/web/api/document/hasunpartitionedcookieaccess/index.md b/files/ja/web/api/document/hasunpartitionedcookieaccess/index.md
new file mode 100644
index 00000000000000..88348fcffd7b78
--- /dev/null
+++ b/files/ja/web/api/document/hasunpartitionedcookieaccess/index.md
@@ -0,0 +1,67 @@
+---
+title: "Document: hasUnpartitionedCookieAccess() メソッド"
+short-title: hasUnpartitionedCookieAccess()
+slug: Web/API/Document/hasUnpartitionedCookieAccess
+l10n:
+ sourceCommit: b97c61b40d8b71532d54fe5af1eab4ca014605ec
+---
+
+{{APIRef("Storage Access API")}}
+
+**`hasUnpartitionedCookieAccess()`** は {{domxref("Document")}} インターフェイスのメソッドで、論理値を返すプロミス ({{jsxref("Promise")}}) を返します。これはこの文書が[サードパーティ](/ja/docs/Web/HTTP/Cookies#third-party_cookies)の[分離されていない](/ja/docs/Web/API/Storage_Access_API#unpartitioned_versus_partitioned_cookies)クッキーへのアクセス権があるかどうかを示します。
+
+このメソッドは[ストレージアクセス API](/ja/docs/Web/API/Storage_Access_API) の一部です。
+
+このメソッドは {{DOMxRef("Document.hasStorageAccess()")}} の新しい名前です。
+
+## 構文
+
+```js-nolint
+hasUnpartitionedCookieAccess()
+```
+
+### 引数
+
+なし。
+
+### 返値
+
+文書がサードパーティクッキーにアクセスできるかどうかを示す論理値で解決する {{jsxref("Promise")}} です。サードパーティクッキーにアクセスできる場合は `true`、できない場合は `false` です。
+
+詳しくは {{DOMxRef("Document.hasStorageAccess()")}} を参照してください。
+
+### 例外
+
+- `InvalidStateError` {{domxref("DOMException")}}
+ - : 現在の {{domxref("Document")}} がまだアクティブでない場合に発生します。
+
+## 例
+
+```js
+document.hasUnpartitionedCookieAccess().then((hasAccess) => {
+ if (hasAccess) {
+ // ストレージへのアクセスはすでに許可されています。
+ console.log("クッキーへのアクセスが許可されました");
+ } else {
+ // ストレージへのアクセスはまだ許可されていません。
+ // requestStorageAccess() を呼び出す必要があります。
+ console.log("クッキーへのアクセスが拒否されました");
+ }
+});
+```
+
+> **メモ:** より完全な例は、[ストレージアクセス API の使用](/ja/docs/Web/API/Storage_Access_API/Using)を参照してください。
+
+## 仕様書
+
+{{Specifications}}
+
+## ブラウザーの互換性
+
+{{Compat}}
+
+## 関連情報
+
+- {{domxref("Document.hasStorageAccess()")}}, {{domxref("Document.requestStorageAccess()")}}, {{domxref("Document.requestStorageAccessFor()")}}
+- [ストレージアクセス API の使用](/ja/docs/Web/API/Storage_Access_API/Using)
+- [Introducing Storage Access API](https://webkit.org/blog/8124/introducing-storage-access-api/) (WebKit blog)
diff --git a/files/ja/web/api/document/head/index.md b/files/ja/web/api/document/head/index.md
index fa90e0bb60c83d..3048ad94955c37 100644
--- a/files/ja/web/api/document/head/index.md
+++ b/files/ja/web/api/document/head/index.md
@@ -1,19 +1,16 @@
---
-title: Document.head
+title: "Document: head プロパティ"
+short-title: head
slug: Web/API/Document/head
+l10n:
+ sourceCommit: acfe8c9f1f4145f77653a2bc64a9744b001358dc
---
{{APIRef("DOM")}}
-{{domxref("Document")}} インターフェイスの **`head`** は読み取り専用のプロパティで、現在の文書の {{HTMLElement("head")}} 要素を返します。
+**`head`** は {{domxref("Document")}} インターフェイスの読み取り専用のプロパティで、この文書の {{HTMLElement("head")}} 要素を返します。
-## 構文
-
-```
-var objRef = document.head;
-```
-
-### 値
+## 値
{{domxref("HTMLHeadElement")}} です。
@@ -22,11 +19,11 @@ var objRef = document.head;
```html
- Example: using document.head
+ 例: document.head の使用
-
-
+```html
+
+
+
+
+ Hello World!
+
+
+
+
```
diff --git a/files/ja/web/api/document/url/index.md b/files/ja/web/api/document/url/index.md
index f6f071c8dbaada..a73fc810bb9be0 100644
--- a/files/ja/web/api/document/url/index.md
+++ b/files/ja/web/api/document/url/index.md
@@ -1,17 +1,18 @@
---
-title: Document.URL
+title: "Document: URL プロパティ"
+short-title: URL
slug: Web/API/Document/URL
+l10n:
+ sourceCommit: 41a8b9c9832359d445d136b6d7a8a28737badc6b
---
{{APIRef("DOM")}}
-{{domxref("Document")}} インターフェイスの **`URL`** プロパティは読取専用で、文書の位置を文字列で返します。
+**`URL`** は {{domxref("Document")}} インターフェイスの読み取り専用プロパティで、文書の位置を文字列で返します。
-## 構文
+## 値
-```js
-const url = document.URL;
-```
+この文書の URL が入った文字列です。
## 例
@@ -26,13 +27,13 @@ document.getElementById("url").textContent = document.URL;
```html
URL:
- URL goes here
+ URL がここに表示されます
```
### 結果
-{{EmbedLiveSample("Example", "100%", 100)}}
+{{EmbedLiveSample("Examples", "100%", 100)}}
## 仕様書
diff --git a/files/ja/web/api/document/visibilitychange_event/index.md b/files/ja/web/api/document/visibilitychange_event/index.md
index 2df9a205e0af52..e29cef45b2598f 100644
--- a/files/ja/web/api/document/visibilitychange_event/index.md
+++ b/files/ja/web/api/document/visibilitychange_event/index.md
@@ -1,8 +1,9 @@
---
title: "Document: visibilitychange イベント"
+short-title: visibilitychange
slug: Web/API/Document/visibilitychange_event
l10n:
- sourceCommit: 1511e914c6b1ce6f88056bfefd48a6aa585cebce
+ sourceCommit: 14a752ccdcaa736e8e368156c48bca61a3c1e5ed
---
{{APIRef}}
@@ -37,14 +38,19 @@ onvisibilitychange = (event) => {};
### 非表示に遷移した際に音楽を一時停止
-この例では、文書が表示状態になった時に音楽を再生し、文書が非表示になった時に音楽を停止します。
+この例は、ページが非表示になると音声再生を一時停止し、ページが再び表示されると再生を再開します。
+完全な例については、[Page Visibility API: Pausing audio on page hide](/ja/docs/Web/API/Page_Visibility_API#pausing_audio_on_page_hide) ドキュメントを参照してください。
```js
document.addEventListener("visibilitychange", () => {
- if (document.visibilityState === "visible") {
- backgroundMusic.play();
+ if (document.hidden) {
+ playingOnHide = !audio.paused;
+ audio.pause();
} else {
- backgroundMusic.pause();
+ // 音声が "playing on hide" であった場合は復旧する
+ if (playingOnHide) {
+ audio.play();
+ }
}
});
```
@@ -73,5 +79,6 @@ document.onvisibilitychange = () => {
- [ページ可視性 API](/ja/docs/Web/API/Page_Visibility_API)
- {{domxref("Document.visibilityState")}}
+- {{domxref("Document.hidden")}}
- [Don't lose user and app state, use Page Visibility](https://www.igvita.com/2015/11/20/dont-lose-user-and-app-state-use-page-visibility/) は、なぜ `beforeunload`/`unload` ではなく、`visibilitychange` を使用しなければならないのか、その理由を詳しく説明しています。
- [Page Lifecycle API](https://developer.chrome.com/blog/page-lifecycle-api/) は、ウェブアプリケーションでページのライフサイクルの動作を処理する際の最善の手法を解説しています。
diff --git a/files/ja/web/api/document/visibilitystate/index.md b/files/ja/web/api/document/visibilitystate/index.md
index fd947d8db39239..935747334f8bcf 100644
--- a/files/ja/web/api/document/visibilitystate/index.md
+++ b/files/ja/web/api/document/visibilitystate/index.md
@@ -1,13 +1,20 @@
---
-title: Document.visibilityState
+title: "Document: visibilityState プロパティ"
+short-title: visibilityState
slug: Web/API/Document/visibilityState
l10n:
- sourceCommit: 4e233c16c6f0d347972c5c762f5b836318a46124
+ sourceCommit: 14a752ccdcaa736e8e368156c48bca61a3c1e5ed
---
{{ApiRef("DOM")}}
-**`Document.visibilityState`** は読み取り専用プロパティで、文書 ({{domxref('document')}}) の可視性、つまりこの要素がこれで見えるようになったのはどのコンテキストであるかを返します。文書がバックグラウンドにあるのか、非表示のタブにあるのか、プリレンダリングのためにのみ読み込まれるのかを知るのに有用です。
+**`Document.visibilityState`** は読み取り専用プロパティで、この文書の可視性を返します。文書がバックグラウンドにあるか、最小化されたウィンドウにあるか、あるいはユーザーから見えないかどうかを調べるために使用することができます。
+
+このプロパティを変更すると、{{domxref("Document/visibilitychange_event", "visibilitychange")}} イベントが {{domxref("Document")}} へ送られます。
+
+{{domxref("Document.hidden")}} プロパティは、ページが非表示かどうかを判断する別の方法を提供します。
+
+## 値
利用可能な値は次のとおりです。
@@ -16,16 +23,6 @@ l10n:
- `hidden`
- : ページのコンテンツはユーザーには表示されません。実際には、これは文書がバックグラウンドタブまたは最小化されたウィンドウの一部であるか、 OS の画面ロックがアクティブであることを意味します。
-このプロパティの値が変更されると、 {{domxref("Document/visibilitychange_event", "visibilitychange")}} イベントが {{domxref("Document")}} に送信されます。
-
-これの一般的な用途は、文書がプリレンダリングされている場合に一部のアセットのダウンロードを防止したり、文書がバックグラウンドにあるか最小化されている場合に一部のアクティビティを停止したりすることです。
-
-## 構文
-
-```js-nolint
-document.visibilityState
-```
-
## 例
```js
@@ -42,3 +39,8 @@ document.addEventListener("visibilitychange", () => {
## ブラウザーの互換性
{{Compat}}
+
+## 関連情報
+
+- {{domxref("Document.hidden")}}
+- [ページ可視性 API](/ja/docs/Web/API/Page_Visibility_API)
diff --git a/files/ja/web/api/document/vlinkcolor/index.md b/files/ja/web/api/document/vlinkcolor/index.md
index 61b02e1797bdb8..9069b5451ef49f 100644
--- a/files/ja/web/api/document/vlinkcolor/index.md
+++ b/files/ja/web/api/document/vlinkcolor/index.md
@@ -1,30 +1,29 @@
---
-title: Document.vlinkColor
+title: "Document: vlinkColor プロパティ"
+short-title: vlinkColor
slug: Web/API/Document/vlinkColor
+l10n:
+ sourceCommit: 157a449e2e8bf009fd316480c0d535d4a21527b0
---
-{{APIRef("DOM")}} {{ Deprecated_header() }}
+{{APIRef("DOM")}} {{Deprecated_Header}}
**`Document.vlinkColor`** プロパティは、文書内のユーザーが訪問済みのリンクの色を取得または設定します。
-## 構文
+## 値
-```
-color = document.vlinkColor
-document.vlinkColor = color
-```
-
-### 引数
-
-- `color` は、色を表す単語 (`red` など) または 16 進値 (`#ff0000` など) の文字列です。
+文字列で、色を表す単語 (`red` など) または 16 進値 (`#ff0000` など) です。
## メモ
- Mozilla Firefox ではこのプロパティの初期値は紫 (16 進で `#551a8b`) です。
+- `Document.vlinkColor` は [DOM Level 2 HTML では非推奨です](https://www.w3.org/TR/DOM-Level-2-HTML/html.html#ID-26809268)。
+- 推奨される代替方法は、 HTML の {{HtmlElement("a")}} 要素において CSS で {{Cssxref(":visited")}} 擬似クラスの色を設定または取得する方法です (例えば `a:visited {color:red;}`)。
+- 他の代替方法に `document.body.vLink` がありますが、これは [HTML 4.01 で非推奨](https://www.w3.org/TR/html401/struct/global.html#adef-vlink)となり、 CSS で代替されました。
+
+## 仕様書
-- `Document.vlinkColor` は [DOM Level 2 HTML では非推奨です](http://www.w3.org/TR/DOM-Level-2-HTML/html.html#ID-26809268)。
-- 推奨される代替方法は、 HTML の {{HtmlElement("a")}} 要素において CSS で {{ Cssxref(":visited") }} 擬似クラスの色を設定または取得する方法です (例えば `a:visited {color:red;}`)。
-- 他の代替方法に `document.body.vLink` がありますが、これは [HTML 4.01 で非推奨](http://www.w3.org/TR/html401/struct/global.html#adef-vlink)となり、 CSS で代替されました。
+{{Specifications}}
## ブラウザーの互換性
diff --git a/files/ja/web/api/document/write/index.md b/files/ja/web/api/document/write/index.md
index ce6a909e4d0d7d..d2bce409a33d15 100644
--- a/files/ja/web/api/document/write/index.md
+++ b/files/ja/web/api/document/write/index.md
@@ -1,29 +1,43 @@
---
-title: Document.write()
+title: "Document: write() メソッド"
+short-title: write()
slug: Web/API/Document/write
+l10n:
+ sourceCommit: 1238ffad886924b20549d0cf3adca735cb0d074f
---
{{ApiRef("DOM")}}
+> **警告:** `document.write()` メソッドの使用は固く避けるべきです。
+>
+> [HTML 仕様書自体で次のように警告しています]()。
+>
+> > このメソッドの挙動はとても特異です。場合によっては、このメソッドは構文解析の実行中に [HTML パーサー](https://html.spec.whatwg.org/multipage/parsing.html#html-parser)の状態に影響を与え、結果として文書のソースに対応しない DOM を生成することがあります(例えば、書き込まれた文字列が "``" や "`
-
- エンドツーエンドヘッダー
- : これらのヘッダーは、メッセージの最終的な宛先、すなわちリクエストならばサーバー、レスポンスならばクライアントに伝送し*なければなりません*。中間のプロキシーはヘッダーを変更せずに再伝送しなければならず、またキャッシュには保存しなければなりません。
- ホップバイホップヘッダー
@@ -57,76 +51,8 @@ l10n:
- : リクエストしているウェブサイトに関連付けられた閲覧用のデータ (クッキー、ストレージ、キャッシュなど) を消去します。
- {{HTTPHeader("Expires")}}
- : レスポンスが古くなると考えられる日時を表します。
-- {{HTTPHeader("Pragma")}}
- - : リクエストからレスポンスへの流れの中でさまざまな影響がある、実装依存のヘッダーです。 `Cache-Control` ヘッダーが未実装である HTTP/1.0 キャッシュとの後方互換性のために使用します。
-- {{HTTPHeader("Warning")}} {{deprecated_inline}}
- - : 起こりうる問題に関する一般警告情報です。
-
-## クライアントヒント
-
-HTTP の[クライアントヒント](/ja/docs/Web/HTTP/Client_hints)とは、端末の種類やネットワークの状態など、クライアントに関する有用な情報を提供する一連のリクエストヘッダーのことで、サーバーはこれらの条件に合わせて提供するコンテンツを最適化することができます。
-
-サーバーは、 {{HTTPHeader("Accept-CH")}} を使用して、クライアントが関心を持っているクライアントヒントヘッダーを積極的に要求します。クライアントは、要求されたヘッダーを後続のリクエストに含めることがあります。
-
-- {{HTTPHeader("Accept-CH")}} {{experimental_inline}}
- - : サーバーはクライアントヒントに対応していることを、 `Accept-CH` ヘッダーフィールドまたは HTML の ` ` 要素の [`http-equiv`](/ja/docs/Web/HTML/Element/meta#attr-http-equiv) 属性で同等の指定をすることで広報することができます。
-- {{HTTPHeader("Accept-CH-Lifetime")}} {{experimental_inline}} {{deprecated_inline}}
- - : サーバーは、指定された期間サーバーが対応する一連のクライアントヒントを記憶するようクライアントに依頼し、そのサーバーのオリジンに対するその後のリクエストでクライアントヒントを配信できるようにすることができます。
-- {{HTTPHeader("Critical-CH")}} {{experimental_inline}}
- - : サーバーは {{HttpHeader("Accept-CH")}} と共に `Critical-CH` を使用し、受け入れられるクライアントヒントも[重要なクライアントヒント](/ja/docs/Web/HTTP/Client_hints#重要なクライアントヒント) であることを指定しています。
-
-クライアントヒントの様々なカテゴリーを以下に示します。
-
-### ユーザーエージェントクライアントヒント
-
-[ユーザーエージェントクライアントヒント](/ja/docs/Web/HTTP/Client_hints#user-agent_client_hints)は、ユーザーエージェント、それが動作しているプラットフォーム/アーキテクチャ、ユーザーエージェントやプラットフォーム上に設定されたユーザー環境設定に関する情報を提供するリクエストヘッダーです。
-
-- {{HTTPHeader("Sec-CH-Prefers-Reduced-Motion")}} {{experimental_inline}}
- - : ユーザーエージェントで動きの縮小を優先する設定。
-- {{HTTPHeader("Sec-CH-UA")}} {{experimental_inline}}
- - : ユーザーエージェントのブランド名とバージョン。
-- {{HTTPHeader("Sec-CH-UA-Arch")}} {{experimental_inline}}
- - : ユーザーエージェントの基盤となるプラットフォームアーキテクチャ。
-- {{HTTPHeader("Sec-CH-UA-Bitness")}} {{experimental_inline}}
- - : ユーザーエージェントの基本的な CPU アーキテクチャのビット数(例: "64" ビット)。
-- {{HTTPHeader("Sec-CH-UA-Full-Version")}} {{deprecated_inline}}
- - : ユーザーエージェントの意味づけされた完全なバージョン文字列。
-- {{HTTPHeader("Sec-CH-UA-Full-Version-List")}} {{experimental_inline}}
- - : ユーザーエージェントのブランドリストにある各ブランドのフルバージョン。
-- {{HTTPHeader("Sec-CH-UA-Mobile")}} {{experimental_inline}}
- - : ユーザーエージェントがモバイル端末で動作している、あるいは、より一般的には、「モバイル」の使い勝手を好んでいる。
-- {{HTTPHeader("Sec-CH-UA-Model")}} {{experimental_inline}}
- - : ユーザーエージェントの端末モデル。
-- {{HTTPHeader("Sec-CH-UA-Platform")}} {{experimental_inline}}
- - : ユーザーエージェントの基盤となっているオペレーティングシステム/プラットフォーム。
-- {{HTTPHeader("Sec-CH-UA-Platform-Version")}} {{experimental_inline}}
- - : ユーザーエージェントの基盤となっているオペレーションシステムのバージョン。
-
-### 端末クライアントヒント
-
-- {{HTTPHeader("Content-DPR")}} {{deprecated_inline}} {{experimental_inline}}
- - : 画像リソースを選択するために {{HTTPHeader("DPR")}} クライアントヒントが使用されたリクエストで、 画像デバイスとピクセルの比率を確認するために使用される _レスポンスヘッダー_ です。
-- {{HTTPHeader("Device-Memory")}} {{deprecated_inline}} {{experimental_inline}}
- - : 技術的には[端末メモリー API](/ja/docs/Web/API/Device_Memory_API) の一部で、このヘッダーはクライアントが持つおよその RAM の量を表します。
-- {{HTTPHeader("DPR")}} {{deprecated_inline}} {{experimental_inline}}
- - : クライアントの端末ピクセル比 (DPR)、すなわち CSS ピクセルあたりの物理ピクセル数を示します。
-- {{HTTPHeader("Viewport-Width")}} {{deprecated_inline}} {{experimental_inline}}
- - : 数値で、レイアウトビューポートの幅を CSS ピクセル数で示します。指定されたピクセル数は、それ以上の最小の整数に丸められます(つまり切り上げ)。
-- {{HTTPHeader("Width")}} {{deprecated_inline}} {{experimental_inline}}
- - : 数値で、要求するリソースの幅(つまり画像の内在的な寸法)を物理ピクセル数で示します。
-
-### ネットワーククライアントヒント
-
-ネットワーククライアントヒントにより、サーバーはネットワークの帯域やレイテンシーに基づいて、どの情報を送るかを選択することができます。
-
-- {{HTTPHeader("Downlink")}}
- - : サーバーに対するクライアントのコネクションのおよその帯域を、 Mbps で表します。これは [Network Information API](/ja/docs/Web/API/Network_Information_API) の一部です。
-- {{HTTPHeader("ECT")}}
- - : {{Glossary("effective connection type", "有効接続種別")}} (「ネットワークプロファイル」) は、そのコネクションのレイテンシーや帯域に最も近いものです。これは [Network Information API](/ja/docs/Web/API/Network_Information_API) の一部です。
-- {{HTTPHeader("RTT")}}
- - : アプリケーション層のラウンドトリップ時間 (RTT) をミリ秒で表し、これにはサーバーの処理時間も含みます。これは [Network Information API](/ja/docs/Web/API/Network_Information_API) の一部です。
-- {{HTTPHeader("Save-Data")}} {{experimental_inline}}
- - : 論理型で、ユーザーエージェントのデータ利用の削減についての設定を示します。
+- {{HTTPHeader("No-Vary-Search")}} {{experimental_inline}}
+ - : URL のクエリー引数がキャッシュ照合にどのように影響するかを定義する一連のルールを指定します。これらのルールは、URL 引数が異なる同じ URL を別個のブラウザーキャッシュ項目として保存するかどうかを決定します。
## 条件付き
@@ -154,12 +80,12 @@ HTTP の[クライアントヒント](/ja/docs/Web/HTTP/Client_hints)とは、
## コンテンツネゴシエーション
-[コンテンツネゴシエーション](/ja/docs/Web/HTTP/Content_negotiation)ヘッダーです。
+詳しくは、[コンテンツネゴシエーションの記事](/ja/docs/Web/HTTP/Content_negotiation)を参照してください。
- {{HTTPHeader("Accept")}}
- : 送り返すことができるデータの{{Glossary("MIME_type", "種類")}}をサーバーに通知します。
- {{HTTPHeader("Accept-Encoding")}}
- - : 送り返すリソースで使用できるエンコードアルゴリズム (一般的には圧縮アルゴリズム ) をサーバーに通知します。
+ - : 送り返すリソースで使用できるエンコードアルゴリズム (一般的には[圧縮アルゴリズム](/ja/docs/Web/HTTP/Compression)) をサーバーに通知します。
- {{HTTPHeader("Accept-Language")}}
- : 送り返すリソースで期待する自然言語をサーバーに通知します。これはヒントであり、必ずしもユーザーの完全な制御下にあるものではありません。サーバーはユーザーの選択 (ドロップダウンリストで選ぶ言語など) を明示的に上書きしないように、常に注意を払うべきです。
@@ -179,16 +105,16 @@ HTTP の[クライアントヒント](/ja/docs/Web/HTTP/Client_hints)とは、
## CORS
-_CORS についての詳細は、[こちら](/ja/docs/Glossary/CORS)を参照してください。_
+詳細は、[CORS のドキュメント](/ja/docs/Web/HTTP/CORS)を参照してください。
-- {{HTTPHeader("Access-Control-Allow-Origin")}}
- - : レスポンスが共有可能かを示します。
- {{HTTPHeader("Access-Control-Allow-Credentials")}}
- : credentials フラグが真であるときに、リクエストへのレスポンスを開示してよいかを示します。
- {{HTTPHeader("Access-Control-Allow-Headers")}}
- : {{Glossary("Preflight_request", "プリフライトリクエスト")}}へのレスポンスで使用し、実際のリクエストを行うときに使用できる HTTP ヘッダーを指定します。
- {{HTTPHeader("Access-Control-Allow-Methods")}}
- : プリフライトリクエストへのレスポンスで、リソースへアクセスするときに使用できるメソッドを指定します。
+- {{HTTPHeader("Access-Control-Allow-Origin")}}
+ - : レスポンスが共有可能かを示します。
- {{HTTPHeader("Access-Control-Expose-Headers")}}
- : ヘッダー名を羅列して、レスポンスの一部として開示できるヘッダーを示します。
- {{HTTPHeader("Access-Control-Max-Age")}}
@@ -200,7 +126,7 @@ _CORS についての詳細は、[こちら](/ja/docs/Glossary/CORS)を参照し
- {{HTTPHeader("Origin")}}
- : どこから読み込みが発生したかを示します。
- {{HTTPHeader("Timing-Allow-Origin")}}
- - : [Resource Timing API](/ja/docs/Web/API/Resource_Timing_API) の機能を通じて受け取った属性の値を見ることができるオリジンを指定します。そうでなければオリジン間の制約によってゼロとして報告されます。
+ - : [リソースタイミング API](/ja/docs/Web/API/Performance_API/Resource_timing) の機能を通じて受け取った属性の値を見ることができるオリジンを指定します。そうでなければオリジン間の制約によってゼロとして報告されます。
## ダウンロード
@@ -224,12 +150,6 @@ _CORS についての詳細は、[こちら](/ja/docs/Glossary/CORS)を参照し
- {{HTTPHeader("Forwarded")}}
- : リクエストのパスにプロキシーが関与したときに変更または遺失した、プロキシーサーバーのクライアント側の情報を持ちます。
-- {{HTTPHeader("X-Forwarded-For")}} {{non-standard_inline}}
- - : HTTP プロキシーやロードバランサーを経由してウェブサーバーに接続するクライアントの、接続元 IP アドレスを識別します。
-- {{HTTPHeader("X-Forwarded-Host")}} {{non-standard_inline}}
- - : プロキシーやロードバランサーに接続するクライアントがリクエストした、オリジナルのホストを示します。
-- {{HTTPHeader("X-Forwarded-Proto")}} {{non-standard_inline}}
- - : クライアントがプロキシーやロードバランサーに接続するために使用したプロトコル (HTTP または HTTPS) を識別します。
- {{HTTPHeader("Via")}}
- : フォワードプロキシーとリバースプロキシーの両方が追加するヘッダーであり、リクエストヘッダーとレスポンスヘッダーのどちらでも見られます。
@@ -238,20 +158,20 @@ _CORS についての詳細は、[こちら](/ja/docs/Glossary/CORS)を参照し
- {{HTTPHeader("Location")}}
- : ページのリダイレクト先の URL を示します。
- {{HTTPHeader("Refresh")}}
- - : ブラウザーにページを再読み込みするか、別のページにリダイレクトするように指示します。 [`http-equiv="refresh"`](/ja/docs/Web/HTML/Element/meta#attr-http-equiv) を持つ `meta` 要素と同じ値をとります。
+ - : ブラウザーにページを再読み込みするか、別のページにリダイレクトするように指示します。 [`http-equiv="refresh"`](/ja/docs/Web/HTML/Element/meta#http-equiv) を持つ `meta` 要素と同じ値をとります。
## リクエストコンテキスト
- {{HTTPHeader("From")}}
- : リクエストを行うユーザーエージェントを操作している人間の、インターネット電子メールアドレスを持ちます。
- {{HTTPHeader("Host")}}
- - : サーバーのドメイン名 (バーチャルホスト向け) およびサーバーが待ち受けている TCP ポート番号 (省略可能) を指定します。
+ - : サーバーのドメイン名(バーチャルホスト向け)およびサーバーが待ち受けている TCP ポート番号(省略可能)を指定します。
- {{HTTPHeader("Referer")}}
- : 現在リクエストしているページへリンクしていた、前のウェブページのアドレスです。
- {{HTTPHeader("Referrer-Policy")}}
- : {{HTTPHeader("Referer")}} ヘッダーで送信するどのリファラー情報をリクエストに含めるかを制御します。
- {{HTTPHeader("User-Agent")}}
- - : リクエストを行うユーザーエージェントソフトウェアのアプリケーションタイプ、オペレーティングシステム、ベンダー、バージョンを、ネットワークプロトコルのピアが識別できるようにする文字列を持ちます。 [Firefox ユーザーエージェント文字列リファレンス](/ja/docs/Web/HTTP/Headers/User-Agent/Firefox)もご覧ください。
+ - : リクエストを行うユーザーエージェントソフトウェアのアプリケーションタイプ、オペレーティングシステム、ベンダー、バージョンを、ネットワークプロトコルのピアが識別できるようにする文字列を持ちます。
## レスポンスコンテキスト
@@ -267,7 +187,7 @@ _CORS についての詳細は、[こちら](/ja/docs/Glossary/CORS)を参照し
- {{HTTPHeader("Range")}}
- : サーバーが返すべきである文書の範囲を示します。
- {{HTTPHeader("If-Range")}}
- - : 指定した ETag または日時がリモートのリソースにマッチする場合に限定した、条件付き range request を生成します。異なるバージョンのリソースから 2 つの範囲をダウンロードすることを防ぎます。
+ - : 指定した ETag または日時がリモートのリソースにマッチする場合に限定した、条件付き範囲付きリクエストを生成します。異なるバージョンのリソースから 2 つの範囲をダウンロードすることを防ぎます。
- {{HTTPHeader("Content-Range")}}
- : 部分的なメッセージが、メッセージ本文全体のどこに位置するかを示します。
@@ -278,15 +198,11 @@ _CORS についての詳細は、[こちら](/ja/docs/Glossary/CORS)を参照し
- {{HTTPHeader("Cross-Origin-Opener-Policy")}} (COOP)
- : 他のドメインがウィンドウを開いたり制御したりすることを防ぎます。
- {{HTTPHeader("Cross-Origin-Resource-Policy")}} (CORP)
- - : このヘッダーが適用されたリソースのレスポンスが他のドメインから読み取られるのを防ぎます。
+ - : このヘッダーが適用されたリソースのレスポンスが他のドメインから読み取られるのを防ぎます。[CORP の説明記事](/ja/docs/Web/HTTP/Cross-Origin_Resource_Policy)を参照してください。
- {{HTTPHeader("Content-Security-Policy")}} ({{Glossary("CSP")}})
- : ユーザーエージェントがページで読み込むことを許可するリソースを制御します。
- {{HTTPHeader("Content-Security-Policy-Report-Only")}}
- : ウェブの開発者がポリシーの効果を適用せずに監視することで、実験を行うことができます。これらの違反レポートは、 HTTP `POST` リクエストによって指定した URI へ送信される {{Glossary("JSON")}} 文書で構成されます。
-- {{HTTPHeader("Expect-CT")}}
- - : サイトが証明書の透明性要件の報告や実施を選択できるようにします。これにより、そのサイトで不正な証明書の使用に気づかないことを防ぎます。サイトが Expect-CT ヘッダーを有効にした場合、そのサイトの証明書が公開CTログに表示されることを Chrome が確認するようにリクエストしています。
-- {{HTTPHeader("Origin-Isolation")}} {{experimental_inline}}
- - : ウェブアプリケーションをオリジンから独立させるための仕組みを提供します。
- {{HTTPHeader("Permissions-Policy")}}
- : 自身のフレームまたはその中に埋め込まれた {{htmlelement("iframe")}} で、ブラウザーの機能を使用することを許可または拒否する仕組みを提供します。
- {{HTTPHeader("Strict-Transport-Security")}} ({{Glossary("HSTS")}})
@@ -295,8 +211,6 @@ _CORS についての詳細は、[こちら](/ja/docs/Glossary/CORS)を参照し
- : 暗号化や認証されたレスポンスについて、クライアントの設定を表す信号をサーバーに送信して、{{CSP("upgrade-insecure-requests")}} ディレクティブを正しく扱うことができます。
- {{HTTPHeader("X-Content-Type-Options")}}
- : ブラウザーで MIME スニッフィングを無効化して、{{HTTPHeader("Content-Type")}} で指定したタイプを強制的に使用させます。
-- {{HTTPHeader("X-Download-Options")}}
- - : HTTP の [`X-Download-Options`]() ヘッダーは、ブラウザー (Internet Explorer) がアプリケーションからのダウンロードでファイルを「開く」の選択肢を表示しないようにし、アプリケーションのコンテキストで実行するアクセス権を得ることがないようにして、ファイルとすることでフィッシング詐欺を防止します。
- {{HTTPHeader("X-Frame-Options")}} (XFO)
- : ブラウザーがページを {{HTMLElement("frame")}}, {{HTMLElement("iframe")}}, {{HTMLElement("embed")}}, {{HTMLElement("object")}} の内部に表示することを許可するかを示します。
- {{HTTPHeader("X-Permitted-Cross-Domain-Policies")}}
@@ -308,30 +222,26 @@ _CORS についての詳細は、[こちら](/ja/docs/Glossary/CORS)を参照し
## メタデータ読み取りリクエストヘッダー
-{{Glossary("Fetch metadata request header", "メタデータ読み取りリクエストヘッダー")}}は、リクエストが発生したときのコンテキストに関する情報を提供します。これによりサーバーは、リクエストがどこから来たのか、リソースがどのように使用されるのかに基づいて、リクエストを許可すべきかどうかを判断することができます。
+{{Glossary("Fetch metadata request header", "メタデータ読み取りリクエストヘッダー")}}は、リクエストが発生したときのコンテキストに関する情報を提供します。サーバーはこれを利用して、リクエストがどこから来たのか、リソースがどのように使用されるのかに基づいて、リクエストを許可すべきかどうかを判断することができます。
- {{HTTPHeader("Sec-Fetch-Site")}}
- - : リクエスト開始元のオリジンと宛先のオリジンとの関係を示すリクエストヘッダーです。これは構造化ヘッダーで、値はトークンであり、取りうる値は `cross-site`, `same-origin`, `same-site`, `none` です。
+ - : リクエスト開始元のオリジンと宛先のオリジンとの関係を示します。これは構造化ヘッダーで、値はトークンであり、取りうる値は `cross-site`, `same-origin`, `same-site`, `none` です。
- {{HTTPHeader("Sec-Fetch-Mode")}}
- - : サーバーへのリクエストモードを示すリクエストヘッダーです。これは構造化ヘッダーで、値はトークンであり、取りうる値は `cors`, `navigate`, `nested-navigate`, `no-cors`, `same-origin`, `websocket` です。
+ - : サーバーへのリクエストモードを示します。これは構造化ヘッダーで、値はトークンであり、取りうる値は `cors`, `navigate`, `nested-navigate`, `no-cors`, `same-origin`, `websocket` です。
- {{HTTPHeader("Sec-Fetch-User")}}
- - : ナビゲーションリクエストがユーザー操作によって起動されたかどうかを示すリクエストヘッダーです。これは構造化ヘッダーであり、論理値で、取りうる値は `?0` ならば偽、 `?1` ならば真です。
+ - : ナビゲーションリクエストがユーザー操作によって起動されたかどうかを示します。これは構造化ヘッダーであり、論理値で、取りうる値は `?0` ならば偽、 `?1` ならば真です。
- {{HTTPHeader("Sec-Fetch-Dest")}}
- - : リクエストの宛先を示すリクエストヘッダーです。これは構造化ヘッダーで、値はトークンであり、取りうる値は `audio`, `audioworklet`, `document`, `embed`, `empty`, `font`, `image`, `manifest`, `object`, `paintworklet`, `report`, `script`, `serviceworker`, `sharedworker`, `style`, `track`, `video`, `worker`, `xslt` です。
+ - : リクエストの宛先を示します。これは構造化ヘッダーで、値はトークンであり、取りうる値は `audio`, `audioworklet`, `document`, `embed`, `empty`, `font`, `image`, `manifest`, `object`, `paintworklet`, `report`, `script`, `serviceworker`, `sharedworker`, `style`, `track`, `video`, `worker`, `xslt` です。
+
+以下のリクエストヘッダーは、厳密には「メタデータ読み取りリクエストヘッダー」ではありませんが、同様にリソースがどのように使用されるかのコンテキストに関する情報を提供します。サーバーはキャッシュの動作や返す情報を変更するためにこれらを使用するかもしれません。
+
+- {{HTTPHeader("Sec-Purpose")}}
+ - : リクエストがユーザーエージェントによって直ちに使用される以外の目的である場合に、その目的を示します。このヘッダーは現在一つの可能な値 `prefetch` を持っており、これはリソースが将来のナビゲーションのために優先的に読み取られていることを示します。
- {{HTTPHeader("Service-Worker-Navigation-Preload")}}
- - : サービスワーカーの起動中に、リソースに対して {{domxref("fetch()")}} で先制的なリクエストをする際に送られるリクエストヘッダーです。
- この値は {{domxref("NavigationPreloadManager.setHeaderValue()")}} で設定され、通常の `fetch()` 処理とは異なる形でリソースを返すべきことをサーバーに通知するために使用することができます。
+ - : サービスワーカーの起動中に、リソースに対して {{domxref("fetch()")}} で先制的なリクエストをする際に送られるリクエストヘッダーです。この値は {{domxref("NavigationPreloadManager.setHeaderValue()")}} で設定され、通常の `fetch()` 処理とは異なる形でリソースを返すべきことをサーバーに通知するために使用することができます。
## サーバー送信イベント
-- {{HTTPHeader("Last-Event-ID")}}
- - : TBD
-- {{HTTPHeader("NEL")}} {{experimental_inline}}
- - : 開発者がネットワークエラー報告ポリシーを宣言できるようにする仕組みを定義します。
-- {{HTTPHeader("Ping-From")}}
- - : TBD
-- {{HTTPHeader("Ping-To")}}
- - : TBD
- {{HTTPHeader("Report-To")}}
- : 警告やエラーを送信るためのブラウザーに対するサーバーのエンドポイントを指定するために使用します。
@@ -344,70 +254,160 @@ _CORS についての詳細は、[こちら](/ja/docs/Glossary/CORS)を参照し
- {{HTTPHeader("Trailer")}}
- : 送信者が chunk メッセージの終端に追加フィールドを含めることができます。
-## WebSocket
+## その他
+
+- {{HTTPHeader("Alt-Svc")}}
+ - : このサービスに到達するための代替方法を列挙するために使用されます。
+- {{HTTPHeader("Alt-Used")}}
+ - : 使用中の代替サービスを識別するために用いられます。
+- {{HTTPHeader("Date")}}
+ - : メッセージが発信された日時を保持します。
+- {{HTTPHeader("Link")}}
+ - : これは、HTTP ヘッダーで 1 つ以上のリンクをシリアライズする意味を提供するエンティティヘッダーフィールドです。意味付けは HTML の {{HTMLElement("link")}} 要素と同じです。
+- {{HTTPHeader("Retry-After")}}
+ - : ユーザーエージェントがフォローアップリクエストをする前に待つべき時間を示します。
+- {{HTTPHeader("Server-Timing")}}
+ - : 指定されたリクエストレスポンスサイクルについて、1 つ以上の指標および説明を伝えます。
+- `Service-Worker-Allowed`
+ - : [パス制限](/ja/docs/Web/API/Service_Worker_API/Using_Service_Workers#why_is_my_service_worker_failing_to_register)を除去するために、[サービスワーカースクリプトのレスポンス](https://w3c.github.io/ServiceWorker/#service-worker-script-response)にこのヘッダーを記載します。
+- {{HTTPHeader("SourceMap")}}
+ - : 生成されたコードを[ソースマップ](https://firefox-source-docs.mozilla.org/devtools-user/debugger/how_to/use_a_source_map/index.html)にリンクします。
+- {{HTTPHeader("Upgrade")}}
+ - : これは HTTP/1.1(のみ)のヘッダーで、すでに確立されているクライアント/サーバー接続を(同じトランスポートプロトコル上で)異なるプロトコルにアップグレードするために使用することができます。例えば、クライアントが HTTP 1.1 から HTTP 2.0 に接続をアップグレードしたり、HTTP や HTTPS 接続を WebSocket にアップグレードするために使用することができます。
-- {{HTTPHeader("Sec-WebSocket-Key")}}
- - : TBD
-- {{HTTPHeader("Sec-WebSocket-Extensions")}}
- - : TBD
-- {{HTTPHeader("Sec-WebSocket-Accept")}}
- - : TBD
-- {{HTTPHeader("Sec-WebSocket-Protocol")}}
- - : TBD
-- {{HTTPHeader("Sec-WebSocket-Version")}}
- - : TBD
+## 実験的なヘッダー
-## その他
+### 帰属レポートヘッダー
+
+[帰属レポート API](/ja/docs/Web/API/Attribution_Reporting_API)を使用すると、開発者がコンバージョンを測定することができます。例えば、ユーザーがあるサイトに埋め込まれた広告をクリックし、ベンダーのサイトで商品を購入した場合、そのコンバージョンに関するレポートにアクセスすることができます。サードパーティーのトラッキングクッキーに頼らずに、様々なヘッダーを頼りに、コンバージョンを示すために一致させる**ソース**と**トリガー**を登録します。
+
+- {{httpheader("Attribution-Reporting-Eligible")}}
+ - : 現在のリクエストに対応するレスポンスが、帰属ソースまたはトリガーのいずれかを登録する ことによって、帰属レポートに参加する資格があることを示すために使用され ます。
+- {{httpheader("Attribution-Reporting-Register-Source")}}
+ - : `Attribution-Reporting-Eligible` ヘッダーを含むリクエストに対するレスポンスの一部として記載され、これは帰属ソースを登録するために使用されます。
+- {{httpheader("Attribution-Reporting-Register-Trigger")}}
+ - : `Attribution-Reporting-Eligible` ヘッダーを含むリクエストに対するレスポンスの一部として記載され、これは帰属トリガーを登録するために使用します。
+
+### クライアントヒント
+
+HTTP [クライアントヒント](/ja/docs/Web/HTTP/Client_hints)は一連のリクエストヘッダーで、端末の種類や ネットワークの状態といったクライアントに関する有益な情報を提供し、 サーバーがそれらの状態に応じて提供されるものを最適化できるようにします。
+
+サーバーは {{HTTPHeader("Accept-CH")}} を使用して、クライアントに関心があるクライアントヒントヘッダーを積極的にリクエストします。クライアントはリクエストされたヘッダーをその後のリクエストに記載することを選べます。
+
+- {{HTTPHeader("Accept-CH")}} {{experimental_inline}}
+ - : サーバーは Accept-CH ヘッダーフィールドや HTML ` ` 要素の [`http-equiv`](/ja/docs/Web/HTML/Element/meta#http-equiv) 属性を使ってクライアントヒントに対応していることを告知できます。
+- {{HTTPHeader("Critical-CH")}} {{experimental_inline}}
+ - : サーバーは `Critical-CH` を {{HttpHeader("Accept-CH")}} とともに使用して、受け入れられるクライアントヒントも[重要なクライアントヒント](/ja/docs/Web/HTTP/Client_hints#critical_client_hints)であることを指定します。
+
+クライアントヒントのカテゴリーを以下に一覧します。
+
+#### ユーザーエージェントクライアントヒント
+
+[UA クライアントヒント](/ja/docs/Web/HTTP/Client_hints#user-agent_client_hints)は、ユーザーエージェント、それが動作しているプラット フォーム/アーキテクチャ、ユーザーエージェントまたはプラットフォームで設定され ているユーザーの環境設定についての情報を提供するリクエストヘッダーです。
+
+- {{HTTPHeader("Sec-CH-UA")}} {{experimental_inline}}
+ - : ユーザーエージェントのブランドとバージョンです。
+- {{HTTPHeader("Sec-CH-UA-Arch")}} {{experimental_inline}}
+ - : ユーザーエージェントの基盤となっているプラットフォームアーキテクチャです。
+- {{HTTPHeader("Sec-CH-UA-Bitness")}} {{experimental_inline}}
+ - : ユーザーエージェントの基盤となっている CPU のビットのアーキテクチャ(例えば "64" ビット)です。
+- {{HTTPHeader("Sec-CH-UA-Full-Version-List")}} {{experimental_inline}}
+ - : ユーザーエージェントのブランドリストにある各ブランドの完全版。
+- {{HTTPHeader("Sec-CH-UA-Mobile")}} {{experimental_inline}}
+ - : ユーザーエージェントがモバイル端末で動作している、またはより一般的には「モバイル」ユーザー環境設定を推奨している場合。
+- {{HTTPHeader("Sec-CH-UA-Model")}} {{experimental_inline}}
+ - : ユーザーエージェントの端末モデル。
+- {{HTTPHeader("Sec-CH-UA-Platform")}} {{experimental_inline}}
+ - : ユーザーエージェントの基盤となっているオペレーティングシステム/プラットフォーム。
+- {{HTTPHeader("Sec-CH-UA-Platform-Version")}} {{experimental_inline}}
+ - : ユーザーエージェントの基盤となっているオペレーティングシステムのバージョン。
+- {{HTTPHeader("Sec-CH-UA-Prefers-Color-Scheme")}} {{experimental_inline}}
+ - : ユーザーのダークまたはライトモードの環境設定。
+- {{HTTPHeader("Sec-CH-UA-Prefers-Reduced-Motion")}} {{experimental_inline}}
+ - : ユーザーの環境設定として、アニメーションやコンテンツレイアウトの変化が少ないことが推奨されていること。
+
+> **メモ:** ユーザーエージェントクライアントヒントは、データの漏洩に使用することができる[権限ポリシー](/ja/docs/Web/HTTP/Permissions_Policy)の委譲が必要であるため、[フェンスフレーム](/ja/docs/Web/API/Fenced_frame_API)内では利用できません。
+
+#### 端末クライアントヒント
+
+- {{HTTPHeader("Device-Memory")}} {{experimental_inline}}
+ - : 利用できるクライアント RAM メモリーのおおよその量。これは[端末メモリー API](/ja/docs/Web/API/Device_Memory_API) の一部です。
+
+#### ネットワーククライアントヒント
+
+ネットワーククライアントヒントにより、サーバーはユーザーの選択に基いて送信する情報や ネットワークの帯域幅や遅延時間を選べます。
+
+- {{HTTPHeader("Downlink")}} {{experimental_inline}}
+ - : クライアントからサーバーへの接続のおおよその帯域幅(Mbps 単位)。これは[ネットワーク情報 API](/ja/docs/Web/API/Network_Information_API) の一部です。
+- {{HTTPHeader("ECT")}} {{experimental_inline}}
+ - : 接続の遅延と帯域幅に最も一致する {{Glossary("effective connection type", "有効接続種別")}}(「ネットワークプロファイル」)。これは[ネットワーク情報 API](/ja/docs/Web/API/Network_Information_API) の一部です。
+- {{HTTPHeader("RTT")}} {{experimental_inline}}
+ - : アプリケーション層のラウンドトリップ時間 (RTT)。ミリ秒単位で、サーバーの処理時間を記載します。これは[ネットワーク情報 API](/ja/docs/Web/API/Network_Information_API) の一部です。
+- {{HTTPHeader("Save-Data")}} {{experimental_inline}}
+ - : 文字列 `on` で、ユーザーエージェントがデータ使用量を縮小することを推奨することを示します。
+
+### プライバシー
+
+- {{HTTPHeader("Sec-GPC")}} {{non-standard_inline}}{{experimental_inline}}
+ - : ウェブサイトやサービスワーカースクリプトが、ユーザーの個人情報を第三者に販売または共有することにユーザーが同意するかどうかを示します。
+
+### セキュリティ
+
+- {{HTTPHeader("Origin-Isolation")}} {{experimental_inline}}
+ - : ウェブアプリケーションがそのオリジンを分離できるようにする仕組みを提供します。
+
+### サーバー送信イベント
+
+- {{HTTPHeader("NEL")}} {{experimental_inline}}
+ - : 開発者がネットワークエラー報告ポリシーを宣言できるようにする仕組みを定義します。
+
+### その他
- {{HTTPHeader("Accept-Push-Policy")}} {{experimental_inline}}
- : クライアントはリクエストに対して求めるプッシュポリシーを、リクエスト内で [`Accept-Push-Policy`](https://datatracker.ietf.org/doc/html/draft-ruellan-http-accept-push-policy-00#section-3.1) ヘッダーフィールドを送信することで表現することができます。
- {{HTTPHeader("Accept-Signature")}} {{experimental_inline}}
- - : クライアントは [`Accept-Signature`](https://wicg.github.io/webpackage/draft-yasskin-http-origin-signed-responses.html#rfc.section.3.7) ヘッダーフィールドを送信して、利用可能な署名を利用する意図を示したり、対応している署名の種類を示したりすることができます。
-- {{HTTPHeader("Alt-Svc")}}
- - : このサービスにたどり着く他の方法のリストに使用します。
-- {{HTTPHeader("Date")}}
- - : メッセージが生成された日時です。
+ - : クライアントは [`Accept-Signature`](https://wicg.github.io/webpackage/draft-yasskin-http-origin-signed-responses.html#name-the-accept-signature-header) ヘッダーフィールドを送信して、利用可能な署名を利用する意図を示したり、対応している署名の種類を示したりすることができます。
- {{HTTPHeader("Early-Data")}} {{experimental_inline}}
- : このリクエストが TLS early data で送信されたことを示します。
-- {{HTTPHeader("Large-Allocation")}} {{deprecated_inline}}
- - : 読み込み中のページは大量の割り当てが必要であることをブラウザーに伝えます。
-- {{HTTPHeader("Link")}}
- - : [`Link`](https://datatracker.ietf.org/doc/html/rfc5988#section-5) エンティティヘッダーフィールドは、 HTTP ヘッダー内の 1 つ以上のリンクを記述する方法を提供します。意味的には HTML の {{HTMLElement("link")}} 要素と等価です。
- {{HTTPHeader("Push-Policy")}} {{experimental_inline}}
- - : [`Push-Policy`](https://datatracker.ietf.org/doc/html/draft-ruellan-http-accept-push-policy-00#section-3.2)はリクエストを処理するときのプッシュ通知に関するサーバーの動作を定義します。
-- {{HTTPHeader("Retry-After")}}
- - : 後続のリクエストを行う前に、ユーザーエージェントがどれだけの期間待つべきかを示します。
+ - : [`Push-Policy`](https://datatracker.ietf.org/doc/html/draft-ruellan-http-accept-push-policy-00#section-3.2) は、リクエストを処理するときのプッシュ通知に関するサーバーの動作を定義します。
- {{HTTPHeader("Signature")}} {{experimental_inline}}
- - : [`Signature`](https://wicg.github.io/webpackage/draft-yasskin-http-origin-signed-responses.html#rfc.section.3.1) ヘッダーフィールドは、交換のための署名のリストを伝え、それぞれはその署名の権威を決定して、そして更新する方法についての情報を伴います。
+ - : [`Signature`](https://wicg.github.io/webpackage/draft-yasskin-http-origin-signed-responses.html#name-the-signature-header) ヘッダーフィールドは、交換のための署名のリストを伝え、それぞれはその署名の権威を決定して、そして更新する方法についての情報を伴います。
- {{HTTPHeader("Signed-Headers")}} {{experimental_inline}}
- - : [`Signed-Headers`](https://wicg.github.io/webpackage/draft-yasskin-http-origin-signed-responses.html#rfc.section.5.1.2) ヘッダーフィールドは、シグネチャに含めるためのレスポンスヘッダーフィールドの順序付きリストを識別します。
-- {{HTTPHeader("Server-Timing")}}
- - : 指定されたリクエストとレスポンスのサイクルについて、1つ以上のメトリクスまたは説明を通信します。
-- {{HTTPHeader("Service-Worker-Allowed")}}
- - : [パス制約](https://w3c.github.io/ServiceWorker/#path-restriction)を解除するために、[サービスワーカースクリプトのレスポンス](https://w3c.github.io/ServiceWorker/#service-worker-script-response)で使用します。
-- {{HTTPHeader("SourceMap")}}
- - : 生成されたコードと[ソースマップ](https://firefox-source-docs.mozilla.org/devtools-user/debugger/how_to/use_a_source_map/index.html)を関連付けます。
-- {{HTTPHeader("Upgrade")}}
- - : Upgrade ヘッダーフィールドに関連する RFC 文書は [RFC 9110, section 7.8](https://httpwg.org/specs/rfc9110.html#field.upgrade) です。標準仕様では、現在のクライアント、サーバー、トランスポート層プロトコル接続で別のプロトコルへ更新または変更するための規則を定めています。例えば、このヘッダー標準ではサーバーが Upgrade ヘッダーフィールドを認めて実装すると決める前提で、クライアントが HTTP 1.1 から [WebSocket](/ja/docs/Glossary/WebSockets) へ変更することを可能にします。どちらの相手も、 Upgrade ヘッダーフィールドで指定された要件を受け入れる必要はありません。これはクライアントのヘッダーでもサーバーのヘッダーでも使用できます。Upgrade ヘッダーフィールドを指定した場合は、更新オプションを指ヘッダーonnection ヘッダーフィールドも送信者が送信しなければなりません。Connection ヘッダーフィールドについて、詳しくは[前述の RFC のセクション 7.6.1](https://httpwg.org/specs/rfc9110.html#field.connection) をご覧ください。
-- {{HTTPHeader("X-DNS-Prefetch-Control")}}
+ - : [`Signed-Headers`](https://wicg.github.io/webpackage/draft-yasskin-http-origin-signed-responses.html#name-the-signed-headers-header) ヘッダーフィールドは、シグネチャに含めるためのレスポンスヘッダーフィールドの順序付きリストを識別します。
+- {{HTTPHeader("Speculation-Rules")}} {{experimental_inline}}
+ - : [投機ルール](/ja/docs/Web/API/Speculation_Rules_API) の JSON 定義を格納したテキストリソースを指す URL のリストを提供します。レスポンスが HTML 文書の場合、これらのルールは文書の投機ルール設定に追加されます。
+- {{HTTPHeader("Supports-Loading-Mode")}} {{experimental_inline}}
+ - : ナビゲーション対象が、よりリスクの高い様々な読み込みモードを使用することをオプトインするために設定します。例えば、オリジン間、同一サイトの[事前レンダリング](/ja/docs/Web/API/Speculation_Rules_API#事前レンダリングの使用)には `Supports-Loading-Mode` の値として `credentialed-prerender` が要求されます。
+
+## 標準外のヘッダー
+
+- {{HTTPHeader("X-Forwarded-For")}} {{non-standard_inline}}
+ - : HTTP プロキシーやロードバランサーを経由してウェブサーバーに接続するクライアントの、接続元 IP アドレスを識別します。
+- {{HTTPHeader("X-Forwarded-Host")}} {{non-standard_inline}}
+ - : プロキシーやロードバランサーに接続するクライアントがリクエストした、オリジナルのホストを示します。
+- {{HTTPHeader("X-Forwarded-Proto")}} {{non-standard_inline}}
+ - : クライアントがプロキシーやロードバランサーに接続するために使用したプロトコル (HTTP または HTTPS) を識別します。
+- {{HTTPHeader("X-DNS-Prefetch-Control")}} {{non-standard_inline}}
- : ユーザーがたどるであろうリンクや、ドキュメントが参照する画像、 CSS、 JavaScript などのリソースのドメイン名解決をブラウザーが事前に行う機能である、 DNS プリフェッチを制御します。
-- {{HTTPHeader("X-Firefox-Spdy")}} {{deprecated_inline}} {{non-standard_inline}}
- - : TBD
-- {{HTTPHeader("X-Pingback")}} {{non-standard_inline}}
- - : TBD
-- {{HTTPHeader("X-Requested-With")}}
- - : TBD
-- {{HTTPHeader("X-Robots-Tag")}}{{non-standard_inline}}
+- {{HTTPHeader("X-Robots-Tag")}} {{non-standard_inline}}
- : [`X-Robots-Tag`](https://developers.google.com/search/docs/advanced/robots/robots_meta_tag) ヘッダーは、一般の検索エンジンの結果でウェブページをどのように索引付けをするかを示します。このヘッダーは ` ` と等価です。
-- {{HTTPHeader("X-UA-Compatible")}} {{non-standard_inline}}
- - : 使用する文書モードを示すために Internet Explorer で使用されています。
+
+## 非推奨のヘッダー
+
+- {{HTTPHeader("Pragma")}} {{deprecated_inline}}
+ - : 実装固有のヘッダーで、リクエストとレスポンスの連鎖のどこにいてもさまざまな効果を持つことができます。`Cache-Control` ヘッダーがまだ存在しない HTTP/1.0 キャッシュとの後方互換性のために使用します。
+- {{HTTPHeader("Warning")}} {{deprecated_inline}}
+ - : 可能な問題についての一般的な警告情報。
## 協力
[新しい記事を書いたり](/ja/docs/MDN/Writing_guidelines/Howto/Document_an_HTTP_header)、既存のものを改善したりすることにご協力ください。
+
+
## 関連情報
-- [Wikipedia の HTTP ヘッダーの一覧のページ](https://en.wikipedia.org/wiki/List_of_HTTP_header_fields)
-- [IANA レジストリー](https://www.iana.org/assignments/message-headers/message-headers.xhtml#perm-headers)
-- [HTTP Working Group](https://httpwg.org/specs/)
+- [Wikipedia の HTTP ヘッダーの一覧のページ](https://en.wikipedia.org/wiki/List_of_HTTP_header_fields)(英語)
+- [IANA レジストリー](https://www.iana.org/assignments/http-fields/http-fields.xhtml)(英語)
+- [HTTP Working Group](https://httpwg.org/specs/)(英語)
diff --git a/files/ja/web/http/headers/te/index.md b/files/ja/web/http/headers/te/index.md
new file mode 100644
index 00000000000000..4fe15821b45fea
--- /dev/null
+++ b/files/ja/web/http/headers/te/index.md
@@ -0,0 +1,68 @@
+---
+title: TE
+slug: Web/HTTP/Headers/TE
+l10n:
+ sourceCommit: 0880a90f3811475d78bc4b2c344eb4146f25f66c
+---
+
+{{HTTPSidebar}}
+
+**`TE`** リクエストヘッダーは、ユーザーエージェントが受け入れる転送エンコーディング方式を指定します。(非公式に `Accept-Transfer-Encoding` と呼ばれることもあり、その方がより直感的でしょう。)
+
+> **メモ:** [HTTP/2](https://httpwg.org/specs/rfc9113.html#ConnectionSpecific) と
+> [HTTP/3](https://httpwg.org/specs/rfc9114.html#header-formatting) では、
+> `TE` ヘッダーフィールドは、`trailer` 値が設定されている場合にのみ受け入れられます。
+
+転送エンコード方式の詳細については、{{HTTPHeader("Transfer-Encoding")}} レスポンスヘッダーも参照してください。HTTP/1.1 の受信者では常にチャンクが受け入れられるので、`TE` ヘッダーを使用して `"chunked"` を指定する必要はないことに注意してください。しかし、"trailers" 値を使用して、クライアントがチャンク転送コードでトレーラーフィールドを受け入れるかどうかを設定するには有益です。
+
+
+
+
+ ヘッダー型
+ {{Glossary("Request header", "リクエストヘッダー")}}
+
+
+ {{Glossary("Forbidden header name", "禁止ヘッダー名")}}
+ はい
+
+
+
+
+## 構文
+
+```http
+TE: compress
+TE: deflate
+TE: gzip
+TE: trailers
+
+// 複数のディレクティブを指定し、{{glossary("quality values", "Q 値")}}で重みづけする構文:
+TE: trailers, deflate;q=0.5
+```
+
+## ディレクティブ
+
+- `compress`
+ - : [Lempel-Ziv-Welch](https://en.wikipedia.org/wiki/LZW) (LZW) アルゴリズムを使用する形式が、転送コーディング名として受け入れられます。
+- `deflate`
+ - : [zlib](https://ja.wikipedia.org/wiki/Zlib) 構造が、転送コーディング名として受け入れられます。
+- `gzip`
+ - : [Lempel-Ziv coding](https://en.wikipedia.org/wiki/LZ77_and_LZ78#LZ77) (LZ77) を使用し、32 ビットの CRC を持つ形式が、転送コーディング名として受け入れられます。
+- `trailers`
+ - : クライアントがチャンクされた転送コーディングでトレーラーフィールドを受け入れる意思があることを示します。
+- `q`
+ - : 複数の転送コーディングが受け入れられる場合、[品質値](/ja/docs/Glossary/Quality_values)構文の `q` 引数を使うことでランク付けをすることができます。
+
+## 仕様書
+
+{{Specifications}}
+
+## ブラウザーの互換性
+
+{{Compat}}
+
+## 関連情報
+
+- {{HTTPHeader("Transfer-Encoding")}}
+- {{HTTPHeader("Trailer")}}
+- [チャンク転送エンコーディング](https://en.wikipedia.org/wiki/Chunked_transfer_encoding)(英語)
diff --git a/files/ja/web/http/headers/trailer/index.md b/files/ja/web/http/headers/trailer/index.md
new file mode 100644
index 00000000000000..9e1b8e65d0c5dc
--- /dev/null
+++ b/files/ja/web/http/headers/trailer/index.md
@@ -0,0 +1,86 @@
+---
+title: Trailer
+slug: Web/HTTP/Headers/Trailer
+l10n:
+ sourceCommit: 0880a90f3811475d78bc4b2c344eb4146f25f66c
+---
+
+{{HTTPSidebar}}
+
+**Trailer** レスポンスヘッダーにより、メッセージ本体の送信中に動的に生成される可能性のあるメタデータ(メッセージの完全性チェック、デジタル署名、後処理のステータスなど)を提供するために、送信者がチャンクされたメッセージの終わりに追加のフィールドを含めることが可能になります。
+
+> **メモ:** トレーラーフィールドを許可するには、{{HTTPHeader("TE")}} リクエストヘッダーを "trailer" に設定する必要があります。
+
+
+
+
+ ヘッダーの種類
+
+ {{Glossary("Request header", "リクエストヘッダー")}}、
+ {{Glossary("Response header", "レスポンスヘッダー")}}、
+ {{Glossary("Payload header", "ペイロードヘッダー")}}
+
+
+
+ {{Glossary("Forbidden header name", "禁止ヘッダー名")}}
+ はい
+
+
+
+
+## 構文
+
+```http
+Trailer: header-names
+```
+
+## ディレクティブ
+
+- `header-names`
+
+ - : チャンクされたメッセージのトレーラー部分に存在する HTTP ヘッダーフィールド。
+ 以下のヘッダーフィールドは**許可されていません**。
+
+ - メッセージフレーミングヘッダー({{HTTPHeader("Transfer-Encoding")}} や
+ {{HTTPHeader("Content-Length")}} など)
+ - ルーティングヘッダー({{HTTPHeader("Host")}})
+ - リクエスト修飾子(制御や条件、例えば {{HTTPHeader("Cache-Control")}}、{{HTTPHeader("Max-Forwards")}}、{{HTTPHeader("TE")}} など)
+ - 認証ヘッダー({{HTTPHeader("Authorization")}} や {{HTTPHeader("Set-Cookie")}} など)
+ - または {{HTTPHeader("Content-Encoding")}}、{{HTTPHeader("Content-Type")}}、{{HTTPHeader("Content-Range")}}、そして `Trailer` 自体。
+
+## 例
+
+### トレーラーヘッダーを使用するチャンク転送エンコード方式
+
+この例では、{{HTTPHeader("Expires")}} ヘッダーがチャンクされたメッセージの終わりに使用され、末尾のヘッダーとして有益な役割を果たします。
+
+```http
+HTTP/1.1 200 OK
+Content-Type: text/plain
+Transfer-Encoding: chunked
+Trailer: Expires
+
+7\r\n
+Mozilla\r\n
+9\r\n
+Developer\r\n
+7\r\n
+Network\r\n
+0\r\n
+Expires: Wed, 21 Oct 2015 07:28:00 GMT\r\n
+\r\n
+```
+
+## 仕様書
+
+{{Specifications}}
+
+## ブラウザーの互換性
+
+{{Compat}}
+
+## 関連情報
+
+- {{HTTPHeader("Transfer-Encoding")}}
+- {{HTTPHeader("TE")}}
+- [チャンク転送エンコーディング](https://en.wikipedia.org/wiki/Chunked_transfer_encoding)(英語)
diff --git a/files/ja/web/http/messages/http_request_headers2.png b/files/ja/web/http/messages/http_request_headers2.png
deleted file mode 100644
index 42b64af3752b6c..00000000000000
Binary files a/files/ja/web/http/messages/http_request_headers2.png and /dev/null differ
diff --git a/files/ja/web/javascript/reference/global_objects/date/index.md b/files/ja/web/javascript/reference/global_objects/date/index.md
index 5566fb8012b43d..6c26916fce71f5 100644
--- a/files/ja/web/javascript/reference/global_objects/date/index.md
+++ b/files/ja/web/javascript/reference/global_objects/date/index.md
@@ -2,94 +2,240 @@
title: Date
slug: Web/JavaScript/Reference/Global_Objects/Date
l10n:
- sourceCommit: 968e6f1f3b6f977a09e116a0ac552459b741eac3
+ sourceCommit: 54962bbd1d367115cfd01b4e1ba6b552e8b68eb7
---
{{JSRef}}
-JavaScript の **`Date`** オブジェクトは、単一の瞬間の時刻をプラットフォームに依存しない形式で表します。 `Date` オブジェクトは協定世界時 (UTC) の 1970 年 1 月 1 日からの経過ミリ秒数を表す `Number` の値を含んでいます。
+JavaScript の **`Date`** オブジェクトは、単一の瞬間の時刻をプラットフォームに依存しない形式で表します。`Date` オブジェクトは、1970 年 1 月 1 日午前 0 時 (UTC)(元期)からのミリ秒を表す整数値をカプセル化しています。
> **メモ:** TC39 は [Temporal](https://tc39.es/proposal-temporal/docs/index.html) という、新しい日付/時刻の API を開発しています。これについて詳しくは [Igalia のブログ](https://blogs.igalia.com/compilers/2020/06/23/dates-and-times-in-javascript/)を参照してください。まだ正式利用の準備はできていません。
## 解説
-### ECMAScript 元期 とタイムスタンプ
+### 元期、タイムスタンプ、無効な日時
-JavaScript の日時は基本的に、 [ECMAScript 元期](https://tc39.es/ecma262/multipage/numbers-and-dates.html#sec-time-values-and-time-range) 、すなわち協定世界時 (UTC) の 1970 年 1 月 1 日深夜 0 時([UNIX 元期](https://ja.wikipedia.org/wiki/UNIX時間)と同等)からの経過ミリ秒数で示されます。
+JavaScript の日付は基本的に、[元期](https://tc39.es/ecma262/multipage/numbers-and-dates.html#sec-time-values-and-time-range)として定義される UTC の 1970 年 1 月 1 日午前 0 時([UNIX 元期](/ja/docs/Glossary/Unix_time)と同じ)から経過したミリ秒単位の時刻を指定します。このタイムスタンプはタイムゾーンに依存せず、歴史の一瞬を固有のものとして定義します。
-> **メモ:** Date オブジェクトの中心となる時間値は UTC ですが、日付と時刻、またはその一部を取得する基本的なメソッドは、すべて地方時(ホストシステムなど)のタイムゾーンとオフセットで動作することを覚えておくことが重要です。
+> **メモ:** Date オブジェクトの中核となる時刻の値は UTC ですが、日時やその部品を取得する基本的なメソッドは、すべてローカル(つまりホストシステム)のタイムゾーンとオフセットで動作します。
-`Date` の最大値は、確実な整数の最大値 (`Number.MAX_SAFE_INTEGER`、9,007,199,254,740,991) と同じ値ではないことに注意が必要です。代わりに ECMA-262 では、 UTC の 1970 年 1 月 1 日から前後 ±100,000,000 (1 億) 日(つまり、紀元前 271821 年 4 月 20 日 - 紀元 275760 年 9 月 13 日)を標準の `Date` オブジェクトで表すことができると定義しています。
+`Date` オブジェクトで表現できるタイムスタンプの最大値は、安全な整数の最大値({{jsxref("Number.MAX_SAFE_INTEGER")}}、9,007,199,254,740,991)よりもわずかに小さくなります。`Date` オブジェクトは、元期に対して最大 ±8,640,000,000,000 ミリ秒、つまり±100,000,000(1 億)日を表します。これは紀元前 271821 年 4 月 20 日から西暦 275760 年 9 月 13 日までの範囲です。この範囲外の時刻を表そうとすると、`Date` オブジェクトは [`NaN`](/ja/docs/Web/JavaScript/Reference/Global_Objects/NaN) のタイムスタンプ値を持ち、"Invalid Date" (無効な日時)となります。
-### 日時形式とタイムゾーンの変換
+```js
+console.log(new Date(8.64e15).toString()); // "Sat Sep 13 275760 00:00:00 GMT+0000 (Coordinated Universal Time)"
+console.log(new Date(8.64e15 + 1).toString()); // "Invalid Date"
+```
+
+`Date` に格納されるタイムスタンプを操作するさまざまなメソッドがあります。
+
+- タイムスタンプ値を直接操作するには、{{jsxref("Date/getTime", "getTime()")}} および {{jsxref("Date/setTime", "setTime()")}} メソッドを使用します。
+- {{jsxref("Date/valueOf", "valueOf()")}} および [`[@@toPrimitive]()`](/ja/docs/Web/JavaScript/Reference/Global_Objects/Date/@@toPrimitive) メソッド(「数値」を渡したとき)は、[数値変換](/ja/docs/Web/JavaScript/Reference/Global_Objects/Number#数値変換)において自動的に呼び出されますが、タイムスタンプを返すので、`Date` オブジェクトは数値のコンテキストで使用すると、タイムスタンプのように振る舞います。
+- 静的メソッド({{jsxref("Date.now()")}}、{{jsxref("Date.parse()")}}、{{jsxref("Date.UTC()")}})はすべて、`Date` オブジェクトではなくタイムスタンプを返します。
+- {{jsxref("Date/Date", "Date()")}} コンストラクターは、タイムスタンプのみを引数として呼び出すことができます。
+
+### 日時の成分とタイムゾーン
+
+日付は内部的には単一の数値であるタイムスタンプで表されます。タイムスタンプを操作する際には、タイムスタンプを構造化された日時表現として解釈する必要があります。タイムスタンプを解釈する方法は常に 2 つあります。ローカル時刻として解釈する方法と、世界標準時を定義する協定世界時 (UTC) として解釈する方法です。ローカルタイムゾーンは `Date` オブジェクトには格納されず、ホスト環境(ユーザー端末)によって決定されます。
+
+> **メモ:** UTC を[グリニッジ標準時](https://ja.wikipedia.org/wiki/グリニッジ標準時) (GMT) と混同してはいけません。両者は常に同じではありません。これはリンク先のウィキペディアのページで詳しく説明されています。
+
+例えば、タイムスタンプ 0 は歴史上の一意の瞬間を表しますが、2 つの方法で解釈することができます。
+
+- UTC 時刻としては、1970 年 1 月 1 日午前 0 時 (UTC)。
+- 日本標準時 (UTC+9) としては、1970 年 1 月 1 日 9 時 00 分 00 秒です。
+
+{{jsxref("Date/getTimezoneOffset", "getTimezoneOffset()")}} メソッドは、UTC とローカル時刻の差を分単位で返します。タイムゾーンのオフセットは、現在のタイムゾーンに依存するだけでなく、サマータイムや過去には変更があったため、`Date` オブジェクトが表す時刻にも依存することに注意しましょう。要するに、タイムゾーンオフセットは `Date` オブジェクトが表す時刻とホスト環境の場所における UTC 時刻からのオフセットです。
+
+`Date` のメソッドには 2 種類あり、1 つはタイムスタンプをローカル時刻として解釈して様々な日付部品を取得したり設定したりするもの、もう 1 つは UTC を使用するものです。
+
+
+
+
+ 成分
+ ローカル
+ UTC
+
+
+ 取得
+ 設定
+ 取得
+ 設定
+
+
+
+
+ 年
+ {{jsxref("Date/getFullYear", "getFullYear()")}}
+ {{jsxref("Date/setFullYear", "setFullYear()")}}
+ {{jsxref("Date/getUTCFullYear", "getUTCFullYear()")}}
+ {{jsxref("Date/setUTCFullYear", "setUTCFullYear()")}}
+
+
+ 月
+ {{jsxref("Date/getMonth", "getMonth()")}}
+ {{jsxref("Date/setMonth", "setMonth()")}}
+ {{jsxref("Date/getUTCMonth", "getUTCMonth()")}}
+ {{jsxref("Date/setUTCMonth", "setUTCMonth()")}}
+
+
+ 日
+ {{jsxref("Date/getDate", "getDate()")}}
+ {{jsxref("Date/setDate", "setDate()")}}
+ {{jsxref("Date/getUTCDate", "getUTCDate()")}}
+ {{jsxref("Date/setUTCDate", "setUTCDate()")}}
+
+
+ 時
+ {{jsxref("Date/getHours", "getHours()")}}
+ {{jsxref("Date/setHours", "setHours()")}}
+ {{jsxref("Date/getUTCHours", "getUTCHours()")}}
+ {{jsxref("Date/setUTCHours", "setUTCHours()")}}
+
+
+ 分
+ {{jsxref("Date/getMinutes", "getMinutes()")}}
+ {{jsxref("Date/setMinutes", "setMinutes()")}}
+ {{jsxref("Date/getUTCMinutes", "getUTCMinutes()")}}
+ {{jsxref("Date/setUTCMinutes", "setUTCMinutes()")}}
+
+
+ 秒
+ {{jsxref("Date/getSeconds", "getSeconds()")}}
+ {{jsxref("Date/setSeconds", "setSeconds()")}}
+ {{jsxref("Date/getUTCSeconds", "getUTCSeconds()")}}
+ {{jsxref("Date/setUTCSeconds", "setUTCSeconds()")}}
+
+
+ ミリ秒
+ {{jsxref("Date/getMilliseconds", "getMilliseconds()")}}
+ {{jsxref("Date/setMilliseconds", "setMilliseconds()")}}
+ {{jsxref("Date/getUTCMilliseconds", "getUTCMilliseconds()")}}
+ {{jsxref("Date/setUTCMilliseconds", "setUTCMilliseconds()")}}
+
+
+ 曜日
+ {{jsxref("Date/getDay", "getDay()")}}
+ なし
+ {{jsxref("Date/getUTCDay", "getUTCDay()")}}
+ なし
+
+
+
+
+{{jsxref("Date/Date", "Date()")}} コンストラクターは 2 つ以上の引数を指定して呼び出すことができ、その場合はそれぞれローカル時刻年、月、日、時、分、秒、ミリ秒として解釈されます。{{jsxref("Date.UTC()")}} も同様に動作しますが、こちらは成分を UTC 時刻として解釈し、年を表す単一の引数も受け入れます。
+
+> **メモ:** `Date()` コンストラクターや `Date.UTC()`、そして非推奨の {{jsxref("Date/getYear", "getYear()")}}/{{jsxref("Date/setYear", "setYear()")}} メソッドなど、一部のメソッドは 2 桁の年を 1900 年代の年として解釈します。例えば、`new Date(99, 5, 24)` は 1999 年 6 月 24 日と解釈され、99 年 6 月 24 日とは解釈されません。 詳細は [2 桁の年の解釈](#2_桁の年の解釈) を参照ください。
+
+ある部分が指定範囲を超えたり、下回ったりした場合、通常、その部分は上位の部分に「繰り上げ」されるか、「繰り下げ」されます。例えば、月を 12 に設定すると(月はゼロ基点なので、12 月は 11)、翌年の 1 月になります。日を 0 に設定すると、前月の最終日になります。これは[日時文字列形式](#日時文字列形式)で指定した日付にも適用されます。
+
+### 日時文字列形式
+
+文字列として日付を書式化する方法はたくさんあります。JavaScript 仕様書では、普遍的に対応している書式を 1 つだけ指定しています。ISO 8601 カレンダー日付拡張書式を簡略化した[日付時刻文字列書式](https://tc39.es/ecma262/multipage/numbers-and-dates.html#sec-date-time-string-format)です。書式は以下の通りです。
+
+```plain
+YYYY-MM-DDTHH:mm:ss.sssZ
+```
+
+- `YYYY` は年で、4 つの数字(`0000` から `9999`)、または `+` または `-` に続く 6 桁の数字です。拡張された年には符号が必要です。`-000000` は明示的に有効な年として不許可となっています。
+- `MM` は月で、2 桁(`01` から `12`)です。既定では `01` です。
+- `DD` は月の日です。2 桁の数字で指定します(`01` から `31` まで)。既定では `01` です。
+- `T` はリテラル文字で、文字列の時刻部分の始まりを示します。`T` は時刻部分を指定する場合は必須です。
+- `HH` は 2 桁の数字で時を表します(`00` から `23`)。特殊なケースとして、`24:00:00` を指定することができ、これは翌日の始まりの午前 0 時と解釈されます。既定では `00` です。
+- `mm` は分で、2 桁で指定します(`00` から `59` まで)。既定では `00` です。
+- `ss` は秒で、2 桁(`00` から `59`)です。既定では `00` です。
+- `sss`はミリ秒で 3 桁(`000` から `999`)。既定では `000` 。
+- `Z` はタイムゾーンオフセットで、リテラル文字の `Z` (UTC を示す) か、`+` または `-` に続いて `HH:mm` (UTC からの時分のオフセット) を指定します。
+
+さまざまな成分を省略できますので、以下のものはすべて有効です。
+
+- 日付のみの形式: `YYYY`, `YYYY-MM`, `YYYY-MM-DD`
+- 日時形式: 上記の日付のみの形式に続いて `T`、それに `HH:mm`, `HH:mm:ss`, `HH:mm:ss.sss` などが続きます。どの組み合わせでも、タイムゾーンオフセットを続けることができます。
+
+例えば、`"2011-10-10"`(日付のみの形式)、`"2011-10-10T14:48:00"`(日時形式)、`"2011-10-10T14:48:00.000+09:00"`(日時形式にミリ秒とタイムゾーンが付いたもの)はすべて有効な日時文字列です。
+
+タイムゾーンオフセットがない場合、**日付のみの形式は UTC 時刻として解釈され、日時形式はローカル時刻として解釈されます。** これは過去には ISO 8601 に適合しない仕様があったためですが、ウェブの互換性のために変更できませんでした。[Broken Parser - A Web Reality Issue](https://maggiepint.com/2017/04/11/fixing-javascript-date-web-compatibility-and-reality/) を参照してください。
+
+{{jsxref("Date.parse()")}} および {{jsxref("Date/Date", "Date()")}} コンストラクターは、どちらも日時文字列形式の文字列を入力として受け入れます。さらに、入力がこの形式に一致しない場合、実装が他の日付形式にも対応することが許されています。
+
+{{jsxref("Date/toISOString", "toISOString()")}} メソッドは、タイムゾーンのオフセットを常に `Z` (UTC) に設定した状態で、日付の文字列表現を日時文字列形式で返します。
+
+> **メモ:** 他の書式への対応は保証されていませんので、互換性を最大にするために、入力は上記の日時文字列の書式に準拠するようにしてください。しかし、{{rfc(2822)}} 形式のように、主要な実装ですべて対応している書式もあります。常に[ブラウザー横断テスト](/ja/docs/Learn/Tools_and_testing/Cross_browser_testing)を行い、対象とするブラウザーすべてで確実にコードが動作するようにしてください。様々な書式化に対応するには、ライブラリーが役立ちます。
-様々な形式で日時を取得したり、タイムゾーンの変換を行ったりすることができる方法はたくさんあります。特に便利なのは、世界時標準 (World Time Standard) で定義されている世界標準時である協定世界時 (UTC) で日付と時刻を出力する関数です。(この時間は歴史的に*グリニッジ標準時*として知られており、 UTC はイギリスのロンドンとその近くのグリニッジを含む子午線に沿って位置しています。)ユーザーの端末は現地時間を提供します。
+標準外の文字列は、タイムゾーンを含め、実装が望む方法で構文解析できます。ほとんどの実装では既定でローカルのタイムゾーンを使用します。実装は、境界外の日付部品に対して不正な日付を返すことを要求されませんが、通常はそうします。文字列は(上で定義されていません)境界内の日付要素を持つことができますが、実際には日付を表していません(例えば、"2月30日")。この場合、実装上の不整合が発生します。[`Date.parse()`](/ja/docs/Web/JavaScript/Reference/Global_Objects/Date/parse#例) のページでは、このような非標準の例について詳しく説明しています。
-地方時の日付と時刻の個々の部分を読み書きするメソッド({{jsxref("Date/getDay", "getDay()")}} や {{jsxref("Date/setHours", "setHours()")}} など)に加えて、 UTC を使用して日付と時刻を読み書きする同等のメソッド({{jsxref("Date/getUTCDay()", "getUTCDay()")}} や {{jsxref("Date/setUTCHours", "setUTCHours()")}} など)もあります。
+### 日付を書式化するその他の方法
+
+- {{jsxref("Date/toISOString", "toISOString()")}} は、`1970-01-01T00:00:00.000Z`(上で紹介した日付時刻の文字列形式で、[ISO 8601](https://ja.wikipedia.org/wiki/ISO_8601) を簡略化したもの)の形式の文字列を返します。{{jsxref("Date/toJSON", "toJSON()")}} は `toISOString()` を呼び出し、その結果を返します。
+- {{jsxref("Date/toString", "toString()")}} は `Thu Jan 01 1970 00:00:00 GMT+0000 (Coordinated Universal Time)` の形式の文字列を返すのに対し、{{jsxref("Date/toDateString", "toDateString()")}} および {{jsxref("Date/toTimeString", "toTimeString()")}} はそれぞれ日付と時刻の部分の文字列を返します。[`[@@toPrimitive]()`](/ja/docs/Web/JavaScript/Reference/Global_Objects/Date/@@toPrimitive) は(`"string"` または `"default"` を渡したとき) `toString()` を呼び出し、その結果を返します。
+- {{jsxref("Date/toUTCString", "toUTCString()")}} は `Thu, 01 Jan 1970 00:00:00 GMT` の形({{rfc(7231)}} で標準化)の文字列を返します。
+- {{jsxref("Date/toLocaleDateString", "toLocaleDateString()")}}、{{jsxref("Date/toLocaleTimeString", "toLocaleTimeString()")}}、{{jsxref("Date/toLocaleString", "toLocaleString()")}} はロケール固有の日付と時刻の書式を使用します。これはふつう [`Intl`](/ja/docs/Web/JavaScript/Reference/Global_Objects/Intl) API で提供されるものです。
+
+例については[`toString` メソッドの返値の形式](#tostring_メソッドの返値の形式)の節を参照してください。
## コンストラクター
- {{jsxref("Date/Date", "Date()")}}
- - : 関数として呼び出された場合、現在の日付と時刻の文字列表現を返します。すべての引数は無視されます。この結果は `new Date().toString()` を実行するのと同じです。
-- {{jsxref("Date/Date", "new Date()")}}
- - : コンストラクターとして呼び出された場合、新しい `Date` オブジェクトを返します。
+ - : コンストラクターとして呼び出された場合、新しい `Date` オブジェクトを返します。関数として呼び出された場合、現在の日付と時刻の文字列表現を返します。
## 静的メソッド
- {{jsxref("Date.now()")}}
- : 現在の時刻に対応する数値、すなわち UTC の 1970 年 1 月 1 日 00:00:00 から経過したミリ秒数を表す数値を返します。うるう秒は無視します。
- {{jsxref("Date.parse()")}}
+ - : 日付を表す文字列を解釈して、UTC の 1970 年 1 月 1 日 00:00:00 から経過したミリ秒数を表す数値を返します。うるう秒は無視します。
+- {{jsxref("Date.UTC()")}}
+ - : 最も長い形式のコンストラクターと同じ引数(すなわち 2 〜 7)を受け取り、 1970 年 1 月 1 日 00:00:00 (UTC)から経過したミリ秒数を返します。うるう秒は無視します。
- - : 日付を表す文字列を解釈して、地方時で 1970 年 1 月 1 日 00:00:00 から経過したミリ秒数を表す数値を返します。うるう秒は無視します。
+## インスタンスプロパティ
- > **メモ:** ブラウザーごとに動作が異なり一貫性がないため、 `Date.parse` で文字列を解釈しないことを強く推奨します。
+これらのプロパティは `Date.prototype` で定義されており、すべての `Date` インスタンスで共有されます。
-- {{jsxref("Date.UTC()")}}
- - : 最も長い形式のコンストラクターと同じ引数(すなわち 2 〜 7)を受け取り、 1970 年 1 月 1 日 00:00:00 (UTC)から経過したミリ秒数を返します。うるう秒は無視します。
+- {{jsxref("Object/constructor", "Date.prototype.constructor")}}
+ - : このインスタンスオブジェクトを作成したコンストラクター関数。`Date` インスタンスの場合、初期値は {{jsxref("Date/Date", "Date")}} コンストラクターです。
## インスタンスメソッド
- {{jsxref("Date.prototype.getDate()")}}
- - : 地方時に基づき、指定された日時の「日」 (`1`–`31`) を返します。
+ - : 地方時に基づき、指定された日時の「日」 (`1` ~ `31`) を返します。
- {{jsxref("Date.prototype.getDay()")}}
- - : 地方時に基づき、指定された日時の「曜日」 (`0`–`6`) を返します。
-- {{jsxref("Date.prototype.getFullYear()")}}
+ - : 地方時に基づき、指定された日時の「曜日」 (`0` ~ `6`) を返します。
+- {{jsxref("Date/getFullYear")}}
- : 地方時に基づき、指定された日時の「年」 (4 桁の年であれば 4 桁) を返します。
- {{jsxref("Date.prototype.getHours()")}}
- - : 地方時に基づき、指定された日時の「時」 (`0`–`23`) を返します。
+ - : 地方時に基づき、指定された日時の「時」 (`0` ~ `23`) を返します。
- {{jsxref("Date.prototype.getMilliseconds()")}}
- - : 地方時に基づき、指定された日時の「ミリ秒」 (`0`–`999`) を返します。
+ - : 地方時に基づき、指定された日時の「ミリ秒」 (`0` ~ `999`) を返します。
- {{jsxref("Date.prototype.getMinutes()")}}
- - : 地方時に基づき、指定された日時の「分」 (`0`–`59`) を返します。
+ - : 地方時に基づき、指定された日時の「分」 (`0` ~ `59`) を返します。
- {{jsxref("Date.prototype.getMonth()")}}
- - : 地方時に基づき、指定された日時の「月」 (`0`–`11`) を返します。
+ - : 地方時に基づき、指定された日時の「月」 (`0` ~ `11`) を返します。
- {{jsxref("Date.prototype.getSeconds()")}}
- - : 地方時に基づき、指定された日時の「秒」 (`0`–`59`) を返します。
+ - : 地方時に基づき、指定された日時の「秒」 (`0` ~ `59`) を返します。
- {{jsxref("Date.prototype.getTime()")}}
- : 指定された日時を協定世界時 (UTC) の 1970 年 1 月 1 日 00:00:00 からの経過ミリ秒単位の数値で返します。 (それ以前の時刻では負の数を返します。)
- {{jsxref("Date.prototype.getTimezoneOffset()")}}
- : 現地の時間帯のオフセットを分で返します。
- {{jsxref("Date.prototype.getUTCDate()")}}
- - : 協定世界時に基づき、指定された日時の「日」 (`1`–`31`) を返します。
+ - : 協定世界時に基づき、指定された日時の「日」 (`1` ~ `31`) を返します。
- {{jsxref("Date.prototype.getUTCDay()")}}
- - : 協定世界時に基づき、指定された日時の「曜日」 (`0`–`6`) を返します。
+ - : 協定世界時に基づき、指定された日時の「曜日」 (`0` ~ `6`) を返します。
- {{jsxref("Date.prototype.getUTCFullYear()")}}
- : 協定世界時に基づき、指定された日時の「年」 (4 桁の年であれば 4 桁) を返します。
- {{jsxref("Date.prototype.getUTCHours()")}}
- - : 協定世界時に基づき、指定された日時の「時」 (`0`–`23`) を返します。
+ - : 協定世界時に基づき、指定された日時の「時」 (`0` ~ `23`) を返します。
- {{jsxref("Date.prototype.getUTCMilliseconds()")}}
- - : 協定世界時に基づき、指定された日時の「ミリ秒」 (`0`–`999`) を返します。
+ - : 協定世界時に基づき、指定された日時の「ミリ秒」 (`0` ~ `999`) を返します。
- {{jsxref("Date.prototype.getUTCMinutes()")}}
- - : 協定世界時に基づき、指定された日時の「分」 (`0`–`59`) を返します。
+ - : 協定世界時に基づき、指定された日時の「分」 (`0` ~ `59`) を返します。
- {{jsxref("Date.prototype.getUTCMonth()")}}
- - : 協定世界時に基づき、指定された日時の「月」 (`0`–`11`) を返します。
+ - : 協定世界時に基づき、指定された日時の「月」 (`0` ~ `11`) を返します。
- {{jsxref("Date.prototype.getUTCSeconds()")}}
- - : 協定世界時に基づき、指定された日時の「秒」 (`0`–`59`) を返します。
+ - : 協定世界時に基づき、指定された日時の「秒」 (`0` ~ `59`) を返します。
- {{jsxref("Date.prototype.getYear()")}} {{Deprecated_Inline}}
- - : 地方時に基づき、指定された日時の「年」 (ふつうは 2–3 桁) を返します。代わりに {{jsxref("Date.prototype.getFullYear()", "getFullYear()")}} を使用してください。
+ - : 地方時に基づき、指定された日時の「年」 (ふつうは 2 ~ 3 桁) を返します。代わりに {{jsxref("Date/getFullYear", "getFullYear()")}} を使用してください。
- {{jsxref("Date.prototype.setDate()")}}
- : 地方時に基づき、指定された日時の「日」を設定します。
-- {{jsxref("Date.prototype.setFullYear()")}}
+- {{jsxref("Date/setFullYear")}}
- : 地方時に基づき、指定された日時の「年」を完全な形 (例えば、 4 桁の年であれば 4 桁) で設定します。
- {{jsxref("Date.prototype.setHours()")}}
- : 地方時に基づき、指定された日時の「時」を設定します。
@@ -102,7 +248,7 @@ JavaScript の日時は基本的に、 [ECMAScript 元期](https://tc39.es/ecma2
- {{jsxref("Date.prototype.setSeconds()")}}
- : 地方時に基づき、指定された日時の「秒」を設定します。
- {{jsxref("Date.prototype.setTime()")}}
- - : {{jsxref("Date")}} オブジェクトを協定世界時(UTC) の 1970 年 1 月 1 日 00:00:00 からのミリ秒単位の数で表された時刻に設定します。
+ - : {{jsxref("Date")}} オブジェクトを協定世界時 (UTC) の 1970 年 1 月 1 日 00:00:00 からのミリ秒単位の数で表された時刻に設定します。
- {{jsxref("Date.prototype.setUTCDate()")}}
- : 協定世界時に基づき、指定された日時の「日」を設定します。
- {{jsxref("Date.prototype.setUTCFullYear()")}}
@@ -118,15 +264,13 @@ JavaScript の日時は基本的に、 [ECMAScript 元期](https://tc39.es/ecma2
- {{jsxref("Date.prototype.setUTCSeconds()")}}
- : 協定世界時に基づき、指定された日時の「秒」を設定します。
- {{jsxref("Date.prototype.setYear()")}} {{Deprecated_Inline}}
- - : 協定地方時に基づき、指定された日時の「年」 (ふつうは 2–3 桁) を設定します。代わりに {{jsxref("Date.prototype.setFullYear()", "setFullYear()")}} を使用してください。
+ - : 協定地方時に基づき、指定された日時の「年」 (ふつうは 2 ~ 3 桁) を設定します。代わりに {{jsxref("Date/setFullYear", "setFullYear()")}} を使用してください。
- {{jsxref("Date.prototype.toDateString()")}}
- : {{jsxref("Date")}} の「日付」部を、 'Thu Apr 12 2018' のように人間が読みやすい形式の文字列にして返します。
- {{jsxref("Date.prototype.toISOString()")}}
- : 日付を ISO 8601 Extended Format に準じた文字列に変換します。
- {{jsxref("Date.prototype.toJSON()")}}
- - : {{jsxref("Date.prototype.toISOString()", "toISOString()")}} を使用して {{jsxref("Date")}} を表す文字列を返します。{{jsxref("JSON.stringify()")}} の代わりに使用してください。
-- {{jsxref("Date.prototype.toGMTString()")}} {{Deprecated_Inline}}
- - : GMT (UTC) タイムゾーンを基準にした {{jsxref("Date")}} を表す文字列を返します。代わりに {{jsxref("Date.prototype.toUTCString()", "toUTCString()")}} を使用してください。
+ - : {{jsxref("Date")}} を表す文字列を {{jsxref("Date/toISOString", "toISOString()")}} を使用して返します。{{jsxref("JSON.stringify()")}} の代わりに使用するためのものです。
- {{jsxref("Date.prototype.toLocaleDateString()")}}
- : この日時の日付部分を、システム設定に基づいて地域性を考慮した表現による文字列にして返します。
- {{jsxref("Date.prototype.toLocaleString()")}}
@@ -141,6 +285,8 @@ JavaScript の日時は基本的に、 [ECMAScript 元期](https://tc39.es/ecma2
- : 日時を UTC タイムゾーンを使用する文字列に変換します。
- {{jsxref("Date.prototype.valueOf()")}}
- : {{jsxref("Date")}} オブジェクトのプリミティブ値を返します。{{jsxref("Object.prototype.valueOf()")}} メソッドを上書きします。
+- [`Date.prototype[@@toPrimitive]()`](/ja/docs/Web/JavaScript/Reference/Global_Objects/Date/@@toPrimitive)
+ - : `Date` オブジェクトをプリミティブ値に変換します。
## 例
@@ -148,12 +294,12 @@ JavaScript の日時は基本的に、 [ECMAScript 元期](https://tc39.es/ecma2
以下の例で、 JavaScript の日時を生成するいくつかの方法を示します。
-> **メモ:** `Date` コンストラクター(および `Date.parse` と同等)で日付文字列を解釈する際には、常に入力が [ISO 8601 形式](https://tc39.es/ecma262/#sec-date-time-string-format) (`YYYY-MM-DDTHH:mm:ss.sssZ`) であることを確認してください。他の形式で解釈した場合には、その挙動は実装によって定義されていて、すべてのブラウザーで動くとは限りません。多数の異なる形式に対応するためには、ライブラリーが役に立ちます。
+> **メモ:** 文字列から日付を作成するには、動作に一貫性がありません。異なる書式を使用する際の注意点については[日時文字列形式](#日時文字列形式)を参照してください。
```js
const today = new Date();
const birthday = new Date("December 17, 1995 03:24:00"); // 避けてください。すべてのランタイムで動作するとは限りません。
-const birthday2 = new Date("1995-12-17T03:24:00"); // これは ISO8601 互換であり、動作が信頼できます
+const birthday2 = new Date("1995-12-17T03:24:00"); // これは標準化されており、動作が信頼できます
const birthday3 = new Date(1995, 11, 17); // 月は 0 起点です
const birthday4 = new Date(1995, 11, 17, 3, 24, 0);
const birthday5 = new Date(628021800000); // 元期からのタイムスタンプ
@@ -163,35 +309,40 @@ const birthday5 = new Date(628021800000); // 元期からのタイムスタン
```js
const date = new Date("2020-05-12T23:50:21.817Z");
-date.toString(); // Tue May 12 2020 18:50:21 GMT-0500 (Central Daylight Time)
-date.toDateString(); // Tue May 12 2020
-date.toTimeString(); // 18:50:21 GMT-0500 (Central Daylight Time)
+date.toString(); // Wed May 13 2020 08:50:21 GMT+0900 (日本標準時)
+date.toDateString(); // Wed May 13 2020
+date.toTimeString(); // 08:50:21 GMT+0900 (日本標準時)
+date[Symbol.toPrimitive]("string"); // Wed May 13 2020 08:50:21 GMT+0900 (日本標準時)
+
date.toISOString(); // 2020-05-12T23:50:21.817Z
-date.toUTCString(); // Tue, 12 May 2020 23:50:21 GMT
-date.toGMTString(); // Tue, 12 May 2020 23:50:21 GMT
date.toJSON(); // 2020-05-12T23:50:21.817Z
-date.toLocaleString(); // 5/12/2020, 6:50:21 PM
-date.toLocaleDateString(); // 5/12/2020
-date.toLocaleTimeString(); // 6:50:21 PM
+
+date.toUTCString(); // Tue, 12 May 2020 23:50:21 GMT
+
+date.toLocaleString(); // 2020/5/13 8:50:21
+date.toLocaleDateString(); // 2020/5/13
+date.toLocaleTimeString(); // 8:50:21
```
### 年月日や時刻の取得
```js
-const date = new Date();
+const date = new Date("2000-01-17T16:45:30");
const [month, day, year] = [
date.getMonth(),
date.getDate(),
date.getFullYear(),
];
+// [0, 17, 2000] (月は 0 基点であるため)
const [hour, minutes, seconds] = [
date.getHours(),
date.getMinutes(),
date.getSeconds(),
];
+// [16, 45, 30]
```
-### 2 桁の年の補完
+### 2 桁の年の解釈
`new Date()` は 2 桁の年の値に対して、古くで望ましくない一貫性のない挙動を示します。具体的には、 `new Date()` の呼び出しに 2 桁の年の値が与えられた場合、その年の値はリテラルの年として扱われず、そのまま使用され、代わりに相対的なオフセットとして解釈されます。ある場合には 1900 年からのオフセットとなりますが、またある場合には 2000 年からのオフセットになります。
@@ -207,7 +358,7 @@ date.setYear(22);
date.toString(); // Wed Feb 01 1922 00:00:00 GMT+0000 (GMT)
```
-西暦 0 年から 99 年までの間の年を生成および取得するには、{{jsxref("Date.prototype.setFullYear()", "setFullYear()")}} メソッドと {{jsxref("Date.prototype.getFullYear()", "getFullYear()")}} メソッドを使用してください。
+西暦 0 年から 99 年までの間の年を生成および取得するには、{{jsxref("Date/setFullYear", "setFullYear()")}} メソッドと {{jsxref("Date/getFullYear", "getFullYear()")}} メソッドを使用してください。
```js
// 推奨されるメソッドです。どんな値でも相対オフセットではなく、そのまま
@@ -258,7 +409,7 @@ function printElapsedTime(testFn) {
const yourFunctionReturn = printElapsedTime(yourFunction);
```
-> **メモ:** {{domxref("performance_property", "Web Performance API", "", 1)}} の高精度時刻機能に対応しているブラウザーでは、 {{domxref("Performance.now()")}} で、 {{jsxref("Date.now()")}} よりも高信頼かつ高精度な経過時間の測定が可能です。
+> **メモ:** {{domxref("Window/performance", "ウェブパフォーマンス API", "", "nocode")}} の高精度時刻機能に対応しているブラウザーでは、 {{domxref("Performance.now()")}} で、 {{jsxref("Date.now()")}} よりも高信頼かつ高精度な経過時間の測定が可能です。
### ECMAScript 元期からの経過秒数を取得する
@@ -278,4 +429,4 @@ const seconds = Math.floor(Date.now() / 1000);
## 関連情報
-- {{jsxref("Date/Date", "Date()")}} コンストラクター
+- {{jsxref("Date/Date", "Date()")}}
diff --git a/files/ja/web/javascript/reference/global_objects/float16array/float16array/index.md b/files/ja/web/javascript/reference/global_objects/float16array/float16array/index.md
new file mode 100644
index 00000000000000..e706e6b99c8635
--- /dev/null
+++ b/files/ja/web/javascript/reference/global_objects/float16array/float16array/index.md
@@ -0,0 +1,82 @@
+---
+title: Float16Array() コンストラクター
+slug: Web/JavaScript/Reference/Global_Objects/Float16Array/Float16Array
+l10n:
+ sourceCommit: dd339290fa3a42d9a7f079e17a62e1df1206f29d
+---
+
+{{JSRef}}
+
+**`Float16Array()`** コンストラクターは {{jsxref("Float16Array")}} オブジェクトを生成します。初期化データが明示的に与えられない限り、中身は `0` に初期化されます。
+
+## 構文
+
+```js-nolint
+new Float16Array()
+new Float16Array(length)
+new Float16Array(typedArray)
+new Float16Array(object)
+
+new Float16Array(buffer)
+new Float16Array(buffer, byteOffset)
+new Float16Array(buffer, byteOffset, length)
+```
+
+> **メモ:** `Float16Array()` は [`new`](/ja/docs/Web/JavaScript/Reference/Operators/new) でのみ構築できます。`new` なしで呼び出そうとすると {{jsxref("TypeError")}} がスローされます。
+
+### 引数
+
+[`TypedArray#引数`](/ja/docs/Web/JavaScript/Reference/Global_Objects/TypedArray#引数) を参照してください。
+
+### 例外
+
+[`TypedArray#例外`](/ja/docs/Web/JavaScript/Reference/Global_Objects/TypedArray#例外) を参照してください。
+
+## 例
+
+### Float16Array を作成する様々な方法
+
+```js
+// From a length
+const float16 = new Float16Array(2);
+float16[0] = 42;
+console.log(float16[0]); // 42
+console.log(float16.length); // 2
+console.log(float16.BYTES_PER_ELEMENT); // 2
+
+// From an array
+const x = new Float16Array([21, 31]);
+console.log(x[1]); // 31
+
+// From another TypedArray
+const y = new Float16Array(x);
+console.log(y[0]); // 21
+
+// From an ArrayBuffer
+const buffer = new ArrayBuffer(32);
+const z = new Float16Array(buffer, 4, 4);
+console.log(z.byteOffset); // 4
+
+// From an iterable
+const iterable = (function* () {
+ yield* [1, 2, 3];
+})();
+const float16FromIterable = new Float16Array(iterable);
+console.log(float16FromIterable);
+// Float16Array [1, 2, 3]
+```
+
+## 仕様書
+
+{{Specifications}}
+
+## ブラウザーの互換性
+
+{{Compat}}
+
+## 関連情報
+
+- [JavaScript の型付き配列](/ja/docs/Web/JavaScript/Guide/Typed_arrays)
+- {{jsxref("TypedArray")}}
+- {{jsxref("ArrayBuffer")}}
+- {{jsxref("DataView")}}
diff --git a/files/ja/web/javascript/reference/global_objects/float16array/index.md b/files/ja/web/javascript/reference/global_objects/float16array/index.md
new file mode 100644
index 00000000000000..64a7fa63ffd27c
--- /dev/null
+++ b/files/ja/web/javascript/reference/global_objects/float16array/index.md
@@ -0,0 +1,94 @@
+---
+title: Float16Array
+slug: Web/JavaScript/Reference/Global_Objects/Float16Array
+l10n:
+ sourceCommit: dd339290fa3a42d9a7f079e17a62e1df1206f29d
+---
+
+{{JSRef}}
+
+**`Float16Array`** 型配列は、プラットフォームのバイトオーダーで 16 ビット浮動小数点数の配列を表します。バイトオーダーの制御が必要な場合は、代わりに {{jsxref("DataView")}} を使用してください。初期化データが明示的に与えられない限り、内容は `0` に初期化されます。一旦初期化されると、オブジェクトのメソッドを使用するか、標準的な配列インデックスの構文(つまりブラケット記法)を使用して配列の要素を参照できます。
+
+`Float16Array` は隠された {{jsxref("TypedArray")}} クラスのサブクラスです。
+
+> **メモ:** Float16 のサポートは、JavaScript API と CPU アーキテクチャの両方において万能ではありません。これを使用すると、プラットフォームによってはパフォーマンスが低下する可能性があります。これは、[float-backed canvases](https://github.com/w3c/ColorWeb-CG/blob/main/canvas_float.md)、WebGPU、WebGL、[stable diffusion](https://github.com/huggingface/blog/blob/main/stable_diffusion.md) を含む深層学習モデルなど、高度に最適化されパフォーマンスに敏感なシステムとのやり取りを想定しています。
+
+## コンストラクター
+
+- {{jsxref("Float16Array/Float16Array", "Float16Array()")}}
+ - : 新しい `Float16Array` オブジェクトを作成します。
+
+## 静的プロパティ
+
+以下に加えて、親である {{jsxref("TypedArray")}} から静的プロパティを継承します。
+
+- {{jsxref("TypedArray/BYTES_PER_ELEMENT", "Float16Array.BYTES_PER_ELEMENT")}}
+ - : 要素サイズを数値で返します。`Float16Array` の場合は `2` を返します。
+
+## 静的メソッド
+
+親である {{jsxref("TypedArray")}} から静的メソッドを継承します。
+
+## インスタンスプロパティ
+
+以下に加えて、親である {{jsxref("TypedArray")}} からインスタンスプロパティを継承します。
+
+これらのプロパティは `Float16Array.prototype` で定義され、すべての `Float16Array` インスタンスで共有されます。
+
+- {{jsxref("TypedArray/BYTES_PER_ELEMENT", "Float16Array.prototype.BYTES_PER_ELEMENT")}}
+ - : 要素サイズを数値で返します。`Float16Array` の場合は `2` を返します。
+- {{jsxref("Object/constructor", "Float16Array.prototype.constructor")}}
+ - : インスタンスオブジェクトを生成したコンストラクター関数です。`Float16Array` インスタンスの場合、初期値は {{jsxref("Float16Array/Float16Array", "Float16Array")}} コンストラクターです。
+
+## インスタンスメソッド
+
+親である {{jsxref("TypedArray")}} からインスタンスメソッドを継承します。
+
+## 例
+
+### Float16Array を作成する様々な方法
+
+```js
+// From a length
+const float16 = new Float16Array(2);
+float16[0] = 42;
+console.log(float16[0]); // 42
+console.log(float16.length); // 2
+console.log(float16.BYTES_PER_ELEMENT); // 2
+
+// From an array
+const x = new Float16Array([21, 31]);
+console.log(x[1]); // 31
+
+// From another TypedArray
+const y = new Float16Array(x);
+console.log(y[0]); // 21
+
+// From an ArrayBuffer
+const buffer = new ArrayBuffer(32);
+const z = new Float16Array(buffer, 4, 4);
+console.log(z.byteOffset); // 4
+
+// From an iterable
+const iterable = (function* () {
+ yield* [1, 2, 3];
+})();
+const float16FromIterable = new Float16Array(iterable);
+console.log(float16FromIterable);
+// Float16Array [1, 2, 3]
+```
+
+## 仕様書
+
+{{Specifications}}
+
+## ブラウザーの互換性
+
+{{Compat}}
+
+## 関連情報
+
+- [JavaScript の型付き配列](/ja/docs/Web/JavaScript/Guide/Typed_arrays)
+- {{jsxref("TypedArray")}}
+- {{jsxref("ArrayBuffer")}}
+- {{jsxref("DataView")}}
diff --git a/files/ja/web/javascript/reference/global_objects/intl/segmenter/segmenter/index.md b/files/ja/web/javascript/reference/global_objects/intl/segmenter/segmenter/index.md
index bdfa00f39f0f94..01ec34148ed58e 100644
--- a/files/ja/web/javascript/reference/global_objects/intl/segmenter/segmenter/index.md
+++ b/files/ja/web/javascript/reference/global_objects/intl/segmenter/segmenter/index.md
@@ -5,6 +5,8 @@ l10n:
sourceCommit: a3dd560fabb1fe4051f6273f41b337a5b1245a6e
---
+{{JSRef}}
+
**`Intl.Segmenter()`** コンストラクターは、ロケールに依存したテキスト分割を可能にする [`Intl.Segmenter`](/ja/docs/Web/JavaScript/Reference/Global_Objects/Intl/Segmenter) オブジェクトを生成します。
{{EmbedInteractiveExample("pages/js/intl-segmenter.html")}}
diff --git a/files/ja/web/javascript/reference/global_objects/math/random/index.md b/files/ja/web/javascript/reference/global_objects/math/random/index.md
index 3c394582562c31..ca2a996cdece83 100644
--- a/files/ja/web/javascript/reference/global_objects/math/random/index.md
+++ b/files/ja/web/javascript/reference/global_objects/math/random/index.md
@@ -7,23 +7,27 @@ slug: Web/JavaScript/Reference/Global_Objects/Math/random
**`Math.random()`** 関数は、 0 以上 1 未満 (0 は含むが、 1 は含まない) の範囲で浮動小数点の擬似乱数を返します。その範囲ではほぼ均一な分布で、ユーザーは範囲の拡大をすることができます。実装側で乱数生成アルゴリズムの初期シードを選択します。ユーザーが初期シードを選択、またはリセットすることは出来ません。
-{{EmbedInteractiveExample("pages/js/math-random.html")}}
-
> **メモ:** `Math.random()` の提供する乱数は、暗号に使用可能な安全性を備えて*いません*。セキュリティに関連する目的では使用しないでください。代わりに Web Crypto API (より具体的には {{domxref("Crypto.getRandomValues", "window.crypto.getRandomValues()")}} メソッド) を使用してください。
+{{EmbedInteractiveExample("pages/js/math-random.html")}}
+
## 構文
-```
+```js-nolint
Math.random()
```
+### 引数
+
+なし
+
### 返値
-`0` (含む) から 1 (含まない) までの擬似乱数である浮動小数点数です。
+0 (含む) から 1 (含まない) までの擬似乱数である浮動小数点数です。
## 例
-JavaScript における数値は、IEEE 754 浮動小数点での round-to-nearest-even を行うため、以下の関数の値域が ( `Math.random()` 自体の値域が正しくても) 厳密ではないことに注意してください。非常に大きい境界値 (253 以上) のうち*極めて*稀な数値で、通常なら返されないはずの上限値が出力されてしまうことがあり得ます。
+JavaScript における数値は、IEEE 754 浮動小数点での round-to-nearest-even を行うため、以下の関数の値域が ( `Math.random()` 自体の値域が正しくても) 厳密ではないことに注意してください。非常に大きい境界値 (253 以上) のうち*極めて*稀な数値で、通常なら返されないはずの上限値が出力されてしまうことがあり得ます。
### 0 以上 1 未満の乱数を得る
@@ -51,7 +55,7 @@ function getRandomArbitrary(min, max) {
function getRandomInt(min, max) {
min = Math.ceil(min);
max = Math.floor(max);
- return Math.floor(Math.random() * (max - min) + min); //The maximum is exclusive and the minimum is inclusive
+ return Math.floor(Math.random() * (max - min) + min); // 上限は除き、下限は含む
}
```
@@ -65,7 +69,7 @@ function getRandomInt(min, max) {
function getRandomIntInclusive(min, max) {
min = Math.ceil(min);
max = Math.floor(max);
- return Math.floor(Math.random() * (max - min + 1) + min); //The maximum is inclusive and the minimum is inclusive
+ return Math.floor(Math.random() * (max - min + 1) + min); // 上限を含み、下限も含む
}
```
diff --git a/files/ja/web/javascript/reference/global_objects/object/isfrozen/index.md b/files/ja/web/javascript/reference/global_objects/object/isfrozen/index.md
index ef53d040f6e1fb..f364edf3376510 100644
--- a/files/ja/web/javascript/reference/global_objects/object/isfrozen/index.md
+++ b/files/ja/web/javascript/reference/global_objects/object/isfrozen/index.md
@@ -28,7 +28,7 @@ Object.isFrozen(obj)
## 解説
-お武衛ジェクトが凍結状態 (frozen) とは、オブジェクトが[拡張可能](/ja/docs/Web/JavaScript/Reference/Global_Objects/Object/isExtensible)ではなく、すべてのプロパティは構成不可であり、そしてすべてのデータプロパティ(これはゲッターやセッターコンポーネントを持つアクセサープロパティ以外のものを指します)が書き込み不可である場合です。
+オブジェクトが凍結状態 (frozen) とは、オブジェクトが[拡張可能](/ja/docs/Web/JavaScript/Reference/Global_Objects/Object/isExtensible)ではなく、すべてのプロパティは構成不可であり、そしてすべてのデータプロパティ(これはゲッターやセッターコンポーネントを持つアクセサープロパティ以外のものを指します)が書き込み不可である場合です。
## 例
diff --git a/files/ja/web/javascript/reference/global_objects/promise/index.md b/files/ja/web/javascript/reference/global_objects/promise/index.md
index cce038ca61b212..a87a67b3e9af30 100644
--- a/files/ja/web/javascript/reference/global_objects/promise/index.md
+++ b/files/ja/web/javascript/reference/global_objects/promise/index.md
@@ -2,7 +2,7 @@
title: Promise
slug: Web/JavaScript/Reference/Global_Objects/Promise
l10n:
- sourceCommit: effd5de5e42bfe045c3bf44b2d7b14f4d6146785
+ sourceCommit: 10b342385644e822d123694ad3bc8c2ca9abb2dc
---
{{JSRef}}
@@ -28,7 +28,7 @@ l10n:
![プロミスの状態が、then/catch ハンドラーによって、待機、履行、拒否の各状態の間でどのように遷移するかを示す流れ図です。待機中のプロミスは、履行されるか拒否されるかのどちらかになります。履行された場合、 "on fulfillment" ハンドラー、つまり then() メソッドの最初の引数が実行され、さらなる非同期アクションが実行されます。拒否された場合、 then() メソッドの 2 つ目の引数として、または catch() メソッドの唯一の引数として渡されるエラーハンドラーが実行されます。](promises.png)
-また、プロミスでは _resolved_ という用語が使用されることもあります。これは、プロミスが他のプロミスの最終的な状態と一致するように決定または「ロックイン」され、さらに解決または拒否しても何の影響もないことを意味します。元のプロミスの提案の [States and fates](https://github.com/domenic/promises-unwrapping/blob/master/docs/states-and-fates.md) の記事には、プロミスの用語についてのより詳細な説明があります。口語的には、「解決された」プロミスは「履行された」プロミスとよく同等に扱われますが、 "States and fates" で示しているように、解決されたプロミスは待機になったり拒否されたりすることもあります。次の例を参照してください。
+また、プロミスでは解決 (_resolved_) という用語が使用されることもあります。これは、プロミスが他のプロミスの最終的な状態と一致するように決定または「ロックイン」され、さらに解決または拒否しても何の影響もないことを意味します。元のプロミスの提案の [States and fates](https://github.com/domenic/promises-unwrapping/blob/master/docs/states-and-fates.md) の記事には、プロミスの用語についてのより詳細な説明があります。口語的には、「解決された」プロミスは「履行された」プロミスとよく同等に扱われますが、 "States and fates" で示しているように、解決されたプロミスは待機状態になったり拒否されたりすることもあります。次の例を参照してください。
```js
new Promise((resolveOuter) => {
@@ -63,7 +63,7 @@ myPromise
.then(handleFulfilledC, handleRejectedC);
```
-`.then()` に Promise オブジェクトを返すコールバック関数がない場合でも、連鎖の次のリンクへと処理が進みます。したがって、連鎖では最後の `.catch()` まで、すべての*拒否*のコールバック関数を省略しても安全です。
+`.then()` にコールバック関数がない場合でも、連鎖の次のリンクへと処理が進みます。したがって、連鎖では最後の `.catch()` まで、すべての*拒否*のコールバック関数を省略しても安全です。
それぞれの `.then()` で拒否されたプロミスを扱うと、プロミスの連鎖のさらに先に影響を及ぼします。エラーを直ちに処理しなければならないため、選択の余地がない場合もあります。このような場合には、連鎖的にエラー状態を維持するために、何らかの種類のエラーを発生させる必要があります。一方で、緊急の必要性がない場合は、最後の `.catch()` ステートメントまでエラー処理を行わない方がシンプルです。 `.catch()` は、実際には、単なる `.then()` からプロミスが履行されたときのためのコールバック関数のスロットを抜いたものです。
@@ -153,7 +153,7 @@ Promise.resolve(aThenable); // プロミスは 42 で履行
### プロミスの並行処理
-`Promise` クラスは,非同期タスクの[並行処理](https://en.wikipedia.org/wiki/Concurrent_computing)を容易にするために、4 つの静的メソッドを提供しています。
+`Promise` クラスは,非同期タスクの[並行処理](https://ja.wikipedia.org/wiki/並行計算)を容易にするために、4 つの静的メソッドを提供しています。
- {{jsxref("Promise.all()")}}
- : **すべて**のが履行されたときに履行され、**いずれか**のプロミスが拒否されると拒否される。
@@ -166,7 +166,7 @@ Promise.resolve(aThenable); // プロミスは 42 で履行
これらのメソッドはすべて、プロミスの[反復可能](/ja/docs/Web/JavaScript/Reference/Iteration_protocols#反復可能プロトコル)オブジェクト(正確には [Thenable](#thenable))を受け取り、新しいプロミスを返します。これらはすべてサブクラス化に対応しています。つまり、 `Promise` のサブクラスに対して呼び出すことができ、その結果はサブクラスの種類を持つプロミスになります。そのためには、サブクラスのコンストラクターに [`Promise()`](/ja/docs/Web/JavaScript/Reference/Global_Objects/Promise/Promise) と同じ定義を実装する必要があります。すなわち、単一の `executor` 関数を取り、これが `resolve` と `reject` コールバック関数を引数として取るようにします。また、サブクラスには静的メソッドの `resolve` も必要です。これは {{jsxref("Promise.resolve()")}} のように呼び出すことができ、値をプロミスに解決するためのメソッドです。
-JavaScript はもともと[シングルスレッド](/ja/docs/Glossary/Thread)なので、指定された瞬間には 1 つのタスクしか実行されませんが、異なるプロミス間で制御が移り、プロミスの実行が同時に行われるように見えることがあることに注意してください。JavaScript で[並列実行](https://ja.wikipedia.org/wiki/並列計算)を行うには、[ワーカースレッド](/ja/docs/Web/API/Web_Workers_API)を使うしかありません。
+JavaScript はもともと[シングルスレッド](/ja/docs/Glossary/Thread)なので、異なるプロミス間で制御が移り、プロミスの実行が同時に行われるように見えても、指定された瞬間には 1 つのタスクしか実行されないことに注意してください。JavaScript で[並列実行](https://ja.wikipedia.org/wiki/並列計算)を行うには、[ワーカースレッド](/ja/docs/Web/API/Web_Workers_API)を使うしかありません。
## コンストラクター
@@ -181,7 +181,7 @@ JavaScript はもともと[シングルスレッド](/ja/docs/Glossary/Thread)
## 静的メソッド
- {{jsxref("Promise.all()")}}
- - : 入力としてプロミスの反復可能オブジェクトを受け取り、単一の `Promise` を返します。この返されたプロミスは、入力さ れたプロミスがすべて履行されたとき(空の反復可能オブジェクトが渡されたときを含める)に、履行された値の配列で履行されます。入力のプロミスのいずれかが拒否されると、この最初の拒否理由によって拒否されます。
+ - : 入力としてプロミスの反復可能オブジェクトを受け取り、単一の `Promise` を返します。この返されたプロミスは、入力されたプロミスがすべて履行されたとき(空の反復可能オブジェクトが渡されたときを含める)に、履行された値の配列で履行されます。入力のプロミスのいずれかが拒否されると、この最初の拒否理由によって拒否されます。
- {{jsxref("Promise.allSettled()")}}
- : 入力としてプロミスの反復可能オブジェクトを受け取り、単一の `Promise` を返します。この返されたプロミスは、入力のプロミスがすべて決定されたときに履行されます(空の反復可能オブジェクトが渡された場合を含む)。
- {{jsxref("Promise.any()")}}
@@ -192,6 +192,8 @@ JavaScript はもともと[シングルスレッド](/ja/docs/Glossary/Thread)
- : 与えられた理由で拒否された新しい `Promise` オブジェクトを返します。
- {{jsxref("Promise.resolve()")}}
- : 与えられた値で解決された `Promise` オブジェクトを返します。もし値が Thenable (つまり `then` メソッドを持っているオブジェクト)ならば、返されるプロミスはその Thenable をたどり、その結果を採用します。そうでなければ、返されるプロミスは与えられた値で履行されます。
+- {{jsxref("Promise.withResolvers()")}}
+ - : {{jsxref("Promise/Promise", "Promise()")}} コンストラクターの実行側に渡された 2 つの引数に対応する、新しい `Promise` オブジェクトとそれを解決または拒否する 2 つの関数を格納したオブジェクトを返します。
## インスタンスプロパティ
@@ -218,17 +220,17 @@ JavaScript はもともと[シングルスレッド](/ja/docs/Glossary/Thread)
```js
const myFirstPromise = new Promise((resolve, reject) => {
- // We call resolve(...) when what we were doing asynchronously was successful, and reject(...) when it failed.
- // In this example, we use setTimeout(...) to simulate async code.
- // In reality, you will probably be using something like XHR or an HTML API.
+ // resolve(...) は、非同期で行っていたことが成功したときに呼び出し、失敗したときには reject(...) を呼び出します。
+ // この例では、setTimeout(...) を使用して非同期コードをエミュレーションしています。
+ // 実際には、XHR や HTML API のようなものを使用することになります。
setTimeout(() => {
- resolve("Success!"); // Yay! Everything went well!
+ resolve("成功!"); // やった!うまくいった!
}, 250);
});
myFirstPromise.then((successMessage) => {
- // successMessage is whatever we passed in the resolve(...) function above.
- // It doesn't have to be a string, but if it is only a succeed message, it probably will be.
+ // successMessage は上記の resolve(...) 関数に渡されたものになる。
+ // 文字列とは限らないが、成功メッセージだけであれば、おそらくそうなる。
console.log(`Yay! ${successMessage}`);
});
```
@@ -244,8 +246,8 @@ myFirstPromise.then((successMessage) => {
このコードは NodeJS で実行できます。実際にエラーが発生しているのを見ることで理解度が高まります。より多くのエラーを強制的に発生させるには、 `threshold` の値を変更してください。
```js
-// To experiment with error handling, "threshold" values cause errors randomly
-const THRESHOLD_A = 8; // can use zero 0 to guarantee error
+// エラー処理が経験できるように、"threshold" はランダムにエラーを発生させる。
+const THRESHOLD_A = 8; // 0 をエラーとして使用するため
function tetheredGetNumber(resolve, reject) {
setTimeout(() => {
@@ -265,7 +267,7 @@ function determineParity(value) {
}
function troubleWithGetNumber(reason) {
- const err = new Error("Trouble getting number", { cause: reason });
+ const err = new Error("数値の取得に失敗しました", { cause: reason });
console.error(err);
throw err;
}
@@ -291,17 +293,17 @@ new Promise(tetheredGetNumber)
})
.catch((reason) => {
if (reason.cause) {
- console.error("Had previously handled error");
+ console.error("以前扱ったエラーがあります");
} else {
- console.error(`Trouble with promiseGetWord(): ${reason}`);
+ console.error(`promiseGetWord() に失敗: ${reason}`);
}
})
- .finally((info) => console.log("All done"));
+ .finally((info) => console.log("完了しました"));
```
### 高度な例
-以下の例は `Promise` の仕組みを示したものです。 `testPromise()` メソッドは {{HTMLElement("button")}} をクリックする度に呼び出されます。`testPromise()` メソッドは、 {{domxref("setTimeout()")}} を用いて、 1 秒から 3 秒のランダムな時間の後、メソッドがこれまでに呼ばれた回数で履行されるプロミスを作成します。 `Promise()` コンストラクターを使用してプロミスを生成します。
+以下の例は `Promise` の仕組みを示したものです。 `testPromise()` メソッドは {{HTMLElement("button")}} をクリックする度に呼び出されます。これは、{{domxref("setTimeout()")}} を用いて、 1 秒から 3 秒のランダムな時間の後、メソッドがこれまでに呼ばれた回数で履行されるプロミスを作成します。 `Promise()` コンストラクターを使用してプロミスを生成します。
プロミスが履行されたことは、 {{jsxref("Promise/then", "p1.then()")}} で設定されたコールバックによって記録されます。この記録から、メソッドの同期処理部分が、プロミスによる非同期処理からどのように分離されているかがわかります。
@@ -366,7 +368,7 @@ btn.addEventListener("click", testPromise);
### XHR による画像の読み込み
-`Promise` と {{domxref("XMLHttpRequest")}} で画像を読み込む別の例は、 MDN の GitHub の [js-examples](https://github.com/mdn/js-examples/tree/master/promises-test) リポジトリーにあり、[動作を確認する](https://mdn.github.io/js-examples/promises-test/)ことができます。それぞれの行のコメントで Promise と XHR の構造がよくわかるはずです。
+`Promise` と {{domxref("XMLHttpRequest")}} で画像を読み込む別の例は、 MDN の GitHub の [js-examples](https://github.com/mdn/js-examples/tree/main/promises-test) リポジトリーにあり、[動作を確認する](https://mdn.github.io/js-examples/promises-test/)ことができます。それぞれの行のコメントで Promise と XHR の構造がよくわかるはずです。
### 現行の設定オブジェクトの追跡
@@ -451,5 +453,5 @@ btn.addEventListener("click", testPromise);
- [`Promise` のポリフィル (`core-js`)](https://github.com/zloirock/core-js#ecmascript-promise)
- [プロミスの使用](/ja/docs/Web/JavaScript/Guide/Using_promises)ガイド
- [Promises/A+ specification](https://promisesaplus.com/)
-- [JavaScript Promises: an introduction](https://web.dev/promises/) (web.dev, 2013)
+- [JavaScript Promises: an introduction](https://web.dev/articles/promises) (web.dev, 2013)
- [Callbacks, Promises, and Coroutines: Asynchronous Programming Patterns in JavaScript](https://www.slideshare.net/domenicdenicola/callbacks-promises-and-coroutines-oh-my-the-evolution-of-asynchronicity-in-javascript) Domenic Denicola によるスライドショー (2011)
diff --git a/files/ja/web/javascript/reference/global_objects/promise/withresolvers/index.md b/files/ja/web/javascript/reference/global_objects/promise/withresolvers/index.md
new file mode 100644
index 00000000000000..c7206491ec63a7
--- /dev/null
+++ b/files/ja/web/javascript/reference/global_objects/promise/withresolvers/index.md
@@ -0,0 +1,109 @@
+---
+title: Promise.withResolvers()
+slug: Web/JavaScript/Reference/Global_Objects/Promise/withResolvers
+l10n:
+ sourceCommit: 6af0c0d0b640e756765976ad854f4cc64c2f911c
+---
+
+{{JSRef}}
+
+**`Promise.withResolvers()`** 静的メソッドは、新しい {{jsxref("Promise")}} オブジェクトと、{{jsxref("Promise/Promise", "Promise()")}} コンストラクターの実行子に渡す 2 つの引数に対応する、解決または拒否の 2 つの関数を含むオブジェクトを返します。
+
+## 構文
+
+```js-nolint
+Promise.withResolvers()
+```
+
+### 引数
+
+なし。
+
+### 返値
+
+以下のプロパティを格納するプレーンオブジェクトです。
+
+- `promise`
+ - : {{jsxref("Promise")}} オブジェクトです。
+- `resolve`
+ - : プロミスが解決されたときの関数です。意味付けについては {{jsxref("Promise/Promise", "Promise()")}} コンストラクターのリファレンスを参照してください。
+- `reject`
+ - : プロミスが拒否されたときの関数です。意味付けについては {{jsxref("Promise/Promise", "Promise()")}} コンストラクターのリファレンスを参照してください。
+
+## 解説
+
+`Promise.withResolvers()` は以下のコードと全く同じです。
+
+```js
+let resolve, reject;
+const promise = new Promise((res, rej) => {
+ resolve = res;
+ reject = rej;
+});
+```
+
+ただし、より簡潔であり、{{jsxref("Statements/let", "let")}} を使用する必要はありません。
+
+`Promise.withResolvers()` を使用する場合の主な違いは、解決関数や拒否関数を実行環境で一度ずつ作成して使用するのではなく、プロミス自身と同じスコープで使用することです。これにより、特にストリームやキューで繰り返し発生するイベントに使用する場合など、より高度な用途が可能になります。また、これは一般的に、実行環境内で多くのロジックをラップするよりも入れ子が少なくなります。
+
+`Promise.withResolvers()` は汎用的であり、サブクラスに対応しています。つまり、`Promise` のサブクラスで呼び出すことができ、その結果にはサブクラスの型のプロミスが格納されます。そのためには、サブクラスのコンストラクターは [`Promise()`](/ja/docs/Web/JavaScript/Reference/Global_Objects/Promise/Promise) コンストラクターと同じシグネチャを実装する必要があります。`resolve` と `reject` コールバックを引数として呼び出される単一の実行関数を受け入れます。
+
+## 例
+
+### ストリームを非同期反復可能オブジェクトに変換
+
+`Promise.withResolvers()` の使用する用途は、プロミスの実行環境内にラップできないイベントリスナーによって解決または拒否されたプロミスがある場合です。次の例は、Node.js の[読み取り可能なストリーム](https://nodejs.org/api/stream.html#class-streamreadable)を[非同期反復可能オブジェクト](/ja/docs/Web/JavaScript/Reference/Statements/async_function*)に変換します。ここでの各プロミスは利用できるデータの単一のバッチを表し、現在のバッチが読み込まれるたびに、次のバッチのために新しいプロミスが作成されます。イベントリスナーは一度しかアタッチされませんが、実際には毎回、`resolve` 関数と `reject` 関数の異なるバージョンを呼び出していることに注意してください。
+
+```js
+async function* readableToAsyncIterable(stream) {
+ let { promise, resolve, reject } = Promise.withResolvers();
+ stream.on("error", (error) => reject(error));
+ stream.on("end", () => resolve());
+ stream.on("readable", () => resolve());
+
+ while (stream.readable) {
+ await promise;
+ let chunk;
+ while ((chunk = stream.read())) {
+ yield chunk;
+ }
+ ({ promise, resolve, reject } = Promise.withResolvers());
+ }
+}
+```
+
+### Promise 以外のコンストラクターに対する withResolvers() の呼び出し
+
+`Promise.withResolvers()` は汎用メソッドです。これは `Promise()` コンストラクターと同じシグネチャを実装した任意のコンストラクターで呼び出すことができます。例えば、 `console.log` を `resolve` と `reject` 関数として `executor` に渡すコンストラクターに対して呼び出すことができます。
+
+```js
+class NotPromise {
+ constructor(executor) {
+ // "resolve" 関数と "reject" 関数はネイティブのプロミスと同じような
+ // 振る舞いはしませんが、Promise.withResolvers() はそれらをそのまま返します。
+ executor(
+ (value) => console.log("Resolved", value),
+ (reason) => console.log("Rejected", reason),
+ );
+ }
+}
+
+const { promise, resolve, reject } = Promise.withResolvers.call(NotPromise);
+resolve("hello");
+// Logs: Resolved hello
+```
+
+## 仕様書
+
+{{Specifications}}
+
+## ブラウザーの互換性
+
+{{Compat}}
+
+## 関連情報
+
+- [`Promise.withResolvers` のポリフィル (`core-js`)](https://github.com/zloirock/core-js#promisewithresolvers)
+- [プロミスの使用](/ja/docs/Web/JavaScript/Guide/Using_promises)ガイド
+- {{jsxref("Promise")}}
+- [`Promise()` コンストラクター](/ja/docs/Web/JavaScript/Reference/Global_Objects/Promise/Promise)
diff --git a/files/ja/web/javascript/reference/global_objects/symbol/index.md b/files/ja/web/javascript/reference/global_objects/symbol/index.md
index 2640de00bbf1d5..b222c8d3d5a843 100644
--- a/files/ja/web/javascript/reference/global_objects/symbol/index.md
+++ b/files/ja/web/javascript/reference/global_objects/symbol/index.md
@@ -3,6 +3,8 @@ title: Symbol (シンボル)
slug: Web/JavaScript/Reference/Global_Objects/Symbol
---
+{{JSRef}}
+
{{Glossary("JavaScript")}} では、シンボルは{{Glossary("Primitive", "プリミティブ値")}}です。
**Symbol** データ型を持つ値は「シンボル値」として見ることができます。 JavaScript の実行時環境では、シンボル値は {{jsxref("Symbol")}} 関数を呼び出すことで生成され、動的に無名の一意の値を生み出します。シンボルはオブジェクトプロパティとして使用されることがあります。
diff --git a/files/ja/web/javascript/reference/lexical_grammar/index.md b/files/ja/web/javascript/reference/lexical_grammar/index.md
index 2990094f25408a..2a6dd9171a2e7a 100644
--- a/files/ja/web/javascript/reference/lexical_grammar/index.md
+++ b/files/ja/web/javascript/reference/lexical_grammar/index.md
@@ -2,12 +2,12 @@
title: 字句文法
slug: Web/JavaScript/Reference/Lexical_grammar
l10n:
- sourceCommit: f979062e46775350f739d13459a178d7402d6d8a
+ sourceCommit: 41cddfdaeed4a73fb8234c332150df8e54df31e9
---
-{{JsSidebar("More")}}
+{{jsSidebar("More")}}
-このページでは、 JavaScript での字句文法を説明します。JavaScript のソーステキストは、単なる文字の列です。これをインタープリターに理解させるためには、文字列をより構造化された表現に解釈させる必要があります。構文解析の最初の手順は[字句解析](https://ja.wikipedia.org/wiki/字句解析)と呼ばれ、テキストを左から右へスキャンして、個々の原子的な入力要素の列に変換します。一部の入力要素はインタープリターにとって重要ではないので、この手順の後で取り除かれます。制御文字、行の終端文字、[ホワイトスペース](/ja/docs/Glossary/Whitespace)、コメントがそれに該当します。識別子や句読点などの他にも、更なる構文解析のために使用されます。 ECMAScript はまた、特定のキーワードとリテラルを定義し、特定の無効なトークン列を有効にするためにセミコロンを自動的に挿入する規則を持っています。
+このページでは、 JavaScript での字句文法を説明します。JavaScript のソーステキストは、単なる文字の列です。これをインタープリターに理解させるためには、文字列をより構造化された表現に解釈させる必要があります。構文解析の最初の手順は[字句解析](https://ja.wikipedia.org/wiki/字句解析)と呼ばれ、テキストを左から右へスキャンして、個々の原子的な入力要素の列に変換します。一部の入力要素、例えば[ホワイトスペース](#ホワイトスペース)や[コメント](#コメント)はインタープリターにとって重要ではないので、この手順の後で取り除かれます。それ以外の、例えば[識別子](#識別子)、[キーワード](#キーワード)、[リテラル](#リテラル)、区切り記号(主に[演算子](/ja/docs/Web/JavaScript/Reference/Operators))は、その後の構文解析に使用します。[改行文字](#改行文字)や複数行のコメントも構文的には重要ではありませんが、不正なトークン列を有効にするために[自動セミコロン挿入](#自動セミコロン挿入)の処理のガイドとなります。
## 書式化制御文字
@@ -19,7 +19,7 @@ l10n:
| U+200D | Zero width joiner | \ | 特定の言語において、通常は接合されない文字を、接合した形を使用して文字を表示するために文字間に配置されます。 ([Wikipedia](https://ja.wikipedia.org/wiki/ゼロ幅接合子)) |
| U+FEFF | Byte order mark | \ | 記述の先頭において、 Unicode を使用することと、そのテキストのバイト順をマークします。 ([Wikipedia](https://ja.wikipedia.org/wiki/バイト順マーク)). |
-JavaScriptのソーステキストでは、 \ と \ は識別子部分として扱われ、 \ (テキストの先頭にない場合はゼロ幅のノーブレークスペース \ とも呼ばれます)は空白部分として扱われます。
+JavaScriptのソーステキストでは、 \ と \ は[識別子](#識別子)部分として扱われ、 \ (テキストの先頭にない場合はゼロ幅のノーブレークスペース \ とも呼ばれます)は[ホワイトスペース](#ホワイトスペース)として扱われます。
## ホワイトスペース
@@ -33,17 +33,19 @@ JavaScriptのソーステキストでは、 \ と \ は識別子部
| U+0020 | 空白 | \ | 通常の空白 | |
| U+00A0 | ノーブレークスペース | \ | 通常の空白だが、改行を行ってよい位置ではない | |
| U+FEFF | ゼロ幅ノーブレークスペース | \ | When not at the start of a script, the BOM marker is a normal whitespace character. | |
-| Others | 他の Unicode の空白文字 | \ | ["Space_Separator" 一般カテゴリーの文字][space separator set] | |
+| その他 | 他の Unicode の空白文字 | \ | ["Space_Separator" 一般カテゴリーの文字][space separator set] | |
[space separator set]: https://util.unicode.org/UnicodeJsps/list-unicodeset.jsp?a=%5Cp%7BGeneral_Category%3DSpace_Separator%7D
> **メモ:** ["White_Space" プロパティがあるが "Space_Separator" 一般カテゴリーにない文字](https://util.unicode.org/UnicodeJsps/list-unicodeset.jsp?a=%5Cp%7BWhite_Space%7D%26%5CP%7BGeneral_Category%3DSpace_Separator%7D)のうち、 U+0009, U+000B, U+000C は JavaScript でもホワイトスペースとして扱われ、 U+0085 NEXT LINE は特別な役割を持たず、他にも[改行文字](#改行文字)の集合となるものがあります。
-> **メモ:** JavaScript エンジンで使用される Unicode 規格が変更されると、プログラムの動作に影響を与える可能性があります。例えば、 ES2016 では参照する Unicode 規格が 5.1 から 8.0.0 にアップグレードされ、その影響で U+180E MONGOLIAN VOWEL SEPARATOR が "Space_Separator" カテゴリから「書式化(Cf)」カテゴリに移動し、空白でなくなっています。その結果、" \u180E".trim().length の結果が 0 から 1 に変更されました。
+> **メモ:** JavaScript エンジンで使用される Unicode 規格が変更されると、プログラムの動作に影響を与える可能性があります。例えば、 ES2016 では参照する Unicode 規格が 5.1 から 8.0.0 にアップグレードされ、その影響で U+180E MONGOLIAN VOWEL SEPARATOR が "Space_Separator" カテゴリーから「書式化(Cf)」カテゴリーに移動し、空白でなくなっています。その結果、" \u180E".trim().length の結果が 0 から 1 に変更されました。
## 改行文字
-[ホワイトスペース](/ja/docs/Glossary/Whitespace)文字に加えて、改行文字もソースのテキストの読みやすさを改善するために使用されます。しかし、改行文字は JavaScript の実行に影響を与える場合があり、禁止されている場所もいくらかあります。改行文字は[自動セミコロン挿入](#自動セミコロン挿入)の処理にも影響を与えます。改行文字は[正規表現](/ja/docs/Web/JavaScript/Guide/Regular_Expressions)の `\s` クラスに一致します。
+[ホワイトスペース](#ホワイトスペース)文字に加えて、改行文字もソースのテキストの読みやすさを改善するために使用されます。しかし、改行文字は JavaScript の実行に影響を与える場合があり、禁止されている場所もいくらかあります。改行文字は[自動セミコロン挿入](#自動セミコロン挿入)の処理にも影響を与えます。
+
+字句文法のコンテキスト以外では、ホワイトスペースと改行文字はしばしば同一視されます。例えば、{{jsxref("String.prototype.trim()")}} は文字列の最初と最後からすべてのホワイトスペースと改行文字を除去します。正規表現における `\s` [文字クラスエスケープ](/ja/docs/Web/JavaScript/Guide/Regular_expressions/Character_classes)は、すべてのホワイトスペースと改行文字に一致します。
以下の Unicode コードポイントのみが ECMAScript では改行文字として扱われ、他の改行文字はホワイトスペースとして扱われます (例えば、次の行、 NEL、 U+0085 はホワイトスペースと見なされます)。
@@ -110,13 +112,15 @@ comment("world");
```js
function comment() {
- /* console.log('Hello world!'); */
+ /* console.log("Hello world!"); */
}
comment();
```
この場合、 `console.log()` の呼び出しはコメント内部にあるので、実行されることはありません。何行分のコードであっても、このようにして無効にすることができます。
+少なくとも 1 つの[改行文字](#改行文字)を含むブロックコメントは、[自動セミコロン挿入](#自動セミコロン挿入)において改行文字のように動作します。
+
### ハッシュバンコメント
特別な 3 つ目のコメント構文として**ハッシュバンコメント**があります。ハッシュバンコメントは、 `#!` で始まることと、**スクリプトやモジュールの絶対的な開始位置でのみ有効であること**を除いて、単一の行のみ (`//`) のコメントと全く同じように動作します。なお、 `#!` の前にはいかなる種類の空白も許されないことにも注意してください。コメントは `#!` 以降の最初の行の終わりまでのすべての文字で構成され、このようなコメントは 1 つだけ許可されます。
@@ -131,7 +135,7 @@ console.log("Hello world");
JavaScript インタープリターはこれを通常のコメントとして扱います。スクリプトが直接シェルで実行された場合のみ、シェルに対して意味を持ちます。
-> **警告:** スクリプトをシェル環境で直接実行できるようにしたい場合は、 [BOM](https://ja.wikipedia.org/wiki/バイト順マーク) のない UTF-8 でエンコードしてください。ハッシュバンコメントの前に BOM があってもブラウザーでは動作しますが、ハッシュバンのあるスクリプトで BOM を使用することは推奨されていません。 BOM は Unix/Linux のシェル環境でスクリプトを実行しようとすると動作しません。したがって、シェル環境から直接スクリプトを実行したい場合は BOM のない UTF-8 を使用してください。
+> **警告:** スクリプトをシェル環境で直接実行できるようにしたい場合は、 [BOM](https://ja.wikipedia.org/wiki/バイト順マーク) のない UTF-8 でエンコードしてください。ブラウザーで実行するコードでは BOM は何の問題も起こしませんが - UTF-8 デコードの際、ソーステキストが解析される前に取り除かれるからです - Unix/Linux のシェルでは、BOM 文字が前にあるとハッシュバンを認識しません。
`#!` の形のコメントは JavaScript インタープリターを指定するためにだけ使用してください。他の用途ではすべて `//` のコメント(または複数行コメント)を使用してください。
@@ -143,14 +147,14 @@ _識別子_ は、値と名前をリンクさせるために使用されます
const decl = 1; // 変数宣言(`let` または `var` も可)
function fn() {} // 関数宣言
const obj = { key: "value" }; // オブジェクトキー
+// クラス宣言
class C {
- // クラス宣言
#priv = "value"; // プライベートプロパティ
}
lbl: console.log(1); // ラベル
```
-JavaScript では、識別子は一般的に英数字、アンダースコア (`_`)、ドル記号 (`$`) で構成されます。識別子は数字で始めることはできません。しかし、JavaScript で使用できる識別子は ASCII だけではなく、ほとんどの Unicode コードポイントも使用可能です。
+JavaScript では、識別子は一般的に英数字、アンダースコア (`_`)、ドル記号 (`$`) で構成されます。識別子は数字で始めることはできません。しかし、JavaScript で使用できる識別子は {{Glossary("ASCII")}} だけではなく、ほとんどの Unicode コードポイントも使用可能です。つまり、識別子は [ID_Start](https://util.unicode.org/UnicodeJsps/list-unicodeset.jsp?a=%5Cp%7BID_Start%7D) カテゴリーにある文字で始めることができ、[ID_Continue](https://util.unicode.org/UnicodeJsps/list-unicodeset.jsp?a=%5Cp%7BID_Continue%7D) カテゴリーにある文字は先頭文字の後に置くことができます。
> **メモ:** もし何らかの理由で JavaScript のソースを自分で解析する必要がある場合、すべての識別子が `/[A-Za-z_$][\w$]*/` のパターンに従っている(つまり ASCII のみ)と仮定しないでください。 識別子の範囲は正規表現 `/[$_p{ID_Start}][$u200cu200dp{ID_Continue}]*/u` (Unicodeエスケープシーケンスを除く) で記述することができます。
@@ -163,7 +167,7 @@ console.log(\u4f60\u597d); // Hello
すべての場所で、すべての範囲の識別子が受け入れられるわけではありません。関数宣言、関数式、変数宣言などの特定の構文では、[予約語](#予約語)でない識別子名を使用する必要があります。
-```js example-bad
+```js-nolint example-bad
function import() {} // 違反: import は予約語です。
```
@@ -184,7 +188,7 @@ _キーワード_ は識別子のように見えますが、 JavaScript で特
識別子は常に _文字列値_ で比較されるため、エスケープシーケンスは解釈されます。例えば、このような場合も構文エラーとなります。
-```js example-bad
+```js-nolint example-bad
const els\u{65} = 1;
// `els\u{65}` encodes the same identifier as `else`
```
@@ -206,7 +210,7 @@ const els\u{65} = 1;
- {{jsxref("Statements/if...else", "else")}}
- {{jsxref("Statements/export", "export")}}
- [`extends`](/ja/docs/Web/JavaScript/Reference/Classes/extends)
-- `false`
+- [`false`](#論理値リテラル)
- {{jsxref("Statements/try...catch", "finally")}}
- {{jsxref("Statements/for", "for")}}
- {{jsxref("Statements/function", "function")}}
@@ -221,7 +225,7 @@ const els\u{65} = 1;
- {{jsxref("Statements/switch", "switch")}}
- {{jsxref("Operators/this", "this")}}
- {{jsxref("Statements/throw", "throw")}}
-- `true`
+- [`true`](#論理値リテラル)
- {{jsxref("Statements/try...catch", "try")}}
- {{jsxref("Operators/typeof", "typeof")}}
- {{jsxref("Statements/var", "var")}}
@@ -256,7 +260,7 @@ const els\u{65} = 1;
- `protected`
- `public`
-#### 旧仕様にあった今後の予約キーワード
+#### 旧仕様書にあった今後の予約キーワード
以前の ECMAScript の仕様書 (ECMAScript 1 から 3 まで) では、以下のものが将来のキーワードとして予約されています。
@@ -292,21 +296,23 @@ const els\u{65} = 1;
## リテラル
+> **メモ:** この節では、不可分なトークンであるリテラルについて説明します。[オブジェクトリテラル](/ja/docs/Web/JavaScript/Reference/Operators/Object_initializer)や[配列リテラル](/ja/docs/Web/JavaScript/Reference/Global_Objects/Array/Array#配列リテラル記法)は、一連のトークンで構成される[式](/ja/docs/Web/JavaScript/Reference/Operators)です。
+
### Null リテラル
-詳細については [`null`](/ja/docs/Web/JavaScript/Reference/Operators/null) をご覧ください。
+詳細については [`null`](/ja/docs/Web/JavaScript/Reference/Operators/null) を参照してください。
-```js
-null;
+```js-nolint
+null
```
### 論理値リテラル
-詳細については[論理型](/ja/docs/Web/JavaScript/Data_structures#論理型)をご覧ください。
+詳細については[論理型](/ja/docs/Web/JavaScript/Data_structures#論理型)を参照してください。
-```js
-true;
-false;
+```js-nolint
+true
+false
```
### 数値リテラル
@@ -315,76 +321,76 @@ false;
#### 10 進数
-```js
-1234567890;
-42;
-
-// 先頭にゼロがあるものを使用する場合は注意してください
-0888; // 888 は 10 進数として解釈されます
-0777; // 8 進数として解釈され、 10 進数では 511 です。
+```js-nolint
+1234567890
+42
```
-なお、 10 進数リテラルはゼロ (`0`) から始め、他の 10 進数の数字を続けることができますが、 `0` に続く数字がすべて 8 より小さい場合は、その数値が 8 進数として解釈されることに注意してください。さらに、接頭辞 `0` を持つ数値リテラルは、 8 進数として解釈しても 10 進数として解釈しても、厳格モードでは構文エラーが発生します。ですから、代わりに `0o` 接頭辞を使用してください。
+10 進数リテラルをゼロ (`0`) から始め、他の 10 進数の数字を続けることができますが、 `0` に続く数字がすべて 8 より小さい場合は、その数値が 8 進数として解釈されることに注意してください。さらに、接頭辞 `0` を持つ数値リテラルは、 8 進数と 10 進数のどちらで解釈しても、[厳格モード](/ja/docs/Web/JavaScript/Reference/Strict_mode#古い_8_進数リテラル)では構文エラーが発生します。ですから、代わりに `0o` 接頭辞を使用してください。
+
+```js-nolint example-bad
+0888 // 888 は 10 進数として解釈されます
+0777 // 8 進数として解釈され、 10 進数では 511 です。
+```
##### 指数
10 進数の指数リテラルは、 `beN` の書式で指定します。ここで `b` は基数(整数または浮動小数点)、その後に `e` 文字(セパレーターまたは指数記号として機能)、そして `N` は*指数*または*べき乗数* - 符号付き整数です(2019 ECMA-262 仕様に従います)。
-```js
-0e-5; // 0
-0e5; // 0
-5e1; // 50
-175e-2; // 1.75
-1e3; // 1000
-1e-3; // 0.001
-1e3; // 1000
+```js-nolint
+0e-5 // 0
+0e+5 // 0
+5e1 // 50
+175e-2 // 1.75
+1e3 // 1000
+1e-3 // 0.001
+1E3 // 1000
```
#### 2 進数
-2進数の構文は、先頭のゼロに続いて小文字または大文字のラテン文字 "B" を使用します (`0b` または `0B`)。 `0b` の後の数字が 0 または 1 でない場合は、 {{jsxref("SyntaxError")}} が "Missing binary digits after 0b" の内容で発生します。
+2 進数の構文は、先頭のゼロに続いて小文字または大文字のラテン文字 "B" を使用します (`0b` または `0B`)。`0o` の後に 0 または 1 以外の文字があると、一連のリテラルは終了します。
-```js
-const FLT_SIGNBIT = 0b10000000000000000000000000000000; // 2147483648
-const FLT_EXPONENT = 0b01111111100000000000000000000000; // 2139095040
-const FLT_MANTISSA = 0b00000000011111111111111111111111; // 8388607
+```js-nolint
+0b10000000000000000000000000000000 // 2147483648
+0b01111111100000000000000000000000 // 2139095040
+0B00000000011111111111111111111111 // 8388607
```
#### 8 進数
-8進数の構文は、先頭のゼロに続いて小文字または大文字のラテン文字 "O" を使用します (`0o` または `0O`)。 `0o` の後の数字が範囲 (01234567) 外の場合、 {{jsxref("SyntaxError")}} が "Missing octal digits after 0o" の内容で発生します。
+8 進数の構文は、先頭のゼロに続いて小文字または大文字のラテン文字 "O" を使用します (`0o` または `0O`)。`0o` の後に範囲 (01234567) から外れた文字があると、一連のリテラルは終了します。
-```js
-const n = 0o755; // 493
-const m = 0o644; // 420
+```js-nolint
+0O755 // 493
+0o644 // 420
```
#### 16 進数
-16 進数の構文は、先頭のゼロに続いて小文字または大文字のラテン文字 "X" を使用します (`0x` または `0X`)。 0x の後の数字が範囲 (0123456789ABCDEF) 外の場合、 {{jsxref("SyntaxError")}} が "Identifier starts immediately after numeric literal" の内容で発生します。
+16 進数の構文は、先頭のゼロに続いて小文字または大文字のラテン文字 "X" を使用します (`0x` または `0X`)。`0x` の後に範囲 (0123456789ABCDEF) から外れた文字があると、一連のリテラルは終了します。
-```js
-0xfffffffffffffffff; // 295147905179352830000
-0x123456789abcdef; // 81985529216486900
-0xa; // 10
+```js-nolint
+0xFFFFFFFFFFFFFFFFF // 295147905179352830000
+0x123456789ABCDEF // 81985529216486900
+0XA // 10
```
#### 長整数リテラル
[長整数型](/ja/docs/Web/JavaScript/Data_structures#長整数型) (BigInt) は JavaScript の数値プリミティブであり、自由な精度の整数を表すことができます。長整数リテラルは、整数の末尾に `n` を追加することで作成されます。
-```js
-123456789123456789n; // 123456789123456789
-0o777777777777n; // 68719476735
-0x123456789abcdefn; // 81985529216486895
-0b11101001010101010101n; // 955733
+```js-nolint
+123456789123456789n // 123456789123456789
+0o777777777777n // 68719476735
+0x123456789ABCDEFn // 81985529216486895
+0b11101001010101010101n // 955733
```
-なお、先頭がゼロだけの 8 進数は `BigInt` では動作しません。
+長整数リテラルは、古い 8 進数と混同しないよう、`0` 出始めることはできません。
-```js example-bad
-0755n
-// SyntaxError: invalid BigInt syntax
+```js-nolint example-bad
+0755n; // SyntaxError: invalid BigInt syntax
```
8 進数の `BigInt` 数値では、常にゼロの後に "o" (大文字でも小文字でも) を付けて使用してください。
@@ -393,33 +399,24 @@ const m = 0o644; // 420
0o755n;
```
-`BigInt` についての詳細な情報は、 [JavaScript のデータ構造](/ja/docs/Web/JavaScript/Data_structures#長整数型)をご覧ください。
+`BigInt` についての詳細な情報は、 [JavaScript のデータ構造](/ja/docs/Web/JavaScript/Data_structures#長整数型)を参照してください。
#### 数値の区切り文字
数値リテラルの可読性を高めるために、アンダースコア (`_`, `U+005F`) を区切り文字として使用することができます。
-```js
-// 10 進数の区切り文字
-1_000_000_000_000;
-1_050.95;
-
-// 2 進数の区切り文字
-0b1010_0001_1000_0101;
-
-// 8 進数の区切り文字
-0o2_2_5_6;
-
-// 16 進数の区切り文字
-0xa0_b0_c0;
-
-// BigInt の区切り文字
-1_000_000_000_000_000_000_000n;
+```js-nolint
+1_000_000_000_000
+1_050.95
+0b1010_0001_1000_0101
+0o2_2_5_6
+0xA0_B0_C0
+1_000_000_000_000_000_000_000n
```
なお、以下の制限があります。
-```js example-bad
+```js-nolint example-bad
// 連続して 2 つ以上のアンダースコアは許可されていません
100__000; // SyntaxError
@@ -430,46 +427,64 @@ const m = 0o644; // 420
0_1; // SyntaxError
```
-### オブジェクトリテラル
+### 文字列リテラル
-詳細については、 {{jsxref("Object")}} と[オブジェクト初期化子](/ja/docs/Web/JavaScript/Reference/Operators/Object_initializer)をご覧ください。
+[文字列](/ja/docs/Web/JavaScript/Data_structures#文字列型)リテラルは、単一引用符または二重引用符に囲まれた 0 個以上の Unicode コードポイントです。 Unicode コードポイントはエスケープシーケンスで表すこともできます。以下の引用符を閉じるコードポイントを除いて、すべてのコードポイントが文字列リテラルに現れることができます。
-```js
-const o = { a: "foo", b: "bar", c: 42 };
+- U+005C \ (バックスラッシュ)
+- U+000D \
+- U+000A \
+- 文字列リテラルを始めたものと同じ引用符
-// 短縮記法
-const a = "foo",
- b = "bar",
- c = 42;
-const o = { a, b, c };
+すべてのコードポイントが、エスケープシーケンスの形で現れることができます。文字列リテラルは ECMAScript の文字列値として評価されます。これらの文字列の値を生成する際に、 Unicode コードポイントは UTF-16 エンコードされます。
-// 以前の表記
-const o = { a: a, b: b, c: c };
+```js-nolint
+'foo'
+"bar"
```
-### 配列リテラル
+次の項では、文字列リテラルで利用できるさまざまなエスケープシーケンス(`\` の後に 1 つ以上の文字が続くもの)を記述します。以下の一覧に掲載されていないエスケープシーケンスは「等価エスケープ」となり、コードポイントそのものになります。例えば、`\z` は `z` と同じです。非推奨の 8 指数エスケープシーケンス構文があり、[非推奨の機能、廃止された機能](/ja/docs/Web/JavaScript/Reference/Deprecated_and_obsolete_features#エスケープシーケンス)ページに記述されています。これらのエスケープシーケンスの多くは正規表現でも有効です。[文字エスケープ](/ja/docs/Web/JavaScript/Reference/Regular_expressions/Character_escape)を参照してください。
-詳細については {{jsxref("Array")}} をご覧ください。
+#### エスケープシーケンス
-```js
-[1954, 1974, 1990, 2014];
-```
+特殊文字はエスケープシーケンスを使用してエンコードすることができます。
-### 文字列リテラル
+| エスケープシーケンス | Unicode コードポイント |
+| --------------------------------- | ----------------------------------------------- |
+| `\0` | ヌル文字 (U+0000 NULL) |
+| `\'` | 単一引用符 (U+0027 APOSTROPHE) |
+| `\"` | 二重引用符 (U+0022 QUOTATION MARK) |
+| `\\` | バックスラッシュ (U+005C REVERSE SOLIDUS) |
+| `\n` | 改行 (U+000A LINE FEED; LF) |
+| `\r` | キャリッジリターン (U+000D CARRIAGE RETURN; CR) |
+| `\v` | 垂直タブ (U+000B LINE TABULATION) |
+| `\t` | タブ (U+0009 CHARACTER TABULATION) |
+| `\b` | バックスペース (U+0008 BACKSPACE) |
+| `\f` | ページ送り (U+000C FORM FEED) |
+| `\` の直後に[改行文字](#改行文字) | 空文字列 |
-[文字列](/ja/docs/Web/JavaScript/Data_structures#文字列型)リテラルは、単一引用符または二重引用符に囲まれた零個以上の Unicode コードポイントです。 Unicode コードポイントはエスケープシーケンスで表すこともできます。以下の引用符を閉じるコードポイントを除いて、すべてのコードポイントが文字列リテラルに現れることができます。
+最後のエスケープシーケンス、`\` に改行が続くものは、文字列リテラルをその意味を変えずに複数行に分割するのに有益なものです。
-- U+005C \ (バックスラッシュ)
-- U+000D \,
-- and U+000A \.
+```js
+const longString =
+ "This is a very long string which needs \
+to wrap across multiple lines because \
+otherwise my code is unreadable.";
+```
-すべてのコードポイントが、エスケープシーケンスの形で現れることができます。文字列リテラルは ECMAScript の文字列値として評価されます。これらの文字列の値を生成する際に、 Unicode コードポイントは UTF-16 エンコードされます。
+バックスラッシュの後に空白文字や他の文字(改行を除く)がないことを確認してください、そうでなければ動作しません。次の行がインデントされている場合、余分な空間が文字列の値にも存在します。
-```js-nolint
-'foo';
-"bar";
+また、[`+`](/ja/docs/Web/JavaScript/Reference/Operators/Addition) 演算子を使用して、次のように複数の文字列を連結することもできます。
+
+```js
+const longString =
+ "This is a very long string which needs " +
+ "to wrap across multiple lines because " +
+ "otherwise my code is unreadable.";
```
+上記の方法はどちらも同じ文字列になります。
+
#### 16 進エスケープシーケンス
16 進エスケープシーケンスは `\x` に続いてちょうど 2 桁の 16 進数から成り、 0x0000 から 0x00FF までのコード単位またはコードポイントを表します。
@@ -482,7 +497,7 @@ const o = { a: a, b: b, c: c };
Unicode エスケープシーケンスは `\u` に続いてちょうど 4 桁の 16 進数から成ります。これで UTF-16 エンコーディングのコード単位を表します。コードポイント U+0000 から U+FFFF までは、コード単位とコードポイントは等しくなります。コードポイント U+10000 から U+10FFFF までは、 2 つのエスケープシーケンスで 2 つのコード単位 (サロゲートペア) を表す必要があります。サロゲートペアはコードポイントで区別されます。
-See also {{jsxref("String.fromCharCode()")}} and {{jsxref("String.prototype.charCodeAt()")}}.
+{{jsxref("String.fromCharCode()")}} および {{jsxref("String.prototype.charCodeAt()")}} も参照してください。
```js
"\u00A9"; // "©" (U+A9)
@@ -492,7 +507,7 @@ See also {{jsxref("String.fromCharCode()")}} and {{jsxref("String.prototype.char
Unicode コードポイントエスケープは `\u{` に続いて 16 進数のコードポイントが続き、 `}` が続きます。 16 進数の値は 0 から 0x10FFFF までの範囲に含まれている必要があります。 U+10000 から U+10FFFF までの範囲のコードポイントを、サロゲートペアとして表す必要はありません。
-{{jsxref("String.fromCodePoint()")}} または {{jsxref("String.prototype.codePointAt()")}} もご覧ください。
+{{jsxref("String.fromCodePoint()")}} または {{jsxref("String.prototype.codePointAt()")}} も参照してください。
```js
"\u{2F804}"; // CJK COMPATIBILITY IDEOGRAPH-2F804 (U+2F804)
@@ -503,46 +518,51 @@ Unicode コードポイントエスケープは `\u{` に続いて 16 進数の
### 正規表現リテラル
-詳細については {{jsxref("RegExp")}} を参照してください。
+正規表現リテラルは2つのスラッシュ (`/`) で囲まれます。字句解析器は、スラッシュが文字クラス (`[]`) 内に現れない限り、エスケープされていない次のスラッシュまたは行の終わりまでのすべての文字を処理します。一部の文字(すなわち、[識別子の一部](#識別子))は、閉じスラッシュの後に現れることがあり、これはフラグを表します。
-```js
-/ab+c/g;
+字句文法はとても甘く、1 つのトークンとして取得される正規表現リテラルがすべて有効な正規表現とは限りません。
-// 「空の」正規表現リテラル
-// 単一行コメントと区別するために、空のキャプチャしない
-// グループが必要です。
-/(?:)/;
+詳細については {{jsxref("RegExp")}} を参照してください。
+
+```js-nolint
+/ab+c/g
+/[/]/
```
+正規表現リテラルは 2 つのスラッシュ (`//`) で始めることはできません。空の正規表現を指定するには `/(?:)/` を使用してください。
+
### テンプレートリテラル
-詳細について、[テンプレート文字列](/ja/docs/Web/JavaScript/Reference/Template_literals)をご覧ください。
+一つのテンプレートリテラルは、複数のトークンから成ります。`` `xxx${``(テンプレートの先頭)、`}xxx${`(テンプレートの中間)、``}xxx` ``(テンプレートの末尾)は個別のトークンであり、これらの間にはどのような式が入ってもかまいません。
-```js
-`string text`;
+詳細について、[テンプレートリテラル](/ja/docs/Web/JavaScript/Reference/Template_literals)を参照してください。
+
+```js-nolint
+`string text`
`string text line 1
- string text line 2`;
+ string text line 2`
-`string text ${expression} string text`;
+`string text ${expression} string text`
-tag`string text ${expression} string text`;
+tag`string text ${expression} string text`
```
## 自動セミコロン挿入
-一部の [JavaScript 文](/ja/docs/Web/JavaScript/Reference/Statements)はセミコロンで終わる必要があります。したがって、自動セミコロン挿入 (ASI) の影響を受けます。
+一部の [JavaScript 文](/ja/docs/Web/JavaScript/Reference/Statements)は、末尾にセミコロン (`;`) が必要です。これには次のようなものがあります。
-- `let`, `const`, 変数定義
-- `import`, `export`, モジュール宣言
-- 式の文
-- `debugger`
-- `continue`, `break`, `throw`
-- `return`
+- [`var`](/ja/docs/Web/JavaScript/Reference/Statements/var), [`let`](/ja/docs/Web/JavaScript/Reference/Statements/let), [`const`](/ja/docs/Web/JavaScript/Reference/Statements/const)
+- [式文](/ja/docs/Web/JavaScript/Reference/Statements/Expression_statement)
+- [`do...while`](/ja/docs/Web/JavaScript/Reference/Statements/do...while)
+- [`continue`](/ja/docs/Web/JavaScript/Reference/Statements/continue), [`break`](/ja/docs/Web/JavaScript/Reference/Statements/break), [`return`](/ja/docs/Web/JavaScript/Reference/Statements/return), [`throw`](/ja/docs/Web/JavaScript/Reference/Statements/throw)
+- [`debugger`](/ja/docs/Web/JavaScript/Reference/Statements/debugger)
+- クラスフィールド宣言([パブリック](/ja/docs/Web/JavaScript/Reference/Classes/Public_class_fields)または[プライベート](/ja/docs/Web/JavaScript/Reference/Classes/Private_properties))
+- [`import`](/ja/docs/Web/JavaScript/Reference/Statements/import), [`export`](/ja/docs/Web/JavaScript/Reference/Statements/export)
-セミコロンが自動的に挿入されるケースは 3 つあります。
+しかし、JavaScriptはこの言語をより手軽で便利なものにするために、トークンストリームを処理する際にセミコロンを自動的に挿入することがあり、不正なトークン列を有効な構文に「修正」することができます。この手順は、プログラムテキストが字句文法に従ってトークンに解釈された後に行われます。セミコロンが自動的に挿入されるケースは 3 つあります。
-1\. 文法上許されないトークンに出会ったとき、それが前のトークンから少なくとも 1 つの[改行文字](#改行文字)で区切られているか、そのトークンが "}" であれば、その前にセミコロンが挿入されます。
+1\. 文法上許されないトークンに出会ったとき、それが前のトークンから少なくとも 1 つの[改行文字](#改行文字)(1 つ以上の改行を含むブロックコメントを含む)で区切られているか、そのトークンが "}" であれば、その前にセミコロンが挿入されます。
```js-nolint
{ 1
@@ -559,17 +579,34 @@ tag`string text ${expression} string text`;
[`do...while`](/ja/docs/Web/JavaScript/Reference/Statements/do...while) の末尾の ")" は、このルールでも特別なケースとして扱われます。
-```js
+```js-nolint
do {
// ...
-} while (condition); /* ; */ // ここで ASI
-const a = 1;
+} while (condition) /* ; */ // ASI が行われる
+const a = 1
+```
+
+しかし、セミコロンが [`for`](/ja/docs/Web/JavaScript/Reference/Statements/for) 文の頭の区切り文字になる場合は、セミコロンは挿入されません。
+
+```js-nolint example-bad
+for (
+ let a = 1 // ASI は行われない
+ a < 10 // ASI は行われない
+ a++
+) {}
+```
+
+また、セミコロンが[空文](/ja/docs/Web/JavaScript/Reference/Statements/Empty)として挿入されることもありません。例えば、下記のコードで ")" の後にセミコロンが挿入された場合、空の文がif文の本体となり、`const` 宣言が別個の文となるため、このコードは有効になります。しかし、自動的に挿入されたセミコロンは空文にはならないため、[宣言](/ja/docs/Web/JavaScript/Reference/Statements#文と宣言の違いについて)が `if` 文の本体となってしまい、無効になります。
+
+```js-nolint example-bad
+if (Math.random() > 0.5)
+const x = 1 // SyntaxError: Unexpected token 'const'
```
2\. トークンの入力ストリームの末尾が検出され、パーサーが単一の入力ストリームを完全なプログラムとして解釈できない場合、末尾にセミコロンが挿入されます。
-```js
-const a = 1; /* ; */ // ASI here
+```js-nolint
+const a = 1 /* ; */ // ASI が行われる
```
このルールは前回のルールを補完するもので、特に「問題のあるトークン」がなく、入力ストリームが終わっている場合を想定しています。
@@ -623,16 +660,16 @@ const b = 1
`()` は関数呼び出しと見なせるので、通常は ASI が発生しないでしょう。同様に、 `[]` はメンバーアクセスである可能性があります。上のコードは次のものと同等です。
```js-nolint example-bad
-const a = 1(1).toString()
+const a = 1(1).toString();
-const b = 1[1, 2, 3].forEach(console.log)
+const b = 1[1, 2, 3].forEach(console.log);
```
-そのため、コードを実行すると "1 is not a function" や "Cannot read properties of undefined (reading 'forEach')" などのエラーが発生することになります。
+これは有効な構文になります。`1[1,2,3]` は[カンマ](/ja/docs/Web/JavaScript/Reference/Operators/Comma_operator)で結合された式の[プロパティアクセサー](/ja/docs/Web/JavaScript/Reference/Operators/Property_accessors)です。そのため、コードを実行すると "1 is not a function" や "Cannot read properties of undefined (reading 'forEach')" などのエラーが発生することになります。
クラス内では、クラスフィールドやジェネレーターメソッドも落とし穴になることがあります。
-```js example-bad
+```js-nolint example-bad
class A {
a = 1
*gen() {}
@@ -641,7 +678,7 @@ class A {
これは次のようになります。
-```js example-bad
+```js-nolint example-bad
class A {
a = 1 * gen() {}
}
@@ -649,15 +686,141 @@ class A {
したがって、 `{` のあたりで構文エラーになります。
-セミコロンなしのスタイルを強制したい場合、 ASI を扱う上で以下のような経験則があります。
-
-- 後置 `++` および `--` は、オペランドと同じ行に書く。
-- `return`、`throw`、`yield` の後の式はキーワードと同じ行に置く。
-- 同様に、 `break` または `continue` の後のラベルはキーワードと同じ行に置く。
-- アロー関数の `=>` は引数の末尾と同じ行に置く。
-- 非同期関数やメソッドの `async` の直後で改行しない。
-- 行が `(`, `[`, `` ` ``, `+`, `-`, `/` (正規表現リテラル) で始まる場合は、直前にセミコロンを置くか、前の行の行末にセミコロンをつける。
-- クラスのフィールドは、できれば常にセミコロンで終わるようにします。一つ前のルール(フィールド宣言の後に[計算されたプロパティ](/ja/docs/Web/JavaScript/Reference/Operators/Object_initializer#computed_property_names)が続くと、その後は `[` で始まる)に加えて、セミコロンはフィールド宣言とジェネレーターメソッドの間にも必要です。
+セミコロンなしのスタイルを強制したい場合、ASI を扱うには以下の経験則があります。
+
+- 後置型 `++` および `--` はオペランドと同じ行に置きましょう。
+
+ ```js-nolint example-bad
+ const a = b
+ ++
+ console.log(a) // ReferenceError: Invalid left-hand side expression in prefix operation
+ ```
+
+ ```js-nolint example-good
+ const a = b++
+ console.log(a)
+ ```
+
+- `return`, `throw`, `yield` の後の式は、キーワードと同じ行に置きましょう。
+
+ ```js-nolint example-bad
+ function foo() {
+ return
+ 1 + 1 // Returns undefined; 1 + 1 is ignored
+ }
+ ```
+
+ ```js-nolint example-good
+ function foo() {
+ return 1 + 1
+ }
+
+ function foo() {
+ return (
+ 1 + 1
+ )
+ }
+ ```
+
+- 同様に、`break` や `continue` の後のラベル識別子は、キーワードと同じ行に置きましょう。
+
+ ```js-nolint example-bad
+ outerBlock: {
+ innerBlock: {
+ break
+ outerBlock // SyntaxError: Illegal break statement
+ }
+ }
+ ```
+
+ ```js-nolint example-good
+ outerBlock: {
+ innerBlock: {
+ break outerBlock
+ }
+ }
+ ```
+
+- アロー関数の `=>` は引数と同じ行に置きましょう。
+
+ ```js-nolint example-bad
+ const foo = (a, b)
+ => a + b
+ ```
+
+ ```js-nolint example-good
+ const foo = (a, b) =>
+ a + b
+ ```
+
+- 非同期関数やメソッドなどの `async` の直後に改行を置くことはできません。
+
+ ```js-nolint example-bad
+ async
+ function foo() {}
+ ```
+
+ ```js-nolint example-good
+ async function
+ foo() {}
+ ```
+
+- `(`, `[`, `` ` ``, `+`, `-`, `/`(正規表現リテラルとして)のいずれかで始まる行は、その前にセミコロンを置くか、前の行をセミコロンで終わらせるかしましょう。
+
+ ```js-nolint example-bad
+ // この () は前の行と結合して関数呼び出しとなる可能性がある
+ (() => {
+ // ...
+ })()
+
+ // この [ は前の行と結合してプロパティアクセスとなる可能性がある
+ [1, 2, 3].forEach(console.log)
+
+ // この ` は前の行と結合してタグ付きテンプレートリテラルとなる可能性がある
+ `string text ${data}`.match(pattern).forEach(console.log)
+
+ // この + は前の行と結合して二項 + 式となる可能性がある
+ +a.toString()
+
+ // この - は前の行と結合して二項 - 式となる可能性がある
+ -a.toString()
+
+ // この / は前の行と結合して除算式となる可能性がある
+ /pattern/.exec(str).forEach(console.log)
+ ```
+
+ ```js-nolint example-good
+ ;(() => {
+ // ...
+ })()
+ ;[1, 2, 3].forEach(console.log)
+ ;`string text ${data}`.match(pattern).forEach(console.log)
+ ;+a.toString()
+ ;-a.toString()
+ ;/pattern/.exec(str).forEach(console.log)
+ ```
+
+- クラスのフィールドは、できれば常にセミコロンで終わるようにしましょう。一つ前のルール(フィールド宣言の後に[計算されたプロパティ](/ja/docs/Web/JavaScript/Reference/Operators/Object_initializer#computed_property_names)が続くと、その後は `[` で始まる)に加えて、セミコロンはフィールド宣言とジェネレーターメソッドの間にも必要です。
+
+ ```js-nolint example-bad
+ class A {
+ a = 1
+ [b] = 2
+ *gen() {} // Seen as a = 1[b] = 2 * gen() {}
+ }
+ ```
+
+ ```js-nolint example-good
+ class A {
+ a = 1;
+ [b] = 2;
+ *gen() {}
+ }
+ ```
+
+## 仕様書
+
+{{Specifications}}
## ブラウザーの互換性
@@ -665,10 +828,6 @@ class A {
## 関連情報
-- [Lexical grammar in the ECMAScript specification](https://tc39.es/ecma262/#sec-ecmascript-language-lexical-grammar)
-- [Jeff Walden: Binary and octal numbers](https://whereswalden.com/2013/08/12/micro-feature-from-es6-now-in-firefox-aurora-and-nightly-binary-and-octal-numbers/)
-- [Mathias Bynens: JavaScript character escape sequences](https://mathiasbynens.be/notes/javascript-escapes)
-- [論理型](/ja/docs/Web/JavaScript/Data_structures#論理型)
-- [数値型](/ja/docs/Web/JavaScript/Data_structures#数値型)
-- [文字列型](/ja/docs/Web/JavaScript/Data_structures#文字列型)
-- {{jsxref("RegExp")}}
+- [文法とデータ型](/ja/docs/Web/JavaScript/Guide/Grammar_and_types)ガイド
+- [Micro-feature from ES6, now in Firefox Aurora and Nightly: binary and octal numbers](https://whereswalden.com/2013/08/12/micro-feature-from-es6-now-in-firefox-aurora-and-nightly-binary-and-octal-numbers/) by Jeff Walden (2013)
+- [JavaScript character escape sequences](https://mathiasbynens.be/notes/javascript-escapes) by Mathias Bynens (2011)
diff --git a/files/ja/web/javascript/reference/regular_expressions/quantifier/index.md b/files/ja/web/javascript/reference/regular_expressions/quantifier/index.md
index 93e20894416458..78c95891faeae0 100644
--- a/files/ja/web/javascript/reference/regular_expressions/quantifier/index.md
+++ b/files/ja/web/javascript/reference/regular_expressions/quantifier/index.md
@@ -38,7 +38,7 @@ atom{min,max}?
- `min`
- : 非負の整数です。アトムが繰り返すことができる最小回数です。
- `max` {{optional_inline}}
- - : 非負の整数です。アトムが繰り返すことができる最大回数です。小りゃうした場合、アトムは必要なだけ繰り返されます。
+ - : 非負の整数です。アトムが繰り返すことができる最大回数です。省略した場合、アトムは必要なだけ繰り返されます。
## 解説
diff --git a/files/ja/web/javascript/reference/statements/while/index.md b/files/ja/web/javascript/reference/statements/while/index.md
index 02d26f85e3e7ae..15011ff53ca948 100644
--- a/files/ja/web/javascript/reference/statements/while/index.md
+++ b/files/ja/web/javascript/reference/statements/while/index.md
@@ -78,7 +78,7 @@ while (currentNode = iterator.nextNode()) {
…そして、文書中にコメントノードがなくなったとき、次のようになります。
-1. `iterator.nextNode()` は [`null``](/ja/docs/Web/JavaScript/Reference/Operators/null) を返す。
+1. `iterator.nextNode()` は [`null`](/ja/docs/Web/JavaScript/Reference/Operators/null) を返す。
2. 従って `currentNode = iterator.nextNode()` も `null` になり、これは[偽値](/ja/docs/Glossary/Falsy)である。
3. そのため、ループを終了する。
diff --git a/files/ja/web/mathml/examples/deriving_the_quadratic_formula/index.md b/files/ja/web/mathml/examples/deriving_the_quadratic_formula/index.md
index 6b4f0c7a314705..29ec543ee9784c 100644
--- a/files/ja/web/mathml/examples/deriving_the_quadratic_formula/index.md
+++ b/files/ja/web/mathml/examples/deriving_the_quadratic_formula/index.md
@@ -3,6 +3,8 @@ title: "MathML: 二次方程式の解の公式を導く"
slug: Web/MathML/Examples/Deriving_the_Quadratic_Formula
---
+{{MathMLRef}}
+
このページでは、二次方程式の解の公式の導出について概説します。
二次方程式の一般形をとり、 x について解きます。
diff --git a/files/ja/web/mathml/examples/index.md b/files/ja/web/mathml/examples/index.md
index 4ba62141005265..8478f5d1c76fc6 100644
--- a/files/ja/web/mathml/examples/index.md
+++ b/files/ja/web/mathml/examples/index.md
@@ -3,6 +3,8 @@ title: 例
slug: Web/MathML/Examples
---
+{{MathMLRef}}
+
以下のリンクでは、複雑な数学の概念をウェブコンテンツで表示するための MathML の使い方を理解するのに役立つ例がいくつかあります。
- [ピタゴラスの定理](/ja/docs/Web/MathML/Examples/MathML_Pythagorean_Theorem)
diff --git a/files/ja/web/mathml/examples/mathml_pythagorean_theorem/index.md b/files/ja/web/mathml/examples/mathml_pythagorean_theorem/index.md
index 043a73c2fc0465..a2635491d8c375 100644
--- a/files/ja/web/mathml/examples/mathml_pythagorean_theorem/index.md
+++ b/files/ja/web/mathml/examples/mathml_pythagorean_theorem/index.md
@@ -3,6 +3,8 @@ title: ピタゴラスの定理の証明
slug: Web/MathML/Examples/MathML_Pythagorean_Theorem
---
+{{MathMLRef}}
+
ピタゴラスの定理を証明します。
**命題**: 直角三角形では、斜辺の 2 乗は他の 2 辺の 2 乗の和に等しい。
diff --git a/files/ja/web/media/audio_and_video_delivery/adding_captions_and_subtitles_to_html5_video/index.md b/files/ja/web/media/audio_and_video_delivery/adding_captions_and_subtitles_to_html5_video/index.md
index 11e5e19954d2c5..007dea285249fd 100644
--- a/files/ja/web/media/audio_and_video_delivery/adding_captions_and_subtitles_to_html5_video/index.md
+++ b/files/ja/web/media/audio_and_video_delivery/adding_captions_and_subtitles_to_html5_video/index.md
@@ -3,6 +3,8 @@ title: HTML5 の動画へのキャプションと字幕の追加
slug: Web/Media/Audio_and_video_delivery/Adding_captions_and_subtitles_to_HTML5_video
---
+{{QuickLinksWithSubPages("/ja/docs/Web/Media")}}
+
他の記事で、 [ブラウザーに依存しない動画プレイヤーの構築](/ja/Apps/Build/Manipulating_media/cross_browser_video_player)を、 {{ domxref("HTMLMediaElement") }} 及び {{ domxref("Window.fullScreen") }} API を使用して行う方法と、[プレイヤーのスタイル付け](/ja/Apps/Build/Manipulating_media/Video_player_styling_basics)の方法について見てきました。この記事では、同じプレイヤーと使って、 {{ domxref("Web_Video_Text_Tracks_Format","WebVTT 形式") }}及び {{ htmlelement("track") }} 要素を用いてキャプションや字幕を追加する方法を紹介します。
## キャプション付きの動画の例
diff --git a/files/ja/web/media/audio_and_video_delivery/index.md b/files/ja/web/media/audio_and_video_delivery/index.md
index 3f2581d85eda97..7599ec1c6a079b 100644
--- a/files/ja/web/media/audio_and_video_delivery/index.md
+++ b/files/ja/web/media/audio_and_video_delivery/index.md
@@ -3,6 +3,8 @@ title: 音声と動画の配信
slug: Web/Media/Audio_and_video_delivery
---
+{{QuickLinksWithSubPages("/ja/docs/Web/Media")}}
+
静的な」メディアファイルからアダプティブなライブストリームまで、さまざまな方法で音声と動画をウェブ上に配信することができます。この記事は、ウェブベースのメディアの様々な配信メカニズムや、一般的なブラウザーへの互換性を探るための出発点として意図されています。
## audio および video 要素
diff --git a/files/ja/web/media/audio_and_video_delivery/live_streaming_web_audio_and_video/index.md b/files/ja/web/media/audio_and_video_delivery/live_streaming_web_audio_and_video/index.md
index 054260acf3c18e..24be8ac6804752 100644
--- a/files/ja/web/media/audio_and_video_delivery/live_streaming_web_audio_and_video/index.md
+++ b/files/ja/web/media/audio_and_video_delivery/live_streaming_web_audio_and_video/index.md
@@ -3,6 +3,8 @@ title: ウェブの音声や動画のライブストリーミング
slug: Web/Media/Audio_and_video_delivery/Live_streaming_web_audio_and_video
---
+{{QuickLinksWithSubPages("/ja/docs/Web/Media")}}
+
ライブストリーミング技術は、よくスポーツやコンサートなどのイベントの中継や、もっと一般的にはテレビやラジオの番組の配信などによく採用されています。よくストリーミングと略されるライブストリーミングは、コンピューターや機器へメディアを「ライブ」で転送するプロセスです。これは実に複雑で数多くの変量がある初期段階の主題ですので、この記事では主題を紹介し、どのように始めることができるかを説明します。
メディアをブラウザーにストリーミングする際に考慮しなければならないことは、有限のファイルを再生するのではなく、その場で作成されているファイルを中継しており、あらかじめ開始または終了が決められていないという点です。
diff --git a/files/ja/web/media/audio_and_video_delivery/setting_up_adaptive_streaming_media_sources/index.md b/files/ja/web/media/audio_and_video_delivery/setting_up_adaptive_streaming_media_sources/index.md
index 42b04b86054714..0405f22d98c44e 100644
--- a/files/ja/web/media/audio_and_video_delivery/setting_up_adaptive_streaming_media_sources/index.md
+++ b/files/ja/web/media/audio_and_video_delivery/setting_up_adaptive_streaming_media_sources/index.md
@@ -3,6 +3,8 @@ title: Setting up adaptive streaming media sources
slug: Web/Media/Audio_and_video_delivery/Setting_up_adaptive_streaming_media_sources
---
+{{QuickLinksWithSubPages("/ja/docs/Web/Media")}}
+
たとえば、 HTML5 メディア要素内で利用するために、サーバー上の適応型ストリーミングメディアソースを設定するとします。あなたはどうしますか?この記事では、最も一般的な形式である MPEG-DASH と HLS (HTTP Live Streaming) の二つについて見ていきます。
## フォーマットの選択
diff --git a/files/ja/web/media/dash_adaptive_streaming_for_html_5_video/index.md b/files/ja/web/media/dash_adaptive_streaming_for_html_5_video/index.md
index 721f0de4e86db0..d60f0ee4dff564 100644
--- a/files/ja/web/media/dash_adaptive_streaming_for_html_5_video/index.md
+++ b/files/ja/web/media/dash_adaptive_streaming_for_html_5_video/index.md
@@ -3,6 +3,8 @@ title: HTML 5 ビデオ用の DASH アダプティブストリーミング
slug: Web/Media/DASH_Adaptive_Streaming_for_HTML_5_Video
---
+{{QuickLinksWithSubpages("/ja/docs/Web/Media")}}
+
Dynamic Adaptive Streaming over HTTP (DASH) は、アダプティブストリーミングプロトコルです。これは動画の再生を維持するためにネットワークパフォーマンスに応じてビデオストリームのビットレートを切り替えることを可能にします。
## ブラウザーの対応
diff --git a/files/ja/web/media/images/index.md b/files/ja/web/media/images/index.md
index 6f1d491912a03a..40d93384c347c8 100644
--- a/files/ja/web/media/images/index.md
+++ b/files/ja/web/media/images/index.md
@@ -3,6 +3,8 @@ title: HTML での画像の使用
slug: Web/Media/images
---
+{{QuickLinksWithSubpages("/ja/docs/Web/Media")}}
+
{{Glossary("HTML")}} の {{HTMLElement("img")}} 要素で HTML 文書に画像を埋め込むことができ、 {{HTMLElement("picture")}} 要素を使用すると[レスポンシブ画像](/ja/docs/Learn/HTML/Multimedia_and_embedding/Responsive_images)を使用することができます。このガイドでは、ウェブサイトへの画像の追加を扱うリソースへのリンクを紹介します。
## リファレンス
diff --git a/files/ja/web/performance/animation_performance_and_frame_rate/layout-faint.png b/files/ja/web/performance/animation_performance_and_frame_rate/layout-faint.png
deleted file mode 100644
index 8e26a85cdec7ac..00000000000000
Binary files a/files/ja/web/performance/animation_performance_and_frame_rate/layout-faint.png and /dev/null differ
diff --git a/files/ja/web/performance/animation_performance_and_frame_rate/layout.png b/files/ja/web/performance/animation_performance_and_frame_rate/layout.png
deleted file mode 100644
index 130e631556a2ac..00000000000000
Binary files a/files/ja/web/performance/animation_performance_and_frame_rate/layout.png and /dev/null differ
diff --git a/files/ja/web/performance/animation_performance_and_frame_rate/paint-faint.png b/files/ja/web/performance/animation_performance_and_frame_rate/paint-faint.png
deleted file mode 100644
index 7056487190f500..00000000000000
Binary files a/files/ja/web/performance/animation_performance_and_frame_rate/paint-faint.png and /dev/null differ
diff --git a/files/ja/web/performance/animation_performance_and_frame_rate/paint.png b/files/ja/web/performance/animation_performance_and_frame_rate/paint.png
deleted file mode 100644
index 0aed13c69f3384..00000000000000
Binary files a/files/ja/web/performance/animation_performance_and_frame_rate/paint.png and /dev/null differ
diff --git a/files/ja/web/performance/animation_performance_and_frame_rate/recalculate-style.png b/files/ja/web/performance/animation_performance_and_frame_rate/recalculate-style.png
deleted file mode 100644
index 2a7ab1e3d728cd..00000000000000
Binary files a/files/ja/web/performance/animation_performance_and_frame_rate/recalculate-style.png and /dev/null differ
diff --git a/files/ja/web/security/certificate_transparency/index.md b/files/ja/web/security/certificate_transparency/index.md
index e620d2721c6152..0cafe4912d61cc 100644
--- a/files/ja/web/security/certificate_transparency/index.md
+++ b/files/ja/web/security/certificate_transparency/index.md
@@ -3,6 +3,8 @@ title: 証明書の透明性
slug: Web/Security/Certificate_Transparency
---
+{{QuickLinksWithSubpages("/ja/docs/Web/Security")}}
+
**Certificate Transparency** は、証明書の誤発行を防止し、監視するために設計されたオープンなフレームワークです。新しく発行された証明書は、公開されている、多くの場合独立した CT ログに「記録」され、発行された TLS 証明書の追加のみの暗号的に保証された記録を維持します。
このようにして、認証局 (CA) は、はるかに大きな監視と監督を受けることができます。CA/B フォーラムの*ベースライン要件*に違反するような、潜在的に悪意のある証明書は、より迅速に検出され、失効される可能性があります。また、ブラウザベンダーやルートストアのメンテナは、不信に繋がるかもしれない問題がある CA について、より多くの情報に基づいた決定を下すことができるようになります。
diff --git a/files/ja/web/security/mixed_content/how_to_fix_website_with_mixed_content/index.md b/files/ja/web/security/mixed_content/how_to_fix_website_with_mixed_content/index.md
deleted file mode 100644
index 0425aa7e2795e1..00000000000000
--- a/files/ja/web/security/mixed_content/how_to_fix_website_with_mixed_content/index.md
+++ /dev/null
@@ -1,28 +0,0 @@
----
-title: 混在コンテンツでブロックされるウェブサイトを修正するには
-slug: Web/Security/Mixed_content/How_to_fix_website_with_mixed_content
----
-
-[Firefox 23](/ja/docs/Mozilla/Firefox/Releases/23) より、 Firefox は[能動的な混在コンテンツ](/ja/docs/Security/MixedContent#Mixed_active_content)を既定でブロックします。この機能は Internet Explorer ([バージョン 9 以降](http://blogs.msdn.com/b/ie/archive/2011/06/23/internet-explorer-9-security-part-4-protecting-consumers-from-malicious-mixed-content.aspx)) や [Chrome](https://security.googleblog.com/2011/06/trying-to-end-mixed-scripting.html?m=1) でも採用されています。
-
-このページでは、ウェブ開発者として知っておくべきことを説明します。
-
-## ウェブサイトが壊れることも
-
-ウェブサイトを HTTPS で配信している場合、ページ上にある [能動的な混在コンテンツ](/ja/docs/Security/MixedContent#Mixed_active_content)はすべて既定でブロックされます。結果として、ユーザーからはそのウェブサイトが壊れているように見えるかもしれません (iframe やプラグインが読み込まれないなど)。一方、[受動的な混在コンテンツ](/ja/docs/Security/MixedContent#Mixed_passive.2Fdisplay_content)は既定で表示されますが、このようなコンテンツをブロックするようにユーザーが設定することも可能です。
-
-混在コンテンツは Chrome と Internet Explorer でもブロックされるため、ウェブサイトがこの2つのブラウザーで正常に動作していれば、混在コンテンツをブロックする Firefox でも正常に動作する可能性が高いと言えます。
-
-いずれにしても、ウェブサイトが Firefox で動作しない原因を特定するには、[最新の Firefox](https://www.mozilla.org/ja/firefox) を利用すると良いでしょう。ウェブサイトを開いた上で、開発ツールの[ウェブコンソール](/ja/docs/Tools/Web_Console)を開き、「セキュリティ」のメッセージを有効にします。そうすると、混在コンテンツを引き起こしている原因が表示されます。また、 [SSL-check](http://www.jitbit.com/sslcheck/) や [Missing Padlock](https://www.missingpadlock.com) などの無料のオンライン型クローラーや、 [HTTPSChecker](https://httpschecker.net/how-it-works) といったデスクトップ型のクローラー、または [mcdetect](https://github.com/agis/mcdetect) などの CLI ツールを使用して、安全ではないコンテンツを指すリンクがないかどうか、ウェブサイトを再帰的に検索することが出来ます。もし混在コンテンツに関する警告が出なければ、ウェブサイトの品質は保たれていると言えます。今後も維持し続けてください。
-
-## ウェブサイトを修正する方法
-
-混合コンテンツが原因でブロックされないためには、すべてのコンテンツを (HTTP ではなく) HTTPS で提供することが重要です。
-
-**自分が保有するドメインの場合**、すべてのコンテンツが HTTPS で配信されるようにリンクを修正します。多くの場合、既にコンテンツは HTTPS として配信できるようになっているため、単に "s" を追加してリンクの http\:// を https\:// に変更するだけで対応できます。
-
-しかし、場合によっては、問題のメディアに対してパスが正しくない可能性があります。 これを解決するためには、 [linkchecker](https://linkchecker.github.io/linkchecker/) のようなオンラインツールとオフラインツール (オペレーティングシステムに依存します) があります。
-
-**他者が保有するドメインの場合**、可能であれば HTTPS でウェブサイトに接続します。 HTTPS でアクセスできない場合は、 HTTPS を介してコンテンツを配信してもらえるよう、ドメインの管理者に連絡してみてください。
-
-{{QuickLinksWithSubpages("/ja/docs/Web/Security")}}
diff --git a/files/ja/web/security/securing_your_site/index.md b/files/ja/web/security/practical_implementation_guides/index.md
similarity index 98%
rename from files/ja/web/security/securing_your_site/index.md
rename to files/ja/web/security/practical_implementation_guides/index.md
index dcae226d3ad6e7..93b552b1e05817 100644
--- a/files/ja/web/security/securing_your_site/index.md
+++ b/files/ja/web/security/practical_implementation_guides/index.md
@@ -1,6 +1,7 @@
---
title: サイトの安全化
-slug: Web/Security/Securing_your_site
+slug: Web/Security/Practical_implementation_guides
+original_slug: Web/Security/Securing_your_site
---
サイトをより安全にする方法はいくつもあります。この記事では、その方法を紹介するとともに、他のより有益な記事へのリンクを掲載しています。
diff --git a/files/ja/web/security/securing_your_site/turning_off_form_autocompletion/index.md b/files/ja/web/security/practical_implementation_guides/turning_off_form_autocompletion/index.md
similarity index 97%
rename from files/ja/web/security/securing_your_site/turning_off_form_autocompletion/index.md
rename to files/ja/web/security/practical_implementation_guides/turning_off_form_autocompletion/index.md
index b6caf37e4c392e..33ce693c461aae 100644
--- a/files/ja/web/security/securing_your_site/turning_off_form_autocompletion/index.md
+++ b/files/ja/web/security/practical_implementation_guides/turning_off_form_autocompletion/index.md
@@ -1,6 +1,7 @@
---
title: フォームの自動補完を無効にするには
-slug: Web/Security/Securing_your_site/Turning_off_form_autocompletion
+slug: Web/Security/Practical_implementation_guides/Turning_off_form_autocompletion
+original_slug: Web/Security/Securing_your_site/Turning_off_form_autocompletion
---
この記事では、フォーム入力欄の自動補完をウェブサイト側から無効にする方法を説明します。
diff --git a/files/ja/web/security/referer_header_colon__privacy_and_security_concerns/index.md b/files/ja/web/security/referer_header_colon__privacy_and_security_concerns/index.md
index 1bc7f5c9a45eb6..5ea338114da1ed 100644
--- a/files/ja/web/security/referer_header_colon__privacy_and_security_concerns/index.md
+++ b/files/ja/web/security/referer_header_colon__privacy_and_security_concerns/index.md
@@ -3,6 +3,8 @@ title: Referer ヘッダーのプライバシーとセキュリティの考慮
slug: Web/Security/Referer_header:_privacy_and_security_concerns
---
+{{QuickLinksWithSubpages("/ja/docs/Web/Security")}}
+
[HTTP の Referer ヘッダー](/ja/docs/Web/HTTP/Headers/Referer)にまつわるプライバシーとセキュリティのリスクがあります。この記事ではこれらを説明し、これらのリスクを回避するためのアドバイスを提案します。
## リファラー問題
diff --git a/files/ja/web/security/subdomain_takeovers/index.md b/files/ja/web/security/subdomain_takeovers/index.md
index 4097cc97c6ddce..fff26ee4e48695 100644
--- a/files/ja/web/security/subdomain_takeovers/index.md
+++ b/files/ja/web/security/subdomain_takeovers/index.md
@@ -3,6 +3,8 @@ title: Subdomain takeovers
slug: Web/Security/Subdomain_takeovers
---
+{{QuickLinksWithSubpages("/ja/docs/Web/Security")}}
+
subdomain takeover は、攻撃者がターゲットドメインのサブドメインの制御権を獲得したときに発生します。一般的には、サブドメインがドメインネームシステム ([DNS](/ja/docs/Glossary/DNS)) に正規名 ([CNAME](https://en.wikipedia.org/wiki/CNAME_record)) を持っているが、そのサブドメインにコンテンツを提供しているホストがいない場合に発生します。これは、バーチャルホストがまだ公開されていないか、バーチャルホストが削除されているために起こる可能性があります。攻撃者は、自分のバーチャルホストを提供して、そのサブドメインのコンテンツをホストすることで、そのサブドメインを乗っ取ることができます。
攻撃者がこれを行うことができれば、メインドメインから設定された[クッキー](/ja/docs/Web/HTTP/Cookies)を読み取ったり、[クロスサイトスクリプティング](/ja/docs/Web/Security/Types_of_attacks#Cross-site_scripting_XSS)を行ったり、[コンテンツセキュリティポリシー](/ja/docs/Web/HTTP/CSP)を回避したりすることが可能となり、保護された情報 (ログインを含む) を取得したり、不審なユーザーに悪意のあるコンテンツを送信したりすることが可能となります。
diff --git a/files/ja/web/security/types_of_attacks/index.md b/files/ja/web/security/types_of_attacks/index.md
index 83d22fbccf68f6..0667159af09937 100644
--- a/files/ja/web/security/types_of_attacks/index.md
+++ b/files/ja/web/security/types_of_attacks/index.md
@@ -3,6 +3,8 @@ title: 攻撃の種類
slug: Web/Security/Types_of_attacks
---
+{{QuickLinksWithSubpages("/ja/docs/Web/Security")}}
+
この記事では、様々な種類のセキュリティ攻撃とそれを軽減するためのテクニックについて解説しています。
## クリックジャッキング
diff --git a/files/ja/web/svg/applying_svg_effects_to_html_content/index.md b/files/ja/web/svg/applying_svg_effects_to_html_content/index.md
index ed5b390684abf4..4fe08a06ebd968 100644
--- a/files/ja/web/svg/applying_svg_effects_to_html_content/index.md
+++ b/files/ja/web/svg/applying_svg_effects_to_html_content/index.md
@@ -3,6 +3,8 @@ title: SVG 効果の HTML コンテンツへの適用
slug: Web/SVG/Applying_SVG_effects_to_HTML_content
---
+{{SVGRef}}
+
最近のブラウザーは、 [SVG](/ja/docs/Web/SVG) を [CSS](/ja/docs/Web/CSS) スタイルの中で使用して、 HTML コンテンツに対してグラフィカルな効果を適用することに対応しています。
SVG をスタイルで指定するには、同一文書内または外部のスタイルシートで指定することができます。使用できるプロパティは [`mask`](/ja/docs/Web/CSS/mask), [`clip-path`](/ja/docs/Web/CSS/clip-path), [`filter`](/ja/docs/Web/CSS/filter) の 3 つです。
diff --git a/files/ja/web/svg/attribute/lengthadjust/index.md b/files/ja/web/svg/attribute/lengthadjust/index.md
index bb1544f0da1fb3..8f0a8614220632 100644
--- a/files/ja/web/svg/attribute/lengthadjust/index.md
+++ b/files/ja/web/svg/attribute/lengthadjust/index.md
@@ -3,6 +3,8 @@ title: lengthAdjust
slug: Web/SVG/Attribute/lengthAdjust
---
+{{SVGRef}}
+
SVG の `` 要素または `` 要素が特定の長さを有している場合、それは `textLength` 属性を使って設定したものである訳ですが、`lengthAdjust` 属性は、テキストをその長さに引き延ばすかあるいはその長さに圧縮する方法を制御します。
この属性で可能な二つの値は、 **`spacing`** と **`spacingAndGlyphs`** です。`spacing` (デフォルト値) を使うと、文字の形が保たれる一方で、文字同士の間のスペースが伸び縮みします。`spacingAndGlyphs` を使うと、テキスト要素全体が、そのテキストの方向に沿って引き延ばされます。
diff --git a/files/ja/web/svg/attribute/stroke-linecap/index.md b/files/ja/web/svg/attribute/stroke-linecap/index.md
index fa36170784f7b9..46201c170dbd22 100644
--- a/files/ja/web/svg/attribute/stroke-linecap/index.md
+++ b/files/ja/web/svg/attribute/stroke-linecap/index.md
@@ -3,6 +3,8 @@ title: stroke-linecap
slug: Web/SVG/Attribute/stroke-linecap
---
+{{SVGRef}}
+
« [SVG 属性リファレンスホーム](/ja/docs/Web/SVG/Attribute)
`stroke-linecap` 要素は線を引いた時の開いている部分パスの終端の形状を指定します。
diff --git a/files/ja/web/svg/attribute/stroke-linejoin/index.md b/files/ja/web/svg/attribute/stroke-linejoin/index.md
index b7aa56954c7715..6bf1a4c9426304 100644
--- a/files/ja/web/svg/attribute/stroke-linejoin/index.md
+++ b/files/ja/web/svg/attribute/stroke-linejoin/index.md
@@ -3,6 +3,8 @@ title: stroke-linejoin
slug: Web/SVG/Attribute/stroke-linejoin
---
+{{SVGRef}}
+
« [SVG 属性リファレンスホーム](/ja/docs/Web/SVG/Attribute)
`stroke-linejoin` 属性は線を引いた時のパスの曲がりまたは基本的な輪郭の形状を指定します。
diff --git a/files/ja/web/svg/namespaces_crash_course/example/index.md b/files/ja/web/svg/namespaces_crash_course/example/index.md
index eab50d62c3e54d..b554e8d12a8ebd 100644
--- a/files/ja/web/svg/namespaces_crash_course/example/index.md
+++ b/files/ja/web/svg/namespaces_crash_course/example/index.md
@@ -3,6 +3,8 @@ title: 例
slug: Web/SVG/Namespaces_Crash_Course/Example
---
+{{SVGRef}}
+
この例で、私達は [XHTML](/ja/docs/XHTML) 、 [SVG](/ja/docs/Web/SVG) 、 [JavaScript](/ja/docs/Web/JavaScript) と [DOM](/ja/docs/DOM) 2 を「ほこり」の群れを動かすのにつかっています。これらのほこりは 2 つの簡単な法則によって制御されています。1 つめは、それぞれのほこりがマウスカーソルの方向に向かって移動しようとします。2 つ目はそれぞれのほこりはほこりの位置の平均から遠ざかろうとします。組み合わせることで、このとても自然に見える動きができます。
これは完全に Flash やその他のベンダ特有の拡張を用いずに、 W3C 標準- XHTML と SVG と JavaScript で実現されています。これは Firefox 1.5 以上で動作します。
diff --git a/files/ja/web/svg/namespaces_crash_course/index.md b/files/ja/web/svg/namespaces_crash_course/index.md
index 3120bea3d46923..caf732a2ce4514 100644
--- a/files/ja/web/svg/namespaces_crash_course/index.md
+++ b/files/ja/web/svg/namespaces_crash_course/index.md
@@ -3,6 +3,8 @@ title: 名前空間の速修講座
slug: Web/SVG/Namespaces_Crash_Course
---
+{{SVGRef}}
+
### 導入
[XML](/ja/docs/Glossary/XML) の派生言語として、 [SVG](/ja/docs/Web/SVG) は名前空間付けられています。もしあなたが SVG コンテンツを作成する予定なら名前空間の概念と使い方を理解することは重要です。 Firefox 1.5 リリースより前の幾つかのバージョンの SVG ビューワは残念ながら名前空間に対して十分な注意を払いませんが、 とても厳格でなくてならない [Gecko](/ja/docs/Glossary/Gecko) ベースのブラウザのようなユーザエージェントが複数の XML 派生言語をサポートするために不可欠です。今、名前空間を理解するためにいくらかの時間をとり、将来頭を悩ませる時間を節約しましょう。
diff --git a/files/ja/web/svg/scripting/index.md b/files/ja/web/svg/scripting/index.md
index 8581c0b4bcbdb3..a3f10e9810b11b 100644
--- a/files/ja/web/svg/scripting/index.md
+++ b/files/ja/web/svg/scripting/index.md
@@ -3,6 +3,8 @@ title: スクリプティング
slug: Web/SVG/Scripting
---
+{{SVGRef}}
+
ブラウザーの既定の動作を `evt.preventDefault( )` メソッドで上書きしたり、イベントリスナーを `element.addEventListener(event, function, useCapture)` という構文でオブジェクトに追加したり、要素のプロパティを `svgElement.style.setProperty("fill-opacity", "0.0", "")` などで設定することが可能です。 3 つの引数がすべてプロパティを設定していることに注意してください。
### イベントコードの既定の挙動を防ぐ
diff --git a/files/ja/web/svg/svg_animation_with_smil/index.md b/files/ja/web/svg/svg_animation_with_smil/index.md
index 0baf8f5cb119ff..6cadb3ee7ce231 100644
--- a/files/ja/web/svg/svg_animation_with_smil/index.md
+++ b/files/ja/web/svg/svg_animation_with_smil/index.md
@@ -3,6 +3,8 @@ title: SVG animation with SMIL
slug: Web/SVG/SVG_animation_with_SMIL
---
+{{SVGRef}}
+
Firefox 4 より、[Synchronized Multimedia Integration Language](http://www.w3.org/TR/REC-smil) (SMIL) を用いた [SVG](/ja/SVG) のアニメーションをサポートしています。SMIL では以下のようなことができます:
- 要素の数値属性 (x, y など) のアニメーション
diff --git a/files/ja/web/svg/svg_as_an_image/index.md b/files/ja/web/svg/svg_as_an_image/index.md
index b5d28faababc61..078413850e906c 100644
--- a/files/ja/web/svg/svg_as_an_image/index.md
+++ b/files/ja/web/svg/svg_as_an_image/index.md
@@ -5,6 +5,8 @@ l10n:
sourceCommit: f4f8e2f18ccf19a0bee59e1fe78753e276b98232
---
+{{SVGRef}}
+
SVG 画像は、様々な場面で画像形式の一つとして使用することができます。多くのブラウザーは SVG 画像を以下の場所で対応しています。
- HTML の {{HTMLElement("img")}} または {{SVGElement("svg")}} 要素
diff --git a/files/ja/web/xml/xml_introduction/index.md b/files/ja/web/xml/xml_introduction/index.md
index bd0f2091e3a7ae..13246c803ad039 100644
--- a/files/ja/web/xml/xml_introduction/index.md
+++ b/files/ja/web/xml/xml_introduction/index.md
@@ -3,6 +3,8 @@ title: XML のイントロダクション
slug: Web/XML/XML_introduction
---
+{{QuickLinksWithSubpages("/ja/docs/Web/XML")}}
+
概要: この記事は、'eXtensible Markup Language' (XML、拡張可能マークアップ言語) を紹介し、その使い道について XML は HTML に似たマークアップ言語です。 これは Extensible Markup Language の略で、汎用マークアップ言語として [W3C が推奨する](https://www.w3.org/TR/xml/)仕様です。つまり、他のマークアップ言語とは異なり、XML は事前定義されていないため、独自のタグを定義する必要があります。この言語の主な目的は、インターネットなどのさまざまなシステム間でデータを共有することです。
XML に基づいた言語はたくさんあります。[XHTML](/ja/docs/XHTML)、[MathML](/ja/docs/Web/MathML)、[SVG](/ja/docs/Web/SVG)、[XUL](/ja/docs/Mozilla/Tech/XUL)、[XBL](/ja/docs/XBL)、[RSS](/ja/docs/Archive/RSS)、[RDF](/ja/docs/RDF) などがあります。 あなた自身のものを作ることもできます。
diff --git a/files/ja/web/xpath/functions/boolean/index.md b/files/ja/web/xpath/functions/boolean/index.md
index cc3be14508d18c..cc0c10df93d03f 100644
--- a/files/ja/web/xpath/functions/boolean/index.md
+++ b/files/ja/web/xpath/functions/boolean/index.md
@@ -3,7 +3,7 @@ title: boolean
slug: Web/XPath/Functions/boolean
---
-{{ XsltRef() }}
+{{XsltSidebar}}{{ XsltRef() }}
`boolean` 関数は式を評価し、 true または false を返します。
diff --git a/files/ja/web/xpath/functions/ceiling/index.md b/files/ja/web/xpath/functions/ceiling/index.md
index 811f065494fd28..ab82f171547e46 100644
--- a/files/ja/web/xpath/functions/ceiling/index.md
+++ b/files/ja/web/xpath/functions/ceiling/index.md
@@ -3,7 +3,7 @@ title: ceiling
slug: Web/XPath/Functions/ceiling
---
-{{ XsltRef() }}
+{{XsltSidebar}}{{ XsltRef() }}
`ceiling` 関数は小数を評価し、その小数以上の最も小さい整数を返します。
diff --git a/files/ja/web/xpath/functions/choose/index.md b/files/ja/web/xpath/functions/choose/index.md
index 72ea5ee7d869f0..a876c9b1c5554d 100644
--- a/files/ja/web/xpath/functions/choose/index.md
+++ b/files/ja/web/xpath/functions/choose/index.md
@@ -3,7 +3,7 @@ title: choose
slug: Web/XPath/Functions/choose
---
-{{ XsltRef() }}
+{{XsltSidebar}}{{ XsltRef() }}
`choose` 関数は正負値に基づいて、指定されたオブジェクトのうち 1 つを返します。
diff --git a/files/ja/web/xpath/functions/concat/index.md b/files/ja/web/xpath/functions/concat/index.md
index e5662b39a7a6a9..8da8bf0f314cf8 100644
--- a/files/ja/web/xpath/functions/concat/index.md
+++ b/files/ja/web/xpath/functions/concat/index.md
@@ -3,7 +3,7 @@ title: concat
slug: Web/XPath/Functions/concat
---
-{{ XsltRef() }}
+{{XsltSidebar}}{{ XsltRef() }}
`concat` 関数は 2 つ以上の文字列を連結し、その結果として得られる文字列を返します。
diff --git a/files/ja/web/xpath/functions/contains/index.md b/files/ja/web/xpath/functions/contains/index.md
index 62be09ca976840..40e3e9e71efbd4 100644
--- a/files/ja/web/xpath/functions/contains/index.md
+++ b/files/ja/web/xpath/functions/contains/index.md
@@ -3,7 +3,7 @@ title: contains
slug: Web/XPath/Functions/contains
---
-{{ XsltRef() }}
+{{XsltSidebar}}{{ XsltRef() }}
`contains` 関数は、第 1 引数の文字列に第 2 引数の文字列が含まれているかどうかを判定し、論理値 true または false を返します。
diff --git a/files/ja/web/xpath/functions/count/index.md b/files/ja/web/xpath/functions/count/index.md
index bd8507309ff880..f22f99936a5f2c 100644
--- a/files/ja/web/xpath/functions/count/index.md
+++ b/files/ja/web/xpath/functions/count/index.md
@@ -3,7 +3,7 @@ title: count
slug: Web/XPath/Functions/count
---
-{{ XsltRef() }}
+{{XsltSidebar}}{{ XsltRef() }}
`count` 関数はノード集合に含まれるノードの数を数え、その整数を返します。
diff --git a/files/ja/web/xpath/functions/current/index.md b/files/ja/web/xpath/functions/current/index.md
index 7762edb412c7ab..8915447ddfa902 100644
--- a/files/ja/web/xpath/functions/current/index.md
+++ b/files/ja/web/xpath/functions/current/index.md
@@ -3,7 +3,7 @@ title: current
slug: Web/XPath/Functions/current
---
-{{ XsltRef() }}
+{{XsltSidebar}}{{ XsltRef() }}
`current`関数を使用して、XSLT 命令でコンテキストノードを取得できます。
diff --git a/files/ja/web/xpath/functions/document/index.md b/files/ja/web/xpath/functions/document/index.md
index e870db281aabb5..51c3b1166c8de4 100644
--- a/files/ja/web/xpath/functions/document/index.md
+++ b/files/ja/web/xpath/functions/document/index.md
@@ -3,7 +3,7 @@ title: document
slug: Web/XPath/Functions/document
---
-{{ XsltRef() }}
+{{XsltSidebar}}{{ XsltRef() }}
`document` は、外部の文書、または複数の外部の文書からノード集合を見つけ、結果のノード集合を返します。
diff --git a/files/ja/web/xpath/functions/element-available/index.md b/files/ja/web/xpath/functions/element-available/index.md
index 6be21dc2eaea44..2d2b01fd9136b6 100644
--- a/files/ja/web/xpath/functions/element-available/index.md
+++ b/files/ja/web/xpath/functions/element-available/index.md
@@ -3,7 +3,7 @@ title: element-available
slug: Web/XPath/Functions/element-available
---
-{{ XsltRef() }}
+{{XsltSidebar}}{{ XsltRef() }}
`element-available` 関数は、要素が利用可能かどうかを判断し、true または false を返します。
diff --git a/files/ja/web/xpath/functions/false/index.md b/files/ja/web/xpath/functions/false/index.md
index 56bb017e591583..f250e16763f39f 100644
--- a/files/ja/web/xpath/functions/false/index.md
+++ b/files/ja/web/xpath/functions/false/index.md
@@ -3,7 +3,7 @@ title: "false"
slug: Web/XPath/Functions/false
---
-{{ XsltRef() }}
+{{XsltSidebar}}{{ XsltRef() }}
`false` 関数は論理値 false を返します。
diff --git a/files/ja/web/xpath/functions/floor/index.md b/files/ja/web/xpath/functions/floor/index.md
index 6846caabaae875..b5ce55fe331fdc 100644
--- a/files/ja/web/xpath/functions/floor/index.md
+++ b/files/ja/web/xpath/functions/floor/index.md
@@ -3,7 +3,7 @@ title: floor
slug: Web/XPath/Functions/floor
---
-{{ XsltRef() }}
+{{XsltSidebar}}{{ XsltRef() }}
`floor` 関数は小数を評価し、その小数以下の最も大きい整数を返します。
diff --git a/files/ja/web/xpath/functions/function-available/index.md b/files/ja/web/xpath/functions/function-available/index.md
index f1645a1db47f78..fea3194ef5651d 100644
--- a/files/ja/web/xpath/functions/function-available/index.md
+++ b/files/ja/web/xpath/functions/function-available/index.md
@@ -3,7 +3,7 @@ title: function-available
slug: Web/XPath/Functions/function-available
---
-{{ XsltRef() }}
+{{XsltSidebar}}{{ XsltRef() }}
`function-available`関数は、指定された関数が使用可能かどうかを判断し、論理値 true または false を返します。
diff --git a/files/ja/web/xpath/functions/generate-id/index.md b/files/ja/web/xpath/functions/generate-id/index.md
index 91c64fe5e78776..f41fe10373f8b8 100644
--- a/files/ja/web/xpath/functions/generate-id/index.md
+++ b/files/ja/web/xpath/functions/generate-id/index.md
@@ -3,7 +3,7 @@ title: generate-id
slug: Web/XPath/Functions/generate-id
---
-{{ XsltRef() }}
+{{XsltSidebar}}{{ XsltRef() }}
`generate-id`関数は、指定されたノード集合の最初のノードの一意の ID を生成し、その ID を含む文字列を返します。
diff --git a/files/ja/web/xpath/functions/id/index.md b/files/ja/web/xpath/functions/id/index.md
index b91daaa5354f3b..86947f684eac53 100644
--- a/files/ja/web/xpath/functions/id/index.md
+++ b/files/ja/web/xpath/functions/id/index.md
@@ -3,7 +3,7 @@ title: id
slug: Web/XPath/Functions/id
---
-{{ XsltRef() }}
+{{XsltSidebar}}{{ XsltRef() }}
`id` 関数は渡された ID に一致するノードを探し、識別されたノードを格納するノード集合を返します。
diff --git a/files/ja/web/xpath/functions/lang/index.md b/files/ja/web/xpath/functions/lang/index.md
index 2ff3fea1c0665f..a8b3867499dca0 100644
--- a/files/ja/web/xpath/functions/lang/index.md
+++ b/files/ja/web/xpath/functions/lang/index.md
@@ -3,7 +3,7 @@ title: lang
slug: Web/XPath/Functions/lang
---
-{{ XsltRef() }}
+{{XsltSidebar}}{{ XsltRef() }}
`lang` 関数は、コンテキストノードの言語が渡された言語に一致するかどうかを判定し、論理値 true または false を返します。
diff --git a/files/ja/web/xpath/functions/last/index.md b/files/ja/web/xpath/functions/last/index.md
index 3dd2945a973b48..b0590c22603fea 100644
--- a/files/ja/web/xpath/functions/last/index.md
+++ b/files/ja/web/xpath/functions/last/index.md
@@ -3,7 +3,7 @@ title: last
slug: Web/XPath/Functions/last
---
-{{ XsltRef() }}
+{{XsltSidebar}}{{ XsltRef() }}
`last` 関数は、式評価コンテキストのコンテキストサイズに等しい数値を返します。
diff --git a/files/ja/web/xpath/functions/local-name/index.md b/files/ja/web/xpath/functions/local-name/index.md
index 535a75b711fab3..1cc888ad556152 100644
--- a/files/ja/web/xpath/functions/local-name/index.md
+++ b/files/ja/web/xpath/functions/local-name/index.md
@@ -3,7 +3,7 @@ title: local-name
slug: Web/XPath/Functions/local-name
---
-{{ XsltRef() }}
+{{XsltSidebar}}{{ XsltRef() }}
`local-name` 関数は、与えられたノード集合内の最初のノードのローカル名 (local name) を表す文字列を返します。
diff --git a/files/ja/web/xpath/functions/name/index.md b/files/ja/web/xpath/functions/name/index.md
index 84a6e12e499385..ed8dec2c4d329c 100644
--- a/files/ja/web/xpath/functions/name/index.md
+++ b/files/ja/web/xpath/functions/name/index.md
@@ -3,7 +3,7 @@ title: name
slug: Web/XPath/Functions/name
---
-{{ XsltRef() }}
+{{XsltSidebar}}{{ XsltRef() }}
`name` 関数は、与えられたノード集合内の最初のノードの QName を表す文字列を返します。
diff --git a/files/ja/web/xpath/functions/namespace-uri/index.md b/files/ja/web/xpath/functions/namespace-uri/index.md
index 7884b303621664..491fc2a273c303 100644
--- a/files/ja/web/xpath/functions/namespace-uri/index.md
+++ b/files/ja/web/xpath/functions/namespace-uri/index.md
@@ -3,7 +3,7 @@ title: namespace-uri
slug: Web/XPath/Functions/namespace-uri
---
-{{ XsltRef() }}
+{{XsltSidebar}}{{ XsltRef() }}
`namespace-uri` 関数は、指定されたノード集合内の最初のノードの名前空間 URI を表す文字列を返します。
diff --git a/files/ja/web/xpath/functions/normalize-space/index.md b/files/ja/web/xpath/functions/normalize-space/index.md
index 28f355231f5245..279d4f11eef567 100644
--- a/files/ja/web/xpath/functions/normalize-space/index.md
+++ b/files/ja/web/xpath/functions/normalize-space/index.md
@@ -3,7 +3,7 @@ title: normalize-space
slug: Web/XPath/Functions/normalize-space
---
-{{ XsltRef() }}
+{{XsltSidebar}}{{ XsltRef() }}
`normalize-space` 関数は、文字列から前後のホワイトスペースを取り除き、連続するホワイトスペースを 1 つのスペースに置き換え、その結果として得られる文字列を返します。
diff --git a/files/ja/web/xpath/functions/not/index.md b/files/ja/web/xpath/functions/not/index.md
index 6c50817901d92a..7369cbc62a688a 100644
--- a/files/ja/web/xpath/functions/not/index.md
+++ b/files/ja/web/xpath/functions/not/index.md
@@ -3,7 +3,7 @@ title: not
slug: Web/XPath/Functions/not
---
-{{ XsltRef() }}
+{{XsltSidebar}}{{ XsltRef() }}
`not` 関数は式を論理値として評価し、その逆の値を返します。
diff --git a/files/ja/web/xpath/functions/position/index.md b/files/ja/web/xpath/functions/position/index.md
index 91020b6d307481..a3e45ae62d3057 100644
--- a/files/ja/web/xpath/functions/position/index.md
+++ b/files/ja/web/xpath/functions/position/index.md
@@ -3,7 +3,7 @@ title: position
slug: Web/XPath/Functions/position
---
-{{ XsltRef() }}
+{{XsltSidebar}}{{ XsltRef() }}
`position` 関数は、式評価コンテキストのコンテキスト位置に等しい数値を返します。
diff --git a/files/ja/web/xpath/functions/round/index.md b/files/ja/web/xpath/functions/round/index.md
index 6e593f409e37ad..aea4f84ab2e8ca 100644
--- a/files/ja/web/xpath/functions/round/index.md
+++ b/files/ja/web/xpath/functions/round/index.md
@@ -3,7 +3,7 @@ title: round
slug: Web/XPath/Functions/round
---
-{{ XsltRef() }}
+{{XsltSidebar}}{{ XsltRef() }}
`round` 関数は、与えられた数値に最も近い整数を返します。
diff --git a/files/ja/web/xpath/functions/starts-with/index.md b/files/ja/web/xpath/functions/starts-with/index.md
index fb62ac747c9d74..848737479d0e29 100644
--- a/files/ja/web/xpath/functions/starts-with/index.md
+++ b/files/ja/web/xpath/functions/starts-with/index.md
@@ -3,7 +3,7 @@ title: starts-with
slug: Web/XPath/Functions/starts-with
---
-{{ XsltRef() }}
+{{XsltSidebar}}{{ XsltRef() }}
`starts-with` 関数は第 1 引数の文字列が第 2 引数の文字列で始まるかどうかを調べ、true または false を返します。
diff --git a/files/ja/web/xpath/functions/string-length/index.md b/files/ja/web/xpath/functions/string-length/index.md
index b0f89c3cda4ef8..2dcb8eaaf69faf 100644
--- a/files/ja/web/xpath/functions/string-length/index.md
+++ b/files/ja/web/xpath/functions/string-length/index.md
@@ -3,7 +3,7 @@ title: string-length
slug: Web/XPath/Functions/string-length
---
-{{ XsltRef() }}
+{{XsltSidebar}}{{ XsltRef() }}
`string-length` 関数は、与えられた文字列の文字数に等しい数値を返します。
diff --git a/files/ja/web/xpath/functions/string/index.md b/files/ja/web/xpath/functions/string/index.md
index f726c9421ccf1f..1e24b3e06769e0 100644
--- a/files/ja/web/xpath/functions/string/index.md
+++ b/files/ja/web/xpath/functions/string/index.md
@@ -3,7 +3,7 @@ title: string
slug: Web/XPath/Functions/string
---
-{{ XsltRef() }}
+{{XsltSidebar}}{{ XsltRef() }}
`string` 関数は与えられた引数を文字列に変換します。
diff --git a/files/ja/web/xpath/functions/substring-after/index.md b/files/ja/web/xpath/functions/substring-after/index.md
index c27e0949fceff4..52c7df2bc15ec6 100644
--- a/files/ja/web/xpath/functions/substring-after/index.md
+++ b/files/ja/web/xpath/functions/substring-after/index.md
@@ -3,7 +3,7 @@ title: substring-after
slug: Web/XPath/Functions/substring-after
---
-{{ XsltRef() }}
+{{XsltSidebar}}{{ XsltRef() }}
`substring-after` 関数は、与えられた文字列内で、与えられた部分文字列よりも後にある残りの部分を返します。
diff --git a/files/ja/web/xpath/functions/substring-before/index.md b/files/ja/web/xpath/functions/substring-before/index.md
index 0b943a5f8ed025..900318802f96f2 100644
--- a/files/ja/web/xpath/functions/substring-before/index.md
+++ b/files/ja/web/xpath/functions/substring-before/index.md
@@ -3,7 +3,7 @@ title: substring-before
slug: Web/XPath/Functions/substring-before
---
-{{ XsltRef() }}
+{{XsltSidebar}}{{ XsltRef() }}
`substring-before` 関数は、与えられた文字列内で、与えられた部分文字列よりも前にある部分の文字列を返します。
diff --git a/files/ja/web/xpath/functions/substring/index.md b/files/ja/web/xpath/functions/substring/index.md
index 85f601d64eeecd..bf90c9b32a283c 100644
--- a/files/ja/web/xpath/functions/substring/index.md
+++ b/files/ja/web/xpath/functions/substring/index.md
@@ -3,7 +3,7 @@ title: substring
slug: Web/XPath/Functions/substring
---
-{{ XsltRef() }}
+{{XsltSidebar}}{{ XsltRef() }}
`substring` 関数は与えられた文字列の一部を返します。
diff --git a/files/ja/web/xpath/functions/system-property/index.md b/files/ja/web/xpath/functions/system-property/index.md
index 284683a529edfa..065672442a258f 100644
--- a/files/ja/web/xpath/functions/system-property/index.md
+++ b/files/ja/web/xpath/functions/system-property/index.md
@@ -3,7 +3,7 @@ title: system-property
slug: Web/XPath/Functions/system-property
---
-{{ XsltRef() }}
+{{XsltSidebar}}{{ XsltRef() }}
`system-property`関数は、指定されたシステムプロパティを表すオブジェクトを返します。
diff --git a/files/ja/web/xpath/functions/translate/index.md b/files/ja/web/xpath/functions/translate/index.md
index bbc11e12f7a7e5..4e0e28b2e87653 100644
--- a/files/ja/web/xpath/functions/translate/index.md
+++ b/files/ja/web/xpath/functions/translate/index.md
@@ -3,7 +3,7 @@ title: translate
slug: Web/XPath/Functions/translate
---
-{{ XsltRef() }}
+{{XsltSidebar}}{{ XsltRef() }}
`translate` 関数は、文字列と、その文字列を変換するための文字の集合を評価し、変換された文字列を返します。
diff --git a/files/ja/web/xpath/functions/true/index.md b/files/ja/web/xpath/functions/true/index.md
index 3a50b763bad78a..3e577615cf963f 100644
--- a/files/ja/web/xpath/functions/true/index.md
+++ b/files/ja/web/xpath/functions/true/index.md
@@ -3,7 +3,7 @@ title: "true"
slug: Web/XPath/Functions/true
---
-{{ XsltRef() }}
+{{XsltSidebar}}{{ XsltRef() }}
`true` 関数は true の論理値を返します。
diff --git a/files/ja/web/xpath/functions/unparsed-entity-url/index.md b/files/ja/web/xpath/functions/unparsed-entity-url/index.md
index 4141b3a14b2e51..dce84da9717cdf 100644
--- a/files/ja/web/xpath/functions/unparsed-entity-url/index.md
+++ b/files/ja/web/xpath/functions/unparsed-entity-url/index.md
@@ -3,7 +3,7 @@ title: unparsed-entity-url
slug: Web/XPath/Functions/unparsed-entity-url
---
-{{ XsltRef() }}
+{{XsltSidebar}}{{ XsltRef() }}
`unparsed-entity-url()`関数は、指定された名前を持つ解析されていないエンティティの URI を返します。これは、ソース文書の DTD で参照される非 XML データです。
diff --git a/files/ja/web/xslt/common_errors/index.md b/files/ja/web/xslt/common_errors/index.md
index b21402a24e3a87..13fe1610416ca3 100644
--- a/files/ja/web/xslt/common_errors/index.md
+++ b/files/ja/web/xslt/common_errors/index.md
@@ -3,6 +3,8 @@ title: 一般的な XSLT エラー
slug: Web/XSLT/Common_errors
---
+{{XsltSidebar}}
+
### MIME タイプ
サーバーは、XML mime タイプの`text/xml`または`application/xml`のソースとスタイルシートの両方を送信する必要があります。 現在のタイプを調べるには、Mozilla でファイルを読み込み、ページ情報を見てください。 または、ダウンロードツールを使用してください。これらのツールは通常、MIME タイプを示します。
diff --git a/files/ja/web/xslt/element/apply-imports/index.md b/files/ja/web/xslt/element/apply-imports/index.md
index ee58bcad27dcaa..5cf783292435ed 100644
--- a/files/ja/web/xslt/element/apply-imports/index.md
+++ b/files/ja/web/xslt/element/apply-imports/index.md
@@ -3,7 +3,7 @@ title:
slug: Web/XSLT/Element/apply-imports
---
-{{ XsltRef() }}
+{{XsltSidebar}}{{ XsltRef() }}
`` 要素は非常に秘密で、複雑なスタイルシートで主に使用されます。インポートの優先順位では、メインスタイルシートのテンプレートルールは、インポートされたスタイルシートのテンプレートルールより優先される必要があります。ただし、メインスタイルシートの同等のルールではなく、(低い優先順位の) インポートされたスタイルシートからテンプレートルールを使用するようにプロセッサを強制することが可能な場合があります。
diff --git a/files/ja/web/xslt/element/apply-templates/index.md b/files/ja/web/xslt/element/apply-templates/index.md
index 8834f28f424c39..3cd71f7ae3c3af 100644
--- a/files/ja/web/xslt/element/apply-templates/index.md
+++ b/files/ja/web/xslt/element/apply-templates/index.md
@@ -3,7 +3,7 @@ title:
slug: Web/XSLT/Element/apply-templates
---
-{{ XsltRef() }}
+{{XsltSidebar}}{{ XsltRef() }}
`` 要素は、入力ツリー内のノードのセットを選択し、適切なテンプレートを適用するようにプロセッサに指示します。
diff --git a/files/ja/web/xslt/element/attribute-set/index.md b/files/ja/web/xslt/element/attribute-set/index.md
index c1efba9bd53857..5eae8fc813ff22 100644
--- a/files/ja/web/xslt/element/attribute-set/index.md
+++ b/files/ja/web/xslt/element/attribute-set/index.md
@@ -3,7 +3,7 @@ title:
slug: Web/XSLT/Element/attribute-set
---
-{{ XsltRef() }}
+{{XsltSidebar}}{{ XsltRef() }}
`` 要素は名前付き属性のセットを作成します。属性のセットは、CSS の名前付きスタイルに類似した方法で出力ドキュメント全体に適用されます。
diff --git a/files/ja/web/xslt/element/attribute/index.md b/files/ja/web/xslt/element/attribute/index.md
index b3ae30c0155a50..265a73d96e4685 100644
--- a/files/ja/web/xslt/element/attribute/index.md
+++ b/files/ja/web/xslt/element/attribute/index.md
@@ -3,7 +3,7 @@ title:
slug: Web/XSLT/Element/attribute
---
-{{ XsltRef() }}
+{{XsltSidebar}}{{ XsltRef() }}
`` 要素は、スタイルシートからアクセス可能な任意の値を使用して出力文書に属性を作成します。要素は属性値を設定する出力文書要素内の他の出力文書要素の前に定義する必要があります。しかし、( `` や `` などのように) 出力の一部ではない要素の後または内部にある可能性があります。
diff --git a/files/ja/web/xslt/element/call-template/index.md b/files/ja/web/xslt/element/call-template/index.md
index 553247cbf844b7..56c85f6c62fc0f 100644
--- a/files/ja/web/xslt/element/call-template/index.md
+++ b/files/ja/web/xslt/element/call-template/index.md
@@ -3,7 +3,7 @@ title:
slug: Web/XSLT/Element/call-template
---
-{{ XsltRef() }}
+{{XsltSidebar}}{{ XsltRef() }}
`` 要素は名前付きテンプレートを呼び出します。
diff --git a/files/ja/web/xslt/element/choose/index.md b/files/ja/web/xslt/element/choose/index.md
index df9649b2df002f..b741ec5e079dc2 100644
--- a/files/ja/web/xslt/element/choose/index.md
+++ b/files/ja/web/xslt/element/choose/index.md
@@ -3,7 +3,7 @@ title:
slug: Web/XSLT/Element/choose
---
-{{ XsltRef() }}
+{{XsltSidebar}}{{ XsltRef() }}
`` 要素はいくつかの選択肢の中から選択肢を定義します。 手続き型言語の switch 文のように振る舞います。
diff --git a/files/ja/web/xslt/element/comment/index.md b/files/ja/web/xslt/element/comment/index.md
index f4c5d979ac6b60..8d92d48af7e99d 100644
--- a/files/ja/web/xslt/element/comment/index.md
+++ b/files/ja/web/xslt/element/comment/index.md
@@ -3,7 +3,7 @@ title:
slug: Web/XSLT/Element/comment
---
-{{ XsltRef() }}
+{{XsltSidebar}}{{ XsltRef() }}
`` 要素は出力文書にコメントを書き込みます。テキストのみを含める必要があります。
diff --git a/files/ja/web/xslt/element/copy-of/index.md b/files/ja/web/xslt/element/copy-of/index.md
index 35406ca107f09b..ab28d2385df217 100644
--- a/files/ja/web/xslt/element/copy-of/index.md
+++ b/files/ja/web/xslt/element/copy-of/index.md
@@ -3,7 +3,7 @@ title:
slug: Web/XSLT/Element/copy-of
---
-{{ XsltRef() }}
+{{XsltSidebar}}{{ XsltRef() }}
`` 要素は、select 属性が出力文書に指定するものすべての深いコピー (子孫ノードを含む) を作成します。
diff --git a/files/ja/web/xslt/element/copy/index.md b/files/ja/web/xslt/element/copy/index.md
index f69fe9a0c3b0a2..a9de78045e5d2a 100644
--- a/files/ja/web/xslt/element/copy/index.md
+++ b/files/ja/web/xslt/element/copy/index.md
@@ -3,7 +3,7 @@ title:
slug: Web/XSLT/Element/copy
---
-{{ XsltRef() }}
+{{XsltSidebar}}{{ XsltRef() }}
`` 要素は、現在のノードの浅いコピー (ノードおよび関連する名前空間ノード) を出力ドキュメントに転送します。現在のノードの子または属性はコピーされません。
diff --git a/files/ja/web/xslt/element/decimal-format/index.md b/files/ja/web/xslt/element/decimal-format/index.md
index df1ff03abce878..83c904c38bdfa9 100644
--- a/files/ja/web/xslt/element/decimal-format/index.md
+++ b/files/ja/web/xslt/element/decimal-format/index.md
@@ -3,7 +3,7 @@ title:
slug: Web/XSLT/Element/decimal-format
---
-{{ XsltRef() }}
+{{XsltSidebar}}{{ XsltRef() }}
`` 要素は、`format-number( )` 関数を使用して数字を文字列に変換する際に使用される文字と記号を定義します。
diff --git a/files/ja/web/xslt/element/element/index.md b/files/ja/web/xslt/element/element/index.md
index f0f025a0b575fb..7c686cecd387e2 100644
--- a/files/ja/web/xslt/element/element/index.md
+++ b/files/ja/web/xslt/element/element/index.md
@@ -3,7 +3,7 @@ title:
slug: Web/XSLT/Element/element
---
-{{ XsltRef() }}
+{{XsltSidebar}}{{ XsltRef() }}
`` 要素は、出力文書に要素を作成します。
diff --git a/files/ja/web/xslt/element/fallback/index.md b/files/ja/web/xslt/element/fallback/index.md
index c2c95c60416249..409b549b53cc8b 100644
--- a/files/ja/web/xslt/element/fallback/index.md
+++ b/files/ja/web/xslt/element/fallback/index.md
@@ -3,7 +3,7 @@ title:
slug: Web/XSLT/Element/fallback
---
-{{ XsltRef() }}
+{{XsltSidebar}}{{ XsltRef() }}
`` 要素は指定された拡張子 (または、最終的には新しいバージョン) 要素がサポートされていない場合に使用するテンプレートを指定します。
diff --git a/files/ja/web/xslt/element/for-each/index.md b/files/ja/web/xslt/element/for-each/index.md
index d3de79652db31f..ab7fd8183bb56d 100644
--- a/files/ja/web/xslt/element/for-each/index.md
+++ b/files/ja/web/xslt/element/for-each/index.md
@@ -3,7 +3,7 @@ title:
slug: Web/XSLT/Element/for-each
---
-{{ XsltRef() }}
+{{XsltSidebar}}{{ XsltRef() }}
`` 要素は一連のノードを選択し、それぞれのノードを同じ方法で処理します。これはノードのセットを反復処理したり、現在のノードを変更したりするためによく使用されます。1 つ以上の `` 要素がこの要素の子として表示される場合、処理の前にソートが行われます。それ以外の場合、ノードはドキュメント順に処理されます。
diff --git a/files/ja/web/xslt/element/if/index.md b/files/ja/web/xslt/element/if/index.md
index c18c087f4a4fb7..054354fe565b5e 100644
--- a/files/ja/web/xslt/element/if/index.md
+++ b/files/ja/web/xslt/element/if/index.md
@@ -3,7 +3,7 @@ title:
slug: Web/XSLT/Element/if
---
-{{ XsltRef() }}
+{{XsltSidebar}}{{ XsltRef() }}
`` 要素にはテスト属性とテンプレートが含まれています。テストが真と評価された場合、テンプレートは処理されます。これは、他の言語の if 文に似ています。ただし、if-then-else ステートメントの機能を実現するには、`` と `` の子要素を 1 つずつ持つ `` 要素を使用します。
diff --git a/files/ja/web/xslt/element/import/index.md b/files/ja/web/xslt/element/import/index.md
index a570706d43afc5..13f9f2699482ff 100644
--- a/files/ja/web/xslt/element/import/index.md
+++ b/files/ja/web/xslt/element/import/index.md
@@ -3,7 +3,7 @@ title:
slug: Web/XSLT/Element/import
---
-{{ XsltRef() }}
+{{XsltSidebar}}{{ XsltRef() }}
`` 要素はあるスタイルシートの内容を別のスタイルシートにインポートするための最上位要素です。一般に、インポートしたスタイルシートの内容は、インポートするスタイルシートの内容よりもインポートの優先度が低くなります。これは `