It turned out that LaTeXML has come a long way and basically produced good results without too much fiddling—there were only a handful of bits of code that had produced errors and had to be changed. Of course, the stock output style isn’t all that pretty, but thanks to the BookML wrapper/package by (logician!) Vincenzo Mantova it was easy enough to make the thing look pretty, include nifty features such as PDF download links, font and typesize change buttons, and dark mode. BookML also produces a SCORM ZIP bundle that can be uploaded to your LMS (Canvas/Moodle/Brightspace).
What took the longest time, of course, was to fix the natural deduction proofs. LaTeXML produced MathML code that looked very similar to what
fitch.sty produces, but not quite. If you knew what you were looking at you could tell what it was supposed to look like. But of course that wasn’t good enough. And it would in any case be useless for people relying on screen readers (especially blind students). The solution I ended up implementing (with advice from Audrey Yap and Patrick Girard) is to produce tables that can be navigated by screen readers, with additional (visually hidden information) about subproof starts, ends, and indentation levels, and style the whole thing using CSS so it looks like the printed version. The HTML version has an appendix that describes this and other accessibility features of the HTML version.
In order to get the HTML to come out properly, I did have to fix some of the original clunky code and make use of some modern packages that format all the lists, symbolization keys, arguments, cross references, etc. better. So a lot has changed “under the hood” but except for a few changes in response to user feedback not a lot of the actual content has changed.
If you find issues with the HTML (or any other) version, especially if it impacts accessibility, please report them, either as an issue on Github or by email to me. I have a separate accessibility/HTML formatting test document with a list of issues I’ve already noticed. So far I’ve only been able to test it with ChromeVox (I think the screen readers most blind people actually use are JAWS and NVDA), and I don’t have access to a Braille terminal nor would I know how to use one.