xhtml документ - вопрос о параметрах языка

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

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-GB">

<meta http-equiv="content-language" content="en-GB" />

Если бы у меня не было метатега, какие были бы последствия?

Влияет ли мета-программа на программы чтения с экрана, а верхняя — нет? Я немного смущен тем, что именно они делают.

Заранее благодарю за любую помощь

С наилучшими пожеланиями

Пропускать.


person Skip    schedule 18.04.2009    source источник
comment
Небольшой нюанс: если у вас также нет версий en-US, en-AU, en-NZ и т. д., нет необходимости помечать ваши страницы тегом en-GB. В зависимости от используемого соответствия люди, запрашивающие документы на английском языке, могут не найти en-GB, что является слишком специфичным. См. langtag.net/tag-wisely.html.   -  person bortzmeyer    schedule 20.04.2009


Ответы (5)


Страница Dive Into Accessibility Определение вашего языка рекомендует добавить как можно больше, чтобы обрабатывать как можно больше средств чтения с экрана. , в зависимости от вашего типа документа:

Если вы используете любой вариант 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 Best Current Practice. - Теги для определения языков, которые, кажется, указывают на то, что ваше значение "en-GB" является допустимым.

В Статистика веб-авторинга (2005 г.) говорится об этом следующее. :

Далее идет значение Content-Language (используется в атрибуте http-equiv). Почти столько же людей используют это, сколько указывают атрибут lang в элементе html. В настоящее время в спецификации HTML5 атрибут http-equiv разрешен только в одном случае установки кодировки символов, которую нельзя удалить, как показано на графике выше. Однако http-equiv="Content-Language" поддерживается по крайней мере одним браузером, и, как мы видим здесь, широко используется — возможно, http-equiv все-таки не стоит удалять.

Кроме того, поток в webproworld говорит о разнице между использованием http-equiv=content-language и name=language для описания языка документа и подразумевает, что оба необходимы.

Наконец, обратитесь к документу HTML Techniques for Web Content Accessibility Guidelines 1.0 по адресу W3C за дополнительными рекомендациями, в частности, Определение основного языка.

В заключение, похоже, что средства чтения с экрана обращают внимание на атрибуты lang больше, чем на метаинформацию языка содержимого, но большинство рекомендаций, которые я видел, все равно советуют использовать метаданные. Особенно уместна статистика Google, поэтому, возможно, вам следует оставить оба.

person Rahul    schedule 18.04.2009

Я считаю, что одним из преимуществ версии <meta> является то, что вы можете указать несколько языков, как, например, в версии <meta http-equiv="Content-Language" content="en-GB, fr" />. Взгляните на это для более глубокого изучения предмет.

person hbw    schedule 18.04.2009

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.

person Kornel    schedule 18.04.2009

Насколько мне известно, мета http-equiv требуется (если вообще требуется) только для HTML-документов (не XHTML), потому что XHTML позволяет указать язык с помощью xml:lang.

Так что никакой разницы, вторая строка просто избыточна.

person ivan_ivanovich_ivanoff    schedule 18.04.2009

HTTP/1.0 RFC 1945 говорит, что поле заголовка Content-Language представляет «языки предполагаемой аудитории».

Поле заголовка объекта Content-Language описывает естественный язык (языки) целевой аудитории для вложенного объекта. Обратите внимание, что это может быть не эквивалентно всем языкам, используемым в объекте.

HTML4 и XHTML1.x рассматривают метатег http-equiv как ту же информацию, встроенную в html-документ, а не как HTTP-заголовок.

С другой стороны, xml:lang и атрибут html lang идентифицируют язык документа или фрагмент, содержащийся в элементе, в котором появляется атрибут.

Итак, предположим, что у вас есть документ, написанный в основном на французском языке и предназначенный для обучения французскому языку носителей английского языка, язык контента будет en-GB, en-US (скажем), а атрибут xml:lang будет fr-FR. .

Однако в HTML 5 это изменилось, и метатег http-equiv="content-language" считается несоответствующим HTML, который, тем не менее, определяет язык по умолчанию для всего документа и поддерживает только один язык, поэтому эффективно идентичен xml:lang в элементе html. Я не могу сказать, что понимаю причины этого изменения, но Дэниел Глазман и Ян Хиксон обсуждают его в ветке, начинающейся с http://lists.w3.org/Archives/Public/public-html/2008Nov/0083.html

person Alohci    schedule 19.04.2009