документ xhtml - вопрос о параметрах языка
-
11-09-2019 - |
Вопрос
В чем разница между двумя строками, показанными ниже?:
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-GB">
<meta http-equiv="content-language" content="en-GB" />
Если бы у меня не было мета-тега, каковы были бы последствия?
Влияет ли мета-версия на программы чтения с экрана, а верхняя - нет?Я немного сбит с толку относительно того, что именно они делают.
Заранее спасибо за любую помощь
С наилучшими пожеланиями
Пропустить.
Решение
Погрузитесь в доступность Идентификация вашей языковой страницы рекомендует добавить как можно больше файлов для работы с как можно большим количеством программ чтения с экрана, в зависимости от вашего типа документа:
Если вы используете любой вариант HTML 4, измените свой тег на этот (используйте код вашего собственного языка, если нет Английский):
<html lang="en">
Если вы используете любой вариант XHTML 1.0, измените свой тег на этот (используйте код вашего языка в обоих местах):
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
Если вы используете XHTML 1.1, измените свой тег на этот (опять же, вставьте свой собственный код языка ):
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
В той же статье также содержатся ссылки ISO 639.2 чтобы определить, каким должно быть значение xml:lang, хотя спецификация XML ссылается на отдельный документ, RFC4646 Лучшая текущая практика - Теги для идентификации языков, что, по-видимому, указывает на то, что ваше значение "en-GB" является действительным.
Google- это Статистика веб-разработки (2005) могу сказать по этому поводу следующее:
Далее следует значение Content-Language (используется в атрибуте http-equiv).Почти столько же людей используют это, как укажите атрибут lang в html элементе.В спецификации HTML5 в настоящее время атрибут http-equiv разрешен только для одного случая настройки кодировки символов, которая не может быть действительно удалена, как показано на графике выше .Однако http-equiv="Content-Language" поддерживается по крайней мере одним браузером, и как мы видим здесь, он широко используется — возможно, http-equiv не следует удалять в конце концов.
Кроме того, a тема на webproworld рассказывает о разнице между использованием http-equiv=content-language и name=language для описания языка документа и подразумевает, что оба необходимы.
Наконец, обратитесь к Методы HTML для обеспечения доступности веб-контента Руководство 1.0 обратитесь в W3C за некоторыми дополнительными рекомендациями, в частности Определение основного языка.
В заключение, похоже, что программы чтения с экрана больше ориентируются на атрибуты lang, чем на метаданные языка контента, но большинство рекомендаций, которые я видел, советуют использовать метаданные в любом случае.Особенно уместной кажется статистика Google, поэтому, возможно, вам следует оставить и то, и другое.
Другие советы
Я считаю, что одним из преимуществ <meta>
версия заключается в том, что вы можете указать несколько языков, как в <meta http-equiv="Content-Language" content="en-GB, fr" />
, например.Взгляните на это для более углубленного изучения предмета.
Content-Language
является несоответствующим в XHTML5.
Хотя это позволяет вам указывать более одного языка, вы не должны этого делать (это никому не поможет).Вы должны использовать xml:lang
вместо этого атрибуты для определенных элементов, например
<p xml:lang="en">Hello <span xml:lang="de">Welt!</span></p>
Часто ЗАДАВАЕМЫЕ ВОПРОСЫ по W3C I18N также явно против <meta>
:
HTTP-заголовок или информация о мета-элементе здесь неуместны.По расширению, вы должны указать язык обработки текста содержимого в целом, используя
lang
и/илиxml:lang
атрибуты вhtml
тег.
Насколько я знаю, meta http-эквивалент требуется только (если вообще требуется) для HTML-документов (не XHTML), потому что XHTML позволяет указывать язык с помощью xml: язык.
Итак, никакой разницы, вторая строка просто избыточна.
В HTTP / 1.0 RFC 1945 говорится, что поле заголовка Content-Language представляет "языки целевой аудитории".
Заголовок объекта Content-Language поле описывает естественный язык (языки) целевой аудитории для вложенного объекта.Обратите внимание, что это может быть эквивалентно не всем языкам, используемым в сущности.
HTML4 и XHTML1.x обрабатывают тег meta http-equiv как ту же информацию, встроенную в html-документ, а не HTTP-заголовок.
С другой стороны, xml:lang и атрибут html lang идентифицируют язык документа или фрагмент, содержащийся в элементе, в котором отображается атрибут.
Итак, предположим, у вас есть документ, который в основном написан на французском языке с целью преподавания французского языка носителям английского языка, языком содержимого будет en-GB, en-US (скажем), а атрибутом xml: lang будет fr-FR.
Однако, HTML 5 изменяет это, и meta http-equiv="content-language" считается несоответствующим HTML, который, тем не менее, определяет язык по умолчанию для всего документа и поддерживает только один язык, поэтому фактически идентичен xml: lang в элементе html.Я не могу сказать, что понимаю причины этого изменения, но Дэниел Глазман и Иэн Хиксон обсуждают это в теме, начинающейся с http://lists.w3.org/Archives/Public/public-html/2008Nov/0083.html