What this error means
EPUB defines page progression direction in the OPF's <spine> element. By default, pages progress left-to-right (Western convention). For right-to-left languages — Arabic, Hebrew, Persian (Farsi), Urdu, Yiddish — the OPF must declare page-progression-direction="rtl" or readers swipe the wrong way and the book appears to be in reverse order.
When KDP detects a RTL language in metadata or body content but no RTL flag in the spine, the rejection email reads "Your book's language requires right-to-left page progression that is not declared in the OPF."
This rule also applies to Manga-style comics in Japanese, which are conventionally read right-to-left even though Japanese is written top-to-bottom or left-to-right depending on context.
Why it happens
Translators or authors using Western-default tools. Vellum, Atticus, and Word all default to left-to-right. They produce the EPUB without ever asking about RTL.
Calibre conversion doesn't auto-detect RTL languages. The output EPUB defaults to LTR regardless of language.
InDesign without the Arabic/Hebrew edition. Standard InDesign doesn't handle RTL well. You need InDesign ME (Middle East edition) or the World-Ready Composer.
Online EPUB converters rarely flag RTL correctly.
Hand-built EPUB in Sigil without explicit RTL setup — easy to miss because the visual order in Sigil's edit panel matches what you see in the source.
Mixed-direction content (a book with English chapters and Arabic chapters) is especially error-prone — needs careful per-section handling.
The fix
Step 1: Confirm your book's primary language. The book's main language determines page progression.
Step 2: Open your EPUB in Sigil. Find content.opf.
Step 3: In the <package> opening tag, add or confirm the dir attribute:
<package xmlns="http://www.idpf.org/2007/opf" version="3.0" xml:lang="ar" dir="rtl">
Step 4: In <spine>, add page-progression-direction:
<spine page-progression-direction="rtl">
<itemref idref="cover"/>
...
</spine>
Step 5: In <metadata>, confirm <dc:language> has the right language code:
- Arabic:
ar - Hebrew:
he - Persian / Farsi:
fa - Urdu:
ur - Yiddish:
yi
For Manga in Japanese:
<dc:language>ja</dc:language>
Plus page-progression-direction="rtl" even though the language code is ja. Japanese RTL is conventional for manga, not a language property.
Step 6: In each XHTML page, set the body direction:
<html xmlns="http://www.w3.org/1999/xhtml" lang="ar" dir="rtl">
<body dir="rtl">
Step 7: For mixed-direction content (a paragraph of Latin text inside an Arabic book), wrap the Latin section:
<span dir="ltr">English text in the middle</span>
Step 8: Save the EPUB and run EPUBCheck. It will validate the RTL setup.
Step 9: Upload to KDP. Use the Online Previewer to confirm pages turn from left edge to right edge (RTL behaviour) — swiping right on the screen reveals the next page.
How to pre-flight it
Our free KDP Readiness Score detects the language declared in your EPUB metadata, checks for RTL languages, and reports whether the spine has the correct page-progression-direction attribute. Plus 30+ other KDP rules.
Related errors
FAQ
Does KDP support Arabic / Hebrew books for sale? Yes — KDP supports many languages including Arabic and Hebrew. Sale availability depends on the marketplace and the language.
What about Chinese — is it RTL? Modern Simplified Chinese is normally written LTR like English. Traditional Chinese in vertical layout would be RTL but is rare in ebooks. Default to LTR unless your specific content needs otherwise.
Will the cover flip too? On most Kindle apps, yes — the front cover appears on the right when in RTL mode, matching the convention of opening a book "from the back" by Western standards.
Can I have an RTL book with English subtitle on the cover? Yes. The cover is a single image; direction doesn't apply to it. Just make sure the title text inside the book is correctly RTL.
