HTML 5 consists of semantic tags, emphasizing the meaning of the tag and not the actual visual appearance. The tag " <small>" is directly taken from HTML 4, but the definition was changed dramatically:

"Although previous versions of HTML defined the small element only in presentational terms, the element has now been given the specific semantic purpose of representing those parts of documents that are often referred to as “the fine print” or “the small print”."

Accordingly new structural tags like e.g. <nav> , <article> , <section> , <aside> were introduced with the mission to replace the ambiguous <div> tags. These new tags were introduced after evaluating a considerable amount of existing websites. The rationale behind the new tags is to structure pages logically. The visual appearance should not be defined by the tags, rather than with CSS.

JSF component providers also provide components with semantic meaning like e.g. navigation bar, header, footer or panel. Future JSF releases could use HTML 5 logical page structure to enforce the semantic output in the spec. e.g. instead of generating the navigation bar in a <div> container, a component provider could generate a navigation component within a <nav> . Currently (Java EE 7) the component providers can generate whatever markup they like: even nested HTML tables would be still perfectly fine :-).

Structuring the page logically and not visually would open the door for JSF for Responsive Web Design, improve the Accessibility and be a natural SEO.