Что должно быть первым в HTML, якоре или заголовке?

Мне интересно, какой из следующих двух порядков семантически корректен в HTML:

1. <h1><a>Header</a></h1>
2. <a><h1>Header</h1></a>

Ответы

Ответ 1

<h1><a>Header</a></h1>

<h1> - это элемент уровня блока, а <a> - нет, это синтаксически недействительный HTML, чтобы иметь элементы уровня блока внутри встроенных элементов (по крайней мере до HTML5), каким будет другой способ.

Ответ 2

Этот ответ по дублированному вопросу лучше моего: fooobar.com/questions/12048/...

Но для потомков:


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

Удивительно, что theyre на самом деле оба действительны, как и в текущей спецификации HTML, поскольку модель контента <a> определяется как " transparent", то есть то же, что и его родитель.

См:

и

(Предполагается, что родитель <a> s может иметь <h1> в качестве своего дочернего элемента)

Однако его недействительно в предыдущих версиях HTML:

Ответ 3

С семантической точки зрения: оба (или ни один).

(С структурной точки зрения, OTOH, перед HTML 5 якорь не может содержать заголовок, а поскольку браузеры не все поддерживают HTML 5, вы должны избегать новой формы конструкции, где это возможно )

Если вы создаете целевую ссылку, тогда <h1 id="target_name"> предпочитается <h1><a name="target_name">.

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

Ответ 4

Я бы сказал <h1><a>, потому что <h*> являются блочными элементами, а <a> является встроенным элементом, поэтому представляется более естественным поддерживать встроенный элемент внутри блока div, а не наоборот.

Ответ 5

Заголовок должен быть первым, на мой взгляд, но я сомневаюсь, что поисковые системы действительно будут думать о том, как они вокруг, внутри H1 просто кажется мне более чистым...

Ответ 6

Поскольку h1 напрямую не соответствует видимому объекту, оба они верны.