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

Markus Ernst derernst at gmx.ch
Wed Nov 28 01:19:14 PST 2012


Hello

I try to follow the discussion on the main element in the WHATWG list. I 
don't want to bloat that discussion with my dummy question, so I post it 
here in the Help list - feel free to ignore it if you think this has 
been discussed enough before; this is no trolling attempt however (I 
actually tried to find the old discussions, but the list archive search 
does not seem to find any matches for "nav" or "aside" right now).

The longer the main element is discussed, the more I ask myself what is 
actually the point in all the new semantic elements such as nav, header, 
footer and aside. Would it not be much easier to solve this via an 
attribute?
<ul role="navigation">...</ul>
seems to be simpler to me than:
<nav><ul>...</ul></nav>

And the former would even be better with regard to BC compatibility (at 
least I assume that a CSS selector "ul[role=navigation]" has better 
support in legacy browsers than the selector "nav ul").

Trying to understand the ARIA roles, I see that this model is indeed too 
sophisticated to be adopted by the majority of authors. But this could 
be worked around easily in 2 ways:
- Introduce a global attribute @role to the HTML spec, and suggest the 
ARIA roles to be used as values for navigation, header, footer and aside 
type content (which would reduce the discussion on main to it being 
mentioned in the HTML spec or not as a suggested value of @role)
- Introduce a new global attribute with a set of values for those types 
of content

OTOH, introducing hav, header, footer and aside elements adds complexity 
to the document structure by inserting elements that have the sole 
purpose of telling the UA what kind of contents they have inside. If 
this is no problem - then I don't see why it is such a hard discussion 
on adding the main element, too.



More information about the Help mailing list