Skip to content

Instantly share code, notes, and snippets.

@JayPanoz
Last active August 10, 2019 12:02
Show Gist options
  • Save JayPanoz/72f5bfe106e8b175ace84f143aad0696 to your computer and use it in GitHub Desktop.
Save JayPanoz/72f5bfe106e8b175ace84f143aad0696 to your computer and use it in GitHub Desktop.
List of epubcheck messages
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>epubcheck Messages</title>
<style type="text/css">
body {
font-family: sans-serif;
max-width: 65rem;
}
h2 {
margin: 3rem 0 1.5rem;
}
table {
margin: 1.5rem 0;
border-collapse: collapse;
border: 1px solid;
}
th, td {
text-align: left;
border: 1px solid;
padding: 10px;
}
</style>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/tablesaw/3.1.2/tablesaw.css" integrity="sha256-RKWkj+/VPTTBpmJvgbTZhLSjgt7/i5qqwdo6uULEVT4=" crossorigin="anonymous" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/tablesaw/3.1.2/tablesaw.min.js" integrity="sha256-jdYDxaVe+yYImykcBZ0OfaPixfUjF0J6ET3hcDQoK/M=" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/tablesaw/3.1.2/tablesaw-init.min.js" integrity="sha256-nLWPACIJGFkfi/oJglk4w5bd0/Bl7dwiOQwfHm9hnoY=" crossorigin="anonymous"></script>
</head>
<body>
<h1>List of epubcheck messages</h1>
<script type="application/javascript">
// refs:
// - https://github.com/w3c/epubcheck/blob/master/src/main/resources/com/adobe/epubcheck/messages/MessageBundle.properties
// - https://github.com/w3c/epubcheck/blob/1f6a882720f6319f4bc98241427e9612d78d52a0/src/main/java/com/adobe/epubcheck/messages/DefaultSeverities.java
// - https://github.com/w3c/epubcheck/blob/c19b63928e62e2905f9696afb16b71e7fdcff793/src/main/java/com/adobe/epubcheck/messages/MessageDictionary.java#L69:L347
const json = `{
"Info": [
{
"code": "INF_001",
"message": "The previous rule is under review and its severity may change in a future release. See the discussion at %1$s",
"severity": "info"
}
],
"Accessibility": [
{
"code": "ACC_001",
"message": "'img' or 'area' HTML element has no 'alt' attribute.",
"severity": "usage"
},
{
"code": "ACC_002",
"message": "'input' HTML element is not referenced by a corresponding label element.",
"severity": "usage"
},
{
"code": "ACC_003",
"message": "Non-text html elements should include a 'title' attribute for accessibility.",
"severity": "suppressed"
},
{
"code": "ACC_004",
"message": "Html 'a' element must have text.",
"severity": "suppressed"
},
{
"code": "ACC_005",
"message": "Table heading cells should be identified by 'th' elements for accessibility.",
"severity": "suppressed"
},
{
"code": "ACC_006",
"message": "Tables should include a 'thead' element for accessibility.",
"severity": "suppressed"
},
{
"code": "ACC_007",
"message": "Content Documents do not use 'epub:type' attributes for semantic inflection.",
"severity": "usage"
},
{
"code": "ACC_008",
"message": "Navigation Document has no 'landmarks nav' element.",
"severity": "usage"
},
{
"code": "ACC_009",
"message": "MathML should either have an 'alttext' attribute or 'annotation-xml' child element.",
"severity": "warning"
},
{
"code": "ACC_010",
"message": "Headings should not be used within blockquote and figure elements.",
"severity": "suppressed"
},
{
"code": "ACC_011",
"message": "SVG hyperlinks should have a human-readable title (using the 'title' child element or the 'xlink:title' attribute).",
"severity": "usage"
},
{
"code": "ACC_012",
"message": "Table elements should include a caption element.",
"severity": "usage"
},
{
"code": "ACC_013",
"message": "Content file contains at least one inline style declaration.",
"severity": "usage"
},
{
"code": "ACC_013_SUG",
"message": "Inline styles are not compatible with accessibility settings and display personalization. Use CSS Styles instead.",
"severity": "usage"
},
{
"code": "ACC_014",
"message": "Value of CSS property 'font-size' does not use a relative size: '%1$s'",
"severity": "usage"
},
{
"code": "ACC_014_SUG",
"message": "Acceptable values include percentages, em multiples, 'larger', 'smaller', 'normal' or 'inherit'.",
"severity": "usage"
},
{
"code": "ACC_015",
"message": "Value of CSS property 'line-height' does not use a relative size.",
"severity": "usage"
},
{
"code": "ACC_015_SUG",
"message": "Acceptable values include percentages, numeric multiples, em multiples, 'normal', or 'inherit'.",
"severity": "usage"
},
{
"code": "ACC_016",
"message": "Value of CSS property 'font-size' should use a relative size: '%1$s'",
"severity": "usage"
},
{
"code": "ACC_016_SUG",
"message": "Acceptable values include percentages, em multiples, 'larger', 'smaller', 'normal' or 'inherit'.",
"severity": "usage"
},
{
"code": "ACC_017",
"message": "Value of CSS property 'line-height' does not use a relative size.",
"severity": "usage"
},
{
"code": "ACC_017_SUG",
"message": "Acceptable values include percentages, numeric multiples, em multiples, 'normal', or 'inherit'.",
"severity": "usage"
}
],
"CheckerErrors": [
{
"code": "CHK_001",
"message": "The custom message overrides file was not found.",
"severity": "error"
},
{
"code": "CHK_002",
"message": "Unrecognized custom message id %1$s encountered in message overrides file '%2$s'.",
"severity": "error"
},
{
"code": "CHK_003",
"message": "Unrecognized custom message severity '%1$s' encountered in message overrides file '%2$s'.",
"severity": "error"
},
{
"code": "CHK_004",
"message": "The custom message contains too many parameters in message overrides file '%1$s'.",
"severity": "error"
},
{
"code": "CHK_005",
"message": "The custom suggestion contains too many parameters in message overrides file '%1$s'.",
"severity": "error"
},
{
"code": "CHK_006",
"message": "Unable to parse the custom format parameter in message overrides file '%1$s'.",
"severity": "error"
},
{
"code": "CHK_007",
"message": "Error encountered while processing custom message file '%1$s': '%2$s'.",
"severity": "error"
},
{
"code": "CHK_008",
"message": "Error encountered while processing an item '%1$s'; skip other checks for the item.",
"severity": "error"
}
],
"CSS": [
{
"code": "CSS_001",
"message": "The '%1$s' property must not be included in an EPUB Style Sheet.",
"severity": "error"
},
{
"code": "CSS_002",
"message": "Empty or NULL reference found.",
"severity": "error"
},
{
"code": "CSS_003",
"message": "Only UTF-8 and UTF-16 encodings are allowed, detected %1$s.",
"severity": "error"
},
{
"code": "CSS_004",
"message": "Only UTF-8 and UTF-16 encodings are allowed, detected %1$s BOM.",
"severity": "error"
},
{
"code": "CSS_005",
"message": "Conflicting alternate style attributes found: %1$s.",
"severity": "error"
},
{
"code": "CSS_006",
"message": "CSS selector specifies fixed position.",
"severity": "warning"
},
{
"code": "CSS_007",
"message": "Font-face reference %1$s refers to non-standard font type %2$s.",
"severity": "info"
},
{
"code": "CSS_008",
"message": "An error occurred while parsing the CSS: %1$s.",
"severity": "error"
},
{
"code": "CSS_009",
"message": "Use of certain CSS such as Columns, Transforms, Transitions, box-sizing or KeyFrames can cause pagination issues.",
"severity": "usage"
},
{
"code": "CSS_010",
"message": "Stylesheet of type other than 'text/css' must have a fallback.",
"severity": "error"
},
{
"code": "CSS_011",
"message": "Excessive number of css files.",
"severity": "suppressed"
},
{
"code": "CSS_011_SUG",
"message": "Consider merging CSS files to reduce the number of CSS files.",
"severity": "suppressed"
},
{
"code": "CSS_012",
"message": "Document links to multiple CSS files.",
"severity": "usage"
},
{
"code": "CSS_013",
"message": "CSS property is declared !Important.",
"severity": "usage"
},
{
"code": "CSS_015",
"message": "Alternate Stylesheet has no title.",
"severity": "error"
},
{
"code": "CSS_016",
"message": "Alternate Stylesheet precedes primary stylesheet.",
"severity": "suppressed"
},
{
"code": "CSS_017",
"message": "CSS selector specifies absolute position.",
"severity": "warning"
},
{
"code": "CSS_019",
"message": "CSS font-face declaration has no attributes.",
"severity": "warning"
},
{
"code": "CSS_020",
"message": "CSS font selector declaration uses unexpected font-size value '%1$s'.",
"severity": "error"
},
{
"code": "CSS_020_SUG",
"message": "Acceptable values include percentages, em multiples, 'larger', 'smaller', 'normal' or 'inherit'.",
"severity": "error"
},
{
"code": "CSS_021",
"message": "Shorthand CSS property 'font-family' specifies an invalid System Font.",
"severity": "usage"
},
{
"code": "CSS_021_SUG",
"message": "Acceptable values include 'caption', 'icon', 'menu', 'message-box', 'small-caption', 'status-bar', or 'inherit'.",
"severity": "usage"
},
{
"code": "CSS_022",
"message": "CSS selector specifies global margin setting.",
"severity": "usage"
},
{
"code": "CSS_023",
"message": "CSS selector specifies media query.",
"severity": "usage"
},
{
"code": "CSS_024",
"message": "CSS class Selector is not used.",
"severity": "usage"
},
{
"code": "CSS_024_SUG",
"message": "Remove unused CSS selectors.",
"severity": "usage"
},
{
"code": "CSS_025",
"message": "CSS class Selector could not be found.",
"severity": "usage"
},
{
"code": "CSS_025_SUG",
"message": "Check for typos or define a class selector to document the use of the class.",
"severity": "usage"
},
{
"code": "CSS_028",
"message": "Use of Font-face declaration.",
"severity": "usage"
}
],
"XHTML": [
{
"code": "HTM_001",
"message": "Any publication resource that is an XML-based media type must be a valid XML 1.0 document. XML version found: %1$s.",
"severity": "error"
},
{
"code": "HTM_002",
"message": "The installed xml parser doesn't support xml version verification. Xml files must be a valid XML 1.0 document.",
"severity": "warning"
},
{
"code": "HTM_003",
"message": "External entities are not allowed in EPUB v3 documents. External entity declaration found: %1$s.",
"severity": "error"
},
{
"code": "HTM_004",
"message": "Irregular DOCTYPE: found '%1$s', expected '%2$s'.",
"severity": "error"
},
{
"code": "HTM_005",
"message": "An external reference was found.",
"severity": "usage"
},
{
"code": "HTM_006",
"message": "An XHTML Named Entity was found.",
"severity": "usage"
},
{
"code": "HTM_007",
"message": "Empty or whitespace-only value of attribute ssml:ph.",
"severity": "warning"
},
{
"code": "HTM_008",
"message": "The src attribute is required.",
"severity": "error"
},
{
"code": "HTM_009",
"message": "The DOCTYPE provided is obsolete or irregular and can be removed.",
"severity": "error"
},
{
"code": "HTM_010",
"message": "Namespace uri '%1$s' was found.",
"severity": "usage"
},
{
"code": "HTM_011",
"message": "Entity is undeclared.",
"severity": "error"
},
{
"code": "HTM_011_SUG",
"message": "Define the entity or use the numbered entity instead.",
"severity": "error"
},
{
"code": "HTM_012",
"message": "Found a link to a CFI in an external book.",
"severity": "usage"
},
{
"code": "HTM_013",
"message": "Intra-Publication CFIs found in document.",
"severity": "usage"
},
{
"code": "HTM_014",
"message": "Invalid file extension for HTML file, expecting (html, htm or xhtml).",
"severity": "warning"
},
{
"code": "HTM_014a",
"message": "XHTML Content Document file name '%1$s' should have the extension '.xhtml'.",
"severity": "warning"
},
{
"code": "HTM_015",
"message": "HTML4 DOCTYPE definition within EPUB v3.",
"severity": "suppressed"
},
{
"code": "HTM_016",
"message": "HTML5 DOCTYPE definition within EPUB v2.",
"severity": "suppressed"
},
{
"code": "HTM_017",
"message": "Content file has different language value in attributes xml:lang and lang.",
"severity": "error"
},
{
"code": "HTM_018",
"message": "Content file has invalid language value at attribute xml:lang.",
"severity": "usage"
},
{
"code": "HTM_019",
"message": "Content file has invalid language definition at attribute lang.",
"severity": "usage"
},
{
"code": "HTM_020",
"message": "Content file doesn't contain xml:lang attribute.",
"severity": "usage"
},
{
"code": "HTM_021",
"message": "Content file doesn't contain lang attribute.",
"severity": "usage"
},
{
"code": "HTM_022",
"message": "Document may contain excessive DIV or SPAN tags.",
"severity": "usage"
},
{
"code": "HTM_022_SUG",
"message": "Merge DIV or SPAN tags when they are consecutive and use the same style.",
"severity": "usage"
},
{
"code": "HTM_023",
"message": "An invalid XHTML Named Entity was found: '%1$s'.",
"severity": "warning"
},
{
"code": "HTM_023_SUG",
"message": "Check the spelling or use numbered entities instead.",
"severity": "warning"
},
{
"code": "HTM_024",
"message": "An XHTML Named Entity was found. Only '&amp;' '&apos;' '&quote;' '&lt;' or '&gt;' are allowed.",
"severity": "usage"
},
{
"code": "HTM_024_SUG",
"message": "Check the spelling or use numbered entities instead.",
"severity": "usage"
},
{
"code": "HTM_025",
"message": "Non-registered URI scheme type found in href.",
"severity": "warning"
},
{
"code": "HTM_027",
"message": "List contains less than 2 items.",
"severity": "usage"
},
{
"code": "HTM_027_SUG",
"message": "Lists should have more than one item for accessibility.",
"severity": "usage"
},
{
"code": "HTM_028",
"message": "Input html elements should include an id.",
"severity": "usage"
},
{
"code": "HTM_029",
"message": "Label html elements should include a 'for' attribute referencing the id of an input element.",
"severity": "usage"
},
{
"code": "HTM_033",
"message": "HTML 'head' element does not have a 'title' child element.",
"severity": "usage"
},
{
"code": "HTM_036",
"message": "IFrames are highly discouraged.",
"severity": "suppressed"
},
{
"code": "HTM_038",
"message": "Ensure b, i, em, and strong elements are used in compliance with W3C HTML5 directives.",
"severity": "usage"
},
{
"code": "HTM_038_SUG",
"message": "CSS styles are usually more appropriate for italics or bold text.",
"severity": "usage"
},
{
"code": "HTM_044",
"message": "Namespace uri '%1$s' was included but not used.",
"severity": "usage"
},
{
"code": "HTM_044_SUG",
"message": "Remove unused Namespace URIs.",
"severity": "usage"
},
{
"code": "HTM_045",
"message": "Encountered empty href.",
"severity": "usage"
},
{
"code": "HTM_045_SUG",
"message": "Empty hrefs are valid self-references. These should be validated to ensure that this is the desired intent.",
"severity": "usage"
},
{
"code": "HTM_046",
"message": "Fixed format item has no viewport defined.",
"severity": "error"
},
{
"code": "HTM_046_SUG",
"message": "A viewport declaration is required for fixed format items.",
"severity": "error"
},
{
"code": "HTM_047",
"message": "Html viewport is missing height and/or width.",
"severity": "error"
},
{
"code": "HTM_047_SUG",
"message": "The viewport declaration must declare both width and height.",
"severity": "error"
},
{
"code": "HTM_048",
"message": "SVG Fixed-Layout Documents must have a 'viewBox' attribute (on the outermost 'svg' element).",
"severity": "error"
},
{
"code": "HTM_049",
"message": "Html element does not have an xmlns set to 'http://www.w3.org/1999/xhtml'.",
"severity": "error"
},
{
"code": "HTM_049_SUG",
"message": "Add xmlns='http://www.w3.org/1999/xhtml' to the html element.",
"severity": "error"
},
{
"code": "HTM_050",
"message": "Found epub:type='pagebreak' attribute in content document.",
"severity": "usage"
},
{
"code": "HTM_051",
"message": "Found Microdata semantic enrichments but no RDFa. EDUPUB recommends using RDFa Lite.",
"severity": "warning"
},
{
"code": "HTM_052",
"message": "The property 'region-based' is only allowed on nav elements in Data Navigation Documents.",
"severity": "error"
},
{
"code": "HTM_053",
"message": "Found an external file link (file://) in file: '%1$s'.",
"severity": "info"
}
],
"media": [
{
"code": "MED_001",
"message": "Video poster must have core media image type.",
"severity": "error"
},
{
"code": "MED_002",
"message": "%1$s element doesn't provide fallback.",
"severity": "error"
},
{
"code": "MED_003",
"message": "A manifest fallback must be provided for image resource '%1$s' of type '%2$s'.",
"severity": "error"
},
{
"code": "MED_004",
"message": "Image file header may be corrupted.",
"severity": "error"
},
{
"code": "MED_005",
"message": "Media Overlay audio reference %1$s to non-standard audio type %2$s found.",
"severity": "error"
},
{
"code": "MED_006",
"message": "Some browsers do not support rendering SVG images which use a filename in the xlink:href property.",
"severity": "error"
},
{
"code": "MED_007",
"message": "Foreign resources can only be referenced from 'source' elements with an explicit 'type' attribute; found resource '%1$s' of foreign type '%2$s'.",
"severity": "error"
}
],
"NAV": [
{
"code": "NAV_001",
"message": "The nav file is not supported for EPUB v2.",
"severity": "error"
},
{
"code": "NAV_002",
"message": "Found epub:type='page-list' in nav document",
"severity": "usage"
},
{
"code": "NAV_003",
"message": "The Navigation Document must have a page list when content document(s) contain page breaks (epub:type='pagebreak').",
"severity": "error"
},
{
"code": "NAV_004",
"message": "The Navigation Document should contain the full document heading hierarchy in EDUPUB.",
"severity": "usage"
},
{
"code": "NAV_005",
"message": "Content documents contain 'audio' elements but the Navigation Document does not have a listing of audio clips (epub:type='loa').",
"severity": "usage"
},
{
"code": "NAV_006",
"message": "Content documents contain 'figure' elements but the Navigation Document does not have a listing of figures (epub:type='loi').",
"severity": "usage"
},
{
"code": "NAV_007",
"message": "Content documents contain 'table' elements but the Navigation Document does not have a listing of tables (epub:type='lot').",
"severity": "usage"
},
{
"code": "NAV_008",
"message": "Content documents contain 'video' elements but the Navigation Document does not have a listing of video clips (epub:type='lov').",
"severity": "usage"
},
{
"code": "NAV_009",
"message": "Region-based navigation links must point to Fixed-Layout Documents.",
"severity": "error"
},
{
"code": "NAV_010",
"message": "'%1$s' nav must not link to remote resources; found link to '%2$s'.",
"severity": "error"
},
{
"code": "NAV_011",
"message": "'%1$s' nav must be in reading order; link target '%2$s' is before the previous link's target in %3$s order.",
"severity": "warning"
},
{
"code": "NAV_011_SUG.spine",
"message": "spine",
"severity": "warning"
},
{
"code": "NAV_011_SUG.document",
"message": "document",
"severity": "warning"
}
],
"NCX": [
{
"code": "NCX_001",
"message": "NCX identifier ('%1$s') does not match OPF identifier ('%2$s').",
"severity": "error"
},
{
"code": "NCX_002",
"message": "toc attribute was not found on the spine element.",
"severity": "error"
},
{
"code": "NCX_003",
"message": "An .NCX file is required for TOC navigation on EPUB v2 readers.",
"severity": "usage"
},
{
"code": "NCX_004",
"message": "NCX identifier ('dtb:uid' metadata) should not contain leading or trailing whitespace.",
"severity": "usage"
},
{
"code": "NCX_005",
"message": "Found ncx 'page-list' in .ncx file",
"severity": "usage"
},
{
"code": "NCX_006",
"message": "Empty 'text' label in the NCX document",
"severity": "usage"
}
],
"OPF": [
{
"code": "OPF_001",
"message": "There was an error when parsing the EPUB version: %1$s.",
"severity": "error"
},
{
"code": "OPF_002",
"message": "The OPF file '%1$s' was not found in the EPUB.",
"severity": "fatal"
},
{
"code": "OPF_003",
"message": "Item '%1$s' exists in the EPUB, but is not declared in the OPF manifest.",
"severity": "warning"
},
{
"code": "OPF_004",
"message": "Invalid prefix declaration: leading or trailing whitespace is not allowed.",
"severity": "warning"
},
{
"code": "OPF_004a",
"message": "Invalid prefix declaration: found empty prefix.",
"severity": "error"
},
{
"code": "OPF_004b",
"message": "Invalid prefix '%1$s': must be a valid non-colonized name (aka 'NCName').",
"severity": "error"
},
{
"code": "OPF_004c",
"message": "Invalid prefix declaration: prefix '%1$s' must be immediately followed by a colon character (':').",
"severity": "error"
},
{
"code": "OPF_004d",
"message": "Invalid prefix declaration: prefix '%1$s' must be separated by its URI with a space.",
"severity": "error"
},
{
"code": "OPF_004e",
"message": "Invalid prefix declaration: found illegal whitespace between prefix and URI.",
"severity": "warning"
},
{
"code": "OPF_004f",
"message": "Invalid prefix declaration: found illegal whitespace between prefix mappings.",
"severity": "warning"
},
{
"code": "OPF_005",
"message": "Invalid prefix declaration: URI for prefix '%1$s' doesn't exist.",
"severity": "error"
},
{
"code": "OPF_006",
"message": "Invalid prefix declaration: URI '%1$s' is not a valid URI.",
"severity": "error"
},
{
"code": "OPF_007",
"message": "Re-declaration of reserved prefix '%1$s'.",
"severity": "warning"
},
{
"code": "OPF_007a",
"message": "Invalid prefix mapping: prefix '_' must not be declared.",
"severity": "error"
},
{
"code": "OPF_007b",
"message": "Invalid prefix mapping: default vocabulary '%1$s' must not be re-declared.",
"severity": "warning"
},
{
"code": "OPF_008",
"message": "Handler binding for core Media-type '%1$s' is not allowed.",
"severity": "error"
},
{
"code": "OPF_009",
"message": "The media-type '%1$s' has already been assigned a handler, with ID '%2$s'.",
"severity": "error"
},
{
"code": "OPF_010",
"message": "Error resolving reference: '%1$s'.",
"severity": "error"
},
{
"code": "OPF_011",
"message": "itemref can't have both page-spread-right and page-spread-left properties.",
"severity": "error"
},
{
"code": "OPF_012",
"message": "Item property '%1$s' is not defined for media type '%2$s'.",
"severity": "error"
},
{
"code": "OPF_013",
"message": "The type property '%1$s' on the object tag does not match the declared media-type '%2$s' in the OPF manifest.",
"severity": "error"
},
{
"code": "OPF_014",
"message": "The property '%1$s' should be declared in the OPF file.",
"severity": "error"
},
{
"code": "OPF_015",
"message": "The property '%1$s' should not be declared in the OPF file.",
"severity": "error"
},
{
"code": "OPF_016",
"message": "The element 'rootfile' is missing its required attribute 'full-path'.",
"severity": "error"
},
{
"code": "OPF_017",
"message": "The attribute 'full-path' on element 'rootfile' must not be empty.",
"severity": "error"
},
{
"code": "OPF_018",
"message": "The 'remote-resources' property was declared in the Package Document, but no reference to remote resources has been found.",
"severity": "error"
},
{
"code": "OPF_018b",
"message": "The 'remote-resources' property was declared in the Package Document, but no reference to remote resources has been found; please check scripted content to make sure the property is legit. ",
"severity": "error"
},
{
"code": "OPF_019",
"message": "Spine tag was not found in the OPF file.",
"severity": "fatal"
},
{
"code": "OPF_020",
"message": "Excessive number of spine items.",
"severity": "suppressed"
},
{
"code": "OPF_021",
"message": "Use of non-registered URI scheme type in href: '%1$s'.",
"severity": "warning"
},
{
"code": "OPF_025",
"message": "Property value list '%1$s' is not allowed, only one value must be specified.",
"severity": "error"
},
{
"code": "OPF_026",
"message": "Found malformed property value: '%1$s'.",
"severity": "error"
},
{
"code": "OPF_027",
"message": "Undefined property: '%1$s'.",
"severity": "error"
},
{
"code": "OPF_028",
"message": "Undeclared prefix: '%1$s'.",
"severity": "error"
},
{
"code": "OPF_029",
"message": "The file '%1$s' does not appear to match the media type %2$s, as specified in the OPF file.",
"severity": "error"
},
{
"code": "OPF_030",
"message": "The unique-identifier '%1$s' was not found.",
"severity": "error"
},
{
"code": "OPF_031",
"message": "File listed in reference element in guide was not declared in OPF manifest: %1$s.",
"severity": "error"
},
{
"code": "OPF_032",
"message": "Guide references '%1$s' which is not a valid 'OPS Content Document'.",
"severity": "error"
},
{
"code": "OPF_033",
"message": "The spine contains no linear resources.",
"severity": "error"
},
{
"code": "OPF_034",
"message": "The spine contains multiple references to the manifest item with id '%1$s'.",
"severity": "error"
},
{
"code": "OPF_035",
"message": "Media type 'text/html' is not appropriate for XHTML/OPS.",
"severity": "warning"
},
{
"code": "OPF_035_SUG",
"message": "Use 'application/xhtml+xml' instead.",
"severity": "warning"
},
{
"code": "OPF_036",
"message": "Video type '%1$s' might not be supported by reading systems",
"severity": "usage"
},
{
"code": "OPF_036_SUG",
"message": "Use 'video/mp4', 'video/h264' or 'video/webm' instead.",
"severity": "usage"
},
{
"code": "OPF_037",
"message": "Found deprecated media-type '%1$s'.",
"severity": "warning"
},
{
"code": "OPF_038",
"message": "Media type '%1$s' is not appropriate for an OEBPS 1.2 context; Use 'text/x-oeb1-document' instead.",
"severity": "warning"
},
{
"code": "OPF_039",
"message": "Media-type '%1$s' is not appropriate in an OEBPS 1.2 context. Use 'text/x-oeb1-css' instead.",
"severity": "warning"
},
{
"code": "OPF_040",
"message": "Fallback item could not be found.",
"severity": "error"
},
{
"code": "OPF_041",
"message": "Fallback-style item could not be found.",
"severity": "error"
},
{
"code": "OPF_042",
"message": "'%1$s' is not a permissible spine media-type.",
"severity": "error"
},
{
"code": "OPF_043",
"message": "Spine item with non-standard media-type '%1$s' has no fallback.",
"severity": "error"
},
{
"code": "OPF_044",
"message": "Spine item with non-standard media-type '%1$s' has a fallback to non-standard media-type.",
"severity": "error"
},
{
"code": "OPF_045",
"message": "Encountered circular reference in fallback chain.",
"severity": "error"
},
{
"code": "OPF_046",
"message": "Scripted property is not set on mediaType handler.",
"severity": "error"
},
{
"code": "OPF_047",
"message": "OPF file is using OEBPS 1.2 syntax allowing backwards compatibility.",
"severity": "error"
},
{
"code": "OPF_048",
"message": "Package tag is missing its required unique-identifier attribute and value.",
"severity": "error"
},
{
"code": "OPF_049",
"message": "Item id '%1$s' was not found in the manifest.",
"severity": "error"
},
{
"code": "OPF_050",
"message": "TOC attribute references resource with non-NCX mime type; 'application/x-dtbncx+xml' is expected.",
"severity": "error"
},
{
"code": "OPF_051",
"message": "Image dimensions exceed recommended size.",
"severity": "suppressed"
},
{
"code": "OPF_052",
"message": "Role value '%1$s' is not valid.",
"severity": "error"
},
{
"code": "OPF_053",
"message": "Date value '%1$s' does not follow recommended syntax as per http://www.w3.org/TR/NOTE-datetime:%2$s.",
"severity": "warning"
},
{
"code": "OPF_054",
"message": "Date value '%1$s' is not valid as per http://www.w3.org/TR/NOTE-datetime:%2$s.",
"severity": "error"
},
{
"code": "OPF_055",
"message": "%1$s tag is empty.",
"severity": "warning"
},
{
"code": "OPF_056",
"message": "Media type '%1$s' is not a core audio type.",
"severity": "usage"
},
{
"code": "OPF_057",
"message": "Image file length exceeds recommended size.",
"severity": "suppressed"
},
{
"code": "OPF_058",
"message": "Spine item '%1$s' is not referenced from the TOC in the Nav Doc.",
"severity": "usage"
},
{
"code": "OPF_058_SUG",
"message": "Every spine item in the manifest should be referenced by at least one TOC entry in the Nav Doc.",
"severity": "usage"
},
{
"code": "OPF_059",
"message": "Spine item '%1$s' is not referenced from the TOC in the NCX.",
"severity": "usage"
},
{
"code": "OPF_059_SUG",
"message": "Every spine item in the manifest should be referenced by at least one TOC entry in the NCX file.",
"severity": "usage"
},
{
"code": "OPF_060",
"message": "Duplicate entry in the ZIP file: '%1$s'.",
"severity": "error"
},
{
"code": "OPF_061",
"message": "Duplicate entry in the ZIP file (after Unicode NFC normalization) '%1$s'.",
"severity": "warning"
},
{
"code": "OPF_062",
"message": "Found Adobe page-map attribute on spine element in opf file.",
"severity": "usage"
},
{
"code": "OPF_063",
"message": "Referenced Adobe page-map item '%1$s' was not found in the manifest.",
"severity": "warning"
},
{
"code": "OPF_064",
"message": "OPF declares type '%1$s', validating using profile '%2$s'.",
"severity": "info"
},
{
"code": "OPF_065",
"message": "Invalid metadata declaration, probably due to a cycle in 'refines' metadata.",
"severity": "error"
},
{
"code": "OPF_066",
"message": "Missing 'dc:source' or 'source-of' pagination metadata. The pagination source must be identified using the 'dc:source' and 'source-of' properties when the content includes page break markers.",
"severity": "error"
},
{
"code": "OPF_067",
"message": "The resource '%1$s' must not be listed both as a 'link' element in the package metadata and as a manifest item.",
"severity": "error"
},
{
"code": "OPF_068",
"message": "Unknown collection role '%1$s'.",
"severity": "error"
},
{
"code": "OPF_069",
"message": "Custom collection role URI '%1$s' must not include the string 'idpf.org' in its host component.",
"severity": "error"
},
{
"code": "OPF_070",
"message": "Custom collection role '%1$s' is an invalid URI.",
"severity": "warning"
},
{
"code": "OPF_071",
"message": "Index collections must only contain resources pointing to XHTML Content Documents.",
"severity": "error"
},
{
"code": "OPF_072",
"message": "Metadata element '%1$s' is empty.",
"severity": "usage"
},
{
"code": "OPF_073",
"message": "External identifiers must not appear in the document type declaration.",
"severity": "error"
},
{
"code": "OPF_074",
"message": "Package resource '%1$s' is declared in several manifest item.",
"severity": "error"
},
{
"code": "OPF_075",
"message": "Preview collections must only point to EPUB Content Documents.",
"severity": "error"
},
{
"code": "OPF_076",
"message": "The URI of preview collections link elements must not include EPUB canonical fragment identifiers.",
"severity": "error"
},
{
"code": "OPF_077",
"message": "A Data Navigation Document should not be included in the spine.",
"severity": "warning"
},
{
"code": "OPF_078",
"message": "An EPUB Dictionary must contain at least one Content Document with dictionary content (epub:type 'dictionary').",
"severity": "error"
},
{
"code": "OPF_079",
"message": "Dictionary content was found (epub:type 'dictionary'), the Package Document should declare the dc:type 'dictionary'.",
"severity": "warning"
},
{
"code": "OPF_080",
"message": "A Search Key Map document file name should have the extension '.xml'.",
"severity": "warning"
},
{
"code": "OPF_081",
"message": "Resource '%1$s' (referenced from an EPUB Dictionary collection) was not found.",
"severity": "error"
},
{
"code": "OPF_082",
"message": "Found an EPUB Dictionary collection containing more than one Search Key Map Document.",
"severity": "error"
},
{
"code": "OPF_083",
"message": "Found an EPUB Dictionary collection containing no Search Key Map Document.",
"severity": "error"
},
{
"code": "OPF_084",
"message": "Found an EPUB Dictionary collection containing resource '%1$s' which is neither a Search Key Map Document nor an XHTML Content Document.",
"severity": "error"
},
{
"code": "OPF_085",
"message": "'dc:identifier' value '%1$s' is marked as a UUID, but is an invalid UUID.",
"severity": "warning"
},
{
"code": "OPF_086",
"message": "Property '%1$s' is deprecated. Consider using %2$s instead.",
"severity": "warning"
},
{
"code": "OPF_086_SUG.default",
"message": "a custom prefixed property",
"severity": "warning"
},
{
"code": "OPF_086_SUG.marc21xml-record",
"message": "the 'record' keyword and the media-type 'application/marcxml+xml'",
"severity": "warning"
},
{
"code": "OPF_086_SUG.mods-record",
"message": "the 'record' keyword and the media-type 'application/mods+xml'",
"severity": "warning"
},
{
"code": "OPF_086_SUG.onix-record",
"message": "the 'record' keyword with the properties attribute value 'onix'",
"severity": "warning"
},
{
"code": "OPF_086_SUG.xml-signature",
"message": "no signature-identifying link",
"severity": "warning"
},
{
"code": "OPF_086_SUG.xmp-record",
"message": "the 'record' keyword with the properties attribute value 'xmp'",
"severity": "warning"
},
{
"code": "OPF_086b",
"message": "epub:type value '%1$s' is deprecated. Consider using %2$s instead.",
"severity": "usage"
},
{
"code": "OPF_086b_SUG.default",
"message": "a custom prefixed value",
"severity": "usage"
},
{
"code": "OPF_086b_SUG.annoref",
"message": "open annotations",
"severity": "usage"
},
{
"code": "OPF_086b_SUG.annotation",
"message": "open annotations",
"severity": "usage"
},
{
"code": "OPF_086b_SUG.help",
"message": "the 'tip' property",
"severity": "usage"
},
{
"code": "OPF_086b_SUG.marginalia",
"message": "a bare 'aside' element",
"severity": "usage"
},
{
"code": "OPF_086b_SUG.note",
"message": "a 'footnote' or 'endnote' property",
"severity": "usage"
},
{
"code": "OPF_086b_SUG.rearnote",
"message": "the 'endnote' property",
"severity": "usage"
},
{
"code": "OPF_086b_SUG.rearnotes",
"message": "the 'endnotes' property",
"severity": "usage"
},
{
"code": "OPF_086b_SUG.sidebar",
"message": "a bare 'aside' element",
"severity": "usage"
},
{
"code": "OPF_086b_SUG.warning",
"message": "the 'notice' property",
"severity": "usage"
},
{
"code": "OPF_087",
"message": "epub:type value '%1$s' is not allowed on documents of type '%2$s'.",
"severity": "usage"
},
{
"code": "OPF_088",
"message": "Unrecognized epub:type value '%1$s'.",
"severity": "usage"
},
{
"code": "OPF_089",
"message": "The 'alternate' link rel keyword cannot be paired with other keywords.",
"severity": "error"
},
{
"code": "OPF_090",
"message": "It is encouraged to use MIME media type '%1$s' instead of '%2$s'. ",
"severity": "usage"
}
],
"Package": [
{
"code": "PKG_001",
"message": "Validating the EPUB against version %1$s but detected version %2$s.",
"severity": "warning"
},
{
"code": "PKG_003",
"message": "Unable to read EPUB file header. This is likely a corrupted EPUB file.",
"severity": "error"
},
{
"code": "PKG_004",
"message": "Corrupted EPUB ZIP header.",
"severity": "fatal"
},
{
"code": "PKG_005",
"message": "The mimetype file has an extra field of length %1$s. The use of the extra field feature of the ZIP format is not permitted for the mimetype file.",
"severity": "error"
},
{
"code": "PKG_006",
"message": "Mimetype file entry is missing or is not the first file in the archive.",
"severity": "error"
},
{
"code": "PKG_007",
"message": "Mimetype file should only contain the string 'application/epub+zip' and should not be compressed.",
"severity": "error"
},
{
"code": "PKG_008",
"message": "Unable to read file '%1$s'.",
"severity": "fatal"
},
{
"code": "PKG_009",
"message": "File name contains characters that are not allowed in OCF file names: '%1$s'.",
"severity": "error"
},
{
"code": "PKG_010",
"message": "Filename contains spaces, therefore URI escaping is necessary. Consider removing spaces from filename.",
"severity": "warning"
},
{
"code": "PKG_011",
"message": "Filename is not allowed to end with '.'.",
"severity": "error"
},
{
"code": "PKG_012",
"message": "File name contains the following non-ascii characters: %1$s. Consider changing the filename.",
"severity": "warning"
},
{
"code": "PKG_013",
"message": "The EPUB file includes multiple OPS renditions.",
"severity": "error"
},
{
"code": "PKG_014",
"message": "The EPUB contains empty directory '%1$s'.",
"severity": "warning"
},
{
"code": "PKG_015",
"message": "Unable to read EPUB contents: %1$s",
"severity": "fatal"
},
{
"code": "PKG_016",
"message": "Use only lowercase characters for the EPUB file extension for maximum compatibility.",
"severity": "warning"
},
{
"code": "PKG_016_SUG",
"message": "For maximum compatibility, use '.epub'.",
"severity": "warning"
},
{
"code": "PKG_017",
"message": "Uncommon EPUB file extension.",
"severity": "warning"
},
{
"code": "PKG_017_SUG",
"message": "For maximum compatibility, use '.epub'.",
"severity": "warning"
},
{
"code": "PKG_018",
"message": "The EPUB file could not be found.",
"severity": "fatal"
},
{
"code": "PKG_020",
"message": "OPF file '%1$s' could not be found.",
"severity": "error"
},
{
"code": "PKG_021",
"message": "Corrupted image file encountered.",
"severity": "error"
},
{
"code": "PKG_022",
"message": "Wrong file extension for image. The image is a '%1$s' file but has the file extension '%2$s'.",
"severity": "warning"
},
{
"code": "PKG_023",
"message": "Validating the EPUB against version 2.0, default validation profile will be used.",
"severity": "usage"
},
{
"code": "PKG_024",
"message": "Uncommon EPUB file extension.",
"severity": "info"
},
{
"code": "PKG_024_SUG",
"message": "For maximum compatibility, use '.epub'.",
"severity": "info"
}
],
"Resources": [
{
"code": "RSC_001",
"message": "File '%1$s' could not be found.",
"severity": "error"
},
{
"code": "RSC_002",
"message": "Required META-INF/container.xml resource could not be found.",
"severity": "fatal"
},
{
"code": "RSC_003",
"message": "No rootfile tag with media type 'application/oebps-package+xml' was found in the container.",
"severity": "error"
},
{
"code": "RSC_004",
"message": "File '%1$s' could not be decrypted.",
"severity": "error"
},
{
"code": "RSC_005",
"message": "Error while parsing file: %1$s",
"severity": "error"
},
{
"code": "RSC_006",
"message": "Remote resource reference not allowed; resource must be placed in the OCF.",
"severity": "error"
},
{
"code": "RSC_006b",
"message": "Resource '%1$s' is located outside the EPUB Container; please check the resource is retrieved in scripted content. ",
"severity": "usage"
},
{
"code": "RSC_007",
"message": "Referenced resource '%1$s' could not be found in the EPUB.",
"severity": "error"
},
{
"code": "RSC_007w",
"message": "Referenced resource '%1$s' could not be found in the EPUB.",
"severity": "warning"
},
{
"code": "RSC_008",
"message": "Referenced resource '%1$s' is not declared in the OPF manifest.",
"severity": "error"
},
{
"code": "RSC_009",
"message": "A non-SVG image resource should not be defined with a fragment identifier.",
"severity": "error"
},
{
"code": "RSC_010",
"message": "Reference to non-standard resource type found.",
"severity": "error"
},
{
"code": "RSC_011",
"message": "Found a reference to a resource that is not a spine item.",
"severity": "error"
},
{
"code": "RSC_012",
"message": "Fragment identifier is not defined.",
"severity": "error"
},
{
"code": "RSC_013",
"message": "Fragment identifier is used in a reference to a stylesheet resource.",
"severity": "error"
},
{
"code": "RSC_014",
"message": "Fragment identifier defines an incompatible resource type.",
"severity": "error"
},
{
"code": "RSC_015",
"message": "A fragment identifier is required for svg use tag references.",
"severity": "error"
},
{
"code": "RSC_016",
"message": "Fatal Error while parsing file: %1$s",
"severity": "fatal"
},
{
"code": "RSC_017",
"message": "Warning while parsing file: %1$s",
"severity": "warning"
},
{
"code": "RSC_018",
"message": "Alternative image file '%1$s' could not be found.",
"severity": "warning"
},
{
"code": "RSC_019",
"message": "EPUBs with Multiple Renditions should contain a META-INF/metadata.xml file.",
"severity": "warning"
},
{
"code": "RSC_020",
"message": "'%1$s' is not a valid URI.",
"severity": "error"
},
{
"code": "RSC_021",
"message": "A Search Key Map Document must point to Content Documents ('%1$s' was not found in the spine).",
"severity": "error"
},
{
"code": "RSC_022",
"message": "Cannot check image details (requires Java version 7 or higher).",
"severity": "info"
},
{
"code": "RSC_023",
"message": "The URL '%1$s' is missing %2$d slash(es) '/' after the protocol '%3$s:'",
"severity": "warning"
}
],
"Scripting": [
{
"code": "SCP_001",
"message": "Use of Javascript eval() function in EPUB scripts is a security risk.",
"severity": "usage"
},
{
"code": "SCP_002",
"message": "Use of XMLHttpRequest in EPUB scripts is a security risk.",
"severity": "usage"
},
{
"code": "SCP_003",
"message": "Local and Session Storage is not currently supported.",
"severity": "usage"
},
{
"code": "SCP_004",
"message": "Content file contains script which is not supported in EPUB v2.",
"severity": "error"
},
{
"code": "SCP_005",
"message": "Content file contains script but it is not marked as scripted.",
"severity": "error"
},
{
"code": "SCP_006",
"message": "Inline scripts found.",
"severity": "usage"
},
{
"code": "SCP_007",
"message": "Script references 'innerHtml'.",
"severity": "usage"
},
{
"code": "SCP_007_SUG",
"message": "Use a DOM instead.",
"severity": "usage"
},
{
"code": "SCP_008",
"message": "Script references 'innerText'.",
"severity": "usage"
},
{
"code": "SCP_008_SUG",
"message": "Use 'textContent' instead.",
"severity": "usage"
},
{
"code": "SCP_009",
"message": "Content file uses mouse event handlers.",
"severity": "usage"
},
{
"code": "SCP_009_SUG",
"message": "Ensure that all mouse driven functionality is accessible from the keyboard and touch devices.",
"severity": "usage"
},
{
"code": "SCP_010",
"message": "Epub 3 content file contains script.",
"severity": "usage"
}
]
}`;
const data = JSON.parse(json);
const doRows = (prop) => {
let rows = ``;
for (let item of prop) {
rows += `<tr>
<td>${item.code}</td>
<td>${item.message}</td>
<td>${item.severity}</td>
</tr>`;
}
return rows;
};
for (let prop in data) {
document.body.innerHTML += `
<h2>${prop}</h2>
<table class="tablesaw tablesaw-row-zebra" data-tablesaw-sortable data-tablesaw-sortable-switch>
<thead>
<tr>
<th data-tablesaw-sortable-col>Code</th>
<th>Message</th>
<th data-tablesaw-sortable-col>Severity</th>
</tr>
</thead>
<tbody>
${doRows(data[prop])}
</tbody>
</table>
`;
}
</script>
</body>
</html>
{
"Info": [
{
"code": "INF_001",
"message": "The previous rule is under review and its severity may change in a future release. See the discussion at %1$s",
"severity": "info"
}
],
"Accessibility": [
{
"code": "ACC_001",
"message": "'img' or 'area' HTML element has no 'alt' attribute.",
"severity": "usage"
},
{
"code": "ACC_002",
"message": "'input' HTML element is not referenced by a corresponding label element.",
"severity": "usage"
},
{
"code": "ACC_003",
"message": "Non-text html elements should include a 'title' attribute for accessibility.",
"severity": "suppressed"
},
{
"code": "ACC_004",
"message": "Html 'a' element must have text.",
"severity": "suppressed"
},
{
"code": "ACC_005",
"message": "Table heading cells should be identified by 'th' elements for accessibility.",
"severity": "suppressed"
},
{
"code": "ACC_006",
"message": "Tables should include a 'thead' element for accessibility.",
"severity": "suppressed"
},
{
"code": "ACC_007",
"message": "Content Documents do not use 'epub:type' attributes for semantic inflection.",
"severity": "usage"
},
{
"code": "ACC_008",
"message": "Navigation Document has no 'landmarks nav' element.",
"severity": "usage"
},
{
"code": "ACC_009",
"message": "MathML should either have an 'alttext' attribute or 'annotation-xml' child element.",
"severity": "warning"
},
{
"code": "ACC_010",
"message": "Headings should not be used within blockquote and figure elements.",
"severity": "suppressed"
},
{
"code": "ACC_011",
"message": "SVG hyperlinks should have a human-readable title (using the 'title' child element or the 'xlink:title' attribute).",
"severity": "usage"
},
{
"code": "ACC_012",
"message": "Table elements should include a caption element.",
"severity": "usage"
},
{
"code": "ACC_013",
"message": "Content file contains at least one inline style declaration.",
"severity": "usage"
},
{
"code": "ACC_013_SUG",
"message": "Inline styles are not compatible with accessibility settings and display personalization. Use CSS Styles instead.",
"severity": "usage"
},
{
"code": "ACC_014",
"message": "Value of CSS property 'font-size' does not use a relative size: '%1$s'",
"severity": "usage"
},
{
"code": "ACC_014_SUG",
"message": "Acceptable values include percentages, em multiples, 'larger', 'smaller', 'normal' or 'inherit'.",
"severity": "usage"
},
{
"code": "ACC_015",
"message": "Value of CSS property 'line-height' does not use a relative size.",
"severity": "usage"
},
{
"code": "ACC_015_SUG",
"message": "Acceptable values include percentages, numeric multiples, em multiples, 'normal', or 'inherit'.",
"severity": "usage"
},
{
"code": "ACC_016",
"message": "Value of CSS property 'font-size' should use a relative size: '%1$s'",
"severity": "usage"
},
{
"code": "ACC_016_SUG",
"message": "Acceptable values include percentages, em multiples, 'larger', 'smaller', 'normal' or 'inherit'.",
"severity": "usage"
},
{
"code": "ACC_017",
"message": "Value of CSS property 'line-height' does not use a relative size.",
"severity": "usage"
},
{
"code": "ACC_017_SUG",
"message": "Acceptable values include percentages, numeric multiples, em multiples, 'normal', or 'inherit'.",
"severity": "usage"
}
],
"CheckerErrors": [
{
"code": "CHK_001",
"message": "The custom message overrides file was not found.",
"severity": "error"
},
{
"code": "CHK_002",
"message": "Unrecognized custom message id %1$s encountered in message overrides file '%2$s'.",
"severity": "error"
},
{
"code": "CHK_003",
"message": "Unrecognized custom message severity '%1$s' encountered in message overrides file '%2$s'.",
"severity": "error"
},
{
"code": "CHK_004",
"message": "The custom message contains too many parameters in message overrides file '%1$s'.",
"severity": "error"
},
{
"code": "CHK_005",
"message": "The custom suggestion contains too many parameters in message overrides file '%1$s'.",
"severity": "error"
},
{
"code": "CHK_006",
"message": "Unable to parse the custom format parameter in message overrides file '%1$s'.",
"severity": "error"
},
{
"code": "CHK_007",
"message": "Error encountered while processing custom message file '%1$s': '%2$s'.",
"severity": "error"
},
{
"code": "CHK_008",
"message": "Error encountered while processing an item '%1$s'; skip other checks for the item.",
"severity": "error"
}
],
"CSS": [
{
"code": "CSS_001",
"message": "The '%1$s' property must not be included in an EPUB Style Sheet.",
"severity": "error"
},
{
"code": "CSS_002",
"message": "Empty or NULL reference found.",
"severity": "error"
},
{
"code": "CSS_003",
"message": "Only UTF-8 and UTF-16 encodings are allowed, detected %1$s.",
"severity": "error"
},
{
"code": "CSS_004",
"message": "Only UTF-8 and UTF-16 encodings are allowed, detected %1$s BOM.",
"severity": "error"
},
{
"code": "CSS_005",
"message": "Conflicting alternate style attributes found: %1$s.",
"severity": "error"
},
{
"code": "CSS_006",
"message": "CSS selector specifies fixed position.",
"severity": "warning"
},
{
"code": "CSS_007",
"message": "Font-face reference %1$s refers to non-standard font type %2$s.",
"severity": "info"
},
{
"code": "CSS_008",
"message": "An error occurred while parsing the CSS: %1$s.",
"severity": "error"
},
{
"code": "CSS_009",
"message": "Use of certain CSS such as Columns, Transforms, Transitions, box-sizing or KeyFrames can cause pagination issues.",
"severity": "usage"
},
{
"code": "CSS_010",
"message": "Stylesheet of type other than 'text/css' must have a fallback.",
"severity": "error"
},
{
"code": "CSS_011",
"message": "Excessive number of css files.",
"severity": "suppressed"
},
{
"code": "CSS_011_SUG",
"message": "Consider merging CSS files to reduce the number of CSS files.",
"severity": "suppressed"
},
{
"code": "CSS_012",
"message": "Document links to multiple CSS files.",
"severity": "usage"
},
{
"code": "CSS_013",
"message": "CSS property is declared !Important.",
"severity": "usage"
},
{
"code": "CSS_015",
"message": "Alternate Stylesheet has no title.",
"severity": "error"
},
{
"code": "CSS_016",
"message": "Alternate Stylesheet precedes primary stylesheet.",
"severity": "suppressed"
},
{
"code": "CSS_017",
"message": "CSS selector specifies absolute position.",
"severity": "warning"
},
{
"code": "CSS_019",
"message": "CSS font-face declaration has no attributes.",
"severity": "warning"
},
{
"code": "CSS_020",
"message": "CSS font selector declaration uses unexpected font-size value '%1$s'.",
"severity": "error"
},
{
"code": "CSS_020_SUG",
"message": "Acceptable values include percentages, em multiples, 'larger', 'smaller', 'normal' or 'inherit'.",
"severity": "error"
},
{
"code": "CSS_021",
"message": "Shorthand CSS property 'font-family' specifies an invalid System Font.",
"severity": "usage"
},
{
"code": "CSS_021_SUG",
"message": "Acceptable values include 'caption', 'icon', 'menu', 'message-box', 'small-caption', 'status-bar', or 'inherit'.",
"severity": "usage"
},
{
"code": "CSS_022",
"message": "CSS selector specifies global margin setting.",
"severity": "usage"
},
{
"code": "CSS_023",
"message": "CSS selector specifies media query.",
"severity": "usage"
},
{
"code": "CSS_024",
"message": "CSS class Selector is not used.",
"severity": "usage"
},
{
"code": "CSS_024_SUG",
"message": "Remove unused CSS selectors.",
"severity": "usage"
},
{
"code": "CSS_025",
"message": "CSS class Selector could not be found.",
"severity": "usage"
},
{
"code": "CSS_025_SUG",
"message": "Check for typos or define a class selector to document the use of the class.",
"severity": "usage"
},
{
"code": "CSS_028",
"message": "Use of Font-face declaration.",
"severity": "usage"
}
],
"XHTML": [
{
"code": "HTM_001",
"message": "Any publication resource that is an XML-based media type must be a valid XML 1.0 document. XML version found: %1$s.",
"severity": "error"
},
{
"code": "HTM_002",
"message": "The installed xml parser doesn't support xml version verification. Xml files must be a valid XML 1.0 document.",
"severity": "warning"
},
{
"code": "HTM_003",
"message": "External entities are not allowed in EPUB v3 documents. External entity declaration found: %1$s.",
"severity": "error"
},
{
"code": "HTM_004",
"message": "Irregular DOCTYPE: found '%1$s', expected '%2$s'.",
"severity": "error"
},
{
"code": "HTM_005",
"message": "An external reference was found.",
"severity": "usage"
},
{
"code": "HTM_006",
"message": "An XHTML Named Entity was found.",
"severity": "usage"
},
{
"code": "HTM_007",
"message": "Empty or whitespace-only value of attribute ssml:ph.",
"severity": "warning"
},
{
"code": "HTM_008",
"message": "The src attribute is required.",
"severity": "error"
},
{
"code": "HTM_009",
"message": "The DOCTYPE provided is obsolete or irregular and can be removed.",
"severity": "error"
},
{
"code": "HTM_010",
"message": "Namespace uri '%1$s' was found.",
"severity": "usage"
},
{
"code": "HTM_011",
"message": "Entity is undeclared.",
"severity": "error"
},
{
"code": "HTM_011_SUG",
"message": "Define the entity or use the numbered entity instead.",
"severity": "error"
},
{
"code": "HTM_012",
"message": "Found a link to a CFI in an external book.",
"severity": "usage"
},
{
"code": "HTM_013",
"message": "Intra-Publication CFIs found in document.",
"severity": "usage"
},
{
"code": "HTM_014",
"message": "Invalid file extension for HTML file, expecting (html, htm or xhtml).",
"severity": "warning"
},
{
"code": "HTM_014a",
"message": "XHTML Content Document file name '%1$s' should have the extension '.xhtml'.",
"severity": "warning"
},
{
"code": "HTM_015",
"message": "HTML4 DOCTYPE definition within EPUB v3.",
"severity": "suppressed"
},
{
"code": "HTM_016",
"message": "HTML5 DOCTYPE definition within EPUB v2.",
"severity": "suppressed"
},
{
"code": "HTM_017",
"message": "Content file has different language value in attributes xml:lang and lang.",
"severity": "error"
},
{
"code": "HTM_018",
"message": "Content file has invalid language value at attribute xml:lang.",
"severity": "usage"
},
{
"code": "HTM_019",
"message": "Content file has invalid language definition at attribute lang.",
"severity": "usage"
},
{
"code": "HTM_020",
"message": "Content file doesn't contain xml:lang attribute.",
"severity": "usage"
},
{
"code": "HTM_021",
"message": "Content file doesn't contain lang attribute.",
"severity": "usage"
},
{
"code": "HTM_022",
"message": "Document may contain excessive DIV or SPAN tags.",
"severity": "usage"
},
{
"code": "HTM_022_SUG",
"message": "Merge DIV or SPAN tags when they are consecutive and use the same style.",
"severity": "usage"
},
{
"code": "HTM_023",
"message": "An invalid XHTML Named Entity was found: '%1$s'.",
"severity": "warning"
},
{
"code": "HTM_023_SUG",
"message": "Check the spelling or use numbered entities instead.",
"severity": "warning"
},
{
"code": "HTM_024",
"message": "An XHTML Named Entity was found. Only '&amp;' '&apos;' '&quote;' '&lt;' or '&gt;' are allowed.",
"severity": "usage"
},
{
"code": "HTM_024_SUG",
"message": "Check the spelling or use numbered entities instead.",
"severity": "usage"
},
{
"code": "HTM_025",
"message": "Non-registered URI scheme type found in href.",
"severity": "warning"
},
{
"code": "HTM_027",
"message": "List contains less than 2 items.",
"severity": "usage"
},
{
"code": "HTM_027_SUG",
"message": "Lists should have more than one item for accessibility.",
"severity": "usage"
},
{
"code": "HTM_028",
"message": "Input html elements should include an id.",
"severity": "usage"
},
{
"code": "HTM_029",
"message": "Label html elements should include a 'for' attribute referencing the id of an input element.",
"severity": "usage"
},
{
"code": "HTM_033",
"message": "HTML 'head' element does not have a 'title' child element.",
"severity": "usage"
},
{
"code": "HTM_036",
"message": "IFrames are highly discouraged.",
"severity": "suppressed"
},
{
"code": "HTM_038",
"message": "Ensure b, i, em, and strong elements are used in compliance with W3C HTML5 directives.",
"severity": "usage"
},
{
"code": "HTM_038_SUG",
"message": "CSS styles are usually more appropriate for italics or bold text.",
"severity": "usage"
},
{
"code": "HTM_044",
"message": "Namespace uri '%1$s' was included but not used.",
"severity": "usage"
},
{
"code": "HTM_044_SUG",
"message": "Remove unused Namespace URIs.",
"severity": "usage"
},
{
"code": "HTM_045",
"message": "Encountered empty href.",
"severity": "usage"
},
{
"code": "HTM_045_SUG",
"message": "Empty hrefs are valid self-references. These should be validated to ensure that this is the desired intent.",
"severity": "usage"
},
{
"code": "HTM_046",
"message": "Fixed format item has no viewport defined.",
"severity": "error"
},
{
"code": "HTM_046_SUG",
"message": "A viewport declaration is required for fixed format items.",
"severity": "error"
},
{
"code": "HTM_047",
"message": "Html viewport is missing height and/or width.",
"severity": "error"
},
{
"code": "HTM_047_SUG",
"message": "The viewport declaration must declare both width and height.",
"severity": "error"
},
{
"code": "HTM_048",
"message": "SVG Fixed-Layout Documents must have a 'viewBox' attribute (on the outermost 'svg' element).",
"severity": "error"
},
{
"code": "HTM_049",
"message": "Html element does not have an xmlns set to 'http://www.w3.org/1999/xhtml'.",
"severity": "error"
},
{
"code": "HTM_049_SUG",
"message": "Add xmlns='http://www.w3.org/1999/xhtml' to the html element.",
"severity": "error"
},
{
"code": "HTM_050",
"message": "Found epub:type='pagebreak' attribute in content document.",
"severity": "usage"
},
{
"code": "HTM_051",
"message": "Found Microdata semantic enrichments but no RDFa. EDUPUB recommends using RDFa Lite.",
"severity": "warning"
},
{
"code": "HTM_052",
"message": "The property 'region-based' is only allowed on nav elements in Data Navigation Documents.",
"severity": "error"
},
{
"code": "HTM_053",
"message": "Found an external file link (file://) in file: '%1$s'.",
"severity": "info"
}
],
"media": [
{
"code": "MED_001",
"message": "Video poster must have core media image type.",
"severity": "error"
},
{
"code": "MED_002",
"message": "%1$s element doesn't provide fallback.",
"severity": "error"
},
{
"code": "MED_003",
"message": "A manifest fallback must be provided for image resource '%1$s' of type '%2$s'.",
"severity": "error"
},
{
"code": "MED_004",
"message": "Image file header may be corrupted.",
"severity": "error"
},
{
"code": "MED_005",
"message": "Media Overlay audio reference %1$s to non-standard audio type %2$s found.",
"severity": "error"
},
{
"code": "MED_006",
"message": "Some browsers do not support rendering SVG images which use a filename in the xlink:href property.",
"severity": "error"
},
{
"code": "MED_007",
"message": "Foreign resources can only be referenced from 'source' elements with an explicit 'type' attribute; found resource '%1$s' of foreign type '%2$s'.",
"severity": "error"
}
],
"NAV": [
{
"code": "NAV_001",
"message": "The nav file is not supported for EPUB v2.",
"severity": "error"
},
{
"code": "NAV_002",
"message": "Found epub:type='page-list' in nav document",
"severity": "usage"
},
{
"code": "NAV_003",
"message": "The Navigation Document must have a page list when content document(s) contain page breaks (epub:type='pagebreak').",
"severity": "error"
},
{
"code": "NAV_004",
"message": "The Navigation Document should contain the full document heading hierarchy in EDUPUB.",
"severity": "usage"
},
{
"code": "NAV_005",
"message": "Content documents contain 'audio' elements but the Navigation Document does not have a listing of audio clips (epub:type='loa').",
"severity": "usage"
},
{
"code": "NAV_006",
"message": "Content documents contain 'figure' elements but the Navigation Document does not have a listing of figures (epub:type='loi').",
"severity": "usage"
},
{
"code": "NAV_007",
"message": "Content documents contain 'table' elements but the Navigation Document does not have a listing of tables (epub:type='lot').",
"severity": "usage"
},
{
"code": "NAV_008",
"message": "Content documents contain 'video' elements but the Navigation Document does not have a listing of video clips (epub:type='lov').",
"severity": "usage"
},
{
"code": "NAV_009",
"message": "Region-based navigation links must point to Fixed-Layout Documents.",
"severity": "error"
},
{
"code": "NAV_010",
"message": "'%1$s' nav must not link to remote resources; found link to '%2$s'.",
"severity": "error"
},
{
"code": "NAV_011",
"message": "'%1$s' nav must be in reading order; link target '%2$s' is before the previous link's target in %3$s order.",
"severity": "warning"
},
{
"code": "NAV_011_SUG.spine",
"message": "spine",
"severity": "warning"
},
{
"code": "NAV_011_SUG.document",
"message": "document",
"severity": "warning"
}
],
"NCX": [
{
"code": "NCX_001",
"message": "NCX identifier ('%1$s') does not match OPF identifier ('%2$s').",
"severity": "error"
},
{
"code": "NCX_002",
"message": "toc attribute was not found on the spine element.",
"severity": "error"
},
{
"code": "NCX_003",
"message": "An .NCX file is required for TOC navigation on EPUB v2 readers.",
"severity": "usage"
},
{
"code": "NCX_004",
"message": "NCX identifier ('dtb:uid' metadata) should not contain leading or trailing whitespace.",
"severity": "usage"
},
{
"code": "NCX_005",
"message": "Found ncx 'page-list' in .ncx file",
"severity": "usage"
},
{
"code": "NCX_006",
"message": "Empty 'text' label in the NCX document",
"severity": "usage"
}
],
"OPF": [
{
"code": "OPF_001",
"message": "There was an error when parsing the EPUB version: %1$s.",
"severity": "error"
},
{
"code": "OPF_002",
"message": "The OPF file '%1$s' was not found in the EPUB.",
"severity": "fatal"
},
{
"code": "OPF_003",
"message": "Item '%1$s' exists in the EPUB, but is not declared in the OPF manifest.",
"severity": "warning"
},
{
"code": "OPF_004",
"message": "Invalid prefix declaration: leading or trailing whitespace is not allowed.",
"severity": "warning"
},
{
"code": "OPF_004a",
"message": "Invalid prefix declaration: found empty prefix.",
"severity": "error"
},
{
"code": "OPF_004b",
"message": "Invalid prefix '%1$s': must be a valid non-colonized name (aka 'NCName').",
"severity": "error"
},
{
"code": "OPF_004c",
"message": "Invalid prefix declaration: prefix '%1$s' must be immediately followed by a colon character (':').",
"severity": "error"
},
{
"code": "OPF_004d",
"message": "Invalid prefix declaration: prefix '%1$s' must be separated by its URI with a space.",
"severity": "error"
},
{
"code": "OPF_004e",
"message": "Invalid prefix declaration: found illegal whitespace between prefix and URI.",
"severity": "warning"
},
{
"code": "OPF_004f",
"message": "Invalid prefix declaration: found illegal whitespace between prefix mappings.",
"severity": "warning"
},
{
"code": "OPF_005",
"message": "Invalid prefix declaration: URI for prefix '%1$s' doesn't exist.",
"severity": "error"
},
{
"code": "OPF_006",
"message": "Invalid prefix declaration: URI '%1$s' is not a valid URI.",
"severity": "error"
},
{
"code": "OPF_007",
"message": "Re-declaration of reserved prefix '%1$s'.",
"severity": "warning"
},
{
"code": "OPF_007a",
"message": "Invalid prefix mapping: prefix '_' must not be declared.",
"severity": "error"
},
{
"code": "OPF_007b",
"message": "Invalid prefix mapping: default vocabulary '%1$s' must not be re-declared.",
"severity": "warning"
},
{
"code": "OPF_008",
"message": "Handler binding for core Media-type '%1$s' is not allowed.",
"severity": "error"
},
{
"code": "OPF_009",
"message": "The media-type '%1$s' has already been assigned a handler, with ID '%2$s'.",
"severity": "error"
},
{
"code": "OPF_010",
"message": "Error resolving reference: '%1$s'.",
"severity": "error"
},
{
"code": "OPF_011",
"message": "itemref can't have both page-spread-right and page-spread-left properties.",
"severity": "error"
},
{
"code": "OPF_012",
"message": "Item property '%1$s' is not defined for media type '%2$s'.",
"severity": "error"
},
{
"code": "OPF_013",
"message": "The type property '%1$s' on the object tag does not match the declared media-type '%2$s' in the OPF manifest.",
"severity": "error"
},
{
"code": "OPF_014",
"message": "The property '%1$s' should be declared in the OPF file.",
"severity": "error"
},
{
"code": "OPF_015",
"message": "The property '%1$s' should not be declared in the OPF file.",
"severity": "error"
},
{
"code": "OPF_016",
"message": "The element 'rootfile' is missing its required attribute 'full-path'.",
"severity": "error"
},
{
"code": "OPF_017",
"message": "The attribute 'full-path' on element 'rootfile' must not be empty.",
"severity": "error"
},
{
"code": "OPF_018",
"message": "The 'remote-resources' property was declared in the Package Document, but no reference to remote resources has been found.",
"severity": "error"
},
{
"code": "OPF_018b",
"message": "The 'remote-resources' property was declared in the Package Document, but no reference to remote resources has been found; please check scripted content to make sure the property is legit. ",
"severity": "error"
},
{
"code": "OPF_019",
"message": "Spine tag was not found in the OPF file.",
"severity": "fatal"
},
{
"code": "OPF_020",
"message": "Excessive number of spine items.",
"severity": "suppressed"
},
{
"code": "OPF_021",
"message": "Use of non-registered URI scheme type in href: '%1$s'.",
"severity": "warning"
},
{
"code": "OPF_025",
"message": "Property value list '%1$s' is not allowed, only one value must be specified.",
"severity": "error"
},
{
"code": "OPF_026",
"message": "Found malformed property value: '%1$s'.",
"severity": "error"
},
{
"code": "OPF_027",
"message": "Undefined property: '%1$s'.",
"severity": "error"
},
{
"code": "OPF_028",
"message": "Undeclared prefix: '%1$s'.",
"severity": "error"
},
{
"code": "OPF_029",
"message": "The file '%1$s' does not appear to match the media type %2$s, as specified in the OPF file.",
"severity": "error"
},
{
"code": "OPF_030",
"message": "The unique-identifier '%1$s' was not found.",
"severity": "error"
},
{
"code": "OPF_031",
"message": "File listed in reference element in guide was not declared in OPF manifest: %1$s.",
"severity": "error"
},
{
"code": "OPF_032",
"message": "Guide references '%1$s' which is not a valid 'OPS Content Document'.",
"severity": "error"
},
{
"code": "OPF_033",
"message": "The spine contains no linear resources.",
"severity": "error"
},
{
"code": "OPF_034",
"message": "The spine contains multiple references to the manifest item with id '%1$s'.",
"severity": "error"
},
{
"code": "OPF_035",
"message": "Media type 'text/html' is not appropriate for XHTML/OPS.",
"severity": "warning"
},
{
"code": "OPF_035_SUG",
"message": "Use 'application/xhtml+xml' instead.",
"severity": "warning"
},
{
"code": "OPF_036",
"message": "Video type '%1$s' might not be supported by reading systems",
"severity": "usage"
},
{
"code": "OPF_036_SUG",
"message": "Use 'video/mp4', 'video/h264' or 'video/webm' instead.",
"severity": "usage"
},
{
"code": "OPF_037",
"message": "Found deprecated media-type '%1$s'.",
"severity": "warning"
},
{
"code": "OPF_038",
"message": "Media type '%1$s' is not appropriate for an OEBPS 1.2 context; Use 'text/x-oeb1-document' instead.",
"severity": "warning"
},
{
"code": "OPF_039",
"message": "Media-type '%1$s' is not appropriate in an OEBPS 1.2 context. Use 'text/x-oeb1-css' instead.",
"severity": "warning"
},
{
"code": "OPF_040",
"message": "Fallback item could not be found.",
"severity": "error"
},
{
"code": "OPF_041",
"message": "Fallback-style item could not be found.",
"severity": "error"
},
{
"code": "OPF_042",
"message": "'%1$s' is not a permissible spine media-type.",
"severity": "error"
},
{
"code": "OPF_043",
"message": "Spine item with non-standard media-type '%1$s' has no fallback.",
"severity": "error"
},
{
"code": "OPF_044",
"message": "Spine item with non-standard media-type '%1$s' has a fallback to non-standard media-type.",
"severity": "error"
},
{
"code": "OPF_045",
"message": "Encountered circular reference in fallback chain.",
"severity": "error"
},
{
"code": "OPF_046",
"message": "Scripted property is not set on mediaType handler.",
"severity": "error"
},
{
"code": "OPF_047",
"message": "OPF file is using OEBPS 1.2 syntax allowing backwards compatibility.",
"severity": "error"
},
{
"code": "OPF_048",
"message": "Package tag is missing its required unique-identifier attribute and value.",
"severity": "error"
},
{
"code": "OPF_049",
"message": "Item id '%1$s' was not found in the manifest.",
"severity": "error"
},
{
"code": "OPF_050",
"message": "TOC attribute references resource with non-NCX mime type; 'application/x-dtbncx+xml' is expected.",
"severity": "error"
},
{
"code": "OPF_051",
"message": "Image dimensions exceed recommended size.",
"severity": "suppressed"
},
{
"code": "OPF_052",
"message": "Role value '%1$s' is not valid.",
"severity": "error"
},
{
"code": "OPF_053",
"message": "Date value '%1$s' does not follow recommended syntax as per http://www.w3.org/TR/NOTE-datetime:%2$s.",
"severity": "warning"
},
{
"code": "OPF_054",
"message": "Date value '%1$s' is not valid as per http://www.w3.org/TR/NOTE-datetime:%2$s.",
"severity": "error"
},
{
"code": "OPF_055",
"message": "%1$s tag is empty.",
"severity": "warning"
},
{
"code": "OPF_056",
"message": "Media type '%1$s' is not a core audio type.",
"severity": "usage"
},
{
"code": "OPF_057",
"message": "Image file length exceeds recommended size.",
"severity": "suppressed"
},
{
"code": "OPF_058",
"message": "Spine item '%1$s' is not referenced from the TOC in the Nav Doc.",
"severity": "usage"
},
{
"code": "OPF_058_SUG",
"message": "Every spine item in the manifest should be referenced by at least one TOC entry in the Nav Doc.",
"severity": "usage"
},
{
"code": "OPF_059",
"message": "Spine item '%1$s' is not referenced from the TOC in the NCX.",
"severity": "usage"
},
{
"code": "OPF_059_SUG",
"message": "Every spine item in the manifest should be referenced by at least one TOC entry in the NCX file.",
"severity": "usage"
},
{
"code": "OPF_060",
"message": "Duplicate entry in the ZIP file: '%1$s'.",
"severity": "error"
},
{
"code": "OPF_061",
"message": "Duplicate entry in the ZIP file (after Unicode NFC normalization) '%1$s'.",
"severity": "warning"
},
{
"code": "OPF_062",
"message": "Found Adobe page-map attribute on spine element in opf file.",
"severity": "usage"
},
{
"code": "OPF_063",
"message": "Referenced Adobe page-map item '%1$s' was not found in the manifest.",
"severity": "warning"
},
{
"code": "OPF_064",
"message": "OPF declares type '%1$s', validating using profile '%2$s'.",
"severity": "info"
},
{
"code": "OPF_065",
"message": "Invalid metadata declaration, probably due to a cycle in 'refines' metadata.",
"severity": "error"
},
{
"code": "OPF_066",
"message": "Missing 'dc:source' or 'source-of' pagination metadata. The pagination source must be identified using the 'dc:source' and 'source-of' properties when the content includes page break markers.",
"severity": "error"
},
{
"code": "OPF_067",
"message": "The resource '%1$s' must not be listed both as a 'link' element in the package metadata and as a manifest item.",
"severity": "error"
},
{
"code": "OPF_068",
"message": "Unknown collection role '%1$s'.",
"severity": "error"
},
{
"code": "OPF_069",
"message": "Custom collection role URI '%1$s' must not include the string 'idpf.org' in its host component.",
"severity": "error"
},
{
"code": "OPF_070",
"message": "Custom collection role '%1$s' is an invalid URI.",
"severity": "warning"
},
{
"code": "OPF_071",
"message": "Index collections must only contain resources pointing to XHTML Content Documents.",
"severity": "error"
},
{
"code": "OPF_072",
"message": "Metadata element '%1$s' is empty.",
"severity": "usage"
},
{
"code": "OPF_073",
"message": "External identifiers must not appear in the document type declaration.",
"severity": "error"
},
{
"code": "OPF_074",
"message": "Package resource '%1$s' is declared in several manifest item.",
"severity": "error"
},
{
"code": "OPF_075",
"message": "Preview collections must only point to EPUB Content Documents.",
"severity": "error"
},
{
"code": "OPF_076",
"message": "The URI of preview collections link elements must not include EPUB canonical fragment identifiers.",
"severity": "error"
},
{
"code": "OPF_077",
"message": "A Data Navigation Document should not be included in the spine.",
"severity": "warning"
},
{
"code": "OPF_078",
"message": "An EPUB Dictionary must contain at least one Content Document with dictionary content (epub:type 'dictionary').",
"severity": "error"
},
{
"code": "OPF_079",
"message": "Dictionary content was found (epub:type 'dictionary'), the Package Document should declare the dc:type 'dictionary'.",
"severity": "warning"
},
{
"code": "OPF_080",
"message": "A Search Key Map document file name should have the extension '.xml'.",
"severity": "warning"
},
{
"code": "OPF_081",
"message": "Resource '%1$s' (referenced from an EPUB Dictionary collection) was not found.",
"severity": "error"
},
{
"code": "OPF_082",
"message": "Found an EPUB Dictionary collection containing more than one Search Key Map Document.",
"severity": "error"
},
{
"code": "OPF_083",
"message": "Found an EPUB Dictionary collection containing no Search Key Map Document.",
"severity": "error"
},
{
"code": "OPF_084",
"message": "Found an EPUB Dictionary collection containing resource '%1$s' which is neither a Search Key Map Document nor an XHTML Content Document.",
"severity": "error"
},
{
"code": "OPF_085",
"message": "'dc:identifier' value '%1$s' is marked as a UUID, but is an invalid UUID.",
"severity": "warning"
},
{
"code": "OPF_086",
"message": "Property '%1$s' is deprecated. Consider using %2$s instead.",
"severity": "warning"
},
{
"code": "OPF_086_SUG.default",
"message": "a custom prefixed property",
"severity": "warning"
},
{
"code": "OPF_086_SUG.marc21xml-record",
"message": "the 'record' keyword and the media-type 'application/marcxml+xml'",
"severity": "warning"
},
{
"code": "OPF_086_SUG.mods-record",
"message": "the 'record' keyword and the media-type 'application/mods+xml'",
"severity": "warning"
},
{
"code": "OPF_086_SUG.onix-record",
"message": "the 'record' keyword with the properties attribute value 'onix'",
"severity": "warning"
},
{
"code": "OPF_086_SUG.xml-signature",
"message": "no signature-identifying link",
"severity": "warning"
},
{
"code": "OPF_086_SUG.xmp-record",
"message": "the 'record' keyword with the properties attribute value 'xmp'",
"severity": "warning"
},
{
"code": "OPF_086b",
"message": "epub:type value '%1$s' is deprecated. Consider using %2$s instead.",
"severity": "usage"
},
{
"code": "OPF_086b_SUG.default",
"message": "a custom prefixed value",
"severity": "usage"
},
{
"code": "OPF_086b_SUG.annoref",
"message": "open annotations",
"severity": "usage"
},
{
"code": "OPF_086b_SUG.annotation",
"message": "open annotations",
"severity": "usage"
},
{
"code": "OPF_086b_SUG.help",
"message": "the 'tip' property",
"severity": "usage"
},
{
"code": "OPF_086b_SUG.marginalia",
"message": "a bare 'aside' element",
"severity": "usage"
},
{
"code": "OPF_086b_SUG.note",
"message": "a 'footnote' or 'endnote' property",
"severity": "usage"
},
{
"code": "OPF_086b_SUG.rearnote",
"message": "the 'endnote' property",
"severity": "usage"
},
{
"code": "OPF_086b_SUG.rearnotes",
"message": "the 'endnotes' property",
"severity": "usage"
},
{
"code": "OPF_086b_SUG.sidebar",
"message": "a bare 'aside' element",
"severity": "usage"
},
{
"code": "OPF_086b_SUG.warning",
"message": "the 'notice' property",
"severity": "usage"
},
{
"code": "OPF_087",
"message": "epub:type value '%1$s' is not allowed on documents of type '%2$s'.",
"severity": "usage"
},
{
"code": "OPF_088",
"message": "Unrecognized epub:type value '%1$s'.",
"severity": "usage"
},
{
"code": "OPF_089",
"message": "The 'alternate' link rel keyword cannot be paired with other keywords.",
"severity": "error"
},
{
"code": "OPF_090",
"message": "It is encouraged to use MIME media type '%1$s' instead of '%2$s'. ",
"severity": "usage"
}
],
"Package": [
{
"code": "PKG_001",
"message": "Validating the EPUB against version %1$s but detected version %2$s.",
"severity": "warning"
},
{
"code": "PKG_003",
"message": "Unable to read EPUB file header. This is likely a corrupted EPUB file.",
"severity": "error"
},
{
"code": "PKG_004",
"message": "Corrupted EPUB ZIP header.",
"severity": "fatal"
},
{
"code": "PKG_005",
"message": "The mimetype file has an extra field of length %1$s. The use of the extra field feature of the ZIP format is not permitted for the mimetype file.",
"severity": "error"
},
{
"code": "PKG_006",
"message": "Mimetype file entry is missing or is not the first file in the archive.",
"severity": "error"
},
{
"code": "PKG_007",
"message": "Mimetype file should only contain the string 'application/epub+zip' and should not be compressed.",
"severity": "error"
},
{
"code": "PKG_008",
"message": "Unable to read file '%1$s'.",
"severity": "fatal"
},
{
"code": "PKG_009",
"message": "File name contains characters that are not allowed in OCF file names: '%1$s'.",
"severity": "error"
},
{
"code": "PKG_010",
"message": "Filename contains spaces, therefore URI escaping is necessary. Consider removing spaces from filename.",
"severity": "warning"
},
{
"code": "PKG_011",
"message": "Filename is not allowed to end with '.'.",
"severity": "error"
},
{
"code": "PKG_012",
"message": "File name contains the following non-ascii characters: %1$s. Consider changing the filename.",
"severity": "warning"
},
{
"code": "PKG_013",
"message": "The EPUB file includes multiple OPS renditions.",
"severity": "error"
},
{
"code": "PKG_014",
"message": "The EPUB contains empty directory '%1$s'.",
"severity": "warning"
},
{
"code": "PKG_015",
"message": "Unable to read EPUB contents: %1$s",
"severity": "fatal"
},
{
"code": "PKG_016",
"message": "Use only lowercase characters for the EPUB file extension for maximum compatibility.",
"severity": "warning"
},
{
"code": "PKG_016_SUG",
"message": "For maximum compatibility, use '.epub'.",
"severity": "warning"
},
{
"code": "PKG_017",
"message": "Uncommon EPUB file extension.",
"severity": "warning"
},
{
"code": "PKG_017_SUG",
"message": "For maximum compatibility, use '.epub'.",
"severity": "warning"
},
{
"code": "PKG_018",
"message": "The EPUB file could not be found.",
"severity": "fatal"
},
{
"code": "PKG_020",
"message": "OPF file '%1$s' could not be found.",
"severity": "error"
},
{
"code": "PKG_021",
"message": "Corrupted image file encountered.",
"severity": "error"
},
{
"code": "PKG_022",
"message": "Wrong file extension for image. The image is a '%1$s' file but has the file extension '%2$s'.",
"severity": "warning"
},
{
"code": "PKG_023",
"message": "Validating the EPUB against version 2.0, default validation profile will be used.",
"severity": "usage"
},
{
"code": "PKG_024",
"message": "Uncommon EPUB file extension.",
"severity": "info"
},
{
"code": "PKG_024_SUG",
"message": "For maximum compatibility, use '.epub'.",
"severity": "info"
}
],
"Resources": [
{
"code": "RSC_001",
"message": "File '%1$s' could not be found.",
"severity": "error"
},
{
"code": "RSC_002",
"message": "Required META-INF/container.xml resource could not be found.",
"severity": "fatal"
},
{
"code": "RSC_003",
"message": "No rootfile tag with media type 'application/oebps-package+xml' was found in the container.",
"severity": "error"
},
{
"code": "RSC_004",
"message": "File '%1$s' could not be decrypted.",
"severity": "error"
},
{
"code": "RSC_005",
"message": "Error while parsing file: %1$s",
"severity": "error"
},
{
"code": "RSC_006",
"message": "Remote resource reference not allowed; resource must be placed in the OCF.",
"severity": "error"
},
{
"code": "RSC_006b",
"message": "Resource '%1$s' is located outside the EPUB Container; please check the resource is retrieved in scripted content. ",
"severity": "usage"
},
{
"code": "RSC_007",
"message": "Referenced resource '%1$s' could not be found in the EPUB.",
"severity": "error"
},
{
"code": "RSC_007w",
"message": "Referenced resource '%1$s' could not be found in the EPUB.",
"severity": "warning"
},
{
"code": "RSC_008",
"message": "Referenced resource '%1$s' is not declared in the OPF manifest.",
"severity": "error"
},
{
"code": "RSC_009",
"message": "A non-SVG image resource should not be defined with a fragment identifier.",
"severity": "error"
},
{
"code": "RSC_010",
"message": "Reference to non-standard resource type found.",
"severity": "error"
},
{
"code": "RSC_011",
"message": "Found a reference to a resource that is not a spine item.",
"severity": "error"
},
{
"code": "RSC_012",
"message": "Fragment identifier is not defined.",
"severity": "error"
},
{
"code": "RSC_013",
"message": "Fragment identifier is used in a reference to a stylesheet resource.",
"severity": "error"
},
{
"code": "RSC_014",
"message": "Fragment identifier defines an incompatible resource type.",
"severity": "error"
},
{
"code": "RSC_015",
"message": "A fragment identifier is required for svg use tag references.",
"severity": "error"
},
{
"code": "RSC_016",
"message": "Fatal Error while parsing file: %1$s",
"severity": "fatal"
},
{
"code": "RSC_017",
"message": "Warning while parsing file: %1$s",
"severity": "warning"
},
{
"code": "RSC_018",
"message": "Alternative image file '%1$s' could not be found.",
"severity": "warning"
},
{
"code": "RSC_019",
"message": "EPUBs with Multiple Renditions should contain a META-INF/metadata.xml file.",
"severity": "warning"
},
{
"code": "RSC_020",
"message": "'%1$s' is not a valid URI.",
"severity": "error"
},
{
"code": "RSC_021",
"message": "A Search Key Map Document must point to Content Documents ('%1$s' was not found in the spine).",
"severity": "error"
},
{
"code": "RSC_022",
"message": "Cannot check image details (requires Java version 7 or higher).",
"severity": "info"
},
{
"code": "RSC_023",
"message": "The URL '%1$s' is missing %2$d slash(es) '/' after the protocol '%3$s:'",
"severity": "warning"
}
],
"Scripting": [
{
"code": "SCP_001",
"message": "Use of Javascript eval() function in EPUB scripts is a security risk.",
"severity": "usage"
},
{
"code": "SCP_002",
"message": "Use of XMLHttpRequest in EPUB scripts is a security risk.",
"severity": "usage"
},
{
"code": "SCP_003",
"message": "Local and Session Storage is not currently supported.",
"severity": "usage"
},
{
"code": "SCP_004",
"message": "Content file contains script which is not supported in EPUB v2.",
"severity": "error"
},
{
"code": "SCP_005",
"message": "Content file contains script but it is not marked as scripted.",
"severity": "error"
},
{
"code": "SCP_006",
"message": "Inline scripts found.",
"severity": "usage"
},
{
"code": "SCP_007",
"message": "Script references 'innerHtml'.",
"severity": "usage"
},
{
"code": "SCP_007_SUG",
"message": "Use a DOM instead.",
"severity": "usage"
},
{
"code": "SCP_008",
"message": "Script references 'innerText'.",
"severity": "usage"
},
{
"code": "SCP_008_SUG",
"message": "Use 'textContent' instead.",
"severity": "usage"
},
{
"code": "SCP_009",
"message": "Content file uses mouse event handlers.",
"severity": "usage"
},
{
"code": "SCP_009_SUG",
"message": "Ensure that all mouse driven functionality is accessible from the keyboard and touch devices.",
"severity": "usage"
},
{
"code": "SCP_010",
"message": "Epub 3 content file contains script.",
"severity": "usage"
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment