W3C home > Mailing lists > Public > whatwg@whatwg.org > May 2006

[whatwg] image captions

From: Michel Fortin <michel.fortin@michelf.com>
Date: Wed, 3 May 2006 09:19:12 -0400
Message-ID: <47F86E18-4177-4201-982C-C6C021E7F303@michelf.com>
I wrote previously:

> Well, I'm all for using <caption> -- it obviously is the most  
> logical choice -- but, as stated in my first reply, the caption  
> element is completely ignored by today's HTML parsers when outside  
> the context of a table. This makes captions impossible to style or  
> use within the DOM. That's why I'm suggesting an alternative that  
> doesn't involve the caption element.

I'd like to revise what I said.

I just found out that at least one important HTML parser (Gecko)  
doesn't create the right DOM tree out of something as simple as this:

     <section>
       <p>Some paragraph</p>
     </section>

The tree will be as if you wrote this:

     <section>
       </section><p>Some paragraph</p>

Why? Because unknown elements are considered inline and won't accept  
any block element within. This problem applies to <nav>, <header>,  
<footer>, and <aside> too (and maybe others).

The point I want to make is that because simple elements like section  
aren't really backward-compatible, there is probably no point in  
requiring that from image captions either. Hence it could be  
acceptable to allow the following markup even if current HTML parsers  
are ignoring caption:

     <figure>
       <caption>Some image</caption>
       <img src="...">
     </figure>

So here is what I'm proposing:

  - - -

The figure element

Block-level element, and structured inline-level element.

Contexts in which this element may be used:
     Where block-level elements are expected.
     Where structured inline-level elements are allowed.

Content model:
     Zero or one caption element followed by inline-level content.

The figure element contains an illustration of something related to  
the content surrounding it, but which can be considered separate from  
that content.

  - - -

I've chosen an inline-level content model because it allows not only  
img, but also structured inline-level elements like pre. I'm not so  
sure about that choice however.


Michel Fortin
michel.fortin at michelf.com
http://www.michelf.com/
Received on Wednesday, 3 May 2006 06:19:12 UTC

This archive was generated by hypermail 2.3.1 : Monday, 13 April 2015 23:08:27 UTC