Bonjour ou bonsoir à tous,
Vous m'excuserez pour le titre un peu sibyllin, je ne suis pas sûr d'avoir trouvé les bons mots.
Pour diverses intégrations, on m'a demandé des champs de formulaire affichant un texte explicatif ou destiné à attirer l'attention. L'exemple typique est le formulaire de recherche sur un site, sans options:
Le comportement attendu est que lorsque le champ texte reçoit le focus, le texte «Recherche» disparait, ce qui évite à l'utilisateur d'avoir à l'effacer.
J'ai fait quelque chose ressemblant à ceci:
Sauf erreur de ma part, ça fonctionne correctement aussi bien à la souris qu'au clavier. Donc la solution me convient bien. Partant, mes questions sont:
1. En l'absence de JS, quel comportement vous semble préférable: pas de value, ou bien un value qu'il faut supprimer «à la main»? En sachant qu'il n'y a pas ou peu d'information autre que le title sur le rôle du champ de formulaire.
2. Y a-t-il, selon vous, un intérêt à externaliser le JavaScript?
3. Si oui, avez-vous des exemples simples que je pourrais étudier?
Merci d'avance pour vos avis.
Vous m'excuserez pour le titre un peu sibyllin, je ne suis pas sûr d'avoir trouvé les bons mots.

Pour diverses intégrations, on m'a demandé des champs de formulaire affichant un texte explicatif ou destiné à attirer l'attention. L'exemple typique est le formulaire de recherche sur un site, sans options:
<form>
<input type="text" value="Recherche" />
<input type="submit" />
</form>
(Ce code est bien sûr simplifié à l'extrême, et par ailleurs pas valide en Strict.)Le comportement attendu est que lorsque le champ texte reçoit le focus, le texte «Recherche» disparait, ce qui évite à l'utilisateur d'avoir à l'effacer.
J'ai fait quelque chose ressemblant à ceci:
<form id="recherche" method="get" action="#">
<input class="text" type="text" title="Recherche sur le site Machin"
value="Recherche..."
onfocus="if(this.value=='Recherche...'){this.value=''};"
onblur="if(this.value==''){this.value='Recherche...'};"
/>
<input class="button" type="image" src="styles/img/trans-square-24.png" alt="OK" />
</form>
(Le title est là pour l'accessibilité. J'ai cru comprendre qu'il pouvait être lu par les lecteurs d'écran, et ainsi remplacer un label en bonne et due forme lorsque le design ne permet pas d'en placer un. Mais peut-être est-ce juste une façon de limiter les dégâts? À confirmer.)Sauf erreur de ma part, ça fonctionne correctement aussi bien à la souris qu'au clavier. Donc la solution me convient bien. Partant, mes questions sont:
1. En l'absence de JS, quel comportement vous semble préférable: pas de value, ou bien un value qu'il faut supprimer «à la main»? En sachant qu'il n'y a pas ou peu d'information autre que le title sur le rôle du champ de formulaire.
2. Y a-t-il, selon vous, un intérêt à externaliser le JavaScript?
3. Si oui, avez-vous des exemples simples que je pourrais étudier?
Merci d'avance pour vos avis.
