Подтвердить что ты не робот

Могу ли я добавить Microdata из HTML5 на сайт XHTML Strict и все еще быть совместимым?

У меня есть сайт, закодированный в XHTML 1.0 Strict. Я хочу использовать новые Microdata для добавления панировочных сухарей на мой сайт (так что Google поймет их).

Мои старые немаргинальные панировочные сухари выглядят следующим образом:

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

Согласно Google, для разметки панировочных сундуков с использованием Microdata, вы расширите вышеуказанный код следующим образом:

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

Но это неверно. XHTML 1.0 Strict.

Что мне делать?
Должен ли я игнорировать конфликты проверки?
Должен ли я писать itemscope="itemscope" вместо просто itemscope (это было бы правильным XML, но все же недопустимым XHTML)?
Должен ли я изменить Doctype на HTML5 вместо XHTML 1.0 Strict?

Я хочу, чтобы это работало вплоть до IE6!

Пожалуйста, совет:)

4b9b3361

Ответ 1

Да, если вы хотите использовать itemscope в XHTML, вам нужно написать itemscope="itemscope" и использовать XHTML5 (тот же DOCTYPE, что и HTML5, но синтаксис XML).

itemscope не включен в W3 HTML5, но присутствует в версии WHATWG, поэтому проверка может оставаться сложной задачей. Кажется, что в этом вопросе есть довольно много политических аргументов, которые я не соблюдал, поскольку это выглядит довольно утомительно.

На данный момент, если вы хотите использовать аннотации в форме завершенного, допустимого формата документа, вместо этого вы можете использовать RDFa: альтернативное (но более старое) предложение, в котором аргумент имеет значение, и использовать существующий doctype:

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

Ответ 2

Поскольку основные поисковые системы решили использовать schema.org в июне прошлого года (2011) как способ сделать богатые фрагменты, этот вопрос стало гораздо более важным, поскольку XHTML5 еще не имеет рабочего DTD (BTW, http://www.html5dtd.org/ работает над DTD XHTML5 и вполне может быть готов, когда вы это читаете, если не игнорировать то, что я собираюсь сказать). И то, что я собираюсь сказать, суммирует страницу, которую я разместил на http://www.nedprod.com/programs/portable/XHTMLwithHTML5microdata/ несколько недель назад, и есть более подробная информация, включая демонстрацию богатых фрагментов, если вы этого хотите.

Мне нужно было расширить XHTML 1.x Strict с помощью микроданных schema.org/HTML5 и получить все, чтобы правильно проверить обновление nedprod, а Microsoft Expression Web имеет случайную тенденцию употреблять фрагменты HTML, которые он редактирует, поэтому проверка удобный для ловли, когда он пробит. Поэтому я создал эти DTD, которые расширяют стандартные XHTML 1.0:

Для использования возьмите копию вашего желаемого DTD (не используйте оригинал из nedprod, я не могу позволить себе пропускную способность) и используйте следующее:

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

или...

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

... или, более вероятно, переопределить DTD, используемый для проверки с помощью вашей конкретной проверки XML.

Кстати, здесь что-то интересное, и я включаю это только в том, что полезно знать, когда отвечаю на вопрос. Я честен Богу, думал, что использование вышеуказанных доктринов вызовет режим причуд при рендеринге. Оказывается, к моему большому удивлению, что IE8, Chrome 14, Firefox 5 и Opera 11.50 создают такой тип документа в стандартном режиме. Кто бы мог подумать! Таким образом, вы могли бы, если бы захотели, загрузить свои страницы XHTML в общедоступный Интернет с помощью специального doctype, а более новые браузеры по крайней мере поступили бы правильно.

Надеюсь, это поможет кому-то,
Найл

Ответ 3

Пример 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>

Найденные ссылки полезны:
- http://support.google.com/webmasters/bin/answer.py?hl=en&answer=2413309&topic=1088474&ctx=topic
- http://www.reelseo.com/embedded-youtube-indexed-google/

Ответ 4

Используйте тип application/ld+json MIME и генератор микроданных, чтобы преобразовать разметку в данные:

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

Ответ 5

попробуйте и проверьте некоторые страницы google... они не проверяются. валидация - это инструмент, потрясающий, но не более того, хотя я аплодирую вашей решимости. если вы беспокоитесь о проверке, я бы переключился на HTML5.