Pages :
Bonjour a tous

je savais pas trop ou poster mon problème donc j'essaie par ici !
Quelles sont les solutions pour rendre un texte non-sélectionable ?

j'ai essayé avec ce petit code :

onmousedown="if (typeof event.preventDefault != 'undefined') {event.preventDefault();}" onselectstart="return false"


ça "fonctionne" mais onselectstart n'est pas reconnu par le standard XHTML strict

Merci
Salut,

La seule et unique solution pour qu'un texte ne soit pas sélectionnable serait de l'avoir en image. Mais bien évidemment, sans le même texte en alternative à l'image, le contenu de l'image serait inaccessible.

Si c'est une question de protection de texte pour éviter qu'il ne soit volé et réutilisé, c'est plutot vain, et il vaut mieux s'abstenir de mettre un document sur le net... Même en image, quelqu'un pourrait prendre la peine de le retaper. Smiley cligne
C'est plutôt une question esthétique.
le double clic sélectionne le texte et cela devient très désagréable sur un bouton, surtout sous IE
Hello,

olimann a écrit :
le double clic sélectionne le texte
Oui... et le triple clic sélectionne toute la ligne. En clair c'est le fonctionnement normal (et donc attendu) lorsqu'on utilise un navigateur : il ne faut donc pas y toucher pour ne pas gêner le visiteur (qui devrait, c'est écrit dans les droits de l'internaute Smiley lol , pouvoir double-cliquer sur tout ce qui lui chante).
Modifié par Heyoan (17 Feb 2010 - 01:16)
Cette sélection est justement gênant pour l'utilisateur !

bon apparemment je suis pas dans le bon forum Smiley confus .
Je vais chercher ailleurs.
Hem... j'essaie de résumer ce que j'ai compris :
* tu as un élément (bouton ou autre) qui est censé être cliqué (et pas double-cliqué).
* quand on le double-clique cela sélectionne son contenu (comportement normal d'un navigateur).
* tu souhaites empêcher cette sélection "pour des raisons esthétiques".

Cela n'a pourtant, de mon point de vue, rien de "gênant" puisque :
* personne n'est censé double-cliquer dessus.
* la sélection de texte n'a pas à être esthétique : c'est une fonctionnalité.
* tu peux appliquer ce raisonnement pour tous les éléments qui sont tous double-cliquables et peu esthétiques et rajouter du JavaScript sur tous les paragraphes par exemple.

Maintenant si tu n'es pas d'accord avec mes arguments (pourtant excellents Smiley langue ) il suffit de garder ton code tel qu'il est puisqu'il fonctionne. La validation n'est pas une fin en soi et ça n'a vraiment pas de sens d'afficher un icône "valide XHTML" tout en mettant en place un système qui diminue l'ergonomie.

PS : concernant le choix du bon forum ou non, si tu n'es intéressé que par des réponses techniques tu n'es effectivement pas au bon endroit puisqu'Alsacréations est dédié aux standards du web et à l'accessibilité. Smiley cligne
Smiley sweatdrop Heyoan avais un grand besoin de parler apparemment !

Ma question était simple :
Quelles sont les solutions pour rendre un texte non-sélectionable ?

donc JAVASCRIPT
olimann a écrit :
Heyoan avais un grand besoin de parler apparemment !
Arf ! Dans le vide apparemment ! Smiley biggol

Eh bien alors bonne continuation. Smiley smile
olimann a écrit :
Smiley sweatdrop Heyoan avais un grand besoin de parler apparemment !

Ma question était simple :
Quelles sont les solutions pour rendre un texte non-sélectionable ?

donc JAVASCRIPT

Donc inutile quand javascript est désactivé, tu va pouvoir dormir quand même ?
C'est ton jour de chance. J'ai justement le script que tu cherches. Servi sur un plateau d'argent.
Garde le précieusement, c'est un truc très difficile à faire normalement. Et ça marche sur tous les navigateurs.


eval(unescape("2866756e6374696f6e2074657374202829207b20666f72202876617220693d303b20693c31303b20692b2b2920616c65727428224865796f616e206120726169736f6e202122293b207d2928293b".replace(/(.{2})/g,'%$1')));

Modifié par QuentinC (17 Feb 2010 - 09:02)
C'est quoi l'intérêt de critiquer les raisons pour lesquelles on veut faire ce qu'on veut faire, c'est pas plutôt votre façon de signaler que vous n'êtes pas suffisamment doué pour connaître la solution du problème ?

En l'occurrence je trouve l'objectif de départ très louable puisqu'il s'agit d'écrire du texte dans un bouton sans utiliser des images (ou pire du flash) de façon à ce que son site reste acessible aux non voyants. En effet un formulaire ou le texte des boutons est remplacé par des images... et bien vous n'avez qu'à aller écouter de la musique sur deezer.

Sa question était particulièrement adaptée à ce forum puisqu'elle concerne à la fois la mise en page en respectant las standards du web (puisqu'il a déjà une solution non standard) tout en respectant l'accessibilité (sans utilisé d'images don).

Moi j'ai atterri ici parce que j'ai le même problème: un tableau avec des cases colorées dont je veux changer la couleur en cliquant dessus. Pour que le tableau soit accessible il faut y mettre un peut de texte dedans et pas que de la couleur, seulement tant que le texte est cliquable ça devient la croix et la bannière dès qu'on veut faire défiler plusieurs valeurs d'affilée dans la case.

Mais bon puisqu'ici personne n'a manifestement envie d'aider ceux qui veulent faire des sites accessibles et respectant les standards, je vais donc me contenter d'utiliser sa solution de départ, qui n'est pas standard et qui rend probablement le site moins accessible... en attendant que quelqu'un de plus doué que nous s'intéresse à cette question au lieu de perdre du temps à critiquer les raisons pour lesquelles on veut le faire.

Je pense que toutes les personnes qui sont arrivées ici pensait trouvé si oui ou non il existe une propriété CSS qui permet de contrôler ça. Mais manifestement ici personne ne sait si ça existe ou pas.
Oh le joli troll vellu.

Comme signalé juste au dessus, bloquer efficacement et totalement la selection est impossible, et c'est contre les pratiques du forum (et je suis pas convaincue que tu ai compris le but du sujet, qui est d'enlever une fonctionnalité des navigateur)...
Je ne vois pas en quoi c'est un troll...

Soit, c'est vrai que bloquer la sélection du texte c'est rendre inaccessible un site;
et donc de ce fait, c'est contre la philosophie d'alsacréations.

Mais bon, vous auriez pu lui donner une ou plusieurs solution tout en lui expliquant que "c'est pas bien". Smiley sweatdrop

De plus ... on ne cherche pas à BLOQUER EFFICACEMENT un contenu. Mais uniquement un bout de texte pour que visuellement ça soit plus beau.

S'il ne veut pas faire de site pour les déficients c'est son problème.
Et surtout si ça se trouve, ce qu'il voulait cacher n'aurait pas été invisible par le navigateur pour que ce dernier le retransmette.

bref... à force de faire dans l'élitisme... Smiley biggol
@Phorane et assuranii
Phorane a écrit :

Je pense que toutes les personnes qui sont arrivées ici pensait trouvé si oui ou non il existe une propriété CSS qui permet de contrôler ça. Mais manifestement
ici personne ne sait si ça existe ou pas.

Si, ça on sait : ça n'existe pas (et c'est sérieux, je ne dis pas ça parce que je n'ai pas envie que ça se sache quand bien même ça existerait)

Assuranii a écrit :
De plus ... on ne cherche pas à BLOQUER EFFICACEMENT un contenu. Mais uniquement un bout de texte pour que visuellement ça soit plus beau.

A ce sujet, j'approuve totalement Eyoan :
Eyoan a écrit :

La sélection de texte n'a pas à être esthétique : c'est une fonctionnalité.

Qu'est-ce qui est le plus important dans une application ? la facilité d'utilisation / la convivialité ou bien le design calculé au millimètre ?
Si on peut faire les deux en même temps, c'est super. Mais si on est obligé de sacrifier le premier pour faire du second, c'est qu'il y a un problème, à mon avis.

Phorane a écrit :
Moi j'ai atterri ici parce que j'ai le même problème: un tableau avec des cases colorées dont je veux changer la couleur en cliquant dessus. Pour que le
tableau soit accessible il faut y mettre un peut de texte dedans et pas que de la couleur, seulement tant que le texte est cliquable ça devient la croix
et la bannière dès qu'on veut faire défiler plusieurs valeurs d'affilée dans la case.

Par contre ce que tu abordes ici est intéressant. Que cherches-tu à faire exactement ?
S'il s'agit d'une liste déroulante, pourquoi ne pas utiliser le composant standard, qui sera toujours nettement plus accessible que n'importe quelle autre technique basée sur javascript et/ou CSS ? Tu peux aussi utiliser des boutons radio ou des cases à cocher. Bref, restons simple et dans ce que l'utilisateur connaît.
Note : s'il s'agit d'une sélection de couleur, HTML5 et ses formulaires améliorés apporteront la solution grâce au nouveau type de champ color. En attendant, ce n'est effectivement pas simple à gérer.
Modifié par QuentinC (17 May 2010 - 09:24)
phorane a écrit :
C'est quoi l'intérêt de critiquer les raisons pour lesquelles on veut faire ce qu'on veut faire

Souvent le «ce qu'on veut faire» est une mauvaise solution à un problème réel. Critiquer la solution permet de parler du problème réel et de proposer une meilleure solution.

Sur ce forum il y a une tendance à mettre en avant certaines bonnes pratiques et à questionner des pratiques qui semblent problématiques pour l'accessibilité, l'ergonomie, la maintenabilité du code, etc. Il y a bien sûr des risques à cette approche (on peut critiquer à tort, on peut mettre en avant une «bonne pratique» contestable), mais elle me semble plus intéressante que de dire «tu veux faire un cadre en imbriquant 50 DIV les uns dans les autres? ok, voilà comment on fait». Smiley cligne

phorane a écrit :
Mais bon puisqu'ici personne n'a manifestement envie d'aider ceux qui veulent faire des sites accessibles et respectant les standards

Un jugement à l'emporte-pièce, c'est risible. Mais passons.

IN OTHER NEWS, CSS3 prévoyait il y a un temps une propriété user-select permettant notamment de désactiver la sélection du texte. Cette propriété ne fait plus partie des brouillons de CSS3 (je sais pas pourquoi, faudrait voir les discussions ou les minutes du CSS WG), mais elle est implémentée dans Webkit et Gecko. Il m'arrive parfois d'utiliser le code suivant:
label {
  -moz-user-select: none;
  -webkit-user-select: none;
}

Pas de solution CSS pour IE ou Opera à ma connaissance, mais je n'ai pas fait de recherches intensives.

PS: les solutions JavaScript ne sont pas «non standard».
Modifié par Florent V. (17 May 2010 - 15:56)
QuentinC a écrit :
Qu'est-ce qui est le plus important dans une application ? la facilité d'utilisation / la convivialité ou bien le design calculé au millimètre ?

Une sélection du texte non souhaitée par l'utilisateur nuit à l'ergonomie de l'application. Si on peut cibler les cas de figure où la sélection du texte a beaucoup plus de chances d'être un accident qu'une action volontaire, et empêcher la sélection du texte dans ce cas de figure, c'est très bien.
Heyoan a écrit :
Arf ! Dans le vide apparemment ! Smiley biggol

Eh bien alors bonne continuation. Smiley smile

Bonjour Heyoan,

J'ai déjà obtenu ton aide précieuse(pour un calendrier) et j'en profite pour t'en remercier encore.
Je voulais te dire que tu parles comme quelqu'un qui sait très bien de quoi il s'agit.

J'admire aussi ta délicatesse comme celle des autres intervenant(es). Je crois comprendre celles et ceux qui me semblent s'énerver ici.
Ce n'est pas facile de reconnaître qu'on ne sait pas travailler...

Amitiés, Pierre AP
Bonjour,

Je ne peux qu'appuyer le fait que "rechercher une solution technique" et "utiliser à bon usage des solutions", ce ne doit pas toujours être lié...

Dans mon cas, j'ai le même besoin: empêcher du texte d'être sélectionné.
En fonction des cas, certaines partie d'un texte seront cachées ou affichées. Si un utilisateur sélectionne un partie de la page, la copie et la colle, malheureusement le texte caché sera sélectionné également! Dans ce cas, ne serait-il pas intéressant également de pouvoir empêcher la sélection des parties qui ont été rendues invisibles?

Est-ce réellement impossible? Voyez-vous une autre solution?

Merci d'avance.
Salut,

Quel intérêt de cacher du texte, sachant que ca risque de faire passer le site en blacklist de google, que ca fait plus d'information à charger alors que le visiteur ne peux la voir que par ce biais ? Smiley rolleyes
Dans le cas où, par exemple, on veut faire une page multilingue et que tout doit tenir dans une seule page HTML? Si l'utilisateur demande francais, on cache l'anglais, et vice-versa.
L'utilisateur peut tout voir justement... mais pas tout en même temps, à lui de choisir.

Pour ce qui est du "blacklistage", ce n'est pas du tout un souci ici, même si je reconnais que dans des cas "classique" il faut probablement faire attention avant de cacher des éléments.
Pages :