Question

J'ai un site codé en XHTML 1.0 Strict. Je veux utiliser la nouvelle microdonnées ajouter mie de pain sur mon site (si Google va les comprendre ).

Mon ancien non microdonnées mie de pain annotés ressemblent à ceci:

<ul>
  <li><a href="...">Level 1</a></li>
  <li><a href="...">Level 2</a></li>
  <li><a href="...">Level 3</a></li>
</ul>

Selon Google, à l'aide de microdonnées du balisage panure, vous étendez le code ci-dessus comme ceci:

<ul>
  <li itemscope itemtype="http://data-vocabulary.org/Breadcrumb">
    <a href="..." itemprop="url">
      <span itemprop="title">Level 1</span>
    </a>
  </li>
  ...
</ul>

Mais ce n'est pas valide XHTML 1.0 Strict.

Que dois-je faire? Dois-je ignorer les conflits de validation?
Devrais-je écrire itemscope="itemscope" au lieu d'itemscope (ce serait XML valide, mais toujours pas XHTML valide)?
Dois-je changer le Doctype être HTML5 au lieu de XHTML 1.0 Strict?

Je veux que cela fonctionne tout l'arrière de façon à IE6!

S'il vous plaît conseil:)

Était-ce utile?

La solution

Oui, si vous voulez utiliser itemscope en XHTML, vous devez itemscope="itemscope" d'écriture et utiliser XHTML5 (même DOCTYPE que HTML5, mais la syntaxe XML).

itemscope ne figure pas dans W3 HTML5, mais présente dans la version WHATWG, donc la validation peut continuer à être une difficulté. Il semble y avoir un certain argument politique sur cette question, qui havre de paix I « t été suit comme il semble assez fastidieux.

Pour le moment, si vous voulez utiliser les annotations panés dans un format de document finalisé, validable, vous pouvez utiliser RDFa à la place: l'alternative (mais plus) proposition, l'argument est tout au sujet, et utiliser le doctype existant:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML+RDFa 1.0//EN" "http://www.w3.org/MarkUp/DTD/xhtml-rdfa-1.dtd">

Autres conseils

Depuis les principaux moteurs de recherche ont décidé schema.org dernière Juin (2011) comme façon de faire riche extraits, cette question est devenue beaucoup plus important de voir XHTML5 ne pas encore avoir une DTD de travail (BTW, http://www.html5dtd.org/ travaille sur une DTD XHTML5 et peut bien être prêt quand vous lisez ceci, si oui mépris ce que je vais dire). Et ce que je vais dire résume une page que je mis à http://www.nedprod.com/programs/portable/ XHTMLwithHTML5microdata / il y a quelques semaines, et il y a plus de détails, y compris un extrait enrichi démo si vous le voulez.

J'avais besoin d'étendre XHTML 1.x stricte avec microdonnées schema.org/HTML5 et d'obtenir tout pour valider correctement pour nedprod de mise à jour et Microsoft Expression Web a la tendance occasionnelle à manger des morceaux de HTML édite, si la validation est à portée de main pour attraper quand il Borks. Par conséquent, j'ai créé ces DTD qui étendent la norme XHTML 1.0 les:

Pour utiliser, prendre une copie de votre DTD (ne pas utiliser l'original de nedprod, je ne peux pas se permettre de la bande passante) désirée et de l'utilisation comme suit:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict with HTML5 microdata//EN" "xhtml1-strict-with-html5-microdata.dtd">

ou ...

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional with HTML5 microdata//EN" "xhtml1-transitional-with-html5-microdata.dtd">

... ou plus probablement, passer outre la DTD utilisée pour la validation par votre configuration validation XML particulier.

BTW, voici quelque chose qui est intéressant, et je ne comprennent que cela comme il est utile de savoir quand répondre à la question. Je pensais à Dieu honnête que l'utilisation des doctypes ci-dessus invoquerait le mode bizarreries lors du rendu. Il s'avère que, à ma grande surprise, que IE8, Chrome 14, Firefox 5 et Opera 11,50 rendent tout un doctype en mode standard. Qui aurait pensé! Donc, vous pouvez, si vous le vouliez, télécharger vos pages XHTML sur l'Internet public avec le doctype personnalisé et les navigateurs plus récents au moins serait faire la bonne chose.

L'espoir que cela aide quelqu'un,
Niall

Exemple Valid HTML 5

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Example page</title>
</head>
<body>
    <div itemscope="" itemtype="http://schema.org/MediaObject">
        <div itemprop="video" itemscope="" itemtype="http://schema.org/VideoObject">
           <meta itemprop="name" content="Breast Augmentation Video Diary">
           <meta itemprop="duration" content="PT12M54S">
           <meta itemprop="thumbnailUrl" content="http://www.plastic-surgery-estonia.com/new-assets/images/thumbnails/breast-augmentation.jpg">
           <meta itemprop="contentURL" content="http://www.youtube.com/watch?v=BwPN6eCpxTk">
           <meta itemprop="embedURL" content="http://www.youtube.com/watch?feature=player_embedded&amp;v=BwPN6eCpxTk">
           <meta itemprop="uploadDate" content="2010-11-09">
           <iframe src="http://www.youtube.com/embed/BwPN6eCpxTk?rel=0&amp;autohide=1&amp;modestbranding=1&amp;showinfo=0"></iframe>
           <span itemprop="description">Video Diary</span>
        </div>
   </div>
</body>
</html>

trouvé ces liens utiles:
- http://support.google.com/ webmasters / bin / answer.py? hl = fr & answer = 2413309 & topic = 1088474 & ctx = sujet
- http://www.reelseo.com/embedded-youtube-indexed-google/

Utiliser le type MIME de application/ld+json et un générateur micro-données pour transformer le balisage en données :

<!DOCTYPE html>
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <title>microdata.xhtml</title>
    <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=utf-8"/>
    </head>
    <body>
      <div>
      <script type="application/ld+json">
      {"items": [{
        "type": ["https://schema.org/breadcrumb"],
        "properties":{ 
        "url": ["..."],
        "title": ["Level 1"]
        }
       }]
      }
      </script>
      </div>
    </body>
    </html>

ou un data:uri dans une balise d'objet:

    <!DOCTYPE html>
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <title>microdata.xhtml</title>
    <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=utf-8"/>
    </head>
    <body>
      <div>
        <object data="data:text/html;charset=utf-8;base64,PHVsPiA8bGkgaXRlbXNjb3BlIGl0ZW10eXBlPSJodHRwOi8vZGF0YS12b2NhYnVsYXJ5Lm9yZy9CcmVhZGNydW1iIj4gICAgICAgICA8YSBocmVmPSIuLi4iIGl0ZW1wcm9wPSJ1cmwiPiAgICAgICAgICAgPHNwYW4gaXRlbXByb3A9InRpdGxlIj5MZXZlbCAxPC9zcGFuPiAgICAgICAgIDwvYT4gICAgICAgICA8L2xpPiAgICAgICA8L3VsPg==">

          <?microdata
          <ul>
            <li itemscope itemtype="http://data-vocabulary.org/Breadcrumb">
             <a href="..." itemprop="url">
               <span itemprop="title">Level 1</span>
             </a>
            </li>
          </ul>
          ?>

        </object>
      
        <!--[if lt IE 8]>
        <object data="mhtml://#foo">

          <?microdata
          <ul>
            <li itemscope itemtype="http://data-vocabulary.org/Breadcrumb">
             <a href="..." itemprop="url">
               <span itemprop="title">Level 1</span>
             </a>
            </li>
          </ul>
          ?>
          <div id="foo">
              PHVsPiA8bGkgaXRlbXNjb3BlIGl0ZW10eXBlPSJodHRwOi8vZGF0YS12b2NhYnVsYXJ5Lm9yZy9CcmVhZGNydW1iIj4gICAgICAgICA8YSBocmVmPSIuLi4iIGl0ZW1wcm9wPSJ1cmwiPiAgICAgICAgICAgPHNwYW4gaXRlbXByb3A9InRpdGxlIj5MZXZlbCAxPC9zcGFuPiAgICAgICAgIDwvYT4gICAgICAgICA8L2xpPiAgICAgICA8L3VsPg==
          </div>
       </object>
       <![endif]-->
      </div>
    </body>
    </html>

  

Je veux que cela fonctionne tout l'arrière de façon à IE6!

Utilisez le application/xhtml+xml shim XSLT pour soutenir IE6 et étendre pour obtenir une copie du balisage.

Références

essayer de valider certaines pages de Google ... ils ne valident pas. la validation est un outil, un un impressionnant, mais rien de plus, bien que je n'applaudis votre détermination. si vous êtes inquiet que sur la validation je voudrais passer à HTML5.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top