Publishing / original file test
Can an EPUB pass EPUBCheck while missing text?
By Baseframe Kinetics · Published
Yes. An EPUB can pass EPUBCheck even when a paragraph from the approved manuscript is missing. EPUBCheck checks conformance to EPUB specifications. It does not compare the book with your source manuscript. In our original test, removing one complete paragraph produced an EPUB with no EPUBCheck messages.
Use validation and a source comparison together. A valid package can still be the wrong book.
The test: one paragraph removed, both files valid
We wrote an original fictional manuscript, The Open Table, and produced a reflowable EPUB. The fixture includes chapter headings, tables, two original diagrams and linked endnotes. It is an internal production study, not a customer book.
- We checked the original EPUB with EPUBCheck 5.4.0. The report contained no messages.
- We copied the EPUB and removed the complete paragraph element with ID
c1-p3from its first chapter. The original file remained unchanged. - We ran the same validator on the altered copy. That report also contained no messages.
- A separate comparison with the approved manuscript detected that the expected paragraph was absent.
Original EPUB
EPUBCheck 5.4.0
0 messagesTarget paragraph present in the source comparison.
Altered copy
EPUBCheck 5.4.0
0 messagesTarget paragraph missing in the source comparison.
“0 messages” means no fatal errors, errors, warnings or informational messages in these reports. It is the observed result for these two files, not a promise about other files or validators.
The removed paragraph began with this original sentence:
“The room had a long table, two smaller tables and a cabinet that stayed closed during public sessions.”
Removing the entire <p>…</p> element left well-formed chapter content. No remaining link in this fixture required that paragraph ID. The missing prose therefore did not create the kind of package error the validator was checking.
Why a clean report cannot establish completeness
W3C describes EPUBCheck as a conformance checker for EPUB publications. A conformance checker can inspect the submitted package. Without the approved manuscript, it cannot know that a paragraph, a table row or an author's intended wording should have been included.
A paragraph count alone is also insufficient: one paragraph could be replaced by different text without changing the count. Word counts and file sizes are useful warning signals, but they do not establish that the right words remain in the right order.
Check three things before handing off an EPUB
- Preserve the approved source. Keep a dated copy of the manuscript and a list of approved revisions. Compare the exported chapter text and order against that version. Review omissions, additions and substitutions. If a comparison ignores whitespace or punctuation, document those rules so they do not conceal meaningful changes.
- Validate the package. Run a current supported EPUBCheck release and inspect its actual report. Follow the official running instructions. Correct relevant errors, then validate the final file after the last revision.
- Inspect the reading experience. Open the final EPUB in the intended reading systems. Check the table of contents, text resizing, chapter breaks, tables, figures, captions and note links. Use the destination publisher's preview and acceptance workflow where applicable. A clean validator report does not establish these results.
For a manuscript with tables or illustrations, compare more than running prose. Confirm each table's rows, columns and values; match each figure to its caption and text alternative; check every note and its return link. Record approved changes so a deliberate correction is not confused with an export defect.
A small source-preservation check
Our negative control used a known paragraph ID and compared its text with the authored source. In simplified form, the check asks:
expected = approved_source["c1-p3"]
actual = exported_chapter.paragraph_text("c1-p3")
assert actual == expected
This is pseudocode, not a complete EPUB validator or a drop-in document converter. Stable IDs make this small fixture easier to compare. A general manuscript import must also account for paragraphs split across elements, editorial revisions, reading order, tables and other structures. It must not silently discard unmatched content.
What this example establishes
The two validator reports and missing-paragraph check establish a narrow result: this valid EPUB could lose source content without an EPUBCheck message. They do not establish general Word import fidelity, retailer acceptance, accessibility conformance or correct rendering on an e-reader.
The manuscript, files and test were created for internal research. No customer outcome is claimed, and no book-formatting service is available for purchase here. The full private production fixture is not a public download.
Primary references: EPUBCheck project and scope, installation guidance, and command-line options. Version and test date above describe the run we performed; they are not a claim that 5.4.0 will always be the latest release.
Related: why a visually unchanged SVG can lose working seat identities. The same broader lesson applies: appearance, file validity and preserved meaning need different checks. Or browse all field notes.