While I admit I'm not totally sure, in general, when a given fancy HTML5
element is appropriate, this case (an intra-page table of contents)
seems right in line with the second code example here:
http://www.w3.org/html/wg/drafts/html/master/sections.html#the-nav-element
>From a1aa357f75cd37ef676f5ac4dbbe66ad66d76aa8 Mon Sep 17 00:00:00 2001
From: Kodi Arfer <g...@arfer.net>
Date: Sat, 1 Jun 2013 17:41:38 -0400
Subject: [PATCH] ox-html: Under html5-fancy, use <nav> for the ToC
* lisp/ox-html.el (org-html-toc): Use <nav> instead of <div>
for the root element when appropriate.
TINYCHANGE
---
lisp/ox-html.el | 10 +++++++---
1 file changed, 7 insertions(+), 3 deletions(-)
diff --git a/lisp/ox-html.el b/lisp/ox-html.el
index facd84c..10891ce 100644
--- a/lisp/ox-html.el
+++ b/lisp/ox-html.el
@@ -1912,9 +1912,13 @@ contents as a string, or nil if it is empty."
(mapcar (lambda (headline)
(cons (org-html--format-toc-headline headline info)
(org-export-get-relative-level headline info)))
- (org-export-collect-headlines info depth))))
+ (org-export-collect-headlines info depth)))
+ (outer-tag (if (and (org-html-html5-p info)
+ (plist-get info :html-html5-fancy))
+ "nav"
+ "div")))
(when toc-entries
- (concat "<div id=\"table-of-contents\">\n"
+ (concat (format "<%s id=\"table-of-contents\">\n" outer-tag)
(format "<h%d>%s</h%d>\n"
org-html-toplevel-hlevel
(org-html--translate "Table of Contents" info)
@@ -1922,7 +1926,7 @@ contents as a string, or nil if it is empty."
"<div id=\"text-table-of-contents\">"
(org-html--toc-text toc-entries)
"</div>\n"
- "</div>\n"))))
+ (format "</%s>\n" outer-tag)))))
(defun org-html--toc-text (toc-entries)
"Return innards of a table of contents, as a string.
--
1.8.1.2