epubveri 0.9.19
New release: https://github.com/veripublica/epubv...es/tag/v0.9.19
Doitsu — the report from page 13 is fixed. Thank you for sending epubcheck's output next to ours; that pair of files turned this into a twenty-minute diagnosis instead of a guess. The book drew 13 findings from epubcheck and 7 from epubveri, and all six we missed were the same thing: a book converted from EPUB 2 keeps opf:role, opf:file-as and opf:scheme on its Dublin Core elements, and EPUB 3 replaced all of those with <meta refines>.
The cause turned out to be worse than a missing rule. epubveri's model of an EPUB 3 <metadata> element was completely permissive, so no attribute on any metadata element was being checked at all — it was a missing question rather than a wrong answer. That surface now follows the EPUB 3 package schema, including the part that is easy to get wrong: xml:lang is valid on dc:title and an error on dc:language, because those two elements take different attribute lists.
Five more EPUB 2 rules where XHTML 1.1 is stricter than HTML5 and epubveri was too permissive: ol@start, ol@type, li@value, data-* attributes, and an empty <tr> or row group. They all come from modules that OPS 2.0.1 does not include — the same reason align and clear are already errors.
And one in the other direction, which matters more: epubveri was reporting CSS-001 (direction / unicode-bidi) on EPUB 2 books. epubcheck applies that rule only to EPUB 3, so this was a real false positive on valid EPUB 2 markup. Fixed.
Where the numbers come from, for anyone who wants to judge them: on epubcheck's own test corpus, 606 of 607 expected message IDs match exactly, with no false positives across 355 should-be-clean cases. On a local corpus of 346 real books cross-checked against epubcheck 5.3.0, 339 agree on the reported ID set exactly, and there is no ID that epubveri reports and epubcheck does not. The remaining differences are all in the other direction — things epubcheck catches and epubveri still misses.
Downloads for 8 platforms are on the release page; the Linux musl builds need no toolchain and run on any distro. Also cargo install epubveri, or @veripublica/epubveri-wasm on npm for the browser.
If you hit a disagreement with epubcheck, the most useful thing you can send is exactly what Doitsu sent: epubcheck's output and epubveri's, for the same book. It beats a description by a mile and costs you almost nothing.