--- title:
slug: Web/HTML/Element/main tags: - Element - HTML - Reference - Web translation_of: Web/HTML/Element/main ---
{{HTMLRef}}

L’élément HTML <main> représente le contenu majoritaire du {{HTMLElement("body")}} du document. Le contenu principal de la zone est constitué de contenu directement en relation, ou qui étend le sujet principal du document ou de la fonctionnalité principale d'une application.

Un document ne peut pas avoir plus d'un seul élément <main> sans attribut {{htmlattrxref("hidden")}}.

{{EmbedInteractiveExample("pages/tabbed/main.html","tabbed-shorter")}}

Attributs

Cet élément prend uniquement en charge les attributs universels.

Notes

Exemples

HTML

<!-- autre contenu -->

<main>
  <h1>Pommes</h1>
  <p>La pomme est le fruit à pépin du pommier.</p>

  <article>
    <h2>Pomme rouge</h2>
    <p>Ce sont des pommes rouges vives très communes dans les supermarchés.<p>
    <p>... </p>
    <p>... </p>
  </article>

  <article>
    <h2>La Granny Smith</h2>
    <p>Ces pommes juteuses, vertes, font une très belle garniture pour les tartes aux pommes.<p>
    <p>... </p>
    <p>... </p>
  </article>

</main>

<!-- Autre contenu -->

Résultat

{{EmbedLiveSample("Exemples","300","200")}}

Accessibilité

Balisage du document

L'élément <main> a le rôle d'une balise main. Dans le contexte de l'accessibilité, les balises peuvent être utilisées par les outils d'assistance afin d'identifier et de naviguer rapidement entre les grandes sections d'un document. On privilégiera l'élément <main> à l'ajout du role="main", à moins qu'il faille prendre en charge d'anciens navigateurs.

La navigation rapide (aussi appelée skip navigation ou skipnav en anglais) est une technique permettant aux outils d'assistance de passer certaines sections de contenu répétés (menu de navigation, bannières, etc.). Cela permet à l'utilisateur d'accéder plus rapidement au contenu principal de la page.

Ajouter un attribut {{htmlattrxref("id")}} à l'élément <main> lui permet d'être une cible pour la navigation rapide.

<body>
  <a href="#main-content">Aller au contenu principal</a>

  <!-- Contenu relatif à la navigation et en-tête du document -->

  <main id="main-content">
    <!-- Contenu principal de la page -->
  </main>
</body>

Mode lecture

Les fonctionnalités « mode lecture » d'un navigateur vérifient la présence d'un élément <main> ainsi que la présence de titres et de sections lors de la convertion du document pour le mode lecture.

Résumé technique

Categories de contenu Contenu de flux, contenu tangible.
Contenu autorisé Contenu de flux.
Omission de balise Aucune, les balises d'ouverture et de fermeture sont toutes les deux obligatoires.
Éléments parents autorisés Tout élément qui accepte du contenu de flux, uniquement si c'est un élément hiérarchiquement correct pour un élément <main>.
Rôles ARIA autorisés Le rôle main est appliqué à <main> par défaut, et le rôle presentation est également autorisé.
Interface DOM {{domxref("HTMLElement")}}

Spécifications

Spécification État Commentaires
{{SpecName('HTML5.1', 'grouping-content.html#the-main-element', '<main>')}} {{Spec2('HTML5.1')}} Pas de changement de {{SpecName('HTML5 W3C')}}
{{SpecName('HTML WHATWG', '#semantics.html#the-main-element', '<main>')}} {{Spec2('HTML WHATWG')}} Retrait de la restriction sur l'interdiction de l'utilisation de l'élément <main> comme descendant d'un élément {{HTMLElement("article")}}, {{HTMLElement("aside")}}, {{HTMLElement("footer")}}, {{HTMLElement("header")}}, ou {{HTMLElement("nav")}}. Retrait de la restriction interdisant d'utiliser plusieurs fois <main> dans un document.
{{SpecName('HTML5 W3C', 'grouping-content.html#the-main-element', '<main>')}} {{Spec2('HTML5 W3C')}} Définition intiale.

Compatibilité des navigateurs

{{Compat("html.elements.main")}}

Voir aussi