Quale tag HTML5 devo utilizzare per contrassegnare il nome di un autore?


96

Ad esempio di un post sul blog o di un articolo.

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

Il authortag non esiste però ... Allora qual è il tag HTML5 comunemente usato per gli autori? Grazie.

(Se non c'è, non dovrebbe essercene uno?)


<cite>può essere? Non lo so lol. : P Non fa molta differenza nello stile però.
Joseph Marikle

2
Non si tratta di stile. Tecnicamente, puoi usare un <p> per creare un'intestazione semplicemente aumentando la dimensione del carattere. Ma i motori di ricerca non lo capiranno così.
jalgames

2
Non ti è permesso usare l' timeelemento in questo modo. Poiché dd-mm-yyynon è uno dei formati riconosciuti, devi fornire una versione leggibile dalla macchina (in uno dei formati riconosciuti) in un datetimeattributo timedell'elemento. Vedi w3.org/TR/2014/REC-html5-20141028/…
Andreas Rejbrand

1
C'è una risposta migliore ora di quella accettata (quella di Robertc).
Dan Dascalescu

Risposte:


113

Entrambi rel="author"e <address>sono progettati per questo scopo esatto. Entrambi sono supportati in HTML5. La specifica ci dice che rel="author"può essere utilizzato su e elements. Google consiglia anche il suo utilizzo . Combinare l'uso di e sembra ottimale. HTML5 offre al meglio il wrapping di informazioni su titoli e sottotitoli in questo modo:<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' pubdateattributo indica che quella è la data di pubblicazione.

  • Gli titleattributi sono cavalcavia opzionali.

  • Le informazioni di byline possono in alternativa essere inserite in <footer>un file<article>

Se vuoi aggiungere il microformato hcard , lo farei in questo modo:

<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>

3
"By" non dovrebbe precedere il tag <address>? In realtà non fa parte dell'indirizzo.
aridlehoover

1
@aridlehoover O sembra corretto secondo whatwg.org/specs/web-apps/current-work/multipage/… - Se all'esterno, usa .byline address { display:inline; font-style:inherit }per sovrascrivere l' blockimpostazione predefinita nei browser.
ryanve

@aridlehoover penso anche che <dl>sia fattibile. Vedi il markup byline nel sorgente di demo.actiontheme.com/sample-page per esempio.
ryanve

4
Poiché l' pubdateattributo non è più presente nelle specifiche WHATWG e W3C, come scrive qui Bruce Lawson , ti suggerisco di rimuoverlo dalla tua risposta.
Paul Kozlovitch

51

HTML5 ha un tipo di collegamento dell'autore :

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

Il punto debole qui è che deve essere su una sorta di collegamento, ma se ce l'hai c'è una lunga discussione sulle alternative qui . Se non hai un collegamento, usa semplicemente un attributo di classe, ecco a cosa serve:

<span class="author">John</span>

3
@Quang Sì, penso che un tipo di collegamento senza un collegamento effettivo vanificherebbe lo scopo di provare a contrassegnarlo semanticamente.
robertc

3
@Quang: l' relattributo serve a descrivere qual è la destinazione del collegamento. Se il collegamento non ha destinazione, non ha relsenso.
Paul D. Waite

2
Potresti anche consultare schema.org per modi per esprimere questo tipo di informazioni.
Michael Mior

1
@ jdh8 Perché John non è il titolo di un'opera
robertc

6
Questa risposta non è più la migliore. Google non supporta piùrel="author" e, come menzionano ryanve e Jason, il addresstag è stato progettato esplicitamente per esprimere anche la paternità.
Dan Dascalescu

19

Secondo le specifiche HTML5, probabilmente vorrai address.

L'elemento indirizzo rappresenta le informazioni di contatto per il suo articolo o elemento del corpo più vicino.

Le specifiche ulteriori riferimenti addressrispetto agli autori qui

Sotto 4.4.4

Le informazioni sull'autore associate a un elemento articolo (qv l'elemento indirizzo) non si applicano agli elementi articolo nidificati.

Sotto 4.4.9

Le informazioni di contatto per l'autore o l'editore di una sezione appartengono a un elemento indirizzo, possibilmente all'interno di un piè di pagina.

Tutto ciò fa sembrare che addresssia il miglior tag per queste informazioni.

Detto questo, potresti anche dare il tuo addressa relo classdi author.

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

Per saperne di più: http://dev.w3.org/html5/spec/sections.html#the-address-element


1
Grazie Jason, sai cosa significa "qv"? In> 4.4.4> Le informazioni sull'autore associate a un elemento articolo (qv l'elemento indirizzo) non si applicano agli elementi articolo nidificati.
Quang Van

3
@QuangVan - (aspetta, le tue iniziali sono ... qv hmm) - qv significa "quod vide" o "su questo (argomento) vai a vedere" - figlio sulla questione di "qv" vai a vedere english.stackexchange.com/questions / 25252 /… (qv) haha
pageman

@JasonGennaro haha ​​nanos gigantum humeris insidentes!
pageman

lol, mi ci è voluto un po 'per capire a cosa si riferissero questi commenti ... Grazie per la lezione di latino :)
Quang Van

9

Il supporto di Google per rel = "author" è obsoleto :

"Il markup dell'autore non è più supportato nella ricerca web."

Utilizzare un elemento Elenco descrizioni (Elenco definizioni in HTML 4.01).

Dalle specifiche HTML5 :

L'elemento dl rappresenta un elenco di associazioni costituito da zero o più gruppi nome-valore (un elenco di descrizione). Un gruppo nome-valore è costituito da uno o più nomi (elementi dt) seguiti da uno o più valori (elementi dd), ignorando qualsiasi nodo diverso dagli elementi dt e dd. All'interno di un singolo elemento dl, non dovrebbe esserci più di un elemento dt per ogni nome.

I gruppi nome-valore possono essere termini e definizioni, argomenti e valori di metadati, domande e risposte o qualsiasi altro gruppo di dati nome-valore.

La paternità e altre meta informazioni sugli articoli si adattano perfettamente a questa chiave: struttura della coppia di valori:

  • chi è l'autore
  • data l'articolo pubblicato
  • struttura del sito in cui è organizzato l'articolo (categoria / tag: stringa / array)
  • eccetera.

Un esempio supponente:

<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="remy@blog.net"><img src="email-sprite.png"></a></dd>
    </dl>
  </header>
  <section class="content">
    <!-- article content goes here -->
  </section>
</article>

Come si può vedere quando si utilizza l' <dl>elemento di informazioni articolo meta, siamo liberi di avvolgere <address>, <a>e anche <img>tag <dt>e / o <dd>tag a seconda della natura del contenuto e la funzione è destinato .
I tag <dl>, <dt>e <dd>sono liberi di fare il loro lavoro - semanticamente - trasmettendo informazioni sul genitore <article>; <a>, <img>e <address>allo stesso modo sono liberi di fare il loro lavoro - di nuovo, semanticamente - trasmettendo informazioni su dove trovare contenuto correlato, presentazione visiva non verbale e dettagli di contatto per le parti autorevoli, rispettivamente.


9

In HTML5 possiamo usare alcune etichette semantiche che aiutano a organizzare le informazioni riguardanti il ​​tuo tipo di contenuto, ma aggiuntive e relative all'argomento puoi controllare schema.org . È un'iniziativa di Google, Bing e Yahoo che mira ad aiutare i motori di ricerca a comprendere meglio i siti web attraverso attributi di microdati. 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>

1
Sicuramente la risposta più accurata per il 2019.
Simon G

3
Tieni presente che schema.org non fa parte di HTML5. È una specifica separata.
ya


3

E i microdati :

<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>

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.