Conseils Web de Dan:

original article:https://webtips.dan.info/force.html

“Comment puis-je forcer …?”

[<== Précédent] | [Haut] | [Suivant ==>]

CONSEIL: Comprenez que HTML ne peut «forcer» aucune action, et n’essayez pas de contourner cette limitation; vous ne ferez qu’ennuyer vos utilisateurs et rendre votre site moins accessible.

Les questions “novices” courantes dans les groupes de discussion consacrés à la création Web sont celles qui commencent par “Comment forcer le navigateur de l’utilisateur à …”

  • vous n’avez pas de bouton “Retour”?
  • l’un des liens de la page fonctionne-t-il comme un bouton «Retour»?
  • éliminer l’historique de navigation de l’utilisateur afin que l’utilisateur ne puisse pas sortir de mon site?
  • enregistrer l’historique de navigation de l’utilisateur et l’envoyer sur mon site afin que je puisse l’analyser à des fins de recherche marketing?
  • rétablir tous les liens visités à la couleur du lien non visité?
  • supprimer le pointeur de la souris “main” lorsque l’utilisateur déplace la souris sur un lien, il peut donc s’agir d’un lien caché?
  • être dimensionné à 640 x 480 quelle que soit la taille du moniteur de l’utilisateur?
  • pas de barres de défilement quelle que soit la taille du moniteur de l’utilisateur?
  • installer mes polices personnalisées sur le système de l’utilisateur pour que ma page s’affiche comme je le souhaite même si l’utilisateur ne dispose pas déjà de ces polices?
  • ignorer les paramètres et commandes de modification de la taille de la police de l’utilisateur et conserver les polices de la même taille, quelle que soit la façon dont elles sont définies?
  • invite l’utilisateur à enregistrer un fichier sur le disque lorsque l’utilisateur clique dessus, plutôt que de l’afficher dans le navigateur?
  • exécuter immédiatement un fichier EXE à partir de mon site lorsque l’utilisateur clique dessus, plutôt que d’inviter l’utilisateur à enregistrer le fichier?
  • imprimer mon bon de commande sur l’imprimante de l’utilisateur dès son entrée sur mon site?
  • afficher mes pages Web uniquement dans le cadre d’un jeu de cadres, et non individuellement?
  • afficher mes pages Web uniquement individuellement, pas dans le cadre d’un jeu de cadres?
  • supprimer la fonctionnalité “Afficher la source” pour que personne ne puisse voler mon code HTML?
  • désactiver la fonction “Enregistrer sous” pour que personne ne puisse voler mes pages, mes graphiques et autres éléments?
  • supprimer le bouton “Imprimer” pour que personne ne puisse voler mes pages sous forme papier?
  • supprimer toutes les fonctions de clic droit et de copier-coller sur mon site?
  • pop-up une boîte d’avertissement chaque fois qu’un utilisateur essaie de quitter mon site, pour l’encourager à rester?
  • enregistrer les fichiers que l’utilisateur télécharge dans le répertoire que je choisis, plutôt que dans un répertoire choisi par l’utilisateur?
  • supprimer la boîte de dialogue d’avertissement qui apparaît (sur certaines versions et configurations de navigateur) lorsque mon site tente d’exécuter un contrôle ActiveX, de définir un cookie, de passer entre des pages sécurisées et non sécurisées, etc.?
  • désactiver JavaScript dans le navigateur de l’utilisateur (pour supprimer les fenêtres contextuelles ajoutées par certains services d’hébergement Web gratuits)?
  • activer JavaScript dans le navigateur de l’utilisateur (pour être sûr que tous mes effets spéciaux neato sont affichés!)
  • supprimer l’affichage et l’impression de l’URL des documents, afin que je puisse cacher à l’utilisateur comment récupérer directement un document spécifique et le forcer à parcourir ma structure de menu?
  • désactiver la fonction “Signet” (ou “Favoris”) pour que l’utilisateur ne puisse pas ajouter de signet à ma page?
  • mettre automatiquement ma page en favori lorsque l’utilisateur la visite pour la première fois?
  • mon formulaire est-il automatiquement soumis lorsque l’utilisateur appuie sur ENTRÉE?
  • mon formulaire ne se soumet-il pas automatiquement lorsque l’utilisateur appuie sur ENTRÉE?
  • supprimer la boîte en pointillés qui apparaît autour des images cliquables lorsqu’elles sont sélectionnées (dans certaines versions de MSIE)?

…Et la liste continue. Ils affichent tous un manque de compréhension du fonctionnement du Web. Il n’y a aucun moyen qu’un auteur puisse imposer quoi que ce soit à l’utilisateur. Diverses constructions HTML peuvent suggérer certaines actions de la part du navigateur, mais elles ne peuvent pas les forcer .

Il est vrai que certaines constructions et modules complémentaires plus récents (parfois non standard), en particulier les langages de script comme JavaScript, peuvent “forcer” divers comportements de navigateur, du moins de la part d’un navigateur qui prend en charge une telle activité. Mais sur un navigateur qui ne le fait pas, et dans lequel de tels modules complémentaires sont désactivés par les préférences de l’utilisateur, ils ne peuvent rien forcer. (Certains navigateurs, comme Mozilla et Opera , développent très bien des paramètres de préférence sophistiqués pour permettre aux utilisateurs de désactiver certaines des choses les plus ennuyeuses qu’un site peut essayer de faire, comme les publicités pop-under, tout en permettant la plupart des améliorations multimédias qui peuvent réellement améliorer la qualité d’un site.)

Même s’il était possible d’imposer de telles choses à l’utilisateur, la question est “Pourquoi voulez-vous faire cela?” Une grande partie de la communauté des utilisateurs est susceptible d’être ennuyée par de telles tentatives de manipulation de son expérience de navigation, et un utilisateur ennuyé ne reviendra probablement pas sur votre site Web. Les utilisateurs sont habitués à utiliser des outils de navigation standard tels que le bouton Retour du navigateur, et ne l’aimeront pas si vous parvenez à les désactiver. Les utilisateurs peuvent utiliser un nombre illimité de plates-formes de machines et de résolutions d’affichage différentes, et peuvent ne pas pouvoir ou ne pas vouloir forcer une largeur de pixel particulière juste pour s’adapter à vos dispositions mal conçues qui ne peuvent pas être redimensionnées aux paramètres de l’utilisateur. Les utilisateurs peuvent voir un risque de sécurité lors de l’exécution d’applets et de scripts intégrés et refusent d’activer ces paramètres,donc si votre site les rend obligatoires pour la navigation, il disparaîtra tout simplement.

Le manque de capacité à forcer le comportement du navigateur est certainement frustrant pour les développeurs qui sont habitués à créer des produits logiciels autonomes conçus pour une plate-forme particulière et qui fonctionnent complètement du début à la fin sous le contrôle du développeur, mais si vous développez pour le Web, vous Il faudra perdre cet état d’esprit et apprendre à accepter le plus grand contrôle de l’internaute sur l’expérience de navigation.

Quelques notes sur les tentatives spécifiques de “ force ”

Voici quelques commentaires plus spécifiques sur certaines des choses particulières que les gens souhaitent souvent «forcer»:

Forcer de nouvelles fenêtres de navigateur à s’ouvrir, à se fermer, à être dimensionnées à des dimensions spécifiques et à manquer de commandes normales telles que le bouton Retour

Si JavaScript est activé, vous pouvez l’utiliser pour faire de telles choses. Mais ce sont les types de choses susceptibles d’ennuyer de nombreux utilisateurs, car ils modifient l’interface utilisateur normale du navigateur, et si l’utilisateur manque de mémoire, ils peuvent même planter ou bloquer le système. Ils peuvent également amener l’utilisateur dans des «boucles» où la même fenêtre contextuelle indésirable continue de s’ouvrir à chaque fois que l’utilisateur la ferme, augmentant le niveau de gêne.

Suppression de sites de l’historique “Back-Button”

Une demande très courante consiste à empêcher l’utilisateur de revenir sur une page via le bouton Retour. Parfois, il y a même une raison légitime à cela, comme empêcher la soumission d’éléments de formulaire deux fois ou dans le désordre, ou pour protéger la sécurité des informations personnelles saisies sur la page. D’autres fois, c’est juste un désir déraisonnable de la part d’un client maniaque du contrôle qui ne supporte pas que les utilisateurs choisissent leur propre séquence de visualisation de leur site, ou même surfent sur les sites d’autres personnes et reviennent plus tard sur le site d’origine. Quoi qu’il en soit, ce n’est pas possible. Même avec les langages de script, je ne connais aucun moyen de supprimer des sites de l’historique de l’utilisateur. Si vous en avez besoin pour un intranet ou un kiosque dans lequel vous contrôlez le navigateur, vous pouvez rechercher un navigateur personnalisé intégrant ces fonctions.

Forcer les paramètres de police, de taille et de couleur quels que soient les paramètres du navigateur

Vous pouvez suggérer des paramètres de police de différentes manières, y compris des feuilles de style et divers attributs et balises de présentation (obsolètes en HTML 4.0). Sur certains navigateurs, certains de ces paramètres «forcent» les paramètres souhaités quelle que soit la configuration de l’utilisateur. C’est une mauvaise idée, car cela peut entraîner des pages illisibles pour les utilisateurs ayant des besoins spéciaux. Par exemple, ceux qui ont une mauvaise vue peuvent vouloir des polices plus grandes, et ceux qui ont un daltonisme peuvent avoir besoin de définir des combinaisons de couleurs qui leur sont lisibles, même si elles semblent étranges aux autres. Plus l’auteur du site essaie de contrer de telles choses, et plus le navigateur coopère, moins le site sera lisible pour ces utilisateurs.

Forcer les fichiers à télécharger, exécuter, lancer des applications spécifiques, etc.

Vous ne pouvez pas faire ça. Les protocoles Web ont été conçus pour identifier, via les en-têtes MIME Content-Type, le type de contenu d’ un flux de données, mais pas pour spécifier exactement quoi en faire. Cela a été fait pour une bonne raison; l’auteur du site n’a aucun moyen de savoir exactement quel type de système possède l’utilisateur final, ni les préférences de cet utilisateur quant à la manière de traiter différents types de données. Et certaines façons de traiter les données, comme exécuter automatiquement un fichier .exe, présentent des risques de sécurité tels que les virus et les «chevaux de Troie». Et si l’utilisateur a un Macintosh ou un système Unix, exécuter DOS ou Windows .EXEs est impossible, de toute façon; mais si vous laissez l’utilisateur télécharger le fichier, il pourra peut-être le mettre sur un disque et l’exécuter sur un PC au bout du couloir.

En général, les utilisateurs peuvent vouloir faire leurs propres choix quant à la façon de traiter différents types de fichiers, les afficher dans leur navigateur, les afficher via une application d’assistance externe ou les enregistrer sur leur disque dur, plutôt que de laisser votre site forcer un comportement particulier qui pourrait même ne pas fonctionner sur le système de cet utilisateur particulier. Vous devez donc vous assurer que votre serveur envoie un en-tête Content-Type honnête et précis pour chaque élément qu’il envoie.

Si vous envoyez des fichiers de données d’une certaine sorte que l’utilisateur devrait enregistrer au lieu de les afficher dans son navigateur, le meilleur type MIME à utiliser est application/octet-stream; cela provoquera généralement l’apparition d’une boîte de dialogue “Enregistrer”. Ce n’est pas «forcé» (un utilisateur peut configurer le navigateur pour faire autre chose avec ce type de données), mais c’est l’action habituelle, et c’est la plus proche que vous puissiez obtenir pour «forcer le navigateur à enregistrer le fichier». Mais vous ne pouvez pas forcer le répertoire ou le nom de fichier sous lequel il est enregistré, bien que les navigateurs obtiennent généralement le nom de la dernière partie de l’URL (bien qu’ils puissent varier de manière exaspérante, se retrouvant parfois avec des noms de fichiers étranges contrairement à celui que vous vouliez) .

Vous pouvez toujours encourager l’utilisateur à utiliser les fonctionnalités du navigateur pour enregistrer un fichier sur le disque, comme un clic droit dans Netscape ou MSIE, qui fonctionnent quel que soit le type MIME utilisé ou la façon dont le navigateur est configuré pour gérer ce type.

Suppression des boîtes de dialogue d’avertissement

Vous n’aimerez peut-être pas que certains navigateurs affichent des «avertissements de risque de sécurité» lorsque votre site tente de définir un cookie, de lancer une applet ou un contrôle ActiveX, de passer de pages sécurisées (cryptées) à non sécurisées et inversement, ou toute autre activité que certains navigateurs, sous certains paramètres de configuration, avertir de. Certains auteurs n’aiment tellement cela qu’ils demandent s’il existe un moyen de forcer la désactivation de ces avertissements. Eh bien, si l’auteur du Web pouvait faire cela, cela ne contrarierait-il pas l’objectif de ces avertissements de risques de sécurité possibles? Soyez réel!

“Masquer” le code source de votre page

C’est probablement la demande “Comment forcer …” la plus courante sur les groupes de discussion ces jours-ci. Les gens ont une impression exagérée de la valeur de leur code HTML et veulent le protéger contre le «vol». Mais il n’y a aucun moyen de cacher le code source HTML à l’utilisateur. Le navigateur de l’utilisateur doit recevoir tout le code source HTML afin d’afficher la page, donc quelles que soient les techniques sournoises utilisées par l’auteur pour obscurcir le code, il doit toujours être analysable par le navigateur, et n’est donc pas trop difficile pour tout utilisateur à moitié intelligent pour se transformer en quelque chose de lisible.

L’un des avantages du Web est que les «débutants» peuvent en apprendre beaucoup sur la création Web en consultant le code source des pages. C’est l’une des façons dont j’ai appris en premier lieu. En faisant cela, vous verrez de nombreux exemples (bons et mauvais) de techniques de création Web, qui peuvent vous aider à produire à terme des pages aussi belles que celles des professionnels. Les écarts amateur / professionnel et débutant / expert sont beaucoup plus petits sur le Web que dans d’autres médias, et c’est peut-être par désir d’élargir ce fossé que certains “professionnels” veulent trouver un moyen de cacher leur code source. Mais cela ne peut toujours pas être fait.

De même, il n’y a aucun moyen d’empêcher quiconque d’imprimer, de mettre en favori ou de créer un lien vers votre page. Lorsque vous publiez quelque chose sur le Web, c’est un jeu juste pour tout cela. Vous êtes toujours légalement propriétaire du droit d’auteur sur tout ce que vous mettez sur le Web (en vertu de la loi actuelle, vous avez le droit d’auteur sur tout ce que vous créez, même s’il n’y a pas d’avis de droit d’auteur), et pouvez poursuivre quelqu’un qui en distribue des copies sans votre l’autorisation, mais vous ne pouvez pas arrêter l’utilisation Web normale de vos documents lorsqu’ils sont sur le Web, et cela inclut d’autres sites créant des liens vers votre page. Si vous voulez rendre les choses plus difficiles pour les gens, je suppose que vous pouvez continuer à déplacer vos pages afin que quiconque se connecte à l’une se retrouve avec une erreur 404 Not Found le lendemain, mais cela ennuierait vos utilisateurs légitimes au moins autant que quiconque que vous pensez vous «arnaque».”

Certaines des personnes qui demandent comment supprimer la fonctionnalité “Afficher la source” ne le font pas pour empêcher le vol de leur code, mais parce qu’elles veulent maintenir la sécurité de quelque chose dans leur code, comme un mot de passe intégré ou autre chose qui pourrait être abusé par des “hackers” s’ils le savaient. Si tel est le cas, vous devez repenser complètement le plan de sécurité de votre site. Rien de ce qui est présent dans le code envoyé au navigateur n’est à l’abri de l’espionnage des utilisateurs qui tentent de «pirater» votre site, pas même les éléments compilés dans une applet (qui peut être décompilée par divers utilitaires). Vous devez déplacer tout aspect de votre site qui nécessite une sécurité du côté serveur, pas du côté client. Le serveur doit être l’endroit où les mots de passe sont comparés, l’état de l’utilisateur et les informations d’historique sont conservés, etc.,si vous voulez être sûr que rien de tout cela n’est visible ou piratable par les utilisateurs finaux.

Suppression des clics droits et du copier-coller

Ceci est étroitement lié au dernier; beaucoup d’individus ignorants pensent qu’ils peuvent empêcher les gens de «voler» le contenu de leur site s’ils insèrent des scripts ennuyeux qui suppriment les clics droits et la copie de texte. Non, cela ne fonctionne pas; c’est trivial de désactiver JavaScript, puis les scripts ne font rien du tout. Tout ce qu’ils font, c’est ennuyer les utilisateurs normaux, qui ont beaucoup de choses parfaitement raisonnables à faire avec le clic droit et la copie de texte, comme ouvrir des liens dans de nouveaux onglets ou copier de courts extraits à utiliser (en vertu de la disposition d’utilisation équitable du droit d’auteur ) dans les critiques et les commentaires du site.

Soumettre ou ne pas soumettre un formulaire avec ENTER

Ceci est entièrement sous le contrôle du navigateur, pas de l’auteur du site. La plupart des navigateurs soumettront sur ENTRÉE s’il y a exactement un champ de saisie de texte, et pas s’il y en a plus d’un. Il n’y a aucun moyen de contourner cela. (La présence de cases à cocher et de boutons radio ne semble pas affecter le comportement du navigateur dans cette zone.)

Cette “boîte en pointillés” MSIE

Une question courante de nos jours est “Comment désactiver la zone en pointillé qui apparaît autour d’une image cliquable dans Microsoft Internet Explorer lorsqu’elle est sélectionnée?” Eh bien, il existe un moyen “kludgy” de désactiver cela, en mettant dans un événement JavaScript “onFocus” qui appelle la fonction “blur ()” pour supprimer le focus de l’objet courant; mais il y a beaucoup d’utilisateurs qui seront ennuyés si vous faites cela. La zone en pointillé est une fonctionnalité d’accessibilité ajoutée par Microsoft pour permettre au navigateur d’être utilisé entièrement à partir d’un clavier sans utiliser la souris. Certains utilisateurs préfèrent surfer de cette façon ou ont des handicaps qui rendent la navigation à la souris difficile, voire impossible. Si vous utilisez JavaScript pour annuler cette fonctionnalité, les utilisateurs qui souhaitent ou doivent naviguer au clavier seront obligés de désactiver JavaScript pour utiliser votre site.

Salle de la honte

Améliorez votre site en regardant d’autres sites qui montrent, par exemple, ce qu’il ne faut pas faire !

REMARQUE: l’inclusion d’un site dans mes liens “Hall of Shame” ne doit pas être interprétée comme une attaque personnelle contre le créateur du site, qui peut être une personne vraiment formidable, ou même une attaque contre le site Web lié dans son ensemble , qui peuvent être une source d’informations et / ou de divertissements vraiment intéressants. Il s’agit simplement de mettre en évidence des caractéristiques spécifiques (intentionnelles ou accidentelles) des sites liés qui causent des problèmes qui auraient pu être évités par une meilleure conception. Si vous trouvez qu’un de vos sites est lié ici, ne soyez pas offensé; améliorez votre site pour que je doive supprimer le lien!

  • Ce site a fait et tenté de défendre une politique pathétique de désactivation du copier-coller via JavaScript … en 2013, le croiriez-vous?

 

[<== Précédent] | [Haut] | [Suivant ==>]

 

Cette page a été créée le 29 novembre 1997 et a été modifiée pour la dernière fois le 8 mai 2016.
Copyright © 1997-2018 par Daniel R. Tobias. Tous les droits sont réservés.

Leave a Reply

Your email address will not be published. Required fields are marked *