As cores da Internet estão erradas e a culpa é dos navegadores

A maioria das cores que está a ver pelo navegador estão, na verdade, incorretas. Não, não é mentira: as cores que verifica em vários websites aplicadas via CSS, SVG e em ficheiros PNG podem não ser, na realidade, as cores corretas que se pretende apresentar.

A culpa para tal não se encontra nas tecnologias propriamente ditas, mas na necessidade da internet em comprimir os dados para reduzir ao máximo a largura de banda necessária.

Como se sabe, as cores são representadas por valores hexadecimais, que correspondem às diferentes cores dentro de um espetro disponível. No entanto, para poupar no tamanho, a maioria dos conteúdos apresentados na web encontram-se comprimidos por um algoritmo conhecido como 8-bit sRGB, que na verdade data de quase 1996.

sRGB

O problema encontra-se no facto que, enquanto a web tem vindo a evoluir, este algoritmo não. O mesmo é usado para representar as cores pela web com menos bits do que seria apresentado numa imagem real, economizando assim dados e reduzindo o tamanho necessário para a transmissão dos mesmos.

O sRGB é, basicamente, uma forma de comprimir os dados das cores, que leva a conteúdos mais pequenos em comparação com o uso de valores RGB lineares, com algumas perdas no processo. E uma delas encontra-se sobre as cores que são apresentadas.

Teoricamente, para apresentar as cores corretamente, os valores sRGB deveriam ser convertidos para valores RGB reais, e depois para sRGB novamente. Mas isso não é o que se realiza na maioria dos casos.

Quem cria conteúdos baseando-se nas cores em formato sRGB encontra-se, indiretamente, a apresentar as cores erradas ao mundo. Existe um parâmetro que poderia corrigir este problema em algumas imagens SVG, conhecido como color-interpolation, mas na realidade nenhum navegador suporta o mesmo atualmente.

cores no navegador vs realidade

Existem ainda propostas para que mudanças sejam feitas com a chegada do CSS4, mas por agora isso ainda não é uma realidade, e como tal não se encontra aplicado em nenhum sistema.

O mais interessante será também que a maioria das placas gráficas suportam a conversão de e para sRGB sem praticamente qualquer perda de desempenho, permitindo obter as cores reais – e isso é aplicado em alguns conteúdos, como é o caso de videojogos – mas ainda não é algo que se aplique diretamente nos navegadores.

Caso tenha interesse em ver o quanto errada a palete de cores da web se encontra poderá verificar os exemplos neste website.