Buenos días ramón y todos:
Entonces según lo que comentas bajo premisas de accesibilidad si es correcto 
anidar un  elemento input en un label, pero semánticamente según comenta 
victoria no lo es?. disculpen pero aún me pierdo un poco con esto de los 
formularios.
Por otro lado, quisiera hacerles una pregunta, pues si había leído en otras 
partes opiniones sobre como maquetar correctamente un formulario, pero todavía 
observo que algunos sugieren el uso de <br> y otros dicen que es incorrecto y 
he aquí mi pregunta. supongamos que quiero hacer una planilla de inscripción a 
un curso universitario .. esas que tienen muchos campos y datos que recolectar. 
como podría hacer que en pantalla se posicionen dos campos uno al lado del otro 
sin utilizar el <br> para forzar un salto de línea? intentaré explicarme mejor 
con un ejemplo pequeñito:
<form method="post" action="planilla.php">
<fieldset>
<legend>Datos  Requeridos para formalizar la inscripción</legend>
<label for="nombre">Nombre(s):<input type="text" name="nombre"  id="nombre" 
size="35" maxlength="35" value="" /></label>
<label for="apellidos">Apellido(s):<input type="text" name="Apellidos"  
id="apellidos" size="30" maxlength="30" value="" /></label> 
<label for="cedula">Cédula:  <input type="text" name="cedula"  id="cedula" 
size="15" maxlength="15" value="" /></label>
<label for="correo">E-mail:  <input type="text" name="correo"  id="correo" 
size="50" maxlength="50"  value="" /></label></fieldset></form>
  en  este caso, como podría hacer para que los campos nombre y apellidos 
queden en la línea superior y cédula y  e-mail quedaran en la línea de abajo 
sin utilizar <br />?
dejándo el comportamiento por defecto  de que el label quede lineal al campo de 
texto.
he leído y realizado ejercicios sobre formularios en columnas, pero lo que he 
leído (quizás demasiado básico aún) es utilizar el <fieldset></fieldset> para 
agrupar los campos relacionados y luego éstos encerrarlos en un <div></div> y 
con width lograr que un fieldset quede al lado del otro. Y bueno si coloco 
datos personales por un lado y quizás académicos por otro me vale y solo con 
darle display : block; haría dos columnas, pero en ese caso tendría nombre, 
apellidos, cédula y  email uno debajo del otro. y yo quiero lograr una 
dispocición en la que pueda tener dos o mas campos  en una línea y quizás uno 
solo en la siguiente y así. Y pues claro como recién aprendo no he logrado esto 
sino usando <br />
Disculpen si es algo muy básico, pero ya que están tocando el tema  me gustaría 
saber como se haría pues no he visto un ejemplo de esto. quizás no he sabido 
buscar bien, pero es que o los veo un campo bajo el otro, o en columnas con 
fielset y no se si por ejemplo es correcto usar divd y hacer así las columnas 
usando float  o display inline .. espero no haberme liado demasiado. Gracias a 
todos por su colaboración. Saludos cordiales, Halenita.

  ----- Original Message ----- 
  From: Ramón Corominas 
  To: Ovillo, la lista de CSS en castellano 
  Sent: Thursday, September 11, 2008 4:39 AM
  Subject: Re: [Ovillo] Correcta maquetacion de formulario


  Hola, Victoria y todos.

  Tanto en HTML 4.01 como en XHTML, incluso en sus versiones Strict, el 
  elemento <label> puede contener un elemento <input> (y sólo uno), como 
  se puede leer en los comentarios que hay en las propias DTD de HTML 4.01 
  [1] y de XHTML 1.0 [2]:

  Comentario en la DTD de HTML 4.01:
  <!-- Each label must not contain more than ONE field -->

  Comentario en la DTD de XHTML 1.0:
  <!--
    Each label must not contain more than ONE field
    Label elements shouldn't be nested.
  -->

  Por si esto fuera poco, en el documento de Técnicas HTML para las WCAG 
  1.0 [3], sobre accesibilidad, se especifica la manera idónea de asociar 
  implícitamente las etiquetas con sus controles de formulario:

  <!--cita-->
  A label is implicitly associated with its form control either through 
  markup or positioning on the page. The following example shows how a 
  label and form control may be implicitly associated with markup.

  Example.

     <LABEL for="firstname">First name:
       <INPUT type="text" id="firstname" tabindex="1">
     </LABEL>
  <!-- fin de cita -->

  Puedo estar de acuerdo contigo en que, semánticamente hablando, no suena 
  del todo bien que el control esté contenido en su etiqueta, pero vamos, 
  que como ser es una técnica perfectamente válida y además recomendada 
  por el W3C.

  Y no es necesario añadir ningún contenido extra como <br /> ni nada por 
  el estilo para que ambos controles se muestren en distintas líneas, 
  basta con ponerle un display: block; al <input> y arreglado. Y si 
  quieres mostrar etiqueta y control en una sola línea basta darle ese 
  display: block; al <label>.

  Eso sí, lo de la lista para cuando no hay estilos, me temo que no hay 
  manera de apañarlo, jejeje.

  Un saludín,
  Ramón.

  [1] DTD HTML 4.01
  http://www.w3.org/TR/html4/loose.dtd
  http://www.w3.org/TR/html4/strict.dtd

  [2] DTD XHTML 1.0
  http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd
  http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd
  http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd

  [3] Técnicas HTML para las WCAG 1.0
  http://www.w3.org/TR/WCAG10-HTML-TECHS/#forms-labels
  
http://www.discapnet.es/web_accesible/tecnicas/html/WCAG10-HTML-TECHS_es.html#forms-labels



  Gracia escribió:
  > Tanto en HTML 4.01 como para XHTML, el elemento <label> está pensado 
  > para ser un elemento per-se, y es el atributo "id" el que lo asocia con 
  > el control a que hace referencia. Puede anidarse el <input>, pero no es 
  > lo recomendable. Podéis verlo en las especificaciones del W3C [1]

  _______________________________________________
  Lista de distribución Ovillo
  Para escribir a la lista, envia un correo a [email protected]
  Puedes modificar tus datos o desuscribirte en la siguiente dirección: 
http://lists.ovillo.org/mailman/listinfo/ovillo
_______________________________________________
Lista de distribución Ovillo
Para escribir a la lista, envia un correo a [email protected]
Puedes modificar tus datos o desuscribirte en la siguiente dirección: 
http://lists.ovillo.org/mailman/listinfo/ovillo

Responder a