Tema: <dd> vacíos
Ver Mensaje Individual
  #5 (permalink)  
Antiguo 22/09/2006, 07:40
Avatar de tunait
tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 23 años, 3 meses
Puntos: 381
Interesante tema

Creo que el asunto de que sea obligado que un dt tenga asociado al menos un dd no está del todo claro. Lo veo más bien abierto a interpretaciones sin que ninguna tenga la última palabra

Si echamos un ojo a la definición de html4 dice al respecto de las DL

Cita:
Definition lists, created using the DL element, generally consist of a series of term/definition pairs (although definition lists may have other applications). Thus, when advertising a product, one might use a definition list:
http://www.w3.org/TR/html4/struct/lists.html
Osea, generalmente consiste en series de pares término/definición.
No especifica que sea obligado el par y de hecho también se podría interpretar que más de una definición puede ser incorrecto.


Si saltamos a HTML2 nos dice al respecto

Cita:
The content of a DL element is a sequence of DT elements and/or DD elements, usually in pairs. Multiple DT may be paired with a single DD element. Documents should not contain multiple consecutive DD elements.
http://www.w3.org/MarkUp/html-spec/h....html#SEC5.6.5
Cita:
El contenido de un elemento DL es una secuencia de elementos DT y/o elementos DD, normalmente en pares. Múltiples DT pueden ser emparejados con simples (o únicos) elementos DD. Documentos no deberían contener múltiples elementos DD consecutivos.
De HTML2 saltamos a HTML3 donde especifica entre otras cosas:
Cita:
Note: Use the NOTE element when you want to have an indented note. The practice of using <DD> elements without corresponding <DT> elements is deprecated.
http://www.w3.org/MarkUp/html3/deflists.html
Se desaprueba el uso de elementos dd sin su correspondiente dt. Sin embargo no menciona que esté mal un dt sin dd.

Nos vamos a XHTML. Si miramos el esquema del módulo de listas para XHTML (xhtml schema) tenemos (entre otras cosas) que ambos elementos pueden aparecer 0 o ilimitadas veces y que la secuencia no obliga a que estén ambos elementos uno detrás de otro (según yo entiendo, vamos)
Cita:
<xs:group name="dl.content">
<xs:sequence>
<xs:choice maxOccurs="unbounded">
<xs:element ref="dt"/>
<xs:element ref="dd"/>
</xs:choice>
</xs:sequence>
</xs:group>
Indica que la secuencia que se debe seguir en un elemento DL es a elegir entre dt y dd, no que sea obligada una secuencia de dt y dd. Si mi interpretación está equivocada me corrijan por favor


Mirando hasta XHML2 continúan en las mismas
Cita:
Definition lists vary only slightly from other types of lists in that list items consist of two parts: a term and a description. The term is given by the dt element and is restricted to inline content. The description is given with a dd element that contains block-level content.
http://www.w3.org/TR/2003/WD-xhtml2-.../mod-list.html
Si se toma literalmente se puede asumir que no se permiten dt sin su dl pero también que no se pueden usar múltiples dd para un sólo dt. Sin embargo el segundo ejemplo que ofrece muestra precisamente que se puede (o al menos eso me parece):

Cita:
Here is an example with multiple terms and descriptions:

<dl>
<dt>Center</dt>
<dt>Centre</dt>
<dd> A point equidistant from all points
on the surface of a sphere.</dd>
<dd> In some field sports, the player who
holds the middle position on the field, court,
or forward line.</dd>
</dl>
De hecho sí valida una lista de definición con dt sin dd, con múltiples dd para un dt, con sólo dt y con sólo dd.

Cada cual que saque sus conclusiones (las propias, no las que haya sacado otra persona) en base a las especificaciones oficiales.

La mía es que en una lista de definiciones no necesariamente debería haber una definición para cada item. Puede que algún item no la necesite y su omisión implica el que no existe definición asociada a ese término y agregar una definición para indicar que no hay definición me parece que está de más.
Pero esta es mi opinión y no necesariamente es la buena

Un saludo