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

Reply via email to