En me connectant aujourd’hui à SDMB (et aussi à try.discourse.org), je suis accueilli par le message suivant :
Malheureusement, votre navigateur est trop ancien pour fonctionner sur ce site. Veuillez mettre à jour votre navigateur pour afficher du contenu riche, vous connecter et répondre.
Cependant, j’utilise la version la plus récente de mon navigateur, SeaMonkey 2.53.13, qui est sortie il y a seulement quatre jours. Discourse a peut-être choisi de ne pas le prendre en charge, mais il est faux de dire qu’il est « trop ancien » pour fonctionner avec Discourse. En effet, si je remplace la chaîne User-Agent du navigateur, je constate que tout semble fonctionner correctement.
Le problème semble être une analyse incorrecte de l’User-Agent par Discourse. Par défaut, la chaîne User-Agent de SeaMonkey annonce la compatibilité avec Firefox :
Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Firefox/68.0 SeaMonkey/2.53.13
Si je modifie la chaîne User-Agent comme suit pour masquer la compatibilité avec Firefox (via Édition->Préférences->Avancé->Réseau HTTP->Chaîne d’agent utilisateur->S’identifier comme SeaMonkey), alors SeaMonkey peut à nouveau visiter les sites Discourse sans problèmes évidents :
Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 SeaMonkey/2.53.13
Je comprends que Discourse puisse ne pas souhaiter prendre en charge des navigateurs comme SeaMonkey qui ne sont plus courants, mais il serait souhaitable que ces navigateurs ne soient pas bloqués de manière proactive pour accéder aux sites Discourse. Et même si ces navigateurs sont bloqués de manière proactive, il serait souhaitable que Discourse ne fournisse pas de raison erronée pour le faire.
Veuillez améliorer l’analyse de l’User-Agent afin qu’elle vérifie jusqu’à la fin de la chaîne avant de décider si l’agent utilisateur est « trop ancien ». (Je soupçonne qu’elle recherche simplement les noms et versions des navigateurs pris en charge, quelle que soit leur position dans la chaîne User-Agent.) Après tout, vous ne bloquez pas les navigateurs parce qu’ils signalent une ancienne version de Mozilla au début de la chaîne, alors pourquoi bloquer les navigateurs parce qu’ils signalent une ancienne version de Firefox au milieu de la chaîne ?
Si pour une raison quelconque il est indésirable ou peu pratique de modifier l’algorithme d’analyse, veuillez alors modifier le comportement lors de la détection d’un user-agent prétendument incompatible : au lieu de dire (peut-être à tort) à l’utilisateur que son navigateur est « trop ancien » et de bloquer l’accès, dites à l’utilisateur que son navigateur n’est pas pris en charge et fournissez un lien vers la liste des navigateurs pris en charge, mais donnez-lui la possibilité de continuer en utilisant son navigateur actuel.