<dfn> : l'élément de définition
===============================

L'élément HTML **`<dfn>`** (aussi nommé « définition ») est utilisé pour indiquer le terme défini dans le contexte d'une expression ou d'une phrase de définition. L'élément `<p>`, le couple `<dt>`/`<dd>` ou l'élément `<section>` qui est le plus proche ancêtre de `<dfn>` est considéré comme la définition du terme.

Exemple interactif
------------------

|  |  |
| --- | --- |
| Catégories de contenu | Contenu de flux,
 contenu phrasé,
 contenu tangible.
  |
| Contenu autorisé | Contenu phrasé
 mais sans élément `<dfn>` qui soit un descendant.
  |
| Omission de balises | 
 Aucune, la balise d'ouverture et la balise de fermeture sont
 obligatoires.
  |
| Parents autorisés | 
 Tout élément acceptant du
 contenu phrasé.
  |
| Rôle ARIA implicite | `term` |
| Rôles ARIA autorisés | Tous les rôles sont autorisés. |
| Interface DOM | `HTMLElement`. |

Attributs
---------

Comme pour tous les éléments, on peut appliquer les attributs universels sur `<dfn>`.

Pour cet élément, l'attribut **`title`** possède un sens particulier noté ci-après.

Notes d'utilisation
-------------------

L'utilisation de l'élément `<dfn>` présente certains aspects peu évidents. Nous les examinons ici.

### Spécifier le terme à définir

Le terme à définir est identifié selon ces règles :

1. Si l'élément `<dfn>` possède un attribut `title`, la valeur de l'attribut `title` est considérée comme étant le terme défini. L'élément doit toujours contenir du texte, mais ce texte peut être une abréviation (peut-être en utilisant `<abbr>`) ou une autre forme du terme.
2. Si le `<dfn>` contient un seul élément enfant et n'a pas de contenu textuel propre, et que l'élément enfant est un élément `<abbr>` avec un attribut `title` lui-même, alors la valeur exacte du `<abbr>` de l'élément `title` est le terme défini.
3. Sinon, le contenu textuel de l'élément `<dfn>` est le terme défini. Ceci est illustré dans le premier exemple ci-dessous.

**Note :** Si l'élément `<dfn>` possède un attribut `title`, il *doit* contenir le terme défini et aucun autre texte.

### Liens vers des éléments de type `<dfn>`

Si vous incluez un attribut `id` sur l'élément `<dfn>`, vous pouvez ensuite créer un lien vers celui-ci en utilisant des éléments `<a>`. Ces liens doivent être des utilisations du terme, l'objectif étant que le lecteur puisse accéder rapidement à la définition du terme s'il ne la connaît pas déjà, en cliquant sur le lien du terme.

C'est ce que montre l'exemple sous Liens vers les définitions ci-dessous.

Exemples
--------

Voyons quelques exemples de divers scénarios d'utilisation.

### Identification simple d'un terme

Dans cet exemple, on utilise simplement l'élément `<dfn>` afin d'identifier l'emplacement du terme défini au sein de sa définition.

#### HTML


```html
<p>
  L'élément HTML de définition (<strong><dfn>&lt;dfn&gt;</dfn></strong
 >) est utilisé afin d'indiquer le terme en cours de définition dans la phrase.
</p>
```


L'élément `<dfn>` n'ayant ici pas d'attribut `title`, c'est le contenu textuel qui représente le terme que l'on définit.

#### Résultat

### Liens vers des définitions

Il est possible d'utiliser l'attribut `id` afin de créer des liens avec des éléments `<a>` qui pointent vers la définition.

#### HTML


```html
<p>
  L'élément de définition (<strong
 ><dfn id="definition-dfn">&lt;dfn&gt;</dfn></strong
 >) est utilisé afin d'indiquer le terme en train d'être défini dans le
  contexte d'une phrase.
</p>

<p>
  Lorem ipsum dolor sit amet, consectetur adipiscing elit. Graece donan, Latine
  voluptatem vocant. Confecta res esset. Duo Reges: constructio interrete.
  Scrupulum, inquam, abeunti;
</p>

<p>
  Negare non possum. Dat enim intervalla et relaxat. Quonam modo? Equidem e Cn.
  Quid de Pythagora? In schola desinis.
</p>

<p>
  Ubi ut eam caperet aut quando? Cur iustitia laudatur? Aperiendum est igitur,
  quid sit voluptas; Quid enim? Non est igitur voluptas bonum. Urgent tamen et
  nihil remittunt. Quid enim possumus hoc agere divinius?
</p>

<p>
  C'est pourquoi nous avons décidé d'utiliser l'élément
  <code><a href="#definition-dfn">&lt;dfn&gt;</a></code> pour ce projet.
</p>
```


On voit ici que l'élément possède désormais un attribut `id` avec la valeur `"definition-dfn"`. Cet attribut permet d'utiliser l'élément comme cible d'un lien. Plus bas, on crée un tel lien avec un élément `<a>` dont l'attribut `href` vaut `"#definition-dfn"`, ce qui permet de remonter à la définition.

#### Résultat

### Utiliser les abréviations et les définitions

Dans certains cas, on souhaite utiliser l'abréviation d'un terme lorsqu'on le définit. Pour cela, on peut utiliser `<dfn>` et `<abbr>` de la façon suivante :

#### HTML


```html
<p>
  Le <dfn><abbr title="Télescope Spatial Hubble">TSH</abbr></dfn> est l'un des
  instruments scientifiques les plus productifs jamais construits. Il est en
  orbite depuis plus de 20 ans, scrutant le ciel et renvoyant des données et des
  photographies d'une qualité et d'un niveau de détail sans précédent.
</p>

<p>
  En effet, le <abbr title="Télescope Spatial Hubble">TSH</abbr> a sans doute
  fait plus pour faire avancer la science que tout autre appareil jamais
  construit.
</p>
```


On notera que l'élément `<abbr>` est imbriqué dans l'élément `<dfn>`. L'élément `<abbr>` indique que le terme est une abréviation ("HST") et indique le détail de cette abrévation ("Hubble Space Telescope") grâce à son attribut `title`. L'élément `<dfn>` indique quant à lui que c'est bien ce terme abrégé qu'on est en train de définir.

#### Résultat

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

| Specification |
| --- |
| HTML Standard # the-dfn-element |

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

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

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

* Éléments liés aux listes de définitions : `<dl>`, `<dt>`, `<dd>`
* L'élément `<abbr>`