﻿id	summary	reporter	owner	description	type	status	component	version	severity	resolution	keywords	cc	stage	has_patch	needs_docs	needs_tests	needs_better_patch	easy	ui_ux
37456	Docs: contribution_process.svg fails epub validation	Mike Edmunds		"The `contribution_process.svg` image causes an [https://www.w3.org/publishing/epubcheck/ EPUBCheck] error RSC-005 in the docs epub build, due to prohibited `<font>` tags inside `foreignObject`s.

This will likely prevent that image from appearing correctly in some eReaders. (Though it shouldn't prevent the epub as a whole from rendering.)

Also, a large part of that svg file is some ~20KB of draw.io original editable source, serialized into in a nonstandard `content` attribute. It might be helpful to keep the editable source file separate from optimized, compliant output for web/epub use.

([https://github.com/django/django/pull/22198 PR #22198] includes a commit that could add EPUBCheck to our regular documentation testing, pending resolution of this issue. The NAV-011 warnings are probably ignorable.)

{{{#!console
% cd docs
% make epub
% epubcheck _build/epub/Django.epub 
Validating using EPUB version 3.4 rules.
ERROR(RSC-005): _build/epub/Django.epub/_images/contribution_process.svg(4,36744): Error while parsing file: element ""font"" not allowed here; expected the element end-tag, text, element ""ns1:switch"", ""ns1:trigger"", ""ns2:math"", ""ns3:a"", ""ns3:abbr"", ""ns3:address"", ""ns3:area"", ""ns3:article"", ""ns3:aside"", ""ns3:audio"", ""ns3:b"", ""ns3:bdi"", ""ns3:bdo"", ""ns3:blockquote"", ""ns3:br"", ""ns3:button"", ""ns3:canvas"", ""ns3:cite"", ""ns3:code"", ""ns3:data"", ""ns3:datalist"", ""ns3:del"", ""ns3:details"", ""ns3:dfn"", ""ns3:dialog"", ""ns3:div"", ""ns3:dl"", ""ns3:em"", ""ns3:embed"", ""ns3:fieldset"", ""ns3:figure"", ""ns3:footer"", ""ns3:form"", ""ns3:h1"", ""ns3:h2"", ""ns3:h3"", ""ns3:h4"", ""ns3:h5"", ""ns3:h6"", ""ns3:header"", ""ns3:hgroup"", ""ns3:hr"", ""ns3:i"", ""ns3:iframe"", ""ns3:img"", ""ns3:input"", ""ns3:ins"", ""ns3:kbd"", ""ns3:label"", ""ns3:link"", ""ns3:main"", ""ns3:map"", ""ns3:mark"", ""ns3:menu"", ""ns3:meta"", ""ns3:meter"", ""ns3:nav"", ""ns3:object"", ""ns3:ol"", ""ns3:output"", ""ns3:p"", ""ns3:picture"", ""ns3:pre"", ""ns3:progress"", ""ns3:q"", ""ns3:ruby"", ""ns3:s"", ""ns3:samp"", ""ns3:script"", ""ns3:search"", ""ns3:section"", ""ns3:select"", ""ns3:selectedcontent"", ""ns3:slot"", ""ns3:small"", ""ns3:span"", ""ns3:strong"", ""ns3:sub"", ""ns3:sup"", ""ns3:table"", ""ns3:template"", ""ns3:textarea"", ""ns3:time"", ""ns3:u"", ""ns3:ul"", ""ns3:var"", ""ns3:video"", ""ns3:wbr"" or ""svg"" (with xmlns:ns1=""http://www.idpf.org/2007/ops"" xmlns:ns2=""http://www.w3.org/1998/Math/MathML"" xmlns:ns3=""http://www.w3.org/1999/xhtml"") or an element from another namespace
WARNING(NAV-011): _build/epub/Django.epub/nav.xhtml(462,81): ""toc"" nav must be in reading order; link target ""topics/class-based-views/index.xhtml#basic-examples"" is before the previous link’s target in spine order.
WARNING(NAV-011): _build/epub/Django.epub/nav.xhtml(922,64): ""toc"" nav must be in reading order; link target ""howto/index.xhtml#templates-and-output"" is before the previous link’s target in spine order.
WARNING(NAV-011): _build/epub/Django.epub/nav.xhtml(942,80): ""toc"" nav must be in reading order; link target ""howto/index.xhtml#project-configuration-and-management"" is before the previous link’s target in spine order.
WARNING(NAV-011): _build/epub/Django.epub/nav.xhtml(959,78): ""toc"" nav must be in reading order; link target ""howto/index.xhtml#installing-deploying-and-upgrading"" is before the previous link’s target in spine order.
WARNING(NAV-011): _build/epub/Django.epub/nav.xhtml(976,56): ""toc"" nav must be in reading order; link target ""howto/index.xhtml#other-guides"" is before the previous link’s target in spine order.
WARNING(NAV-011): _build/epub/Django.epub/nav.xhtml(1269,77): ""toc"" nav must be in reading order; link target ""ref/class-based-views/index.xhtml#specification"" is before the previous link’s target in spine order.
WARNING(NAV-011): _build/epub/Django.epub/nav.xhtml(1336,59): ""toc"" nav must be in reading order; link target ""ref/contrib/index.xhtml#admin"" is before the previous link’s target in spine order.

Check finished with errors
Messages: 0 fatals / 1 error / 7 warnings / 0 infos
}}}

If you don't want to install epubcheck through your package manager, it's also on PyPI:

{{{#!console
% python -m pip install epubcheck
% python -m epubcheck _build/epub/Django.epub 
}}}"	Uncategorized	new	Documentation	dev	Normal		epub		Unreviewed	0	0	0	0	0	0
