Les enjeux de la compatibilité Web

Dimanche matin. Impatient, une amie, perdue de vue depuis plus de 10 ans, vivant en Argentine, a proposé de discuter sur une plateforme en ligne de visioconférence. C'est l'heure ! Dans le courrier, il y a le lien pour lancer la communication. Un premier clic lance le navigateur défini dans les préférences de l'ordinateur. Le cœur bat. L'adrénaline tend les muscles. Le cadre noir de la vidéo s'affiche. Une fenêtre de demande d'autorisation d'utilisation de la caméra et du micro apparaît. Un clic immédiat fait suite à un message d'erreur incongru. Démuni, et quelques tentatives plus tard, l'angoisse et la déception d'avoir raté un moment important envahissent la pièce.

Le Web

Le Web est un écosystème vaste, complexe et riche en interactions. Avant le Web, la publication et l'échange d'idées étaient profondément hiérarchisés. L'accès à l'information dépendait de processus coûteux ou compliqués. Au début des années 90, le Web a renversé ces mécanismes en nous permettant une nouvelle liberté de penser et partager sous la forme d'un rhizome. Cette nouvelle architecture existe grâce à l'établissement de protocoles et de langages pour transporter, désigner et décrire l'information (nos idées). Plus besoin d'attendre le journal télévisé de 20h, ou d'attendre la publication d'un journal dans un kiosque. La magie est immédiate. Il est devenu possible de créer un contenu en ligne qui pouvait être lu par des amis ou de la famille à des milliers de kilomètres. Ces nouveaux protocoles ont permis à des machines diverses de communiquer sans inconvénients… ou presque.

Différence entre intéropérabilité et compatibilité Web.

Deux navigateurs peuvent parfois avoir des comportements différents sans que cela représente un problème de compatibilité Web. Un navigateur uniquement vocal peut lire une page à voix haute sans montrer nécessairement les couleurs et la position graphique des éléments. Un écran noir et blanc ne montrera pas toutes les couleurs d'une page Web sans pour autant bloquer la personne qui accède au contenu. De même pour un écran mobile et un grand écran, une interaction au toucher ou à la souris, les modalités d'accès sont très nombreuses

Deux navigateurs de même type peuvent avoir des implémentations légèrement différentes de la même technologie, tout en permettant à une personne de profiter du contenu Web. Les comportements programmatiques sont différents. Peut-être que le développeur ou la développeuse Web auront su couvrir tous les scénarios permettant au contenu d'être suffisamment flexible face à ces différences. Mais elles représentent un enjeu d'interopérabilité et des coûts pour les équipes de développement et leurs organisations.

À terme, une personne face à un manque d'interopérabilité empêchant de pouvoir lire ou agir sur le contenu d'un site Web est confrontée à un problème de compatibilité Web. Les difficultés d'utilisation ne sont pas toutes créées par un manque d'interopérabilité. Parfois, il existe des raisons économiques, des décisions stratégiques, des manques de compétences, ou des dépendances sur des outils, des formats et des plateformes diminuant l'universalité potentielle de l'accès au Web.

Mais alors, comment définir la compatibilité Web ?

« Toute personne devrait pouvoir utiliser le Web avec l'appareil de son choix et le navigateur de son choix. »

Voici l'axe que nous pouvons choisir. Dès que nous dévions de cela, nous entrons dans le territoire de la compatibilité Web. Cette définition très large permet de comprendre les vastes enjeux que cela représente. L'accessibilité, l'utilisation de technologies devenues obsolètes, la puissance de l'appareil à disposition deviennent alors des questions importantes.

Parfois, un navigateur Web va mettre en place des mécanismes susceptibles de créer des problèmes de compatibilité Web, comme les techniques de blocage des traceurs pour diminuer le partage des données personnelles et le ciblage publicitaire.

Pourquoi un site Web ne fonctionne pas toujours ?

Nous avons, toutes et tous, été confronté·es un jour à un problème lors de notre utilisation du Web. Un contenu très lent, une présentation graphique bancale, ou un bouton qui ne fonctionne pas comme attendu. Découragement, sentiment d'abandon ou colère pour les personnes moins techniques, frustration pour les personnes qui ont plusieurs navigateurs installés sur leur ordinateur. Mais pourquoi le Web est-il cassé de temps en temps ? Comme tout écosystème, sa richesse s'accompagne d'une grande complexité.

Choix individuels

Parfois, une personne va renforcer les configurations de vie privée de son navigateur Web en demandant au navigateur Web choisi d'être plus strict ou en ayant installé une extension Web particulière. Les barrières mises en place contre la traque des sites Web rendent plus probables le dysfonctionnement d'un site Web. Ces choix individuels ne sont pas toujours compris. De temps en temps, ils ont été oubliés. Souvent, le lien entre renforcement de la vie privée et site Web n'ayant pas le bon comportement n'est pas bien compris.

Différence de niveaux des outils et des applications

Les outils utilisés pour développer le Web n'évoluent pas tous à la même vitesse. Les navigateurs Web, les serveurs et le contenu lui-même comprennent des technologies qui ne sont pas toutes disponibles en même temps. Il n'y a pas de versions sur le Web. Il n'y a pas de bouton pour tout redémarrer à zéro. Tout est en mouvement permanent. Plus la manufacture et la maintenance d'un site Web sont complexes, plus ses dépendances internes ouvrent la possibilité de difficultés liées à la compatibilité Web. Certains bugs ne se manifestent que lorsque des interactions complexes sont en jeu.

Vers une meilleure optimisation

Une tendance des propriétaires de contenu Web est de développer pour le plus grand nombre tout en négligeant les minorités. Un navigateur avec des parts de marché trop petites sera ignoré. Des personnes avec des besoins spécifiques seront volontairement mises de côté. Le profit est orienté vers le plus grand dénominateur commun pour être maximisé.

Notre activité Web devrait plutôt rechercher l'optimisation pour la plus grande diversité. C'est-à-dire de préférer les technologies et les solutions qui sont les plus flexibles face à la grande variabilité des personnes utilisant le Web. Le choix qui permet de garantir un bon fonctionnement de la majorité, sans exclure ceux qui font partie d'une minorité. Et si cela n'était pas assez évident, nous faisons tous partie de minorités plurielles. Nous serons tous à un moment dans une situation où le choix général ne conviendra pas et parfois où nous aurons le sentiment de cette exclusion.

Le Web fonctionne !

Mais autant nous pouvons nous plaindre des quelques fois où nous rencontrons des obstacles, autant nous pouvons jubiler de la magnifique résilience du Web au quotidien où nos milliers d'actions quotidiennes pour interagir avec nos proches ou des inconnus, pour partager des idées et des émotions se déroulent plutôt bien. Le Web est robuste car il est complexe et divers. Notre travail est de continuer à cultiver cette robustesse.

Échelle des priorités du Web

Dans les principes pour la conception de HTML, on retrouve ce passage important sur la priorité des parties :

En cas de conflit, prenez en compte les utilisateurs au-dessus des auteurs (de contenu), au-dessus de ceux qui développent les produits (navigateurs, serveurs, etc.), au-dessus de ceux qui écrivent les standards au-dessus de la pureté théorique. En d'autres termes, les coûts ou les difficultés pour l'utilisateur devraient avoir plus de poids que les coûts pour les auteurs ; qui à leur tour devraient avoir plus de poids que les coûts aux implémenteurs ; qui devraient avoir plus de poids que les coûts aux auteurs de la spécification elle-même, qui devraient avoir plus de poids que ceux qui proposent des changements pour des raisons théoriques uniquement. Bien sûr, il est préférable d'améliorer les choses pour plusieurs parties à la fois.

Ce principe donne une fondation solide. Il nous donne les outils de réflexion sur les actions à mener pour développer les usages et technologies autour du Web.

Trois actions pour corriger la casse du Web

Changer la technologie au niveau des standards

De temps en temps, les navigateurs ont développé des technologies similaires mais en divergeant sur leur comportement. Ils peuvent, par exemple, mettre en place un standard mais de façon légèrement différente les uns des autres. Corriger l'un des navigateurs à la place de l'autre crée alors des problèmes de compatibilité Web pour ceux qui ont choisi le navigateur qui change son comportement. Parfois ces dépendances sont si importantes qu'il est nécessaire de changer le standard lui-même et d'adopter une troisième façon de faire. Il n'y a pas toujours de garanties que cela fonctionne mieux, mais les acteurs du Web ont appris à mieux travailler ensemble. Des projets ont été mis en place pour permettre aux navigateurs Web, chaque année, de réduire les problèmes d'interopérabilité en sélectionnant quelques sujets clefs à améliorer.

Contacter les responsables du site Web

Quand un site Web ne fonctionne pas avec le navigateur de notre choix, nous avons la possibilité de contacter le site Web. Même si la tâche semble futile, il est important de le faire. S'époumoner en colère sur un réseau social n'aura que peu d'impact dans la résolution du problème. Et probablement, cela créera de l'hostilité travaillant contre la recherche de solutions. Bien souvent, le message d'une personne cliente d'un site Web aura beaucoup plus d'impact que celui d'une personne employée par une entreprise de navigateurs Web. Cependant ne vous attendez pas à recevoir de réponses. Restez courtois et donnez le plus de détails possibles. Nous verrons plus tard comment envoyer un bon rapport de bug.

Le processus est long et ne fonctionne pas toujours. Il sera parfois difficile de trouver un formulaire ou une adresse de courrier électronique pour expliquer le problème. Les choix économiques et stratégiques entrent en compte. Les personnes qui reçoivent le message ont des directives de leur propre hiérarchie. Les budgets de maintenance n'ont pas toujours été planifiés. Les dépendances technologiques sont nombreuses. Et de nombreux sites passent par des agences tierces qui ne garantissent pas la longévité et l'universalité d'un site Web.

Cette longueur d'attente avant la résolution d'un problème représente un enjeu majeur. Une personne ne peut pas accéder à un contenu Web avec le navigateur et le matériel de son choix. Ce qui nous amène à la troisième action.

Corriger dynamiquement le site Web dans le navigateur

Quand un site ne fonctionne pas dans un navigateur particulier parce que l'équipe de développement l'a exclu (de façon tacite ou involontaire), il reste le choix aux développeurs de navigateur Web de trouver une solution rapide pour faciliter l'accès. Les navigateurs Web ont mis en place des systèmes d'interventions en utilisant différentes stratégies plus ou moins flexibles pour corriger les sites Web dynamiquement. Pratiques à l'usage, ils ont des conséquences multiples.

  • Il n'est pas certain que le correctif n'entraîne pas un autre problème.
  • Les équipes de développement ne sont pas encouragées à corriger elles-même leur site Web.
  • La maintenance du code du navigateur devient plus difficile du côté de l'équipe navigateur et peut entraîner des problèmes de performance.
  • L'équipe de développement du site Web peut se retrouver avec des comportements inattendus lors de la mise à jour du site Web.

Mais le plus important étant l'expérience d'utilisation, les navigateurs Web corrigent à la volée certains sites Web dynamiquement. Les stratégies adoptées par chacun des navigateurs pourraient faire l'objet d'un article très technique à part entière.

Résoudre les enjeux de la compatibilité Web passe donc en premier lieu par la compréhension détaillée du problème.

Partager un bon rapport de bug pour la compatibilité Web

Un des éléments essentiels à la recherche d'une solution pour corriger le comportement d'un site Web est le rapport de bug. Trop souvent, les personnes, qui développent ou maintiennent les sites Web ou les navigateurs Web, sont démunies face à un rapport de bug bien trop vague pour pouvoir établir un diagnostic utile. Voici quelques éléments clés pour établir un bon rapport de bug pour la compatibilité Web.

  • Adresse Web (URL) : L'adresse de la page qui exhibe le problème.
  • Étapes : Toutes les étapes pour reproduire le problème. C'est probablement le plus important. Une séquence d'actions différentes va parfois provoquer ou pas le dysfonctionnement observé. Le comportement que vous attendiez. Le comportement réellement observé.
  • Navigateur : Le nom du navigateur et sa version.
  • Appareil : Le type d'appareils utilisés ainsi que leur modèle.
  • Système : La version du système.
  • Date : Quand cela s'est-il passé ? Parfois cela permet de recouper avec un événement interne du site Web.
  • Reproduction : Est-ce arrivé une seule fois ou cela arrive-t-il à chaque fois ?
  • Autre navigateur : Le problème a-t-il été observé dans d'autres navigateurs réalisés par une compagnie différente ? Lesquels ?
  • Extensions : Avez vous des extensions installées ? Lesquelles ?
  • Type de connexion : Wi-Fi ? Cable ? Cellulaire ?
  • Copie d'écran : Une image montrant le problème. Vous pouvez même cercler le problème sur lequel vous souhaitez attirer l'attention. Il est aussi possible d'enregistrer le parcours de ce que vous faites. Chaque plateforme permet l'enregistrement de l'écran au complet ou d'une portion de celui-ci. Soyez attentifs tout-de-même aux informations privées qui pourraient apparaître dans cette copie.
  • Notes : Tous les autres détails pouvant aider au diagnostic.

C'est une très longue liste et bien sûr tout le monde n'a pas le temps ou les compétences pour écrire un rapport si complet. Les cinq premiers points de cette liste sont les plus importants. Avec juste ce minimum, il est déjà possible de réaliser un diagnostic. Si vous êtes développeur ou développeuse Web, vous pouvez même réaliser un exemple de code minimal illustrant le problème. N'oubliez pas de mentionner dans ce cas s'il s'agit d'un site Web en cours de développement ou en production. Cela permet aux équipes de développement des navigateurs Web d'établir la priorité d'une correction.

webcompat.com est un lieu unique permettant de partager les problèmes de compatibilité Web, c'est-à-dire d'un site qui fonctionne dans un navigateur mais pas dans un autre. N'hésitez pas à informer de vos bugs à cet endroit.

Un Web où il fait bon vivre

La qualité du Web dépend beaucoup de l'effort que nous voulons bien y mettre, tous et toutes, à tous les niveaux de la chaîne. N'hésitez pas à partager vos bugs. Mais surtout continuez à participer à cette magnifique aventure, que vous lisiez ou créiez du contenu. La richesse du Web et son ouverture dépendent de ce que nous en faisons.

Il n’est plus possible de laisser un commentaire sur les articles mais la discussion continue sur les réseaux sociaux :