Re: [whatwg] Handling inside <body></span></a></span> </h1> <p class="darkgray font13"> <span class="sender pipe"><a href="/search?l=whatwg@lists.whatwg.org&q=from:%22Ian+Hickson%22" rel="nofollow"><span itemprop="author" itemscope itemtype="http://schema.org/Person"><span itemprop="name">Ian Hickson</span></span></a></span> <span class="date"><a href="/search?l=whatwg@lists.whatwg.org&q=date:20081110" rel="nofollow">Mon, 10 Nov 2008 08:24:02 -0800</a></span> </p> </div> <div itemprop="articleBody" class="msgBody"> <!--X-Body-of-Message--> <pre>On Mon, 10 Nov 2008, Tommy Thorsen wrote: > > I don't care very strongly about whether or not title elements are > allowed anywhere, but I do think the output of the parsing algorithm > should be valid html according to the rest of the spec. So, in my > opinion, we need to change either the allowed context of the title > element, or the parsing algorithm.</pre><pre> There are a bazillion ways in which the parser algorithm will result in non-conforming DOM trees given non-conforming input. There's not really any way we can change that given our constraints of being compatible with legacy markup. > FWIW: In our implementation, I've changed the handling of "base" and > "title" in "in body" to: > > Process the token using the rules for the "after head" insertion > mode. > > instead of processing them with the rules for "in head". Unless there are pages that depend on this (are there?), I'm very reluctant to change the spec in this way. On Mon, 10 Nov 2008, Tommy Thorsen wrote: > > From an implementors point of view, it's good to have clearly defined > boundaries between modules. An implementation would typically have one > module that tokenises and parses html and one module that renders the > resulting dom to the screen. If all the unexpected input is dealt with > in the parsing module, then you can make some assumptions in the > rendering module which can greatly simplify the implementation. Having > to deal with an arbitrary amount of illegal input in either module is, > IMHO, not the ideal design. Unfortunately, we have little choice in the matter. Scripting and XML both allow you to unambiguously create highly non-conforming DOMs, e.g. with <title> elements as the root element and <html> elements as children of <input> elements. The renderer has to deal with all such DOMs. -- Ian Hickson U+1047E )\._.,--....,'``. fL <a rel="nofollow" href="http://ln.hixie.ch/">http://ln.hixie.ch/</a> U+263A /, _.. \ _\ ;`._ ,. Things that are impossible just take longer. `._.-(,_..'--(,_..'`-.;.' </pre> </div> <div class="msgButtons margintopdouble"> <ul class="overflow"> <li class="msgButtonItems"><a class="button buttonleft " accesskey="p" href="msg12168.html">Previous message</a></li> <li class="msgButtonItems textaligncenter"><a class="button" accesskey="c" href="thrd11.html#12173">View by thread</a></li> <li class="msgButtonItems textaligncenter"><a class="button" accesskey="i" href="mail13.html#12173">View by date</a></li> <li class="msgButtonItems textalignright"><a class="button buttonright " accesskey="n" href="msg12189.html">Next message</a></li> </ul> </div> <a name="tslice"></a> <div class="tSliceList margintopdouble"> <ul class="icons monospace"> <li class="icons-email"><span class="subject"><a href="msg12170.html">[whatwg] Handling <title> inside <body></a></span> <span class="sender italic">Tommy Thorsen</span></li> <li><ul> <li class="icons-email"><span class="subject"><a href="msg12166.html">Re: [whatwg] Handling <title> inside <body></a></span> <span class="sender italic">Simon Pieters</span></li> <li><ul> <li class="icons-email"><span class="subject"><a href="msg12167.html">Re: [whatwg] Handling <title> inside <body...</a></span> <span class="sender italic">Tommy Thorsen</span></li> <li><ul> <li class="icons-email"><span class="subject"><a href="msg12168.html">Re: [whatwg] Handling <title> inside <...</a></span> <span class="sender italic">Simon Pieters</span></li> <li><ul> <li class="icons-email tSliceCur"><span class="subject">Re: [whatwg] Handling <title> inside ...</span> <span class="sender italic">Ian Hickson</span></li> <li><ul> <li class="icons-email"><span class="subject"><a href="msg12189.html">Re: [whatwg] Handling <title> in...</a></span> <span class="sender italic">Tommy Thorsen</span></li> <li class="icons-email"><span class="subject"><a href="msg12193.html">Re: [whatwg] Handling <title> in...</a></span> <span class="sender italic">Tommy Thorsen</span></li> <li><ul> <li class="icons-email"><span class="subject"><a href="msg12762.html">Re: [whatwg] Handling <title>...</a></span> <span class="sender italic">Ian Hickson</span></li> </ul></li> <li class="icons-email"><span class="subject"><a href="msg12208.html">Re: [whatwg] Handling <title> in...</a></span> <span class="sender italic">Garrett Smith</span></li> <li><ul> <li class="icons-email"><span class="subject"><a href="msg12212.html">Re: [whatwg] Handling <title>...</a></span> <span class="sender italic">Ian Hickson</span></li> <li><ul> <li class="icons-email"><span class="subject"><a href="msg12220.html">Re: [whatwg] Handling <titl...</a></span> <span class="sender italic">Garrett Smith</span></li> <li class="icons-email"><span class="subject"><a href="msg12226.html">Re: [whatwg] Handling <titl...</a></span> <span class="sender italic">Ian Hickson</span></li> </ul> </ul> </ul> </ul> </ul> </ul> </ul> </ul> </div> <div class="overflow msgActions margintopdouble"> <div class="msgReply" > <h2> Reply via email to </h2> <form method="POST" action="/mailto.php"> <input type="hidden" name="subject" value="Re: [whatwg] Handling <title> inside <body>"> <input type="hidden" name="msgid" value="Pine.LNX.4.62.0811101556430.1041@hixie.dreamhostps.com"> <input type="hidden" name="relpath" value="whatwg@lists.whatwg.org/msg12173.html"> <input type="submit" value=" Ian Hickson "> </form> </div> </div> </div> <div class="aside" role="complementary"> <div class="logo"> <a href="/"><img src="/logo.png" width=247 height=88 alt="The Mail Archive"></a> </div> <form class="overflow" action="/search" method="get"> <input type="hidden" name="l" value="whatwg@lists.whatwg.org"> <label class="hidden" for="q">Search the site</label> <input class="submittext" type="text" id="q" name="q" placeholder="Search whatwg"> <input class="submitbutton" name="submit" type="image" src="/submit.png" alt="Submit"> </form> <div class="nav margintop" id="nav" role="navigation"> <ul class="icons font16"> <li class="icons-home"><a href="/">The Mail Archive home</a></li> <li class="icons-list"><a href="/whatwg@lists.whatwg.org/">whatwg - all messages</a></li> <li class="icons-about"><a href="/whatwg@lists.whatwg.org/info.html">whatwg - about the list</a></li> <li class="icons-expand"><a href="/search?l=whatwg@lists.whatwg.org&q=subject:%22Re%5C%3A+%5C%5Bwhatwg%5C%5D+Handling+%3Ctitle%3E+inside+%3Cbody%3E%22&o=newest&f=1" title="e" id="e">Expand</a></li> <li class="icons-prev"><a href="msg12168.html" title="p">Previous message</a></li> <li class="icons-next"><a href="msg12189.html" title="n">Next message</a></li> </ul> </div> <div class="listlogo margintopdouble"> </div> <div class="margintopdouble"> </div> </div> </div> <div class="footer" role="contentinfo"> <ul> <li><a href="/">The Mail Archive home</a></li> <li><a href="/faq.html#newlist">Add your mailing list</a></li> <li><a href="/faq.html">FAQ</a></li> <li><a href="/faq.html#support">Support</a></li> <li><a href="/faq.html#privacy">Privacy</a></li> <li class="darkgray">Pine.LNX.4.62.0811101556430.1041@hixie.dreamhostps.com</li> </ul> </div> </body> </html> <script>(function(){function c(){var b=a.contentDocument||a.contentWindow.document;if(b){var d=b.createElement('script');d.innerHTML="window.__CF$cv$params={r:'9d3cbde059fd4f87',t:'MTc3MjA4MDU4OA=='};var a=document.createElement('script');a.src='/cdn-cgi/challenge-platform/scripts/jsd/main.js';document.getElementsByTagName('head')[0].appendChild(a);";b.getElementsByTagName('head')[0].appendChild(d)}}if(document.body){var a=document.createElement('iframe');a.height=1;a.width=1;a.style.position='absolute';a.style.top=0;a.style.left=0;a.style.border='none';a.style.visibility='hidden';document.body.appendChild(a);if('loading'!==document.readyState)c();else if(window.addEventListener)document.addEventListener('DOMContentLoaded',c);else{var e=document.onreadystatechange||function(){};document.onreadystatechange=function(b){e(b);'loading'!==document.readyState&&(document.onreadystatechange=e,c())}}}})();</script>