HTML5 <html>атрибуты xmlns, lang, xml: lang - PullRequest
31 голосов
/ 01 декабря 2010

Я не понимаю спецификации HTML5 для атрибутов lang и xml:lang открывающего тега <html>.Прокручивая немного, я понимаю, что xmlns - это "талисман" (не имеет никакого эффекта), но как насчет lang и xml:lang?Должны ли они быть использованы?Если это так, что они должны быть установлены?

Ответы [ 3 ]

36 голосов
/ 01 декабря 2010

Все, что я видел и слышал, говорит о том, что вы должны придерживаться

<!DOCTYPE html>
<html>
  <head>
    <meta charset='UTF-8'>

(или любого другого набора символов, который вам действительно нужен).Если вам нужен язык, связанный со страницей, вы можете использовать атрибут "lang" в теге <html>.

Поскольку HTML5 - это , а не XML, на самом деле, лично я нахожу это страннымиспользовать любой xml: материал пространства имен.

17 голосов
/ 01 декабря 2010

xml: lang в сериализации text / html только для того, чтобы позволить авторам писать документы полиглота - документы, которые являются действительными XHTML5 и действительными HTML5.

В HTML (в отличие от XHTML) xml: lang вообще не является атрибутом в пространстве имен XML, это атрибут в пустом пространстве имен, называемый xml:lang. то есть двоеточие вообще не имеет магических свойств, это просто еще один символ в имени атрибута, как и любой другой.


Чтобы ответить на вопрос, который у вас изначально был о en-US-x-hixie:

en-US-x-hixie - это en-US (т.е. американский английский) плюс частный подтег -x-hixie, означающий вариант английского языка США, написанный Ианом Хиксоном, редактором HTML5.

Подтеги частного использования определены в RFC: 5646, BCP 47 http://www.ietf.org/rfc/bcp/bcp47.txt Сечение 2.2.7. Private Use Subtags

0 голосов
/ 13 февраля 2018

Атрибут lang имеет огромное значение для HTML-документов, когда речь идет о пользователях, использующих программу чтения с экрана.Так что, учитывая a11y, вы наверняка захотите его использовать.Это видео является лучшим аргументом по этому поводу: https://youtu.be/0uzxu9dQnuU «Влияние атрибута lang на речь JAWS».Он показывает, как программа чтения с экрана будет произносить текст на английском языке с испанским, французским или немецким произношением (что очень трудно понять) только потому, что для каждого языка каждый раз устанавливается значение lang attr.

Также проверьте: https://www.w3.org/International/questions/qa-lang-why.en, где упоминались некоторые веские причины:

  • Стилизация (например, разные шрифты для разных языков)
  • Проверка орфографии и грамматики
  • Инструменты перевода
  • Результаты поиска (внутренняя разметка страницы может использоваться для улучшения их качества в зависимости от языковых предпочтений пользователя)
...