Closed Bug 115355 Opened 23 years ago Closed 23 years ago

<DD> within <DT> not rendered correctly

Categories

(Core :: Layout, defect)

x86
Windows 98
defect
Not set
normal

Tracking

()

RESOLVED DUPLICATE of bug 5119

People

(Reporter: d_king, Assigned: attinasi)

References

()

Details

(Keywords: regression)

Attachments

(2 files)

From Bugzilla Helper:
User-Agent: Mozilla/5.0 (Windows; U; Win98; en-US; rv:0.9.6+) Gecko/20011213
BuildID:    2001121303

A <DD> within a <DT> should render on a seperate line indented to the <DD>.

This used to work fine a couple of weeks ago, but I've noticed it doesn't work
since approx the 20011210 builds.

Reproducible: Always
Steps to Reproduce:
1. Open page
2. View page


Actual Results:  The <DD> tag seems to be being ignored.

Expected Results:  Indented items for a <DD> item.

I'm marking this Major as this indicates non-compliance with HTML standards.
Feel free to disagree, as I'm not as intimate with the W3C and HTML standards as
some of you are.
Confirming issue in the Dec 14 th build (2001-12-14-05) under OS X. Appears fine
in the NS 6.2.
Status: UNCONFIRMED → NEW
Ever confirmed: true
The problem occurs when the DL is a child of a Font element inside a Table.
Table --> font element --> DL element.
Keywords: regression
For the record, <DD> may only be a direct child of a <DL> element according to
the spec.

*** This bug has been marked as a duplicate of 5119 ***
Severity: major → normal
Status: NEW → RESOLVED
Closed: 23 years ago
Resolution: --- → DUPLICATE
I did some research at www.w3c.org, and I diagree.

Firstly, validator.w3.org makes no mention of the <DD> within the <DT> as being
a problem, nor the fact that they aren't strictly direct decendants of a <DL>.

Secondly, looking at the HTML 3.2 spec, I don't see what the problem is.

I assume I'm missing something as this bug has been marked as resolved.
Attached file Sigh. Testcase.
I read the authorative source: the DTD.  From that, the only element that can
contain a DT or DD is a DL.  Also a good reference is
http://www.w3.org/TR/html401/struct/lists.html#edef-DD which shows examples
with the DD without an end tag (as it's HTML not XHTML).  This would be
impossible if nesting of DD in DT were allowed.

The DTD says the following. It means that DL can only contain DT or DD and DT
and DD can contain any inline or flow element respectively. DT or DD is not an
inline or a flow element as defined by it earlier.

<!ELEMENT DL - - (DT|DD)+	       -- definition list -->
<!ELEMENT DT - O (%inline;)*	       -- definition term -->
<!ELEMENT DD - O (%flow;)*	       -- definition description -->

For further proof, this attachment should offer it.  Validate it.  If what you
say is valid HTML, it should validate with the source the way it is.  It
doesn't.  In HTML it complains about a close tag with no open tag.  This is
because the validator correctly treats it as <DT></DT><DD></DD></DT>.  In
XHTML, it gives you the warning you seek.

Anyway, Yes this bug has been resolved.  As a duplicate of the bug that asks
for what you're asking for.  Have you even looked at the dupe to determine if
it was resolved properly?   What the bug says is that is a QUIRK.  Something
that is so widely abused that we support it in quirks mode.
Sigh, yes I did read the duped bug, and it ends up saying it's a P5 and suggests
it probably will not be fixed.

Also, you example differs from mine in that you are specifying end tags </DD>
and </DT>.

Also, reading the DTD, I still can't see what the difference is between  their
example :-

<DL>
<DT>Center
   <DT>Centre
   <DD> A point equidistant from all points
              on the surface of a sphere.
   <DD> In some field sports, the player who
              holds the middle position on the field, court,
              or forward line.
</DL>


and what the example URL does.
Your example is the same as the following:

<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>

The DD and DT tags are much like P in that they don't need to be closed.  They
are automatically closed when they reach another DT or DD tag.

Think of it like

<DIV>
<P>Center
  <P>Center
  <P style="text-indent: 2em"> A point equidistant from all points
              on the surface of a sphere.
  <P style="text-indent: 2em"> In some field sports, the player who
              holds the middle position on the field, court,
              or forward line.
</DIV>

The P tags automatically close when they reach another P element. Just because
you indent the code does not mean that the tags are children of the previous
element.  They close automatically.

I'm not sure if this explanation helps but if you still have questions, feel
free to e-mail me to save spam from the owners of this bug.
Bug 115468 filed for the evangelism of this site to fix their invalid markup.
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: