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

HTML5 - Соответствующее использование тега статьи?

Я хочу изменить

<section>
  <header>...</header>
  <p class="tweet">This is a tweet preview. You can... <em>6 Hours ago</em></p>
</section>

в

<section>
  <header>...</header>
  <article class="tweet">
    <p>This is a tweet preview. You can... <time pubdate>6 Hours ago</time></p>
  </article>
</section>

Но после чтения некоторых статей в теге <article> я не уверен, что это лучший ход. Что было бы лучше?

4b9b3361

Ответ 1

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

<sectioning_element>
    <heading_or_header>
    ... the body text and markup of the section
    <footer>
</sectioning_element>

Нижний колонтитул не является обязательным. Секционные элементы должны иметь "естественный" заголовок. То есть, должно быть легко написать элемент <h?> в начале раздела/статьи, в котором описывается и суммируется весь контент раздела/статьи, так что другие вещи на странице, не входящие в раздел/статью, не описывается заголовком.

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

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

<section> имеет тенденцию использоваться для группировки вещей. Их естественные заголовки, как правило, множественные. например "Автомобили для продажи"

<article> - для единиц контента. Их естественные заголовки обычно являются заголовком для всего текста, который следует. например "Мой новый автомобиль"

Итак, если вы не группируете некоторые вещи, тогда нет необходимости, и это не правильно, использовать другой элемент разделения между верхним и нижним колонтитулом раздела, и ваша правильная надбавка будет

<article class="tweet">
  <header>...</header>
  <p>This is a tweet preview. You can... <em>6 Hours ago</em></p>
</article>

предполагая, что вы можете найти естественный заголовок, чтобы войти в элемент <header>. Если вы не можете, то правильная надбавка просто

<p class="tweet">This is a tweet preview. You can... <em>6 Hours ago</em></p>

или

<div class="tweet">
     <p>This is a tweet preview. You can... <em>6 Hours ago</em></p>
</div>

* В любом случае для включения естественного заголовка и его отображения "display: none". Это позволит разрешить ссылку на статью/статью чисто по контуру документа.

Ответ 2

<article> контент

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

(из рабочей спецификации html5)

на самом деле один из примеров иллюстрирует вложенные элементы <article>, где внутренний <article> находится внутри <section>

Ответ 3

Почему вы не думаете, что это хороший ход? Мне кажется, что Твиттер прекрасно впишется в спецификацию W3C на то, что должно быть в статье. Скорее всего, это зависит от контекста, в котором находится ваш образец кода (который мы не можем сказать из того, что вы предоставили).

Он также может быть указан таким образом.

Ответ 4

Семантика не имеет большого значения. Вы могли бы очень хорошо сделать это, если бы захотели, и все будет хорошо. Вещь с обсуждением использования article vs. section заключается в том, что все это субъективно, в какой-то момент. Я бы порекомендовал против того, как вы делаете это во второй версии, хотя, похоже, что это просто загромождает код. Что вы можете сделать, просто замените тег section тегом article.

Ответ 5

Я очень немного почесал голову, чтобы понять это, потому что это, кажется, запутывает довольно много, но на самом деле это нужно рассматривать чуть более буквально. Вот простой способ взглянуть на это:

Разделы могут содержать элементы из разных тем. Статьи должны содержать элементы из той же темы.

Например:

<section>
    <section>
        <article id="article_ONE">
            <header>...</header>
            <p>Not directly related to article_TWO</p>
            <footer>...</footer>
        </article>
    </section>
    <section>
        <article id="article_TWO">
            <article>
                <header>...</header>
                <p>Part 1 of article TWO</p>
                <footer>...</footer>
            </article>
            <article>
                <header>...</header>
                <p>Part 2 of article TWO</p>
                <footer>...</footer>
            </article>
        </article>
    </section>
</section>