<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://www.w3.org/Bugs/Public/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4"
          urlbase="https://www.w3.org/Bugs/Public/"
          
          maintainer="sysbot+bugzilla@w3.org"
>

    <bug>
          <bug_id>13201</bug_id>
          
          <creation_ts>2011-07-10 19:15:40 +0000</creation_ts>
          <short_desc>Flow content should be allowed in &lt;dt&gt;</short_desc>
          <delta_ts>2011-10-11 18:57:38 +0000</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>HTML WG</product>
          <component>LC1 HTML5 spec</component>
          <version>unspecified</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>CLOSED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P3</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Aryeh Gregor">ayg</reporter>
          <assigned_to name="Ian &apos;Hixie&apos; Hickson">ian</assigned_to>
          <cc>annevk</cc>
    
    <cc>ian</cc>
    
    <cc>jackalmage</cc>
    
    <cc>mike</cc>
    
    <cc>mtanalin</cc>
    
    <cc>public-html-admin</cc>
    
    <cc>public-html-wg-issue-tracking</cc>
          
          <qa_contact name="HTML WG Bugzilla archive list">public-html-bugzilla</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>50876</commentid>
    <comment_count>0</comment_count>
    <who name="Aryeh Gregor">ayg</who>
    <bug_when>2011-07-10 19:15:40 +0000</bug_when>
    <thetext>Currently &lt;dt&gt;&apos;s content model is phrasing content.  I think it should be flow content.  XHTML 1.0 only allows inline content, but I don&apos;t think this restriction is useful.  &lt;dl&gt; is a very generic sort of element that can fairly be used for any kind of key-value mapping, and while it&apos;s not common that the keys will need to contain flow content, it&apos;s perfectly conceivable, so there&apos;s no reason to tell authors their page is invalid because of it.

Example of where this would be reasonable: a &lt;dl&gt; is used for a FAQ, where some of the questions are multiple paragraphs long.  This seems like a legitimate use-case for &lt;dl&gt;, and the most natural way to represent it is to nest &lt;p&gt; inside &lt;dt&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>50877</commentid>
    <comment_count>1</comment_count>
    <who name="Marat Tanalin | tanalin.com">mtanalin</who>
    <bug_when>2011-07-10 19:44:21 +0000</bug_when>
    <thetext>Yes, current purely formal restriction is only why such things as FAQs cannot be marked up as DL.

It should be allowed to put block elements inside DT.

P.S. Strange that there is no standard bugzilla&apos;s ability to vote for the bug here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>50929</commentid>
    <comment_count>2</comment_count>
    <who name="Tab Atkins Jr.">jackalmage</who>
    <bug_when>2011-07-11 20:24:57 +0000</bug_when>
    <thetext>Agreed that this restriction should be lifted, because I&apos;ve written precisely the use-case listed here: A FAQ using &lt;dl&gt; with a multi-paragraph &lt;dt&gt; for a question.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>53906</commentid>
    <comment_count>3</comment_count>
    <who name="Michael[tm] Smith">mike</who>
    <bug_when>2011-08-04 05:34:20 +0000</bug_when>
    <thetext>mass-move component to LC1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>55207</commentid>
    <comment_count>4</comment_count>
    <who name="Anne">annevk</who>
    <bug_when>2011-08-16 08:44:50 +0000</bug_when>
    <thetext>I think it would help if someone pasted in or linked to some examples of this in the wild. (With potential for reuse in the specification.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>56136</commentid>
    <comment_count>5</comment_count>
    <who name="Ian &apos;Hixie&apos; Hickson">ian</who>
    <bug_when>2011-08-31 23:51:25 +0000</bug_when>
    <thetext>Examples would indeed be helpful.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>56179</commentid>
    <comment_count>6</comment_count>
    <who name="Marat Tanalin | tanalin.com">mtanalin</who>
    <bug_when>2011-09-01 12:44:49 +0000</bug_when>
    <thetext>(In reply to comment #5)
&gt; Examples would indeed be helpful.

Usecases are FAQs, Q&amp;As, interviews.

Examples (in russian):

http://sergeytroshin.ru/articles/windows-xp-sp2-faq/ (see first question)
http://sergeytroshin.ru/articles/faq-6/ (see last question)

The only reason why this FAQs are not marked-up as DL is that HTML spec does not allow DT to contain block-level elements.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>57439</commentid>
    <comment_count>7</comment_count>
    <who name="Ian &apos;Hixie&apos; Hickson">ian</who>
    <bug_when>2011-09-27 19:44:56 +0000</bug_when>
    <thetext>Multiple paragraphs or paragraphs with nested lists like this really stretch the definition of &quot;name&quot; in &quot;name/value pair&quot;, but yeah, based on those examples, I agree that if we&apos;re going to allow questions at all, there is at least some credibility to asking why such long questions wouldn&apos;t be ok.

FWIW, such questions also aren&apos;t allowed in &lt;h1&gt;-&lt;h6&gt; or (now) in &lt;th&gt;, where one could imagine them being equally justifiable.

I guess it comes down to two things: Are there compatibility reasons to be concerned, and what do we lose if we allow it?

Compatibility-wise, it seems that (for &lt;dt&gt; at least) there is no particular issue with allowing flow content.

The loss from allowing this would be that validators no longer flag cases where an author has gotten confused about &lt;dt&gt;s and &lt;dd&gt;s.

So the question really is whether multi-paragraph &lt;dt&gt;s are more or less common than authors confusing &lt;dt&gt;s and &lt;dd&gt;s when they intend to have flow content in their &lt;dd&gt;s and not their &lt;dt&gt;s.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>57442</commentid>
    <comment_count>8</comment_count>
    <who name="Aryeh Gregor">ayg</who>
    <bug_when>2011-09-27 20:06:35 +0000</bug_when>
    <thetext>(In reply to comment #7)
&gt; So the question really is whether multi-paragraph &lt;dt&gt;s are more or less common
&gt; than authors confusing &lt;dt&gt;s and &lt;dd&gt;s when they intend to have flow content in
&gt; their &lt;dd&gt;s and not their &lt;dt&gt;s.

We have demonstrated examples where people want to use multiple paragraphs in &lt;dt&gt; (see comment 2), but no demonstrated cases where the validator error was helpful, so the answer seems straightforward right now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>57527</commentid>
    <comment_count>9</comment_count>
    <who name="Marat Tanalin | tanalin.com">mtanalin</who>
    <bug_when>2011-09-29 21:57:47 +0000</bug_when>
    <thetext>(In reply to comment #7)

&gt; So the question really is whether multi-paragraph &lt;dt&gt;s are more or less common
&gt; than authors confusing &lt;dt&gt;s and &lt;dd&gt;s when they intend to have flow content in
&gt; their &lt;dd&gt;s and not their &lt;dt&gt;s.

Is it more or less common than confusing one HTML element with another? HEAD with BODY? TABLE with TR and TD? One language with another? Bus with car? Apple with orange?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>57583</commentid>
    <comment_count>10</comment_count>
    <who name="Ian &apos;Hixie&apos; Hickson">ian</who>
    <bug_when>2011-09-30 19:41:58 +0000</bug_when>
    <thetext>Oh there are plenty of cases where validators have caught mistakes like this. Even looking no further than the spec itself, I&apos;ve had the validator flag this mistake for me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>57588</commentid>
    <comment_count>11</comment_count>
    <who name="Ian &apos;Hixie&apos; Hickson">ian</who>
    <bug_when>2011-09-30 20:02:53 +0000</bug_when>
    <thetext>Maybe I can use the approach I suggested in bug 13174 comment 8 for &lt;th&gt;, namely, allow some flow content but not sectioning or heading content descendants.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>57597</commentid>
    <comment_count>12</comment_count>
    <who name="Marat Tanalin | tanalin.com">mtanalin</who>
    <bug_when>2011-09-30 20:56:12 +0000</bug_when>
    <thetext>(In reply to comment #10)
&gt; Oh there are plenty of cases where validators have caught mistakes like this.

During 10-year webdev experience, I&apos;ve _never_ confused DT with DD. So why other authors (all the more so, that ones who know and care about validation) should?

(In reply to comment #11)
&gt; Maybe I can use the approach I suggested in bug 13174 comment 8 for &lt;th&gt;,
&gt; namely, allow some flow content but not sectioning or heading content
&gt; descendants.

Well, allowing block-level content inside DT with _some_ reasonable structural elements (heading inside heading) blacklisted is definitely far better than nothing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>57600</commentid>
    <comment_count>13</comment_count>
    <who name="Ian &apos;Hixie&apos; Hickson">ian</who>
    <bug_when>2011-09-30 22:42:56 +0000</bug_when>
    <thetext>I guess you&apos;re just better than I am? I dunno. I make the mistake a lot with copy and paste, or just typos.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>57616</commentid>
    <comment_count>14</comment_count>
    <who name="Marat Tanalin | tanalin.com">mtanalin</who>
    <bug_when>2011-10-01 20:59:12 +0000</bug_when>
    <thetext>(In reply to comment #13)

Validator is just a helping tool. This tool cannot prevent all sorts of errors -- this is realidad, just put up with this.

For example, the validator cannot detect situations where blockquote is used instead of div, and vice versa -- it&apos;s just _not of validator&apos;s responsibility_. Exactly the same applies to DT/DD in particular.

The fact that formerly you could use validator to detect DT/DD swapping is not more than just _side_ effect of current impractical spec definition. This side effect at all cannot be a reason to ignore real-world needs.

So don&apos;t complicate things, throw your scruples overboard, stop unneeded flame, and just accept the change that has more than enough arguments and real-world examples mentioned here to accept this.

Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>57624</commentid>
    <comment_count>15</comment_count>
    <who name="Ian &apos;Hixie&apos; Hickson">ian</who>
    <bug_when>2011-10-02 05:20:05 +0000</bug_when>
    <thetext>&gt; Validator is just a helping tool. This tool cannot prevent all sorts of errors
&gt; -- this is realidad, just put up with this.

Just because we can&apos;t catch every mistake doesn&apos;t mean we shouldn&apos;t catch the ones we _can_ catch.


&gt; For example, the validator cannot detect situations where blockquote is used
&gt; instead of div, and vice versa -- it&apos;s just _not of validator&apos;s
&gt; responsibility_. Exactly the same applies to DT/DD in particular.

It is entirely the validator&apos;s responsibility. It&apos;s in fact the only point in _having_ a validator. Validators have no role other than helping authors catch their mistakes. That&apos;s why we have them. The only reason they can&apos;t catch everything is due to technical limitations. Once we have computers with AI and telepathy, these mistakes will also be caught. :-)


&gt; The fact that formerly you could use validator to detect DT/DD swapping is not
&gt; more than just _side_ effect of current impractical spec definition.

It&apos;s more than a side-effect, it&apos;s the reason for having the definition.


Note that I haven&apos;t rejected this bug (if I had it would be marked WONTFIX). In fact, quite the opposite, I&apos;ve marked it &quot;ASSIGNED&quot;, indicating that I do intend to make a change. See comment 11 for the change I am contemplating. That change would have the unfortunate side-effect of no longer catching the mistakes I&apos;ve mentioned in this bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>57633</commentid>
    <comment_count>16</comment_count>
    <who name="Marat Tanalin | tanalin.com">mtanalin</who>
    <bug_when>2011-10-02 15:33:57 +0000</bug_when>
    <thetext>(In reply to comment #15)

&gt; Just because we can&apos;t catch every mistake doesn&apos;t mean we shouldn&apos;t catch the
&gt; ones we _can_ catch.

Ones we can catch _directly_ and _unambiguous_. DT/DD content-type difference is not a such case.

&gt; It is entirely the validator&apos;s responsibility. It&apos;s in fact the only point in
&gt; _having_ a validator. Validators have no role other than helping authors catch
&gt; their mistakes. That&apos;s why we have them.

Validator is primarily to catch syntax errors (nonclosed tags, missing closing quote for attribute, unknown or nonclosed entity, etc.). Validator cannot exactly know semantic intentions of an author. Validator having AI is currently purely fantastic thing, you know that. ;-)

&gt; The only reason they can&apos;t catch
&gt; everything is due to technical limitations. Once we have computers with AI and
&gt; telepathy, these mistakes will also be caught. :-)

You have answered yourself to the question. At the present time, validator cannot detect wrong using of elements that syntactically can contain same content. And the fact of current purely-formal restriction for allowed DT content is purely _indirect_ indicator for validator, and therefore this cannot be a serious reason to ignore real-world needs.

&gt; &gt; The fact that formerly you could use validator to detect DT/DD swapping is not
&gt; &gt; more than just _side_ effect of current impractical spec definition.
&gt; 
&gt; It&apos;s more than a side-effect, it&apos;s the reason for having the definition.

Sounds ambiguous and unclear for me.

&gt; Note that I haven&apos;t rejected this bug (if I had it would be marked WONTFIX). In
&gt; fact, quite the opposite, I&apos;ve marked it &quot;ASSIGNED&quot;, indicating that I do
&gt; intend to make a change. See comment 11 for the change I am contemplating. That
&gt; change would have the unfortunate side-effect of no longer catching the
&gt; mistakes I&apos;ve mentioned in this bug.

Ok. Your continuous doubts are just slightly confusing as for your intentions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>57721</commentid>
    <comment_count>17</comment_count>
    <who name="Ian &apos;Hixie&apos; Hickson">ian</who>
    <bug_when>2011-10-03 19:03:51 +0000</bug_when>
    <thetext>My intention is to find a solution that addresses both your needs and mine. My doubts as expressed in the bug are just a stream-of-consciousness dump of my trying to work out whether your needs or my needs are real, which is more important if both are real, what possible compromises might be possible, etc.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>57775</commentid>
    <comment_count>18</comment_count>
    <who name="Ian &apos;Hixie&apos; Hickson">ian</who>
    <bug_when>2011-10-04 15:57:50 +0000</bug_when>
    <thetext>EDITOR&apos;S RESPONSE: This is an Editor&apos;s Response to your comment. If you are satisfied with this response, please change the state of this bug to CLOSED. If you have additional information and would like the editor to reconsider, please reopen this bug. If you would like to escalate the issue to the full HTML Working Group, please add the TrackerRequest keyword to this bug, and suggest title and text for the tracker issue; or you may create a tracker issue yourself, if you are able to do so. For more details, see this document:
   http://dev.w3.org/html5/decision-policy/decision-policy.html

Status: Partially Accepted
Change Description: http://html5.org/tools/web-apps-tracker?from=6617&amp;to=6618
Rationale: I&apos;ve allowed all flow content except &lt;header&gt;, &lt;footer&gt;, heading, and sectioning content, based on the discussions above.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>58068</commentid>
    <comment_count>19</comment_count>
    <who name="Aryeh Gregor">ayg</who>
    <bug_when>2011-10-11 18:57:38 +0000</bug_when>
    <thetext>Seems reasonable enough to me.</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>