2009-04-18 1 views
4

Что разница между 2 линиями показано ниже ?:документ XHTML - опции Lang вопрос

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

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

Если я не имел мета-тег, что было бы следствием?

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

Заранее спасибо за любую помощь

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

Пропустить.

+0

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

ответ

6

Dive Into Accessibility-х Identifying your language page рекомендует добавлять как можно больше обращаться, как много для чтения с экрана, как вы можете, в зависимости от DOCTYPE:

Если вы используете любой вариант 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: языки должны быть, хотя Спецификация XML ссылается на отдельный документ, RFC4646 Best Current Practice - Tags For Identifying Languages, который, как представляется, указывает ваше значение «en-GB».

компании Google Web Authoring Statistics (2005) имеют следующие сказать об этом:

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

Далее, thread on webproworld говорит о разнице между использованием HTTP-эквив = Content-Language и имя = язык для описания языка документа и подразумевает, что обе необходимы.

И, наконец, обратитесь к документу HTML Techniques for Web Content Accessibility Guidelines 1.0 в W3C за некоторыми рекомендациями, в частности Identifying the Primary Language.

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

1

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

0

Насколько я знаю, META HTTP-эквив только требуется (если вообще) для HTML документов (не XHTML), потому что XHTML позволяет указать язык с помощью XML: Ланг.

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

1

Content-Languageis non-conforming in XHTML5.

Хотя это позволяет вам указать несколько языков, вы не должны этого делать (это никому не помогает). Вы должны использовать атрибуты xml:lang для определенных элементов, например.

<p xml:lang="en">Hello <span xml:lang="de">Welt!</span></p> 

W3C I18N FAQ также явно против <meta>:

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

0

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 изменений это, и META HTTP-эквив = «Content-Language» считаются несоответствующим HTML, который, тем не менее определяет документ шириной языка по умолчанию, и поддерживает только один язык так эффективно идентичен xml: lang на элементе html. Я не могу сказать, что я понимаю причины этого изменения, но Дэниел Глазман и Ян Хиксон обсуждают это на нитке, начинающейся с http://lists.w3.org/Archives/Public/public-html/2008Nov/0083.html