In short, the HTML5 specification allows multiple h1 elements to be used. However, there is quite a bit of controversy over this feature, with two main complaints about why not using it.
1. SEO:. Basically, the dubious allegations that search bots do not support it, and unfounded claims, they will "confuse" them. However, let's postpone such assumptions to other posts.
2. User agents do not support it: Unfortunately, the arguments behind this seem less clear than the SEO statements.
The MDN article for Sections and Outlines of an HTML5 Document contains the following warning:
Important. Currently, there are no known implementations of the loop algorithm in graphical browsers or assistive technology user agents, although the algorithm is implemented in other software, such as conformance checks. Therefore, one cannot rely on a plan to transfer the structure of a document to users. Authors should use the title bar (h1-h6) to convey the structure of the document.
But it does not look like a document that uses the outline structure of a new document, it does not work. To see how the browser works, I created several samples that use several offline articles on the same page.
HTML4:
<!DOCTYPE html> <html> <head> <title>Outline HTML4</title> </head> <body> <div> <h1>Section List</h1> <div> <h2>Alpha</h2> <p>Alpha is the first letter of the greek alphabet.</p> <h3>Subheading</h3> <p>This is just filler.</p> </div> <div> <h2>Beta</h2> <p>Beta is the second letter of the greek alphabet.</p> <h3>Subheading</h3> <p>This is just filler.</p> </div> </div> </body> </html>
HTML5:
<!DOCTYPE html> <html> <head> <title>Outline HTML5</title> </head> <body> <main> <h1>Section List</h1> <section> <h1>Alpha</h1> <p>Alpha is the first letter of the greek alphabet.</p> <h2>Subheading</h2> <p>This is just filler.</p> </section> <section> <h1>Beta</h1> <p>Beta is the second letter of the greek alphabet.</p> <h2>Subheading</h2> <p>This is just filler.</p> </section> </main> </body> </html>
The only potential visual problem that I see will be that the browser can display the same size h1 tags, however the default user agent styles for Firefox and Chrome currently reduce the size of the h1 tag inside article , aside , nav and section (seems that browsers recognize this feature). In addition, we have no problems recognizing the second h2 header - the end of the last h2 section, so I see no reason why we would have a visual problem with multiple h1 tags.
While I can't talk about how those who depend on screen readers prefer to browse the web, Apple VoiceOver correctly identifies each level of the title.
My question is: what kind of graphical browser or assistive technology would have to do in order to “support” a scheme that they no longer do?