Skip to main content
Validação HTML

Valor inválido X para o atributo “media” no elemento “link”: Funcionalidade de media obsoleta “max-device-width”. Para orientação, consulte a secção Funcionalidades de Media Obsoletas na especificação atual de Media Queries.

Sobre este problema HTML

As funcionalidades de media device-width e device-height (juntamente com as suas variantes com prefixos min- e max-) originalmente referiam-se às dimensões físicas de todo o ecrã do dispositivo, independentemente de quanto espaço estava realmente disponível para o documento. Na prática, esta distinção causou confusão e comportamento inconsistente entre navegadores. Na maioria dos dispositivos e navegadores modernos, device-width e width retornam o mesmo valor de qualquer forma, tornando as variantes device-* redundantes.

As funcionalidades de media device-* eram frequentemente usadas como proxy para detetar dispositivos móveis, mas esta nunca foi uma abordagem fiável. Uma janela estreita do navegador num monitor de desktop não acionaria uma query max-device-width mesmo que o espaço de layout disponível fosse pequeno. Por outro lado, telemóveis e tablets modernos com ecrãs de alta resolução podem reportar larguras de dispositivo grandes que não refletem o tamanho real do viewport CSS. As alternativas baseadas no viewport (width, height, aspect-ratio) representam com mais precisão o espaço disponível para renderizar o seu conteúdo.

Usar funcionalidades de media obsoletas causa avisos de validação W3C e pode eventualmente perder suporte do navegador completamente. Substituí-las garante que as suas folhas de estilo são à prova de futuro, conformes aos padrões, e comportam-se consistentemente em todos os dispositivos e tamanhos de janela.

Como corrigir

Substitua qualquer funcionalidade de media device-width, device-height, ou device-aspect-ratio (incluindo versões com prefixos min- e max-) pelo equivalente baseado no viewport correspondente:

Funcionalidade obsoleta Substituição
device-width width
min-device-width min-width
max-device-width max-width
device-height height
min-device-height min-height
max-device-height max-height
device-aspect-ratio aspect-ratio

A funcionalidade de media width descreve a largura do viewport (a área de exibição direcionada do dispositivo de saída), incluindo o tamanho de uma barra de deslocamento renderizada, se existir. Este é o valor que você quase sempre deseja ao escrever estilos responsivos.

Exemplos

Incorreto: usando max-device-width obsoleto

Isto aciona o erro de validação porque max-device-width está obsoleto:

<link rel="stylesheet" media="only screen and (max-device-width: 768px)" href="mobile.css">

Correto: usando max-width em vez disso

Substitua max-device-width por max-width para consultar a largura do viewport:

<link rel="stylesheet" media="only screen and (max-width: 768px)" href="mobile.css">

Incorreto: usando min-device-width obsoleto num intervalo

<link rel="stylesheet" media="screen and (min-device-width: 768px) and (max-device-width: 1024px)" href="tablet.css">

Correto: usando equivalentes baseados no viewport

<link rel="stylesheet" media="screen and (min-width: 768px) and (max-width: 1024px)" href="tablet.css">

Incorreto: usando device-aspect-ratio obsoleto

<link rel="stylesheet" media="screen and (device-aspect-ratio: 16/9)" href="widescreen.css">

Correto: usando aspect-ratio

<link rel="stylesheet" media="screen and (aspect-ratio: 16/9)" href="widescreen.css">

Aplicando a mesma correção em regras CSS @media

A mesma descontinuação aplica-se às regras @media dentro das folhas de estilo. Embora o validador W3C sinalize especificamente o atributo media em elementos <link>, você também deve atualizar o seu CSS:

/* Obsoleto */
@media only screen and (max-device-width: 768px) {
  .sidebar { display: none; }
}

/* Correto */
@media only screen and (max-width: 768px) {
  .sidebar { display: none; }
}

Se o seu site depende de uma tag <meta name="viewport"> (como a maioria dos sites responsivos faz), a largura do viewport já corresponde à largura de pixel CSS do dispositivo, então mudar de device-width para width produzirá resultados idênticos em praticamente todos os casos.

Encontre problemas como este automaticamente

O Rocket Validator analisa milhares de páginas em segundos, detetando problemas HTML em todo o seu site.

Ajude-nos a melhorar os nossos guias

Este guia foi útil?

Pronto para validar os seus sites?
Comece o seu teste gratuito hoje.