Idéalement, nous aurions différents navigateurs prenant en charge les mêmes normes et le même code produisant le même résultat sur tous les navigateurs.
Cela ne s'est pas encore produit. Quelles en sont les raisons?
gopher
.
Idéalement, nous aurions différents navigateurs prenant en charge les mêmes normes et le même code produisant le même résultat sur tous les navigateurs.
Cela ne s'est pas encore produit. Quelles en sont les raisons?
gopher
.
Réponses:
Non, ce n'est pas réaliste, car les spécifications sont parfois déroutantes et tout le monde comprend quelque chose différemment des autres. Nous ne sommes que des humains après tout. Il ne peut y avoir qu'une seule vraie norme lorsqu'il n'y a qu'un seul fournisseur avec une seule version d'un produit.
Joel a écrit un excellent article sur ce sujet, intitulé Martian Headsets .
Je pense que je vais le citer ici, car c'est la meilleure explication pour laquelle nous ne verrons jamais cela tant que différents fournisseurs sont impliqués:
Ces documents sont extrêmement déroutants. Les spécifications sont pleines d'énoncés comme «Si une boîte de bloc frère (qui ne flotte pas et n'est pas positionnée de façon absolue) suit la boîte de rodage, la boîte de rodage devient la première boîte en ligne de la boîte de bloc. Un rodage ne peut pas s'exécuter dans un bloc qui commence déjà par un rodage ou qui est lui-même un rodage. » Chaque fois que je lis des choses comme ça, je me demande comment quelqu'un se conforme correctement à la spécification.
De plus, il y a de la concurrence et de l'évolution sur le marché. Prenons par exemple les cases de saisie semi-automatique. Tous les principaux navigateurs les ont déjà, mais aucune norme n'est définie. Le W3C est tout simplement trop lent et au moment où la norme arrive, il y a déjà 5 implémentations différentes avec des comportements différents dans la nature, que vous devez également prendre en charge si vous voulez être compétitif. Un autre excellent exemple de ce problème est l'incorporation de vidéos.
Cela dit: tant que vous devez prendre en charge différents navigateurs et environnements, préparez-vous à effectuer des ajustements.
Non, car le W3C dans de nombreuses spécifications confie la responsabilité de l'implémentation de quelque part aux implémenteurs UA (implémenteurs de navigateur). Pourquoi je dis cela, parce que j'écris habituellement mes articles directement à partir des spécifications du W3C et que je vois ces cas. Par exemple, le W3C dit que les navigateurs doivent accepter le consentement de l'utilisateur sur le partage de leur position (via l' API de géolocalisation ), mais il ne dit pas comment ils doivent le demander. Cela pourrait entraîner différents types de messages affichés différemment (popup, slide-down, etc.) dans différents navigateurs.
En général, nous pouvons dire que:
Tant qu'il existe une implémentation des exigences pluralistes , la cohérence entre les navigateurs est difficile à réaliser .
Nous ne pouvons voir des navigateurs cohérents que lorsque le W3C indique impérativement aux implémenteurs de navigateur quoi faire.
Cela ne se produira pas sous la forme que vous décrivez.
Pourtant; si vous codez de façon conservatrice, il ne faut pas grand-chose pour écrire du code qui fonctionne de manière fiable et prévisible sur tous les nouveaux navigateurs. Nous avons déjà parcouru un long chemin au cours de la dernière décennie - même IE implémente actuellement correctement un grand sous-ensemble des recommandations du W3C, suffisamment pour créer des sites Web indépendants du navigateur.
Bien sûr, si vous voulez faire des choses qui ne sont pas dans les recommandations, ou utiliser des fonctionnalités qui sont spécifiées vaguement, ou encore mal implémentées (ou pas du tout), alors vous êtes seul.
Il est extrêmement improbable que cela se produise bientôt - en fait, j'irais jusqu'à dire que quand / si cela se produit, c'est un signe fort que le monde a évolué et ne se soucie plus des navigateurs Web. .
Le problème est assez simple: la plupart des limites à l'écriture de nouvelles normes pour des choses encore plus cool que les navigateurs pourraient faire, est le manque (même raisonnable) de conformité aux normes existantes. En regardant cela dans une direction légèrement différente, les navigateurs sont conformes aux normes existantes (ou même se rapprochent raisonnablement de la conformité), il est presque certain qu'au moins quelques personnes vont commencer à penser "Mais ne serait-ce pas cool si nous pourrait ... ", et ils feront alors l'une des deux choses: soit ils implémenteront leur idée dans un navigateur, puis travailleront sur la standardisation de leur idée (presque inévitablement avant qu'un autre navigateur ne l'implémente), ou ils travailler à écrire une norme pour ce comportement, même si aucun navigateur ne l' implémente encore.
L'essentiel est que la mise en œuvre des normes sur les navigateurs est presque inévitablement en retard par rapport à l'invention de nouvelles normes auxquelles se conformer. La seule façon dont les navigateurs peuvent tous rattraper leur retard est si les gens arrêtent d'écrire / de concevoir de nouvelles choses pour les navigateurs.
Dans le même temps, je me sens obligé de souligner que plus ou moins l'inverse est également vrai: il s'agit d'un ensemble de normes en constante évolution avec lequel les navigateurs se conforment de plus en plus étroitement. Il n'y a pas si longtemps, le meilleur score obtenu par un navigateur pour le test Acid3 était de 93/100. En fait, c'est exactement le même score qu'IE obtient actuellement ...
Idéalement, nous aurions différents navigateurs prenant en charge les mêmes normes et le même code produisant le même résultat sur tous les navigateurs.
Cela soulève la question de savoir pourquoi nous avons besoin de différents navigateurs. Si tous font essentiellement la même chose, un seul navigateur suffira pour tous. Ce serait en effet idéal. Plus de duplication inutile des efforts et plus de code spécifique au navigateur. Les gens pourraient enfin commencer à construire sur des bases solides.