Compat 2021: eliminação dos cinco principais problemas de compatibilidade na Web

O Google está trabalhando com outros fornecedores de navegadores e parceiros do setor para corrigir os cinco principais problemas de compatibilidade com navegadores para desenvolvedores da Web: flexbox CSS, CSS Grid, position: sticky, aspect-ratio e transformações CSS.

O Google está trabalhando com outros fornecedores de navegadores e parceiros do setor para corrigir os cinco principais problemas de compatibilidade com navegadores para desenvolvedores da Web. As áreas de foco são flexbox CSS, CSS Grid, position: sticky, aspect-ratio e transformações CSS. Confira Como contribuir e acompanhar para saber como participar.

Contexto

A compatibilidade na Web sempre foi um grande desafio para os desenvolvedores. Nos últimos anos, o Google e outros parceiros, incluindo Mozilla e Microsoft, decidiram saber mais sobre os principais pontos problemáticos para os desenvolvedores da Web, a fim de impulsionar nosso trabalho e priorização para melhorar a situação. Este projeto está conectado ao trabalho do Google Developer Satisfaction (DevSAT) e começou em maior escala com a criação das pesquisas de DNA (Avaliação de necessidades do desenvolvedor) da MDN em 2019 e 2020 e um esforço de pesquisa detalhado apresentado no Relatório de compatibilidade do navegador MDN 2020. Outras pesquisas foram feitas em vários canais, como as pesquisas State of CSS e State of JS.

O objetivo de 2021 é eliminar problemas de compatibilidade de navegadores em cinco áreas de foco principais para que os desenvolvedores possam usá-las como bases confiáveis com confiança. Esse recurso é chamado de #Compat 2021.

Como escolher em que focar

Embora existam problemas de compatibilidade do navegador em basicamente toda a plataforma da Web, o foco deste projeto está em um pequeno número das áreas mais problemáticas, que podem ser significativamente melhores, removendo-as como os principais problemas para desenvolvedores.

O projeto de compatibilidade usa vários critérios que influenciam quais áreas devem ser priorizadas, e alguns são:

As cinco principais áreas de foco em 2021

Em 2020, o Chromium começou a trabalhar nas áreas principais descritas em Como melhorar a compatibilidade do navegador do Chromium em 2020. Em 2021, começamos um esforço dedicado para ir ainda mais longe. O Google e a Microsoft estão trabalhando juntos para resolver os principais problemas no Chromium, junto com a Igalia. A Igalia, que contribui regularmente para o Chromium e o WebKit e mantém a porta oficial do WebKit para dispositivos incorporados, ofereceu apoio e está envolvida nesses esforços de compatibilidade e vai ajudar a resolver e rastrear os problemas identificados.

Estas são as áreas que serão corrigidas em 2021.

Flexbox CSS

O flexbox CSS é amplamente usado na Web e ainda há alguns grandes desafios para os desenvolvedores. Por exemplo, o Chromium e o WebKit tiveram problemas com auto-height contêineres flexíveis, o que levou a imagens de tamanho incorreto.

Foto esticada de um tabuleiro de xadrez.
Imagem de tamanho incorreto devido a bugs.
Tabuleiro de xadrez.
Imagem no tamanho correto.
Foto de Alireza Mahmoudi.

A postagem do blog A flexbox Cats da Igalia (em inglês) aprofunda esses problemas com muitos outros exemplos.

Por que ela é priorizada

Grade CSS

A grade CSS (link em inglês) é um elemento básico fundamental para layouts modernos da Web, substituindo muitas técnicas e soluções alternativas mais antigas. À medida que a adoção cresce, ela precisa ser sólida para que as diferenças entre os navegadores nunca sejam uma razão para evitar isso. Uma área que não tem é a capacidade de animar layouts de grade, que têm suporte no Gecko, mas não no Chromium ou no WebKit. Quando apoiados, efeitos como estes são possíveis:

Demonstração animada de xadrez de Chen Hui Jing.

Por que ela é priorizada

Posição do CSS: fixo

O posicionamento fixo permite que o conteúdo permaneça na borda da janela de visualização e é comumente usado para cabeçalhos que estão sempre visíveis na parte superior da janela. Embora seja compatível com todos os navegadores, há casos de uso comuns em que ele não funciona como pretendido. Por exemplo, cabeçalhos de tabelas fixas não são compatíveis com o Chromium e, embora agora sejam compatíveis com uma flag, os resultados são inconsistentes em todos os navegadores:

Chromium com "TablesNG"
Gecko
WebKit

Confira a demonstração dos cabeçalhos de tabelas fixas de Rob Flack.

Por que ela é priorizada

Propriedade de proporção do CSS

A nova propriedade de CSS aspect-ratio facilita manter uma proporção consistente entre largura e altura para elementos, eliminando a necessidade da conhecida invasão padding-top:

Como usar padding-top
.container {
  width: 100%;
  padding-top: 56.25%;
}
Como usar proporção
.container {
  width: 100%;
  aspect-ratio: 16 / 9;
}

Como esse é um caso de uso tão comum, espera-se que ele se torne amplamente utilizado, e queremos ter certeza de que ele é sólido em todos os cenários comuns e em todos os navegadores.

Por que ela é priorizada

Transformações CSS

As transformações CSS são compatíveis com todos os navegadores há muitos anos e são amplamente usadas na Web. No entanto, ainda existem muitas áreas em que elas não funcionam da mesma forma em todos os navegadores, principalmente com animações e transformações 3D. Por exemplo, um efeito de virada de cartão pode ser muito inconsistente nos navegadores:

Efeito de virada de cartão no Chromium (à esquerda), Gecko (meio) e WebKit (à direita). Demonstração de David Baron do comentário do bug.

Por que ela é priorizada

Como contribuir e acompanhar

Siga e compartilhe as atualizações que postamos em @ChromiumDev ou na lista de e-mails pública, Compat 2021. Verifique se há bugs ou registre-os para problemas que você está enfrentando. Se algo estiver faltando, entre em contato pelos canais acima.

Haverá atualizações regulares sobre o progresso aqui no web.dev. Você também pode acompanhar o progresso de cada área de foco no Painel da Compat 2021.

Painel da Compat 2021
Painel de compatibilidade de 2021 (captura de tela tirada em 16 de novembro de 2021).

Esperamos que esse esforço conjunto entre os fornecedores de navegadores para melhorar a confiabilidade e a interoperabilidade ajude você a criar coisas incríveis na Web.