HTML: семантически разметить адрес? - PullRequest
4 голосов
/ 10 декабря 2011

Как мне пометить адрес (например, список предприятий и их адреса)? Проблема в том, что у меня не всегда будет достаточно информации об адресе, чтобы заполнить микроформат vCard. HTML-тег address должен быть контактной информацией для автора страницы, поэтому, вероятно, неправильный тег не используется.

Предложения

Ответы [ 3 ]

2 голосов
/ 10 декабря 2011

Не совсем уверен, что именно вы спрашиваете, но если это с точки зрения поисковой системы, вы беспокоитесь о Schema.org.На странице местного бизнеса есть отличная информация и пример, которые помогут вам разметить адрес для поисковых систем.

0 голосов
/ 22 августа 2016

В настоящее время нет обозначенного элемента для разметки физического адреса или почтового адреса. Вы правы: <address> следует использовать только для представления контактной информации автора статьи или документа, поэтому не следует использовать ее для разметки адресов, например, в списке предприятий.

Когда HTML не существует для определенной семантики, лучше всего разметить элемент, наиболее близкий по значению, а затем использовать вспомогательные стандарты, такие как (1) классы микроформатов, (2) атрибуты микроданных и / или (3 ) Ария роли. Лично я предпочитаю Микроданные Микроформатам, потому что Микроданные не вмешиваются в атрибут [class], который предназначен для стиля. Я не люблю смешивать семантику со стилем. Роли ARIA предназначены для доступности, и я недостаточно знаю о них, чтобы сказать много, но они очень хороши в вашем коде.

Читайте о Синтаксис микроданных (расширение HTML). Микроданные являются официальным синтаксисом в разметке, тогда как Schema.org очень популярен (Google любит это) словарь для использования с синтаксисом. Есть и другие менее популярные словари.

Для разметки физического адреса используйте тип элемента Schema.org PostalAddress с соответствующими свойствами. Честно говоря, лучшим элементом для использования был бы простой старый <p>.

<p itemscope itemtype="http://schema.org/PostalAddress">
  <span itemprop="name">The White House</span>
  <br/>
  <span itemprop="streetAddress">1600 Pennsylvania Avenue</span>
  <br/>
  <span itemprop="addressLocality">Washington</span>,
  <span itemprop="addressRegion">DC</span>
  <span itemprop="postalCode">20500</span>
  <br/>
  <data itemprop="addressCountry" value="US">United States of America</data>
  <br/>
  <span itemprop="url">https://www.whitehouse.gov/</span>
</p>

Элемент <br/> предназначен для обеспечения (семантического, значимого) разрывов строк в контенте, поэтому его использование здесь оправдано в почтовом адресе. Это также чрезвычайно обычный вариант использования. Однако можно утверждать, что <pre> работает так же хорошо, как и технически предварительно отформатированный текст.

<code><pre itemscope itemtype="http://schema.org/PostalAddress">
  <span itemprop="name">The White House</span>
  <span itemprop="streetAddress">1600 Pennsylvania Avenue</span>
  <span itemprop="addressLocality">Washington</span>, <span itemprop="addressRegion">DC</span> <span itemprop="postalCode">20500</span>
  <data itemprop="addressCountry" value="US">United States of America</data>
  <span itemprop="url">https://www.whitehouse.gov/</span>
0 голосов
/ 10 декабря 2011

Ну, если это список предприятий и их адресов, возможно, вам следует использовать список. Не существует семантического элемента для каждой возможной вещи, которую вы могли бы сделать в HTML, вы просто должны использовать тот, который наиболее актуален. В зависимости от того, как вы собираетесь форматировать эту информацию, вам следует использовать либо таблицу, если данные представлены в табличном формате, либо список практически любого другого формата.

Вы можете стилизовать список, чтобы убрать маркеры сбоку, но суть в том, что вы все еще предоставляете список данных, и это самая семантическая вещь, которую вы можете использовать.

...