Content languages

É uma boa prática declarar a linguagem primária do documento no elemento <html> (principalmente para que os motores de busca, o navegador e os leitores de tela saibam qual é a linguagem da sua página):

<html lang="pt-BR">

Decompondo o valor do atributo lang, temos um código de duas letras que indica o idioma (pt, de Português), e outro código de duas letras indicando o país (BR, de Brasil). O código do país é opcional. Assim, o lang poderia ter o valor pt, se referindo apenas ao idioma Português.

Tanto o código do idioma como o código do país fazem parte de listas de códigos feitas pela ISO (International Organization for Standardization). O código do país precisa estar no ISO 3166-1 alpha 2. O código do idioma precisa estar no ISO 639-1.

Também é possível especificar o atributo lang em outros elementos da página. Isso é usado quando outros elementos da página estão em outras linguagens. Exemplo:

<p lang="pt-BR">Todo o site está em inglês, exceto esse parágrafo, que está em Português.</p>

A declaração da linguagem é herdada pelos elementos descendentes, a não ser que seja sobrescrita:

<div lang="pt">
  <div>
    <p>Texto em português.</p>
    <p lang="en">English text</p>
  </div>
  <p>Texto em português.</p>
</div>

É possível adicionar o atributo hreflang para os elementos <a> e <area> que criam links. Eles especificam o idioma do recurso linkado:

<a href="sitequalquer.com/memes" hreflang="pt-BR">Site de memes</a>