Hello,
Même si j'arrive après la bataille, je reviens un peu sur ce sujet...
mpop a écrit :
Les liens de validation via une fonction javascript, non.
J'aurais dit Javascript intrusif...
a écrit :
Disons que Javascript n'est pas le meilleur ami des lecteurs d'écran, par exemple. Je ne sais pas si certaines fonctions « classiques » servant à créer des liens ou valider des formulaires sont prises en compte, mais il y a fort à parier que cela risque de poser des problèmes.
Dans la mesure où on protège les méthodes utilisées et vu que les lecteurs d'écrans ont fait quelques progrès, je pense qu'on peut faire ceci
:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
<title>Mise en forme d'un bouton submit</title>
<style type="text/css" media="screen,projection">
@charset "iso-8859-1";
@import "style.css";
</style>
<script type="text/javascript" src="form.js"></script>
</head>
<body>
<form action="http://localhost/search.php" method="get">
<div>
<label for="recherche">Rechercher :</label>
<input type="text" name="recherche" id="recherche" size="25" />
<input type="hidden" name="page" id="page" value="recherche" />
<input type="submit" value="Envoi" />
</div>
</form>
</body>
</html>
form.js
var oClass =
{
_Init: function()
{
if( !document.createElement ||
!document.getElementsByTagName ||
!document.createTextNode ) return false;
var oInput = document.getElementsByTagName('input');
var iI = oInput.length - 1;
for(iI; iI >= 0; iI--)
{
if(oInput[iI].getAttribute('type').toLowerCase() != 'submit')
{
continue;
i--;
}
var sForm = 'document.forms[0]';
var oNewSubmit =
oClass._CreaLink(
'javascript: ' + sForm + '.submit()',
oInput[iI].getAttribute('value')
);
oInput[iI].parentNode.replaceChild(oNewSubmit, oInput[iI]);
}
return true;
},
_Connect: function(elm, evType, fn, useCapture)
{
if(elm.addEventListener)
{
elm.addEventListener(evType, fn, useCapture);
return true;
}
else if(elm.attachEvent)
{
var r = elm.attachEvent('on' + evType, fn);
return r;
}
else
{
elm['on' + evType] = fn;
return true;
}
},
_CreaLink: function(href, txt)
{
var oTmpLink = document.createElement('a');
var oTmpTxtLink = document.createTextNode(txt);
oTmpLink.setAttribute('href', href);
oTmpLink.appendChild(oTmpTxtLink);
return oTmpLink;
}
};
oClass._Connect(window, 'load', oClass._Init, false);