5568 sujets

Sémantique web et HTML

Bonjour,

J'ai (eu) l'habitude de faire des formulaires HTML à l'aide de tableaux et je dois avouer que maintenant, je ne sais pas vraiment comment les présenter pour que ce soit sémantiquement correct...

J'aimerais bien utiliser les label, mais comment faire avec les boutons radio puisque 3 input portent le même nom ?

Est-ce que ce code ci-dessous vous parait acceptable ?

Merci.

Eric

Mon code :


<form name="quizzform" action='' method='post'>
		<fieldset>
			<div class="quizzquestion">
				<h2>Question 1</h2>
				<p>Lorem ipsum dolor sit amet, consectetuer adipisciuam ali ?</p>
				<a href="#">Votre indice</a>
			</div>
    		<div class="bradio"><input name='question1' type="radio" value="A" /><p>A</p></div>
			<div class="bradio"><input name="question1" type="radio" value="B" /><p>B</p></div>
			<div class="bradio"><input name="question1" type="radio" value="C" /><p>C</p></div>
			<div class="quizzquestion">
				<h2>Question 2</h2>
				<p>Lorem ipsum dolor sit amet, consectetuer adipisciuam ali ?</p>
				<a href="#">Votre indice</a>
			</div>
    		<div class="bradio"><input name='question2' type="radio" value="A" /><p>A</p></div>
			<div class="bradio"><input name="question2" type="radio" value="B" /><p>B</p></div>
			<div class="bradio"><input name="question2" type="radio" value="C" /><p>C</p></div>							
		 </fieldset>
	</form>

Modifié par EricLB (28 Nov 2005 - 22:40)
Modérateur
Bonjour,

Tu peux très bien utiliser un tableau pour structurer ton formulaire. Il n'y a en ce moment aucun élément qui est sémantiquement parfait pour les tableaux. Je vais essayer de retrouver un post à ce sujet.

Pour ce qui est des labels, pour une question d'accessibilité, tu dois absolument les utiliser.

Un article sur Openweb existe : Utilisation des formulaires

Edit : Tu peux aussi lire le sujet Formulaire : comment feriez-vous pour du sémantique ?
Modifié par Merkel (03 Nov 2005 - 15:02)
j'ai fait un truc comme cela, je sais pas si c'est génial au niveau code mais au niveau visu c'est ok


<form  method="post" action="a_lbienmain.html" onsubmit="return valider(this)">
<div id="contenu">	
	<h2>Votre recherche - Recherche simple</h2>
	<div class="contenurech" >
		<span class="rechtxt">Type de bien</span>
		<ul class="rechck">
			<li><input type="checkbox" name="Tbien" value="Appart" />Appartement</li>
			<li><input type="checkbox" name="Tbien" value="Loft" />Loft</li>
			<li><input type="checkbox" name="Tbien" value="Duplex" /> Duplex</li>
			<li><input type="checkbox" name="Tbien" value="Maison" /> Maison</li>
		</ul>
	</div>
	<div class="contenurech" >
		<span class="rechtxt">Nombre de pi&egrave;ces minimum</span>
		<ul class="rech">
			<li>
				<select name="Nb_piecemin">
					<option value="1">1</option>
					<option value="2">2</option>
					<option value="3">3</option>
					<option value="4">4</option>
					<option value="5">5 et +</option>
				</select>
			</li>
			<li>Surface minimum</li>
			<li><input type="text" name="Ef_surfacemin" value="" />m2</li>
		</ul>
	</div>
	<div class="contenurech" >
		<span class="rechtxt">Ascenseur indispensable à partir du</span>
		<ul class="rech">
			<li>
				<select name="Nb_Asc">
					<option value="1">1er</option>
					<option value="2">2&egrave;me</option>
					<option value="3">3&egrave;me</option>
					<option value="4">4&egrave;me</option>
					<option value="5">5&egrave;me</option>
					<option value="F" selected="selected">Facultatif</option>
				</select>&eacute;tage
			</li>
		</ul>
	</div>
	<div class="contenurech" >
		<span class="rechtxt">Ville, d&eacute;partement ou code postal</span>
		<ul class="rech">
			<li><input type="text" name="Ef_ville1" value="" /></li>
			<li><input type="text" name="Ef_ville2" value="" /></li>
			<li><input type="text" name="Ef_ville3" value="" /></li>
		</ul>
	</div>
	<div class="contenurech" >
		<span class="rechtxt">&nbsp;</span>
		<ul class="rech">
			<li><input type="text" name="Ef_ville4" value="" /></li>
			<li><input type="text" name="Ef_ville5" value="" /></li>
			<li><input type="text" name="Ef_ville6" value="" /></li>
		</ul>
	</div>
	<div class="contenurech" >
		<span class="rechtxt">
			<a href="r_avancee.html" class="lien">&nbsp;Recherche avanc&eacute;e</a>
		</span>
		<span id="rechtxtr">
			<img src="../image/find.png" href="return valider(this)"/>
			<input type="submit"  src="../image/find.png" class="StandardButton" name="Lancer" value="Lancer la recherche" />		
		</span>
	</div>
</div>
</form>


et voici le css, pas en entier mais si tu le veux avoir la description de tous les elements de la page, je te le donne volontier ;

/*--------------------------------------------------------------------------------------------- */
/*-----------------------------R E C H E R C H E--------------------------------- */
/*--------------------------------------------------------------------------------------------- */
.rechck /*---- pour check box 4 elements-- */
{
	height: 2em;
	margin: 0px;
	padding: 0px;
	list-style-type: none;

}

		.rechck li
		{	float: left;
			margin: 0px;
			padding: 0px;
			text-align: left;
			width : 130px
		}

.rech /*---- pour autres 3 elements-- */
{
	height:  2em;
	margin: 0px;
	padding: 0px;
	list-style-type: none;
}
				
		.rech li
		{	float: left;
			margin: 0px;
			padding: 0px;
			text-align: left;
			width : 165px;
			white-space:nowrap
		}

.contenurech 
	{
		padding: 0px;
		margin: 5px;
		text-align: justify ;
		line-height: 1.5em ;
		text-indent: 0em;
		color:#000000;
		
	}
		
.rechtxt
{
	height: 1.5em;
	width :30%;
	margin: 0px;
	padding: 0px;
	float: left ;
	position: relative;
}
span#rechtxtr
{
	height: 1.5em;
	width : 210px;
	margin: 0px;
	padding: 0px;
	left:325px;
	position: relative;
}


Comme tu peux le constater je met chaques ligne dans un div,
puis la description de mon champ de saisie dans un span
et le champs de saisie dans un autre.

si tu veux mettre deux champs de saisie dans une ligne, tu ajoutes a ton span
width : 25%;
un quart, oui car avec le description cela fait 4 espaces§!!!

As tu compris ce que je voulais dire???

Utilises plutot des class car il va s'en dire que tes span ne seront pas unique!!!

En fait je viens de me rendre compte que j'ai appliqué la largeur a des li ...
Mais je pense que cela revient au meme!!!i
Modifié par nath-0-0 (04 Nov 2005 - 17:42)
Modérateur
nath-0-0, si je peux me permettre, il te manque des labels qui sont très important pour l'accessibilité et l'ergonomie des formulaires. Je l'ai mentionné dans ma réponse. Donc au lieu d'utiliser des span, tu pourrais utiliser les labels qui ont une importance cruciale. Je t'invite aussi à consulter le lien que j'ai proposé.
Modifié par Merkel (07 Nov 2005 - 02:28)
Bonjour,

Petite modif (mais ô combien importante) : j'ai ajouté des labels au formulaire. Est-ce suffisant pour avoir un code sémantiquement correct ?



 <form name="quizzform" action='' method='post'>
		<fieldset>
			<div class="quizzquestion">
				<h2>Question 1</h2>
				<p>Lorem ipsum dolor sit amet, consectetuer adipisciuam ali ?</p>
				<a href="#">Votre indice</a>
			</div>
    		<div class="bradio"><input name='question1' id="q1a" type="radio" value="A" /><p>[b]<label for="q1a">A</label>[/b]</p></div>
			<div class="bradio"><input name="question1" id="q1b" type="radio" value="B" /><p>[b]<label for="q1b">B</label>[/b]</p></div>
			<div class="bradio"><input name="question1" id="q1c" type="radio" value="C" /><p>[b]<label for="q1c">C</label>[/b]</p></div>
			</fieldset>
</form>
merci pour ta remarque merkel...
Je vais devoir encore tout changer Smiley fache

Smiley cligne

nan c'est gentil a toi de me reprendre Smiley smile
Je me permet de poster ici car cela concerne le titre du sujet... Smiley confused

Voila je voulais savoir si cette fois mon code était ok quant à l'utilisation des formulaires et si l'attribut label etait correctement utilisé


<form  method="post" action="a_lbienmain.php">
<div id="contenu">	
	<h2>Votre recherche - Recherche avanc&eacute;e</h2>
	<?include('recherche.html');?>
	<div  class="contenurech">
		<label for="ck_timmeuble" class="rechtxt">Type d'immeuble
		<ul class="rechck">
			<li><input type="checkbox" name="ck_timmeuble" value="pdt"/>Pierre de taille</li>
			<li><input type="checkbox" name="ck_timmeuble" value="recent" />R&eacute;cent</li>
			<li><input type="checkbox" name="ck_timmeuble" value="moderne" /> Moderne</li>
			<li><input type="checkbox" name="ck_timmeuble" value="neuf" /> Neuf</li>
		</ul>
		</label>
	</div>
	<div class="contenurech">
		<label for="cb_nbChambre" class="rechtxt">Nombre de chambres minimum</label>
		<ul class="rech">
			<li>
				<select name="cb_nbChambre">
				  <option value="1">0</option>
				  <option value="2">1</option>
				  <option value="3">2</option>
				  <option value="4">3</option>
				  <option value="5">4 et +</option>
				</select>
			</li>
			<li><label for="Ef_ssmin">Surface minimum s&eacute;jour</label></li>
			<li><input type="text" name="Ef_ssmin" size="10" value="" />m2</li>
		</ul>
	</div>
	<div class="contenurech" >
		<label for="ck_jt" class="rechtxt">&nbsp;</label>
		<ul class="rech">
			<li><input type="checkbox" name="ck_jt" value="b"/>Balcon</li>
			<li><input type="checkbox" name="ck_jt" value="jt"/>Jardin ou terrasse</li>
			<li><input type="checkbox" name="ck_jt" value="rdc"/>Pas de rdc</li>
		</ul>
	</div>	
	<div class="contenurech">
		<span class="rechtxt">
			<a href="r_simple.php">&nbsp;Recherche simple</a>
		</span>
		<span id="rechtxtr">
			<input type="submit" class="StandardButton" name="Lancer" value="Lancer la recherche" />		
		</span>
	</div>

			
</div>
</form>


merci