Attribuer une citation en HTML

On parle de HTML 5, le web n’est qu’une multitude de liens, et on ne sait toujours pas attribuer une citation. Comment est-ce que je source le Au-revoir de Valéry Giscard d’Estaing ?

<blockquote>Au revoir.</blockquote>

Il y a bien un attribut cite dans <blockquote>. Je peux y mettre un lien mais ce lien ne sera ni affiché ni actionnable dans les navigateurs.

Je peux aussi mettre un texte dans un attribut data-source et l’afficher avec le lien via quelques geekeries CSS. C’est un peu mieux mais le lien n’est ni cliquable ni sélectionnable pour un copier-coller : Plus frustrant du meurs.

Je ne parle même pas d’aller indiquer la date dans la citation avec la balise <time>, là on entrerait dans la science fiction.

<style>
blockquote::after { content: "-- " attr(data-source) ", " attr(cite);
</style>

La solution du pauvre – celle que j’utilise sur ce blog – c’est de mettre la source directement dans le <blockquote>. Il s’agit toutefois d’un détournement du sens des balises, parce que l’attribution ne fait pas partie du bloc cité.

D’autres proposent de mettre ça dans un <footer> du <blockquote>, éventuellement avec un <cite>. C’est un peu mieux – le <footer> est officiellement fait pour être de la métadonnée à propos du bloc parent – mais ça reste bancal : Le code ne permet pas de séparer ce qu’on cite de l’attribution elle-même.

<blockquote>
  Au revoir.
  <footer>
    -- Valéry Giscard d'Estaing, 
    <cite>
      <a href="http://www.ina.fr/video/I08358793">
        dans son discours du 
        <time datetime="1981-05-19">le 19 mai 1981</time> 
        avant la passation de pouvoir à François Mitterrand
      </a>
    </cite>
  </footer>
</blockquote>

La balise <figure> peut venir à notre rescousse. On englobe le <blockquote> dans la <figure> et on ajoute un <figcaption> pour l’attribution, avec éventuellement un <cite> correctement placé.

<figure>
  <blockquote>Au revoir.</blockquote>
  <figcaption>
    -- Valéry Giscard d'Estaing, 
    <cite>
      <a href="http://www.ina.fr/video/I08358793">
        dans son discours du 
        <time datetime="1981-05-19">le 19 mai 1981</time> 
        avant la passation de pouvoir à François Mitterrand
      </a>
    </cite>
  </figcaption>
</figure>

Quelque part j’ai encore mal parce qu’un robot ne reliera pas l’attribution et la citation.

Reste aussi que la définition de <figure> indique que l’emplacement de son contenu dans le texte environnant n’a pas d’importance, ce qui ne me parait pas forcément vrai pour une citation.

On sait exprimer tout ça à destination des moteurs de recherche en rdfa, en micro data ou en json-ld, le tout avec un vocabulaire normé, mais on n’a toujours rien pour les données visibles de l’utilisateur. Que la spécification HTML 5 ait été dirigée par un éditeur de Google ne peut être qu’une coïncidence.