Déclaration d'espace de noms Open Graph: HTML avec XMLNS ou préfixe head?

129

J'ai vu des informations contradictoires sur la meilleure façon d'implémenter les espaces de noms Open Graph. Plus précisément, le site Web Open Graph utilise plusieurs méthodes différentes, et les exemples Facebook Open Graph utilisent d'autres méthodes.

Exemple de site Web Open Graph (utilisant l'attribut de préfixe HTML):

<html prefix="og: http://ogp.me/ns#">

Code source du site Web Open Graph (à l'aide de l'attribut HTML XMLNS):

<html xmlns="http://www.w3.org/1999/xhtml" xmlns:og="http://ogp.me/ns#">

Documentation de Facebook Open Graph (en utilisant l'attribut de préfixe HEAD):

<head prefix="og: http://ogp.me/ns# fb: http://ogp.me/ns/fb#">

Documentation Open Graph # 2 de Facebook (utilisant l'attribut HTML XMLNS):

<html xmlns="http://www.w3.org/1999/xhtml" xmlns:og="http://ogp.me/ns#" 
      xmlns:fb="https://www.facebook.com/2008/fbml">

Quelle est la méthode recommandée ou est-ce que cela n'a même pas d'importance?

Matt Beckman
la source
9
Je fais un suivi en interne chez FB pour obtenir la bonne réponse pour vous.
Simon Cross
7
@SimonCross, des années plus tard (nov / 2017) nous attendons toujours la réponse ...;)
Helmut Granda

Réponses:

73

Ils sont tous équivalents et fonctionneront tous.

Utilisez le préfixe car il s'agit de la nouvelle méthode recommandée et il comporte moins de caractères.

Je vais mettre à jour toute notre documentation avec le préfixe.

Paul Tarjan
la source
4
Pouvez-vous expliquer pourquoi utiliser quoi que ce soit? Pourquoi ne pas laisser cette déclaration? est-ce que quelque chose va se casser si je fais ça?
andrewrk
3
Rien ne cassera pour le moment, mais se fier aux valeurs par défaut est rarement une bonne idée quand on peut être explicite. Si 2 ans plus tard, nous modifions les paramètres par défaut, votre site ne fonctionnera pas. De plus, si vous déclarez directement vos espaces de noms, cela aidera d'autres analyseurs, pas seulement Facebook.
Paul Tarjan
1
Paul, j'ai remarqué que la documentation n'avait pas été mise à jour depuis novembre. Pourquoi est-il préférable d'utiliser la nouvelle méthode, si les deux méthodes seront prises en charge par tous les navigateurs existants dans un avenir prévisible? Adopter quelque chose de nouveau si le support n'est pas tout (parmi les agents utilisateurs, les analyseurs, etc.) semble être un risque inutile à moins qu'il n'y ait une différence réelle entre les deux. Je n'ai trouvé aucune ressource qui le dise.
AndrewF
3
@PaulTarjan ici ! Celui-là a un exemple utilisant xmlns. De plus, doit-il prefixêtre utilisé sur htmlou headtag? Serait-ce bien de toute façon? Laquelle est recommandée?
its_me
9
Oh, ces documents sont vieux. La chose jaune en haut le dit. Nous n'avons pas voulu les toucher car elles sont beaucoup référencées. Mettez le prefixsur le head. Cela fonctionne sur les deux mais plus près des balises, c'est mieux.
Paul Tarjan
4

J'ai essayé de suivre la réponse de @Paul Tarjan d'utiliser le préfixe dans la tête. Cependant, j'ai eu un problème avec Internet Explorer 8 . Donc, à la fin, j'utilise toujours la méthode xmlns pour l'espace de noms fb:

<!DOCTYPE HTML>
<html xmlns:fb="http://ogp.me/ns/fb#">
  <head prefix="og: http://ogp.me/ns# object: http://ogp.me/ns/object#">
lulalala
la source
3

Cela n'a même pas d'importance. RDFa Core Initial Context reconnaît og comme un préfixe de vocabulaire largement utilisé:

Les utilisateurs de RDFa peuvent utiliser ces préfixes sans avoir l'obligation de définir les préfixes dans le code HTML. La même liste de préfixes a également été définie pour JSON-LD en tant que contexte JSON-LD au niveau de l'URI http://www.w3.org/2013/json-ld-context/rdfa11; Les utilisateurs JSON-LD peuvent utiliser la @contextclé avec cet URI comme raccourci pour utiliser les mêmes préfixes.

Emphase ajoutée pour plus de clarté.

Par conséquent, vous n'avez pas besoin d'ajouter un espace de noms à vos documents HTML. Plus d'informations ici .

Josh Habdas
la source
2
<html xmlns="http://www.w3.org/1999/xhtml" prefix="og: http://ogp.me/ns# fb:
http://www.facebook.com/2008/fbml"> <head>

Il existe la meilleure façon de valider.

Егор Щапов
la source
1

L'attribut prefix / xmlns est utile pour définir un raccourci. rdf est de la lignée xml, donc la notation xmlns devrait fonctionner indépendamment des détails doctype. rdfa étend html avec des attributs incluant le préfixe donné par http://www.w3.org/TR/rdfa-in-html/#extensions-to-the-html5-syntax Cependant, cela nécessite d'adhérer à http: // dev. w3.org/html5/rdfa/rdfa-module.html De plus, le support de l'outil pour rel = "profile" comme mentionné ici est encore attendu. Jusque-là, le choix est entre utiliser des doctypes plus anciens ou placer manuellement rdf: à des fins de validation ou attendre que le validateur et ces outils se rattrapent. Le bon endroit pour faire une déclaration est n'importe quelle balise d'ouverture d'élément qui est l'ancêtre de l'endroit où la notation abrégée sera utilisée. Spécifiquement pour le cas du préfixe og, il est prédéfini par le contexte initial de RDFa Core http://www.w3.org/2011/rdfa-context/rdfa-1.1.html donc l'ignorer complètement pour les nouveaux doctypes est correct. Et spécifiquement pour html5, le contexte initial RDFa http://www.w3.org/2011/rdfa-context/html-rdfa-1.1 est chargé seulement après le contexte initial RDFa mentionné précédemment.

Chawathe Vipul S
la source