Является ли lang= неизвестный атрибут действительным?

Предоставлен HTML-документ на определенном языке (английский).

Я определил атрибут lang для тега:

<html lang="en">

Некоторые тексты на странице написаны на другом языке (например, на французском):

<span lang="fr">
  blabla...
</span>

Но если я не могу определить язык, но знаю, что это НЕ английский, могу ли я установить "unknown" в качестве допустимого значения для атрибута lang?

<span lang="unknown">
  blabla...
</span>

Я прочитал это в документации по w3c, но я не уверен, что "значение по умолчанию [...] неизвестно" означает, что "неизвестно" является реальным значением...

http://www.w3.org/TR/html4/struct/dirlang.html

lang = language-code [CI] Этот атрибут определяет базовый язык значений атрибута элемента и текстового содержимого. Значение по умолчанию этого атрибута неизвестно.

2 ответа

Решение

Формулировка в спецификации HTML 4.01 неясна; Значение unknown не является допустимым языковым тегом, и спецификация использует слово "unknown" как обычное английское слово. То есть значением по умолчанию является значение, которое указывает, что язык не известен, но это значение не указано явно.

Спецификация частично устарела в этой области, поскольку она ссылается на замененный RFC на языковых тегах. Текущий RFC - это RFC 5646, Метки для идентификации языков, также известный как BCP (Лучшая текущая практика) 47. Он относится, среди прочего, к ISO 639-2 в отношении тегов основного языка, и они содержат код und для "неопределенного". Так что технически вы могли бы использовать lang=und, но RFC говорит: "Этот подтег НЕ ДОЛЖЕН использоваться, если не требуется языковой тег и информация о языке недоступна или не может быть определена. Опускать языковой тег (где это разрешено) предпочтительнее ".

И это подход, принятый в HTML5 RC, который говорит оlang: "Установка атрибута в пустую строку означает, что основной язык неизвестен. [BCP47]"

Таким образом, для текста на неидентифицируемом языке вы можете использовать, например, <span lang="">...</span>,

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

Я бы предпочел не устанавливать его вообще, если не нужно. Обратите внимание, что lang= Значение будет получено из включающего (родительского) элемента, если оно не установлено.

Если вы как- то вынуждены установить его, установите его по умолчаниюunknown как вы уже предложили, кажется вполне законным в соответствии со спецификацией.

Другие вопросы по тегам