Документ xhtml - вопрос о параметрах языка - PullRequest
4 голосов
/ 18 апреля 2009

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

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

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

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

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

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

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

Скип.

Ответы [ 5 ]

6 голосов
/ 19 апреля 2009

Dive Into Accessibility's Идентификация вашей языковой страницы рекомендует добавить как можно больше для обработки как можно большего количества программ чтения с экрана, в зависимости от вашего типа документа:

Если вы используете какой-либо вариант 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-эквивалент). Почти столько же людей используют это как укажите атрибут lang в html элемент. В настоящее время в спецификации HTML5 атрибут http-эквивалент только разрешено для одного случая установки кодировка символов, которая не может действительно будет отброшено, как на графике выше демонстрирует. Тем не мение, http-equ = "Content-Language" является поддерживается как минимум одним браузером, и как мы видим здесь, это широко используется - может быть http-эквивалент не должен быть удален в конце концов.

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

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

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

1 голос
/ 19 апреля 2009

Content-Language не соответствует XHTML5 .

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

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

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

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

1 голос
/ 19 апреля 2009

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

0 голосов
/ 19 апреля 2009

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

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

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

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

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

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

0 голосов
/ 19 апреля 2009

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...