Вопрос

В чем разница между двумя строками, показанными ниже?:

<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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top