Compat 2021: éliminer cinq principaux problèmes de compatibilité sur le Web

Google collabore avec d'autres fournisseurs de navigateurs et des partenaires du secteur pour résoudre les cinq principaux problèmes de compatibilité des développeurs Web: CSS Flexbox, CSS Grid, position: sticky, aspect-ratio et les transformations CSS.

Google collabore avec d'autres fournisseurs de navigateurs et des partenaires du secteur pour résoudre les cinq principaux problèmes de compatibilité rencontrés par les développeurs Web. Il s'agit des formats CSS Flexbox, CSS Grid, position: sticky, aspect-ratio et CSS. Consultez Comment contribuer et suivre pour savoir comment participer.

Contexte

La compatibilité sur le Web a toujours été un défi de taille pour les développeurs. Au cours des deux dernières années, Google et d'autres partenaires, y compris Mozilla et Microsoft, ont décidé d'en savoir plus sur les principales difficultés rencontrées par les développeurs Web afin de piloter notre travail et la hiérarchisation pour améliorer la situation. Ce projet est lié au travail de satisfaction des développeurs (DevSAT) de Google. Il a commencé à plus grande échelle avec la création des enquêtes MDN DNA (évaluation des besoins des développeurs) en 2019 et 2020, ainsi qu'une étude approfondie présentée dans le rapport MDN Browser Compatibility Report 2020. Des recherches supplémentaires ont été menées sur différents canaux, tels que les enquêtes sur l'état du CSS et l'état de JS.

En 2021, l'objectif est d'éliminer les problèmes de compatibilité des navigateurs dans cinq domaines d'action clés afin que les développeurs puissent s'en inspirer pour constituer des bases fiables. Cet effort s'appelle #Compat 2021.

Choisir sur quoi vous concentrer

Bien qu'il existe des problèmes de compatibilité des navigateurs dans pratiquement toute la plate-forme Web, ce projet se concentre sur un petit nombre des domaines les plus problématiques, qui peuvent être nettement améliorés, ce qui les élimine comme des problèmes majeurs pour les développeurs.

Le projet de compatibilité s'appuie sur plusieurs critères qui déterminent les domaines à prioriser, parmi lesquels:

Les cinq principaux domaines d'action pour 2021

En 2020, Chromium a commencé à chercher des solutions aux principaux aspects décrits dans l'article Améliorer la compatibilité du navigateur Chromium en 2020. En 2021, nous allons encore plus loin. Google et Microsoft collaborent pour résoudre les principaux problèmes dans Chromium, avec Igalia. Igalia, qui est des contributeurs réguliers de Chromium et de WebKit, et gère le port WebKit officiel des appareils embarqués, nous a beaucoup soutenu et engagé dans ces efforts de compatibilité, et nous aidera à résoudre les problèmes identifiés et à en effectuer le suivi.

Voici les problèmes qui devraient être corrigés en 2021.

Flexbox CSS

CSS Flexbox est largement utilisé sur le Web, et les développeurs font encore face à des défis majeurs. Par exemple, Chromium et WebKit ont tous deux rencontré des problèmes avec les conteneurs Flex auto-height, ce qui entraîne des images de taille incorrecte.

Photo d'un échiquier étiré.
Taille incorrecte de l'image en raison de bugs.
Échiquier.
Image de taille correcte.
Photo : Alireza Mahmoudi.

L'article de blog Flexbox Cats d'Igalia approfondit ces problèmes à l'aide de nombreux autres exemples.

Pourquoi cette priorité ?

Grille CSS

La grille CSS est un élément de base des mises en page Web modernes. Elle remplace de nombreuses techniques et solutions de contournement plus anciennes. À mesure que l'adoption se développe, il doit être extrêmement fiable, afin que les différences entre les navigateurs n'aient jamais une raison de l'éviter. Il manque toutefois la possibilité d'animer les mises en page en grille, disponible dans Gecko, mais pas dans Chromium ni WebKit. Lorsqu'ils sont pris en charge, ce type d'effets est possible:

Démonstration animée des échecs par Chen Hui Jing.

Pourquoi cette priorité ?

Position CSS: persistante

Le positionnement persistant permet de maintenir le contenu au bord de la fenêtre d'affichage. Cette option est couramment utilisée pour les en-têtes qui sont toujours visibles en haut de la fenêtre d'affichage. Bien que cette fonctionnalité soit compatible avec tous les navigateurs, elle ne fonctionne pas comme prévu dans certains cas d'utilisation courants. Par exemple, les en-têtes de tableau persistants ne sont pas compatibles avec Chromium et bien qu'ils soient désormais compatibles avec un indicateur, les résultats sont incohérents selon les navigateurs:

Chromium avec "TablesNG"
Gecko
WebKit

Regardez la démonstration sur les en-têtes de tableau persistants de Rob Flack.

Pourquoi cette priorité ?

Propriété de format CSS

La nouvelle propriété CSS aspect-ratio permet de maintenir facilement un rapport largeur/hauteur cohérent pour les éléments, ce qui évite d'avoir à utiliser le célèbre piratage padding-top:

Utiliser padding-top
.container {
  width: 100%;
  padding-top: 56.25%;
}
Utiliser le format
.container {
  width: 100%;
  aspect-ratio: 16 / 9;
}

Il s'agit d'un cas d'utilisation très courant, qui devrait être largement utilisé. Nous voulons nous assurer qu'elle est fiable dans tous les scénarios courants et sur tous les navigateurs.

Pourquoi cette priorité ?

  • Enquêtes: elles sont déjà bien connues, mais pas encore largement utilisées dans la section État du CSS
  • Tests: 27% de réussite dans tous les navigateurs
  • Utilisation : 3% et augmentation prévue

Transformations CSS

Les transformations CSS sont compatibles avec tous les navigateurs depuis de nombreuses années et sont largement utilisées sur le Web. Toutefois, il existe encore de nombreux domaines dans lesquels ils ne fonctionnent pas de la même manière dans tous les navigateurs, en particulier avec les animations et les transformations 3D. Par exemple, l'effet de retournement de carte peut être très incohérent entre les navigateurs:

Effet de retournement de carte dans Chromium (à gauche), Gecko (au milieu) et WebKit (à droite). Démonstration de David Baron issue d'un commentaire de bug

Pourquoi cette priorité ?

Comment contribuer et suivre

Suivez et partagez toutes les mises à jour que nous publions sur @ChromiumDev ou la liste de diffusion publique Compat 2021. Assurez-vous que les bugs existent ou signalez-les pour les problèmes que vous avez rencontrés. S'il manque quelque chose, contactez-les via les canaux ci-dessus.

Vous serez régulièrement informé de l'avancement sur le site web.dev. Vous pourrez également suivre l'avancement de chaque domaine d'action dans le tableau de bord Comp 2021.

Tableau de bord Compat 2021
Tableau de bord Compat 2021 (capture d'écran du 16 novembre 2021).

Nous espérons que cet effort concerté entre les éditeurs de navigateurs pour améliorer la fiabilité et l'interopérabilité vous aidera à créer des produits étonnants sur le Web.