Семантическое использование атрибутов hreflang и lang

Это не вопрос SEO.

Мне любопытно, как семантически правильно разметить HTML в отношении используемого языка. Пожалуйста, поправьте меня, если моя разметка неверна.

Мои вопросы: нужен ли мне атрибут lang в теге html, когда я уже использую атрибут hreflang в теге link?

Обе директивы семантически различны? Я имею в виду: будет ли самоссылка в теге link в обоих примерах семантически пониматься как указание на язык документа?

Примеры кода ниже могут немного прояснить мой вопрос:

Пример веб-страницы на английском языке

http://example.com/en/

<!DOCTYPE html>
<html lang="en"> 
<head>
     <title>English webpage</title>
     <link rel="canonical" href="http://example.com/en">
     <link rel="alternate" href="http://example.com/en/" hreflang="en">
     <link rel="alternate" href="http://example.com/nl/" hreflang="nl">
     <link rel="alternate" href="http://example.com/en/" hreflang="x-default">
</head>
<body>
     <p>This is a webpage written in English. 
        This page is also available in Dutch. 
        The default language of this page is English. 
</body>
</html>

Пример голландской веб-страницы

http://example.com/nl/

<!DOCTYPE html>
<html lang="nl"> 
<head>
     <title>Nederlandse webpagina</title> 
     <link rel="canonical" href="http://example.com/nl">
     <link rel="alternate" href="http://example.com/en/" hreflang="en">
     <link rel="alternate" href="http://example.com/nl/" hreflang="nl">
     <link rel="alternate" href="http://example.com/en/" hreflang="x-default">
</head>
<body>
     <p>Dit is een Nederlandstalige web pagina. 
        Deze pagina is beschikbaar in het Engels. 
        De standaardtaal van deze pagina is Engels.
</body>
</html>

person iep    schedule 22.11.2017    source источник


Ответы (1)


Вы всегда должны указывать атрибут lang для элемента html.

Две причины, относящиеся к вашему делу:


Даже если пользовательский агент определяет язык документа, принимая во внимание самореферентные¹ alternate+hreflang ссылки, существуют ситуации, в которых это может не сработать:

  • Если HTML-документ открывается локально, он больше не имеет URL-адреса HTTP, поэтому пользовательский агент не может сделать вывод, что ссылка alternate+hreflang относится к этому документу.

  • Если HTML-документы извлекаются по другому URL-адресу (например, с параметрами отслеживания), ссылка alternate+hreflang больше не относится к текущему URL-адресу, поэтому пользовательский агент не может сделать вывод, что она применима и к этому URL-адресу.

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


¹ Строго говоря, самореферентная гиперссылка alternate+hreflang не является семантической, поскольку alternate определяется как ссылка на "альтернативное представление текущего документа", но документ, конечно же, не является альтернативным представлением самого себя. Однако, поскольку Google Search документирует его использование, теперь эта разметка встречается часто.

person unor    schedule 22.11.2017
comment
Спасибо за ваш подробный ответ. - person iep; 23.11.2017