The `html5` option was added in 2010 and marked as "not experimental" in 2011 but is not the default. According to , current versions of all recent versions of all major browsers - even IE (9+) - support the HTML5 semantic elements (`
` etc.), except for `
` which IkiWiki doesn't use anyway. However, IE 8 is not a current version, but has ~ 4% market share and doesn't support `
` and friends; so there's still a compatibility concern there. In particular, non-HTML5 mode uses `` which doesn't allow newer markup like the `role` attribute, so we can't close [[todo/add_aria_landmarks_to_make_ikiwiki_websites_more_accessible]] while remaining XHTML 1.0 Strict. The recommended pseudo-doctype for HTML5, and for HTML with ARIA markup, is ``. (I do think we should continue to use `` and output well-formed XML so people who want to do XSLT tricks with IkiWiki's output can do so, though.) In practice, real browsers have never actually implemented a strict XHTML mode: they've always parsed `text/html` as "tag soup", because they need a tag-soup parser anyway, and nobody wants to maintain two parsers. Kai also wants a HTML5 doctype for [[bugs/more mobile friendly default themes]]. Options include: * set html5 to 1 by default but retain the dual-mode templates, breaking IE 8 by default * remove the option and always behave as if it had been 1, simplifying the templates and breaking IE 8 unconditionally * either of the above and include [html5shiv](https://code.google.com/p/html5shiv/) to de-break IE 8 * change the doctype to `` unconditionally, stop trying to limit ourselves to XHTML 1.0 Strict (use HTML5 features that degrade gracefully, like [[ARIA roles|todo/add aria landmarks to make ikiwiki websites more accessible]]), but avoid using the new elements like `
` that require specific browser support unless `html5` is set to 1. That would get rid of the backwards-compatibility concerns while keeping the ability to use post-2000 markup; we can use `html5` to mean "be more enthusiastic about HTML5 features even if they might fail on older browsers". Using the HTML5 doctype does mean we lose the ability to validate the output against a DTD (as `wdg-html-validator` does), but DTDs have very little to do with practical browser compatibility in any case. [[!template id=gitbranch branch=smcv/ready/html5 author="[[Simon McVittie|smcv]]" browse=http://git.pseudorandom.co.uk/smcv/ikiwiki.git/shortlog/refs/heads/ready/html5]] [[!tag patch users/smcv/ready]] At the moment my preferred option is the last, for which see my `ready/html5` branch. I'll apply this at some point if there are no objections. --[[smcv]] > [[merged|done]] --[[smcv]]