{
  "slug": "epub-3-preflight",
  "title": "EPUB 3 Preflight Matrix",
  "version": "1.0.0",
  "updated": "2026-07-09",
  "status": "maintained-reference",
  "methodology": "Checks are grouped into package validity, semantic structure, navigation, rendering, accessibility, and distribution QA. Conformance is verified with EPUBCheck; usability is verified in more than one reading system.",
  "limitations": [
    "EPUBCheck conformance is necessary but does not prove good typography, accessibility, or retailer-specific rendering.",
    "Reading systems implement parts of EPUB and CSS differently, so representative device testing remains required.",
    "Retailer ingestion may transform a valid EPUB and introduce a result that differs from the source preview."
  ],
  "sources": [
    {
      "label": "EPUB 3.3 specification",
      "url": "https://www.w3.org/TR/epub-33/",
      "checked": "2026-07-09"
    },
    {
      "label": "EPUBCheck",
      "url": "https://www.w3.org/publishing/epubcheck/",
      "checked": "2026-07-09"
    },
    {
      "label": "EPUB Accessibility 1.1",
      "url": "https://www.w3.org/TR/epub-a11y-11/",
      "checked": "2026-07-09"
    }
  ],
  "columns": [
    {
      "key": "area",
      "label": "Area"
    },
    {
      "key": "check",
      "label": "Check"
    },
    {
      "key": "pass_condition",
      "label": "Pass condition"
    },
    {
      "key": "tool",
      "label": "Verification"
    },
    {
      "key": "risk",
      "label": "If missed"
    }
  ],
  "rows": [
    {
      "area": "Package",
      "check": "Mimetype and container",
      "pass_condition": "Archive structure and required files conform to EPUB 3.3",
      "tool": "EPUBCheck",
      "risk": "File rejected before content is inspected"
    },
    {
      "area": "Package",
      "check": "Manifest integrity",
      "pass_condition": "Every referenced resource is declared and every declaration resolves",
      "tool": "EPUBCheck plus unzip inspection",
      "risk": "Missing styles, images, fonts, or chapters"
    },
    {
      "area": "Package",
      "check": "Spine order",
      "pass_condition": "Reading order matches the intended book sequence",
      "tool": "Package inspection and linear read",
      "risk": "Chapters appear out of order"
    },
    {
      "area": "Navigation",
      "check": "Navigation document",
      "pass_condition": "Visible table of contents links to meaningful destinations",
      "tool": "Reading-system navigation panel",
      "risk": "Reader cannot move through the book reliably"
    },
    {
      "area": "Navigation",
      "check": "Landmarks",
      "pass_condition": "Key regions such as body matter are identified when appropriate",
      "tool": "Markup inspection",
      "risk": "Reduced assistive navigation"
    },
    {
      "area": "Structure",
      "check": "Heading hierarchy",
      "pass_condition": "Headings describe document structure without visual-only levels",
      "tool": "DOM/outline inspection",
      "risk": "Confusing navigation and accessibility"
    },
    {
      "area": "Structure",
      "check": "Language metadata",
      "pass_condition": "Package and content language are declared correctly",
      "tool": "EPUBCheck and markup inspection",
      "risk": "Incorrect pronunciation or storefront metadata"
    },
    {
      "area": "Content",
      "check": "Image alternatives",
      "pass_condition": "Meaningful images have useful alternatives; decorative images are identified appropriately",
      "tool": "Accessibility inspection",
      "risk": "Content is unavailable to nonvisual readers"
    },
    {
      "area": "Content",
      "check": "Links and notes",
      "pass_condition": "Internal, footnote, endnote, and external links resolve and return sensibly",
      "tool": "Automated link check plus device test",
      "risk": "Broken references or navigation traps"
    },
    {
      "area": "Typography",
      "check": "Reflow stress test",
      "pass_condition": "Text survives large fonts, narrow viewports, and reader overrides",
      "tool": "Two reading systems at multiple settings",
      "risk": "Clipping, overlap, or unusable layout"
    },
    {
      "area": "Typography",
      "check": "CSS restraint",
      "pass_condition": "Styles preserve hierarchy without blocking reader preferences",
      "tool": "CSS review and override test",
      "risk": "Unreadable or inconsistent device rendering"
    },
    {
      "area": "Fonts",
      "check": "Embedded font rights and fallbacks",
      "pass_condition": "Any embedded font is licensed, declared, and has usable fallbacks",
      "tool": "Manifest/CSS inspection",
      "risk": "Legal issue, missing font, or blank glyphs"
    },
    {
      "area": "Metadata",
      "check": "Title, creator, identifier",
      "pass_condition": "Core metadata is present and matches the release record",
      "tool": "Package inspection",
      "risk": "Retailer mismatch or catalog confusion"
    },
    {
      "area": "Validation",
      "check": "EPUBCheck result",
      "pass_condition": "No unresolved errors and every warning has been reviewed",
      "tool": "Current EPUBCheck release",
      "risk": "Retailer rejection or latent package defect"
    },
    {
      "area": "Distribution",
      "check": "Retailer/device sample",
      "pass_condition": "Ingested preview is checked after platform conversion",
      "tool": "Retailer preview plus representative apps",
      "risk": "Valid source becomes a poor delivered book"
    }
  ]
}
