[whatwg] small element should allow nested elements

Ian Hickson ian at hixie.ch
Mon Aug 24 17:08:58 PDT 2009

On Fri, 14 Aug 2009, Aryeh Gregor wrote:
> On Fri, Aug 14, 2009 at 5:09 AM, Ian Hickson<ian at hixie.ch> wrote:
> > I wouldn't bother wrapping any of the above as small print. If you're 
> > structuring this enough that you have numbered lists and paragraphs 
> > and everything, then it's either not small print, or it shouldn't be.
> To the contrary: the more text there is, the more you want to make it 
> small print.  That's the point of small print.  :)  Even very brief 
> legalese can often run to more than a paragraph.  Even if it's not so 
> useful for <small> or (say) <em>, it would make a lot of sense for 
> various other elements that are currently only inline.  For instance:
> <strong>: A particularly important section of a document.  For instance, 
> it's common in EULAs for one or two sections (like disclaimer of 
> warranty) to be entirely uppercase, often running to multiple 
> paragraphs.  It would be semantically correct to wrap the entire section 
> in <strong>.
> <i>: A run of text in a novel that's meant to be set off in mood from 
> the surrounding text.  For instance, a multiparagraph flashback 
> sequence.
> <cite>: The name of a postmodern work of art whose author chose to name 
> it something 7,000 words long.  (Okay, I'm kidding.)
> I've run into more than one case where I wanted to wrap inline elements 
> around blocks and couldn't.  If this could be implemented in a 
> reverse-compatible way, that would be awesome.

We have done this with <a>, and the problems it introduces are 
substantial. I'm very reluctant to extend this to more elements.

> > Allowing elements to wrap both inlines and blocks is a huge can of 
> > worms which has caused all kinds of problems for <ins>, <del>, and 
> > <a>. I really don't want to start adding more elements to this list of 
> > complexity.
> I certainly realize that -- you can't even say what their CSS display 
> property should be set to, at least not in a way that CSS currently 
> supports.  But once everyone has to support this behavior for those 
> three elements, is there any reason not to extend the same behavior to 
> other elements?  Is there a significant marginal cost for allowing use 
> as both inline and block for new elements once we've already paid the 
> overhead of allowing it at all?

Yes, I think so. You can special-case a few elements in an editor's UI, 
for example, without extending the complexity to the entire app.

On Sat, 15 Aug 2009, Remy Sharp wrote:
> As Aryeh said, my experience has been the inverse, this is small print.  
> I've got the terms and conditions for a competition, which is small 
> print for the whole thing.  Currently I'm manually wrapping every 
> sentence in a small tag (as per my example).

Just don't use <small> at all, and just make the font size smaller in CSS.

> For example, the BBC's web site is using the 62.5% rule, then by default 
> pages are shown in 1.2em.  The exception being their terms pages, which 
> overrides the font size to 1em in a terms.css style sheet.  This is 
> because they want the text to appear as small print.
> BBC Terms:
> http://www.bbc.co.uk/terms/

That page is a great example of where _not_ to use <small> -- the text on 
there is the main content of the page, it's not a throw-away side comment.

I've added text to this effect.

> > Allowing elements to wrap both inlines and blocks is a huge can of 
> > worms which has caused all kinds of problems for <ins>, <del>, and 
> > <a>. I really don't want to start adding more elements to this list of 
> > complexity.
> Is there any record of these issues.  I know of 1 rendering issue that 
> Firefox has with nesting the section element inside the a element (but 
> I'm sure you're referring to previously solved issues).

The issues are things like:

 * It makes it possible to have phrasing-level elements span paragraphs:

     Fred stood up. <i> How are you?
     <p> Are you ok? </i> He sat down again.

 * It makes it very difficult to have intuitive UI in WYSIWYG editors.

 * It leads to confusing parsing behaviour, e.g. there are nested 
   paragraphs here, which is not allowed, and is highly unobvious:

     <p> This is uncontroversial text.
     <ins> <p> This is new text. </ins>
     <del> <p> This is deleted text. </del>

On Sat, 15 Aug 2009, Smylers wrote:
> Where <small> might be useful is another page which has a competition on 
> it (in regular sized text) followed by:
>   <p>
>     <small>Terms and conditions apply.  For full details see the
>     <a href="http://www.bbc.co.uk/terms/">standard BBC T&Cs.</a>.</small>
>   </p>
> In that case the short amount of 'small print' is distinguished from the 
> surrounding text.  Visual users can see it as such; a speaking browser 
> could read it out faster.


On Sat, 15 Aug 2009, Remy Sharp wrote:
> Here's the actual example I'm working with:
> http://2009.full-frontal.org/ticket-draw (at the bottom of the page)
> You can see that I've had to wrap each inner li element, and also that 
> the li bullet sizes don't match that of the text.
> It seems logical to me to wrap the entire ol element in the small tag.

I agree that this is more borderline. However, you've given this its own 
section, so I wouldn't bother with <small> at all.

On Mon, 24 Aug 2009, Jeremy Keith wrote:
> Fair enough. But in that case, I think perhaps the spec could do with a 
> bit of rewording for the <small> element.

I've tried rewording it.

On Mon, 24 Aug 2009, Chris Cressman wrote:
> I agree that allowing <small> to wrap inlines and blocks addresses 
> Remy's use case directly and would allow authors to create other useful 
> patterns for small print. Personally, I would like to see this change in 
> the spec. I admit though, I am ignorant of the issues this has caused 
> for the other elements Ian mentioned.
> I see that the content model of <address> has been redefined in HTML 5 
> to allow block elements. I'd like to see a similar change for <small>, 
> but I ultimately defer to Ian to weigh the benefits against the cost in 
> added complexity.
> I think changing the content model of <small> is more appropriate than 
> changing its description. If the content model does not change, the 
> description should not change either (since the description and content 
> model work together to explain the appropriate use of the element).

If <small> was a block-level element in HTML4, then I think we'd just make 
it a flow-level element here and give up on inline throw-away comments. 
But as it is, it's the other way around. I don't think we want one element 
to do both, though, and I don't think this use case is important enough to 
bother with if we can't just leverage existing elements.

Ian Hickson               U+1047E                )\._.,--....,'``.    fL
http://ln.hixie.ch/       U+263A                /,   _.. \   _\  ;`._ ,.
Things that are impossible just take longer.   `._.-(,_..'--(,_..'`-.;.'

More information about the whatwg mailing list