Wishlist of things I would like to improve or fix about ox-html:
You can have the default doctype be XHTML 1.0 Strict, and you can put WAI-ARIA attributes on elements just assuming that browsers will tolerate it, and you can default to putting a link to the W3C validator at the bottom of the document; but it's ridiculous to do all three. Pick two, ideally the ones that mean you're going to emit valid, accessible markup.
Likewise, using the CSL citation processor shouldn't be putting style elements into the body of the page. Put that thing back where it came from or so help me!
Having more than two footnote references to a single footnote definition producing documents with duplicate id attributes is absurd. You already know to give the second reference a different id than the first, keep doing that.
WHY is XHTML 1.0 Frameset an option for the output doctype. That's absurd. Not what it's for. Get it out of here.
It's silly that tables don't respond properly to being put in #+center blocks.
The table of contents can get obnoxiously large, ideally there should be a way to put it within a details element.
There should be a way to emit footnotes at their definition point, rather than just collecting them all into a div at the bottom of the page. Or at least control the position of the footnotes block.
I would prefer if example blocks weren't exported with newlines before and after the start and end tags, because it means that if I apply an indentation pass in post-processing it can end up with an extra newline at the top of the block, which looks absurd.
Now that @counter-style is in CSS lvl 3, it would be nice if choosing between "1.", "1)", "a.", "a)", "A.", "A)", "-", "+" and "*" for list markers meant that was actually reflected by the exporter.
The background color of src blocks should be set to the frame's background color when using htmlize to style them. Currently, exporting with a dark theme ends up looking like this:
This comment from the default style: /* pre.src-C++ doesn't work in CSS */ is objectively untrue and has been since at least CSS2. You just have to escape the selector. pre.src-C\+\+::before { content: 'C++' }
The default style is just kind of sloppily-written in general. "0px" for instead of "0" (and it can't even do it consistently, because elsewhere it does use "0"), it doesn't define ::before elements for blocks marked 'c' or 'd' instead of 'C' or 'D' despite having an alias table internally to understand that these should be equivalent, bizarre indentation, inconsistent elision of final semicolons, use of :before instead of ::before (which admittedly used to be the standard), and a handful of other small issues. I'd prefer this were all cleaned up.
Images should have a max-width property set, lest they do this:
Failing to convert & to & in LaTeX equations is ridiculous. Do that.
The handling of the type attribute on style and script elements needs to be consistent. At present, it's hardcoded for some to have it and some to not, which means you're always going to get validation errors for pre-HTML5 doctypes and warnings for post-HTML5 doctypes.
It would be neat if there was an option to base64-encode linked images so that they could be distributed with the exported document, like with pdfs via the LaTeX backend. I don't feel that strongly about this one, though.