Является ли тег HTML5 <header> ненужным, если внутри него только один тег <hx>?

Я искал и не нашел каких-либо полезных ответов, так что здесь идет:

Это HTML5 <header> тег не нужен, если есть только один <hx> тег внутри него? Например, у меня есть следующая разметка HTML5:

<article>

   <header>
      <h1>Heading Title</h1>
   </header>

   ...

</article>

С точки зрения семантики HTML5, когда есть только один <hx> тег внутри <header> и ничего больше, это <header> пометьте ненужным / избыточным, и я должен просто сделать это вместо этого:

<article>

   <h1>Heading Title</h1>

   ...

</article>

2 ответа

Решение

Из первого раздела Note о W3C header spec, который ajp15243 упоминал выше, акцент мой:

Предполагается, что элемент заголовка обычно содержит заголовок раздела (элемент h1–h6), но это не обязательно. Элемент заголовка также можно использовать для переноса оглавления раздела, формы поиска или любых соответствующих логотипов.

Если все, что у вас есть, это один (согласно вашему примеру) <h1></h1>, <header> тег не требуется, чтобы ваш документ был правильно сформирован и семантически корректен.

Вы можете обнаружить, что имея <header> элемент как обертка помогает вам в оформлении h1 позже с CSS, но что касается только HTML в этом случае, вы семантически хорошо с или без <header>,

Да, это не нужно в данном конкретном случае. Это означает, что вы можете использовать header (это не было бы неправильно), но это также не требуется.

header (вместе с footer а также address) используется для разметки содержимого раздела, которое не считается основным содержимым этого раздела. Раздел может быть корневым разделом (например, body) или раздел контента (например, article) элемент.

Поэтому, когда ваш заголовок будет содержать больше, чем элемент заголовка (например, субтитр), вы должны использовать header элемент, потому что в противном случае было бы не ясно, является ли этот контент частью заголовка или основного контента. Но в случае одного элемента заголовка, это ясно по определению: первый элемент заголовка в разделе является заголовком для этого раздела.

Другие вопросы по тегам