O atributo global lang ajuda a definir o idioma de um elemento: a língua em que elementos não-editáveis são escritos, ou a língua em que elementos editáveis devem ser escritos pelo usuário. O atributo contém uma uma única “tag de idioma” em um formato definido em Tags para identificar linguagens(BCP47).

Se o valor do atributo é uma string vazia (lang=""), o idioma é definido como unknown (desconhecido); se a tag de idioma não é válida conforme o BCP47, ela é definida como invalid (invalida).

Sintaxe da tag de idioma

A sintaxe completa do BCP47 é profunda o suficente para caracterizar dialetos de linguagem extremamente expecíficos, mas a maioria dos usos são bem mais simples.

Uma tag de idioma é feita de subtags de idioma separadas por hífen, onde cada subtag indica uma certa propriedade da língua. As três subtags mais comuns são:

Subtag de idioma
Necessária. Um código de  2 ou 3 caracteres que define o idioma base, tipicamente escrita em letras minúsculas. Por exemplo, o código para Inglês é en e o código para Português é pt.
Subtag de script
Opcional. Essa subtag define o sistema de escrita usado para a linguagem, e sempre tem 4 caracteres, com a primeira letra maiúscula. Por exemplo, Francês em Braile é fr-Brai e ja-Kana é Japonês escrito no alfabeto Katakana. Se a língua é escrita em uma maneira tipicamente comum, como Inglês no alfabeto Latino, não é necessário o uso da subtag.
Subtag de região
Opcional. Essa subtag define um dialeto do idioma base em uma localização particular e tem um código de duas letras maiúsculas referentes ao país, ou um código de três números  referentes à uma área fora do país. Por exemplo, es-ES é para espanhol falado na Espanha, e es-013 é o espanhol falado na America Central. “Espanhol Internacional” seria es.

A subtag de script precede a região da subtag quando ambos estão presentes— ru-Cyrl-BY é Russo, escrito no alfabeto Cyrillic, falado em Belarus.

Para encontrar os códigos corretos para uma subtag de idioma, acesse Language Subtag Lookup.

Mesmo que o atributo lang esteja bem definido ele ainda pode ser ignorado, pois o atributo xml:lang tem prioridade.

Para as pseudo-classes CSS :lang, dois nomes de idiomas inválidos são diferentes se seus nomes forem diferentes. Por tanto, enquanto :lang(es) corresponde a ambos lang="es-ES" e lang="es-419", :lang(xyzzy) não corresponde a lang="xyzzy-Zorp!".

Especificações

Specification Status Comment
HTML Living Standard
The definition of 'lang' in that specification.
Padrão em tempo real Sem mudança até o último registro, HTML 5.1
HTML 5.1
The definition of 'lang' in that specification.
Recomendação Registro de HTML Living Standard, sem mudança para HTML5
HTML5
The definition of 'lang' in that specification.
Recomendação Registro de HTML Living Standard, comportamento com xml:lang e algoritmo de determinação definido. Ele também é um atributo global.
HTML 4.01 Specification
The definition of 'lang' in that specification.
Recomendação Suportado em todos os elementos, mas <applet>, <base>, <basefont>, <br>, <frame>, <frameset>, <iframe>, <param> e <script>.

Compatibilidade

Update compatibility data on GitHub
DesktopMobile
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidFirefox for AndroidOpera for AndroidSafari on iOSSamsung Internet
langChrome Full support YesEdge Full support YesFirefox Full support YesIE Full support YesOpera Full support YesSafari Full support YesWebView Android Full support YesChrome Android Full support YesFirefox Android Full support YesOpera Android Full support YesSafari iOS Full support YesSamsung Internet Android Full support Yes

Legend

Full support  
Full support

Veja também

Etiquetas do documento e colaboradores

Colaboradores desta página: mdnwebdocs-bot, ViniciusMatias
Última atualização por: mdnwebdocs-bot,