Journal Firefox et écran tactile

Posté par (page perso) .
2
28
oct.
2009
Étant amené à travailler sur le développement d'un terminal Internet tactile, je me suis rendu compte que viser des liens HTML était difficile avec un écran tactile car les cibles étaient trop petites.

J'ai donc pensé élargir les zones sensibles au click. Après recherche et discussions diverses et variées, je n'ai trouvé que la solution de le faire en javascript. Si vous voyez une autre façon de la faire n'hésitez pas !

Mon essai dans Firefox avec un script Greasemonkey est téléchargeable chez userscripts.org ou sur ma page perso.

J'ai trouvé 2 limitations à cette approche:
  1. Quand la fenêtre Firefox n'a pas le focus et que l'on clique dedans, l'extension des zones actives peut faire suivre un lien que l'on ne souhaitait pas.
  2. Certains sites rendent sensibles des éléments HTML non actifs comme des balises LI. Et du coup, le script ne fonctionne pas.
Si vous avez des idées pour contourner ces limitations ou si vous en voyez d'autres, n'hésitez pas à me contacter.
  • # Autres horizons

    Posté par (page perso) . Évalué à 1.

    T'as quoi comme contrainte ?
    Parceque sous Android on a un navigateur a base de webkit qui fonctionne bien en tactile.
    Et si t'es juste au début de ton choix de plateforme, ça peut etre une idée Android ;-)

    Sinon t'as surement déjà un OS, mais t'es peut etre pas bloqué sur Firefox ?
    Peut être que webkit propose des facilitées pour ça, puique ça fonctionne bien sur iPhone et Android ?
    Tu peux regarder dans les sources chez Google pour voir comment ça marche.
    • [^] # Re: Autres horizons

      Posté par (page perso) . Évalué à 2.

      Je ne suis pas bloqué et webkit peut être une solution. Comment est-ce que cela fonctionne ? Quand tu cliques un peu à côté, le lien est suivi ?
    • [^] # Re: Autres horizons

      Posté par (page perso) . Évalué à 2.

      je doute que cela soit vraiment lié au navigateur. Un écran tactile, ça ne fait que simuler une souris au final non ?

      Je pense que c'est plus l'écran tactile à blâmer (et son driver qui fait les interpolations nécessaires pour spécifier les coordonnées du point) que le reste.

      Gecko comme Webkit ne font que récupérer les coordonnées "souris" qu'on leur donne, et agissent en conséquence. Je doute qu'ils fassent des extrapolations eux-meme, car sinon il faudrait alors qu'ils devinent le modèle de l'écran tactile, pour ajuster leur algo (comme toutes les applis d'ailleurs ??). À vérifier, mais j'ai un gros doute là.

      C'est l'écran qu'il faut regler. ou alors mauvais écran, changer écran. (ce qui n'est peut etre pas possible dans ton cas)
      • [^] # Re: Autres horizons

        Posté par (page perso) . Évalué à 3.

        Je pense que l'écran se doit de transmettre la coordonnée exacte du clic, sans interprétation autre que de faire la moyenne de la zone touché (un doigt est plus gros qu'un pointeur de souris).

        MAIS, sur un périphérique tactile comme un téléphone, il faut avouer qu'un pouce est bien plus large qu'un lien dans une page web.

        Si la moyenne de la pression n'est pas sur le lien, il faut quand même que ça fonctionne, et c'est le cas.

        Je suis donc sur qu'ils augmentent la zone de clic possible sur un lien au delà de la zone html "normale", comme avec un padding.
        • [^] # Re: Autres horizons

          Posté par (page perso) . Évalué à 2.

          Tu ne peux pas essayer fennec ? C'est le navigateur de mozilla fait pour les téléphones mobiles. Il y a des chances que des mécanismes pour cliquer au pouce soient intégrés. http://www.mozilla.com/en-US/mobile/

          Après je ne sais pas s'il s'installe facilement…
        • [^] # Re: Autres horizons

          Posté par (page perso) . Évalué à 2.

          >Si la moyenne de la pression n'est pas sur le lien, il faut quand même que ça fonctionne, et c'est le cas.

          oui, mais pas comme tu le dis à mon avis. C'est à l'écran de dire exactement où est le "click".

          oui, un pouce est bien plus large qu'un lien dans une page web. mais c'est pas au navigateur de deviner où est le click au final, c'est à l'écran de faire l'interpolation, selon les points de pressions, et de dire, le click est aux coordonnées X et Y.

          Et justement, rentre ici en compte la qualité sensitive de l'écran : plus il est sensible, plus il est en mesure de détecter les différences de pressions sur la surface de contact avec le doigt, et donc de déterminer en fonction de tout ces points de pressions, quel est celui qui correspond le mieux à ce que l'utilisateur pointe. l'écran envoi alors ce (x,y) au système, qui transmet à l'application. ce n'est pas à l'application de faire cette interpolation sinon cela voudrait dire quelle recevrait alors des quantités de données qu'il faudrait qu'elle analysent, rien que pour un clic. un peu bête de réinventer la roue dans chaque appli. Surtout que l'écran peut faire ces calculs, cablés en dur dans la puce de son controleur -> plus rapide.

          en tout cas, j'ai beau cherché, je ne vois pas dans le code de webkit ou de gecko, où ils feraient une telle interpolation.
        • [^] # Re: Autres horizons

          Posté par (page perso) . Évalué à 3.

          Il y a aussi le fait que sur un écran tactile on ne peut pas ajuster son tir; on ne peut pas déplacer le pointeur sans faire de click comme on peut le faire avec une souris ou une tablette.
  • # Gros râleur de base.

    Posté par . Évalué à -2.

    Y'en a marre des extensions Greasemonkey qui ne fonctionnent qu'avec Firefox, quand elles proposent des fonctionnalités qui pourraient parfaitement être appliquées à d'autres navigateurs, comme c'est le cas ici (modification "à la volée" du contenu HTML).

    Faites des scripts privoxy, bon sang, y'a pas que Firefox dans la vie! Marre de ce navigateur qui vampirise, sans réelle raison, tout le développement de scripts Greasemonkey et autres extensions, surtout si l'argument pour recommander Firefox est ensuite "Tu verras, y'a plein d'extensions que t'as pas sur les autres navigateurs" alors qu'elles pourraient très bien profiter à tous, si elles étaient placées au "bon" endroit, c'est à dire dans un proxy auquel n'importe quel client HTTP s'adapte, et non dans un seul navigateur.

    THIS IS JUST A PLACEHOLDER. YOU SHOULD NEVER SEE THIS STRING.

    • [^] # Re: Gros râleur de base.

      Posté par (page perso) . Évalué à 4.

      honnetement, je ne comprend pas tes reproches là.

      Firefox permet de faire des extensions comme greasemonkey, qui elle-meme permet d'exécuter du script sur la page web en cours.

      Je ne vois pas comment on pourrait exécuter ces scripts pour greasmonkey si les autres navigateurs ne proposent pas la fonctionnalité "à la greasemonkey".

      Pourquoi raler sur Firefox ? Ce serait plutôt raler sur les autres navigateurs pour qu'ils implémentent de telles fonctionnalités, non ?

      C'est bizarre de reprocher à un logiciel de permettre d'en faire plus que les autres sur un point précis.
      • [^] # Re: Gros râleur de base.

        Posté par . Évalué à -1.

        Je râle sur le fait que les développeurs de scripts les écrivent pour Greasemonkey (donc pour Firefox) au lieu de les écrire pour Privoxy.

        C'est juste dommage d'adopter une solution pour un navigateur alors qu'elle pourrait fonctionner pour tous (et la syntaxe de privoxy n'est pas franchement plus "rebutante" que celle de Greasemonkey).

        Oui, certes, tous les autres navigateurs pourraient proposer un support de Greasemonkey.
        Tu proposes: ajouter du code à chaque nouveau navigateur.
        Je propose: au lieu de développer un truc pour Greasemonkey, le développer pour Privoxy (qui existe déjà), afin que tout le monde en profite.

        Il me semble que mon approche est plus économique.

        THIS IS JUST A PLACEHOLDER. YOU SHOULD NEVER SEE THIS STRING.

        • [^] # Re: Gros râleur de base.

          Posté par (page perso) . Évalué à 9.

          je ne vois absolument pas, comment avec Privoxy (que je viens juste de découvrir), on peut modifier le COMPORTEMENT de la page, et de manière dynamique...

          Privoxy ne permet que de modifier le contenu d'une page. Un script greasemonkey permet d'aller au delà, et ne touche pas au code source.

          Bon en plus, je ne sais pas comment Privoxy peut se débrouiller à bidouiller les pages chiffrées en ssl, sans "cassé" la clé, et donc en livrant des pages non chiffrées au navigateur , ou alors re-chiffrées avec une clé locale, ce qui provoquerait alors des erreurs de sécurité dans le navigateur. Ce qui est très mauvais car alors on ne sait pas dans le navigateur si l'erreur de sécu est due à privoxy, ou un vrai problème de sécu sur le site.
          • [^] # Re: Gros râleur de base.

            Posté par . Évalué à 4.

            Arguments pertinents que je n'avais pas envisagés. Merci.

            THIS IS JUST A PLACEHOLDER. YOU SHOULD NEVER SEE THIS STRING.

        • [^] # Re: Gros râleur de base.

          Posté par (page perso) . Évalué à 4.

          privoxy ça oblige à passer par un proxy non?
          Donc il faut configurer un proxy par personne juste pour quelque scripts oO
          • [^] # Re: Gros râleur de base.

            Posté par . Évalué à 2.

            je pense que privoxy est un proxy. Pour l'avoir utilise un temps et il faudrait que je m'y remette vu que j'utilise beaucoup moins firefox qui est trop lent a demarrer) c'est pas difficile a configurer.
          • [^] # Re: Gros râleur de base.

            Posté par . Évalué à 2.

            Oui, c'est un proxy, qui a pour fonctions "de base":
            - antipublicité,
            - protection de la vie privée (cookies, javascripts, google adds, tout ça),
            - allègement de la navigation (dé-animation des .gifs par exemple).

            Après, tu peux ajouter des domaines à bloquer, des javascripts à bloquer, enfin tout ce que tu peux imaginer d'automatisable comme opération sur du contenu récupéré via HTTP. Je pense que ça serait même jouable de "transformer" à la volée de la vidéo Flash en vidéo HTML5 sur certains sites.

            THIS IS JUST A PLACEHOLDER. YOU SHOULD NEVER SEE THIS STRING.

      • [^] # Re: Gros râleur de base.

        Posté par (page perso) . Évalué à 3.

        Les scripts greasemonkey fonctionnent aussi avec Opera, pas besoin d'extension. D'ailleurs je crois bien que GreaseMonkey a été créé en s'inspirant des UserJS de Opera.

        Sinon Epiphany a aussi une extension pour utiliser les scripts greasemonkey. Quand aux autres brouteurs (chrome, safari), leur but n'est pas vraiment de permettre des fonctionnalités en plus, au contraire.

        « Je vois bien à quels excès peut conduire une démocratie d'opinion débridée, je le vis tous les jours. » (Nicolas Sarkozy)

        • [^] # Re: Gros râleur de base.

          Posté par (page perso) . Évalué à 2.

          Sinon Epiphany a aussi une extension pour utiliser les scripts greasemonkey. Quand aux autres brouteurs (chrome, safari), leur but n'est pas vraiment de permettre des fonctionnalités en plus, au contraire.

          Chrome a un système d'extension, il n'est juste pas encore stable. Et Chrome reconnait en natif les scripts Greasemonkey dans sa version de développement. D'autant que le développeur à l'origine de Grasemonkey bosse chez Google.
          Tu parles sans savoir. Google ne cherche pas à empêcher les fonctionnalités en plus, c'est juste que Chrome est encore jeune, et qu'il faut lui laisser le temps de mûrir.
          • [^] # Re: Gros râleur de base.

            Posté par . Évalué à 1.

            Si Chrome est encore jeune, il aurait mieux valu éviter de numéroter ses versions comme ça, parce que du coup, on estime que Chrome 3.0 = Firefox 3.0, ce qui est faux.
            Déjà, on ne pouvait pas dire que Chrome 1.0 égalait Firefox 1.0 en fonctionnalités.

            Article Quarante-Deux : Toute personne dépassant un kilomètre de haut doit quitter le Tribunal. -- Le Roi de Cœur

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.