Perl programmer for hire: download my resume (PDF).
John Bokma's Hacking & Hiking

Nav Element with no Heading

September 24, 2019

Last Thursday, while playing with the W3C Markup Validation Service with as input my other blog, Plurrrr, I noticed twice the following remark in the Structural outline after I had selected Show Outline as an option:

[nav element with no heading]

While this is not an error nor a warning; a nav element has an optional heading, I noticed that I could easily remove the bottom remark because the HTML5 I use is as follows:

<section>
    <header>
        <h2>Archive</h2>
    </header>
    <nav>
        <dl class="tl-archive">
        :
        :
        </dl>
   </nav>
</section>

The definition list contains all links to the week pages, using a nested unordered list.

As you can see I do output a heading element, only not inside the nav element but in a wrapping section element. Because nav is also a sectioning element this can be shortened to:

<nav class="tl-archive">
    <h2>Archive</h2>
    <dl>
    :
    :
    </dl>
</nav>

Note that in order to style this I reused the class tl-archive with a different styling.

So today, in the evening I modified in both the Perl and Python code the function html_for_archive to no longer output the nav element, as this element moved to the HTML template. Also the class attribute was no longer required.

Next I edited the HTML template file and the CSS file.

Finally, I bumped the version to 2.1.0 and pushed it to GitHub.