[html5] What is the point about nav, header, footer and aside elements?

Ian Hickson ian at hixie.ch
Wed Nov 28 14:57:36 PST 2012

On Wed, 28 Nov 2012, Jukka K. Korpela wrote:
> 2012-11-28 22:27, Ian Hickson wrote:
> > The term "semantics" as used in the context of HTML elements is what 
> > you describe in your first paragraph. The elements, via their 
> > definitions in the spec, describe what kind of content is there.
> So, basically, the word "semantic" is used very differently from its 
> meaning in normal English, where it means "relating to meaning".

It's not _that_ differently. It does relate to meaning, it's just that hte 
meaning it relates to is the category of content contained, not the data 
contained. For example, the "time" in <time>2012-01-01</time> means that 
the "2012-01-01" is a date, not that it is the first of January. The 
"2012-01-01" part is what means the first of January. The <time> is useful 
here in contrast with <span>2012-01-01</span> which could mean the number 
2012, minus the number 1, minus the number 1, which would be equivalent to 
<span>2010</span> in some ways.

> For example, when someone even mentions the use of a <table> for layout, 
> or the <font> element, there will be people explaining how that is 
> "semantically" wrong and that <div> and <span> elements be used instead 
> (even though they are, by definition, void of any meaning).

What is semantically wrong with using <table> for layout is that software 
that tries to analyse tables (e.g. to tell the user which cell is the 
heading for which other cell) will give bogus results when the <table> 
isn't actually a table (as in the case of it being used for presentation).

> I wonder if it is too late to change the language of specifications to 
> refer to structural rather than semantic markup. Possibly distinguishing 
> between internal document structure (such as division into main content, 
> navigation, header, and footer) and structure of layout.

"Structural" isn't really any more right (and in some ways less right) 
than "meaning" or "semantics", if you think about it. For example, there's 
nothing really "structural" about saying what is a heading or what is 
important or what is a title of a work.

> A distinction between semantic and structural would be useful, because 
> there is really semantic markup, such as microdata, microformats, and 
> RDFa markup.

Microdata and the rest aren't really any more semantic than HTML elements. 
In fact, strictly speaking, you can define mechanical rules that convert 
HTML syntax to microdata syntax and back again, so at some level they are 
just syntactic cousins.

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

More information about the Help mailing list