Adicionar carregamento preguiçoso para emojis

As imagens de perfil e os elementos de imagem nas postagens são carregados de forma preguiçosa (lazy-loaded) tendo o atributo loading="lazy" definido.
Os emojis não estão aproveitando isso. :sloth:

<img src="https://emoji.discourse-cdn.com/twitter/sloth.png?v=12" title=":sloth:" class="emoji" alt=":sloth:">

Não consegui encontrar a localização nas fontes onde as tags de emoji são geradas.
Os emojis são “gravados” nas postagens?

1 curtida
3 curtidas

Você pode detalhar por que adicionou largura e altura codificadas? Por que nossa solução CSS não é boa o suficiente aqui?

Pessoalmente, acho que é uma boa prática sempre adicionar os atributos width e height aos elementos img no momento em que o elemento img é gerado. Esse é o lugar onde posso saber com certeza qual arquivo de imagem exato estou colocando. O CSS está muito longe do arquivo de imagem real.

Além disso, os navegadores usam essas informações extras sobre o tamanho da imagem para calcular a aspect-ratio antes de carregar o arquivo de imagem - e antes da análise do CSS.

Nesse caso, os emojis são usados em muitos lugares diferentes - e às vezes a definição de tamanhos via CSS é acidentalmente ignorada.
Por exemplo, veja a visualização do crawler deste mesmo tópico no PageSpeed (https://pagespeed.web.dev/report?url=https%3A%2F%2Fmeta.discourse.org%2Ft%2Fadd-lazy-loading-for-emojis%2F217024)

2 curtidas

Entendi, então o navegador está usando isso para descobrir a proporção e isso dá mais flexibilidade às pessoas com CSS (e limita bloqueios em torno do CSS). Parece bom para mim, embora torne nosso HTML um pouco mais verboso.

1 curtida

Este PR foi mesclado, obrigado pela contribuição @rrit!

2 curtidas