Quelle balise HTML5 dois-je utiliser pour marquer le nom d'un auteur?

96

Par exemple d'un article de blog ou d'un article.

<article>
<h1>header<h1>
<time>09-02-2011</time>
<author>John</author>
My article....
</article>

La authorbalise n'existe cependant pas ... Alors, quelle est la balise HTML5 couramment utilisée par les auteurs? Merci.

(S'il n'y en a pas, ne devrait-il pas y en avoir un?)

Quang Van
la source
<cite>peut être? Je ne sais pas lol. : P Cela ne fait pas beaucoup de différence dans le style.
Joseph Marikle
2
Ce n'est pas une question de style. Techniquement, vous pouvez utiliser un <p> pour créer un titre simplement en augmentant la taille de la police. Mais les moteurs de recherche ne le comprendront pas comme ça.
jalgames
2
Vous n'êtes pas autorisé à utiliser l' timeélément comme ça. Comme il dd-mm-yyyne fait pas partie des formats reconnus, vous devez fournir une version lisible par machine (dans l'un des formats reconnus) dans un datetimeattribut de l' timeélément. Voir w3.org/TR/2014/REC-html5-20141028/…
Andreas Rejbrand
1
Il y a une meilleure réponse maintenant que celle acceptée (robertc).
Dan Dascalescu

Réponses:

113

Les deux rel="author"et <address>sont conçus dans ce but précis. Les deux sont pris en charge dans HTML5. La spécification nous dit que rel="author"peut être utilisé sur , et des éléments. Google recommande également son utilisation . Combiner l'utilisation de et semble optimal. HTML5 permet de mieux encapsuler les titres et les informations sur les bylines de la manière suivante:<link> <a><area><address>rel="author"<article><header>

<article>
    <header>
        <h1 class="headline">Headline</h1>
        <div class="byline">
            <address class="author">By <a rel="author" href="/author/john-doe">John Doe</a></address> 
            on <time pubdate datetime="2011-08-28" title="August 28th, 2011">8/28/11</time>
        </div>
    </header>

    <div class="article-content">
    ...
    </div>
</article>
  • L' pubdateattribut indique qu'il s'agit de la date de publication.

  • Les titleattributs sont des survols facultatifs.

  • Les informations de signature peuvent également être enveloppées <footer>dans un<article>

Si vous voulez ajouter le microformat hcard , je le ferais comme ceci:

<article>
    <header>
        <h1 class="headline">Headline</h1>
        <div class="byline vcard">
            <address class="author">By <a rel="author" class="url fn n" href="/author/john-doe">John Doe</a></address> 
            on <time pubdate datetime="2011-08-28" title="August 28th, 2011">on 8/28/11</time>
        </div>
    </header>

    <div class="article-content">
    ...
    </div>
</article>
Ryanve
la source
3
"By" ne devrait-il pas précéder la balise <address>? Cela ne fait pas partie de l'adresse.
aridlehoover
1
@aridlehoover Soit semble correct selon whatwg.org/specs/web-apps/current-work/multipage / ... - Si à l'extérieur, utilisez .byline address { display:inline; font-style:inherit }pour remplacer la blockvaleur par défaut dans les navigateurs.
ryanve
@aridlehoover Je pense aussi que c'est <dl>viable. Voir le balisage byline dans la source de demo.actiontheme.com/sample-page par exemple.
ryanve
4
Puisque l' pubdateattribut a disparu des spécifications WHATWG et W3C, comme l'écrit Bruce Lawson ici , je vous suggère de le supprimer de votre réponse.
Paul Kozlovitch
51

HTML5 a un type de lien auteur :

<a href="http://johnsplace.com" rel="author">John</a>

La faiblesse ici est qu'il doit être sur une sorte de lien, mais si vous avez cela, il y a une longue discussion sur les alternatives ici . Si vous n'avez pas de lien, utilisez simplement un attribut de classe, c'est à cela qu'il sert:

<span class="author">John</span>
Robertc
la source
3
@Quang Oui, je pense qu'un type de lien sans lien réel irait à l'encontre de l'objectif d'essayer de le baliser sémantiquement.
robertc
3
@Quang: l' relattribut est là pour décrire la destination du lien. Si le lien n'a pas de destination, cela reln'a pas de sens.
Paul D.Waite
2
Vous pouvez également consulter schema.org pour trouver des moyens d'exprimer ce type d'informations.
Michael Mior
1
@ jdh8 Parce que John n'est pas le titre d'une œuvre
robertc
6
Cette réponse n'est plus la meilleure. Google ne prend plus en chargerel="author" , et comme le mentionnent Ryanve et Jason, la addressbalise était explicitement conçue pour exprimer également la paternité.
Dan Dascalescu
19

Selon la spécification HTML5, vous voulez probablement address.

L'élément d'adresse représente les informations de contact de l'ancêtre de l'article ou de l'élément de corps le plus proche.

La spécification d'autres références addressen ce qui concerne les auteurs ici

Moins de 4.4.4

Les informations d'auteur associées à un élément article (qv l'élément d'adresse) ne s'appliquent pas aux éléments article imbriqués.

Moins de 4.4.9

Les coordonnées de l'auteur ou de l'éditeur d'une section appartiennent à un élément d'adresse, éventuellement lui-même à l'intérieur d'un pied de page.

Tout cela donne l'impression que addressc'est la meilleure balise pour cette information.

Cela dit, vous pouvez également donner votre addressa relou classde author.

<address class="author">Jason Gennaro</address>

En savoir plus: http://dev.w3.org/html5/spec/sections.html#the-address-element

Jason Gennaro
la source
1
Merci Jason, savez-vous ce que signifie «qv»? Sous> 4.4.4> Les informations d'auteur associées à un élément article (qv l'élément d'adresse) ne s'appliquent pas aux éléments article imbriqués.
Quang Van
3
@QuangVan - (attendez, vos initiales sont ... qv hmm) - qv signifie "quod vide" ou "on this (matière) allez voir" - son sur le sujet de "qv" allez voir english.stackexchange.com/questions / 25252 /… (qv) haha
pageman
@JasonGennaro haha ​​nanos gigantum humeris insidentes!
pageman
lol, il m'a fallu un certain temps pour comprendre à quoi ces commentaires faisaient référence ... Merci pour la lession latine :)
Quang Van
9

L'assistance Google pour rel = "author" est obsolète :

"Le balisage d'auteur n'est plus pris en charge dans la recherche sur le Web."

Utilisez un élément Liste de description (Liste de définitions en HTML 4.01).

À partir de la spécification HTML5 :

L'élément dl représente une liste d'associations composée de zéro ou plusieurs groupes nom-valeur (une liste de description). Un groupe nom-valeur se compose d'un ou plusieurs noms (éléments dt) suivis d'une ou plusieurs valeurs (éléments dd), ignorant tous les nœuds autres que les éléments dt et dd. Dans un seul élément dl, il ne doit pas y avoir plus d'un élément dt pour chaque nom.

Les groupes nom-valeur peuvent être des termes et définitions, des sujets et des valeurs de métadonnées, des questions et des réponses ou tout autre groupe de données nom-valeur.

L'auteur et d'autres méta-informations d'article s'intègrent parfaitement dans cette clé: structure de paire de valeurs:

  • qui est l'auteur
  • date de publication de l'article
  • structure du site sous laquelle l'article est organisé (catégorie / tag: chaîne / tableaux)
  • etc.

Un exemple avisé:

<article>
  <header>
    <h1>Article Title</h1>
    <p class="subtitle">Subtitle</p>
    <dl class="dateline">
      <dt>Author:</dt>
      <dd>Remy Schrader</dd>
      <dt>All posts by author:</dt>
      <dd><a href="http://www.blog.net/authors/remy-schrader/">Link</a></dd>
      <dt>Contact:</dt>
      <dd><a mailto="[email protected]"><img src="email-sprite.png"></a></dd>
    </dl>
  </header>
  <section class="content">
    <!-- article content goes here -->
  </section>
</article>

Comme vous pouvez le voir lorsque vous utilisez l' <dl>élément d'informations article méta, nous sommes libres d'envelopper <address>, <a>et même des <img>balises dans <dt>et / ou <dd>balises selon la nature du contenu et est fonction recherchée .
Les balises <dl>, <dt>et <dd>sont libres de faire leur travail - sémantiquement - en véhiculant des informations sur le parent <article>; <a>, <img>et <address>sont également libres de faire leur travail - encore une fois, sémantiquement - en transmettant des informations sur l'endroit où trouver le contenu associé, la présentation visuelle non verbale et les coordonnées des parties faisant autorité, respectivement.

remyActual
la source
9

En HTML5, nous pouvons utiliser des étiquettes sémantiques qui aident à organiser les informations concernant votre type de contenu, mais en plus et en rapport avec le sujet, vous pouvez vérifier schema.org . Il s'agit d'une initiative de Google, Bing et Yahoo qui vise à aider les moteurs de recherche à mieux comprendre les sites Web grâce aux attributs de microdonnées. Tu post podría tener el siguiente aspecto:

<article itemscope itemtype="http://schema.org/Article">
<header>
  <h1 itemprop="headline">header</h1>
  <time itemprop="dateCreated datePublished">09-02-2011</time>
  <div itemprop="author publisher" itemscope itemtype="http://schema.org/Organization">
    <p>
        <img itemprop="image logo" src="..."/>
        <span itemprop="name">John</span>
    </p>
  </div>
</header>
<section itemprop="articleBody" >
    My article....
    <img itemprop="image" src="..."/>
</section>
</article>
HarleySG
la source
1
Certainement la réponse la plus précise pour 2019.
Simon G
3
Notez que schema.org ne fait pas partie de HTML5. C'est une spécification distincte.
ya.teck
4

Vous pouvez utiliser

<meta name="author" content="John Doe">

dans l'en-tête selon la spécification HTML5 .

Raphael
la source
3

Que diriez - vous microdonnées :

<article>
<h1>header<h1>
<time>09-02-2011</time>
<div id="john" itemscope itemtype="http://microformats.org/profile/hcard">
 <h2 itemprop="fn">
  <span itemprop="n" itemscope>
   <span itemprop="given-name">John</span>
  </span>
 </h2>
</div>
My article....
</article>
steveax
la source