Закат EPUB2. Восход EPUB3
На скорую руку перевел короткий обзор EPUB3 в сравнении с EPUB2, подготовленный W3C. Пора двигаться дальше!
Редакторы
Ric Wright, Luc Audrain, Tzviya Siegman, George Kerscher
Аннотация
EPUB 3 был рекомендован к использованию в 2011 году, но до сих пор значительная часть производимых EPUB по-прежнему остается документами EPUB 2. В этом техническом документе описывается устаревание EPUB 2 во всех его возможностях даже для простых книг.
Введение
Формат EPUB существует с 2007 года, когда EPUB 2 был рекомендован IDPF. Хотя свойств EPUB 2 было достаточно для начала и обеспечивало поддержку некоторых публикаций, он основывался на небольшом наборе стандартов, которые быстро вышли из употребления, а именно:
- HTML4;
- CSS2 с ограничениями.
EPUB 3 был разработан IDPF в 2010 году при поддержке DAISY Consortium на основе современных и стабильных стандартов Open Web Platform (HTML5/CSS3) для того, чтобы удовлетворить потребности в цифровых публикациях в нескольких областях, в том числе:
- структурированные документы;
- расширенная типографика;
- лучший пользовательский опыт;
- поддержка любых языков;
- улучшенная доступность (для людей с ограниченными способностями);
- расширенная навигация;
- поддержка MathML.
Таким образом, история EPUB 3 началась в мае 2010 года, спецификация стал официальной рекомендацией в 2011 году. Однако, несмотря на то, что это случилось несколько лет назад, значительная часть EPUB, выпускаемых в наши дни, все еще являются файлами в формате EPUB 2. Цель этого документа — объяснить, почему так произошло, и показать, почему миграция на EPUB 3 имеет смысл во многих отношениях.
Зачем переходить на EPUB 3?
Итак, почему производителям EPUB 2 следует переходить на EPUB 3? Если коротко, то для того, чтобы обеспечить доставку более богатого и доступного контента. Чтобы использовать возможности, предлагаемые EPUB 3, которые просто не могут быть достигнуты должным образом в спецификации EPUB 2. В следующих разделах мы рассмотрим несколько примеров использования EPUB, в которых видно, как устаревает EPUB 2 и выигрывает EPUB 3 — благодаря непрерывному обновлению веб-стандартов.
1. Структурированные документы
Контент EPUB 2 основан на XHTML 1.0 (Transitional), который представляет собой XML-форму HTML 4. В EPUB 3 базовые требования к HTML-контенту поменилясь с HTML4 на HTML5. Среди прочего, в HTML 5 появилось несколько важных структурных конструкций (например, section
, header
и др.). Эта разметка имеет два основных преимущества:
- разметку можно использовать во время разработки для работы с инструментами, ориентированными на XML, как для создания контента, так и для извлечения полезной информации при его использовании;
- программы для чтения EPUB 3 могут считывать структурированную разметку и использовать ее для формирования макета и взаимодействия с пользователями (например, создавая динамический макет), что невозможно в EPUB 2.
2. Расширенная типографика
Поскольку EPUB 2 предполагает ограниченную поддержку типографики, композиция даже простого текста была понижена до уровня, неприемлемого для обычной полиграфии. EPUB 3 же обеспечил высококачественную визуализацию текста, используя стандарт CSS3, который продолжает улучшаться, включая буквицы, обтекание иллюстраций текстом и многое другое.
3. Лучший пользовательский опыт
Сноски в EPUB 2 приводили к тому, что читатель мог потерять контекст чтения, поскольку заставляли его перепрыгнуть к концу главы. HTML5 вводит новый элемент, разметка которого позволяет программе для чтения так внедрять всплывающие сноски и концевые сноски, что читатель не теряет позицию чтения. См. прекрасную статью Лиз Кастро о том, как можно реализовать этот механизм. Использование подобных новых функций, поддерживаемых HTML5, позволяет авторам обеспечивать гораздо более плавное чтение.
4. Языковая поддержка
EPUB 2 обеспечивал отображение последовательности текста только слева направо (LTR) и страницу за страницей. Кроме того, EPUB 2 не поддерживал двунаправленный текст. EPUB 3, напротив, поддерживает любой текст в Unicode, включая справа налево (RTL) и вертикальное письмо. Таким образом, тексты практически на любом языке, включая арабский, иврит, японский и китайский and Chinese, могут быть опубликованы в виде файлов EPUB 3.
5. Обеспечение доступности
Благодаря упорядоченной структуре EPUB 2 уже позволяет осуществлять некоторые основные функции доступности, но уже не может реализовать в полной мере современные требования по доступности, сформулированные в виде рекомендаций по доступности веб-сайтов (WCAG). Обеспечивающая такую доступность разметка НЕ поддерживается EPUB 2. Спецификация EPUB 3 устанавливает формальные требования, которые должны удовлетворять требованиям, предъявляемым к содержанию, соответствует спецификации доступности. Эти требования также предоставляют авторам четкое руководство для оценки контента и позволяют третьей стороне сертифицировать качество документа для потребителей контента. Для работы с разметкой EPUB 3 были разработаны инструменты для оценки доступности (например, ACE от DAISY). Кроме того, EPUB 3 поддерживает наложение медиа (media overlays), которое обеспечивает синхронное аудиосопровождение, широко используемое для лиц с ограниченными возможностями. В EPUB 3 такие книг создаются с помощью Media Overlay, таймлайна для предварительно записанной аудиодорожки в соответствии с разметкой контента EPUB. Формат файла для Media Overlays определяется как подмножество SMIL, рекомендованного Веб-Консорциумом для представления синхронизированной мультимедийной информации в XML.
6. Расширенная навигация
Одной из важных претензий к EPUB 2 была довольно примитивная поддержка навигации, обеспечиваемая машиночитаемым (XML) описанием контента в оглавлении NCX и и в разделе guide со ссылками на определенные части документа. Однако если автору было нужно хорошо форматированное и привлекательное оглавление, то автор оказывался в зависимости от конкретной реализации отображения оглавления программой для чтения или был вынужден добавлять второй, избыточное оглавление. Напротив, в EPUB 3 авторы могут создавать сложные и красивые оглавления, которые будут обрабатываться программами для чтения как HTML/CSS или как NCX в EPUB 2. Помимо этого, авторы могут использовать словарь структурной семантики, который обеспечивает очень богатый, обширный набор терминов, похожий на (теперь устаревшему) <guide>
в EPUB 2, но гораздо более полный и аккуратный.
7. Поддержка MathML
В EPUB 3 также появилась поддержка подмножества MathML, которая позволяет авторам создавать документы с разметкой, отображающей математические уравнения.
Закат производства EPUB 2
EPUB 2 в производстве
1. Романы и эссе
Романы и эссе — прекрасный пример по преимуществу текстовых книг, в производстве которых нужно использовать EPUB 3. Обеспечивая высококачественную типографику и верстку, читателям предоставляется первоклассный текстовый макет, который выдвигает на первый план удовольствие от чтения. Как это и должно быть!
2. Научное книгоиздание
Благодаря технике верстке CSS3 текст и его графическое содержание могут иметь отличный дизайн, сохраняющийся при адаптации к различным размерам экрана. Специализированный контент, в частности, математические уравнения, теперь обеспечивается поддержкой MathML в EPUB 3.
Официальные рекомендации
Некоторые институты одобряют или даже рекомендуют использование EPUB 3 для текстовых произведений в цифровой форме:
- Библиотека конгресса США: «Положение о рекомендуемых форматах Библиотеки конгресса включает EPUB 3 как предпочтительный формат для текстовых произведений в цифровой форме» (см. Рекомендации Библиотеки Конгресса).
- Рекомендации консорциума DAISY: in Baseline for Accessible EPUB 3.
Приложения
Приложение A. Сравнение характеристик EPUB 2 и EPUB 3
В приведенной ниже таблице см. краткое описание ключевых функций, добавленных в EPUB 3. Более подробную информацию см. в официальных документах IDPF, а также в ссылках ниже.
Характеристика | Комментарий |
---|---|
Поддержка HTML5 | EPUB 3 по-прежнему требует сериализации XML |
Независимые документы SVG | В EPUB 2 документы SVG должны быть размещены на XHTML-страницах. Поддержка SVG, однако, довольно ограниченная. |
Поддержка MAthML | Контент в XHTML поддерживает разметку MathML, но в весьма ограниченном объеме. |
Фиксированный макет | |
Навигация | TOC теперь нужен в HTML. NCX пока разрешён, но TOC обязателен. |
Доступность | В частности, включение атрибутов ARIA для обеспечения доступности динамического контента. |
Связность | IDPF разработал реестр для схем связывания. EPUBCFI — первая такая схема, добавленная в реестр. Она может быть использована для ссылок внутри текстов, а также для ссылок из одного текста в другой. Требуется поддержка со стороны программ для чтения. |
Скрипты | Программы для чтения EPUB 3 могут включать поддержку скриптов, которые в явном виде не поддерживаются EPUB 2. Скрипты должны быть явно описаны как таковые в манифесте архива. |
Аудио и видео | Строго рекомендуется поддержка аудио и видиео, внедренных как элементы аудио и видео HTML5. Программы для чтения должны поддерживать хотя бы один кодек для видео — MP4/H.264 или WebM/VP8. Для аудио обязательна поддержка MP3, рекомендуется поддержка MP4. |
Media overlays | Спецификация EPUB Media Overlays 3.0 определяет использование SMIL (Synchronized Multimedia Integration Language), манифеста EPUB, таблицы стилей и файлов контента EPUB для представления звука, синхронизированного с контентом. |
Дополнительные модули CSS3 | EPUB 3 опредяет профиль CSS на основе CSS 2.1 с дополнением модулей из CSS3, в то время, как EPUB 2 основывается на спецификации CSS2. См. подробнее: EPUB Style Sheets. |
WOFF | EPUB 3 требует от программ для чтения поддержку форматов шрифтов OpenType и WOFF для их использования через команду @font-face CSS. |
Семантические надстройки | Использование атрибута epub:type для семантических надстроек. |
Текст в речь | Добавлено несколько инсструментов для использования движков Text-to-Speech (TTS), включая словари произношения, словарь спецификации произношения и речевой модуль CSS3. |
Reading System Object | Объект epubReadingSystem обеспечивает интерфейс, через который файл со скриптами может запрашивать информацию у пользовательской программы для чтения. Объект представляет свойства программы для чтения (ее название и версию) и обеспечивает метод hasFeature() , который может быть вызван для определения поддерживаемых программой для чтения функций. |
Характеристики, которые были удалены или устарели:
Характеристика | Комментарий |
---|---|
DTBook | Устаревшая спецификация, заменена разметкой HTML и CSS для доступа к аудио |
Out-of-Line XML Islands | Противоречивая и практически не использовавшаяся спецификация |
Триггеры | Элемент триггер обепсечивал управление аудио и видео (ср. с триггером в EPUB 3.0.1 ). Авторам рекомендовано использовать инструменты управления элементами аудио и видео из HTML. |
Bindings | EPUB больше не поддерживает привязки в манифесте, чтобы обеспечить альтернативное резервное копирование для внешних ресурсов, встроенных в элемент объекта. Внутренний механизм резервного элемента объекта [HTML] (встроенный контент) может использоваться для резервного копирования ключевых медиафайлов. |
Tours | Схема манифеста больше не включает элементов tours (убранных уже в OPF 2.0.1) и полностью удалена из EPUB 3. |
Filesystem Container | OCF 3.0 [OCF3] определяет только однофайловый контейнер на основе ZIP-архива и более не поддерживает идею «Filesystem Container". Это изменение, вместе с ограничением ссылок на внешние ресурсы, означает, что публикация EPUB — это специфический контейнер и что файлы EPUB в целом должны содержать все части публикации, с понятным и внятно определенным исключениями. |
Guide | Использование элемента <guide> в манифесте исключено в пользу спецификации разметки ключевых элементов (landmarks) в навигационном документе EPUB. См. описание навигационного документа EPUB. |
NCX | Машинночитаемое оглавление NCX заменено базирующемся на HTML (TOC.html) навигационном документе EPUB. |
2.0.1 meta element | Метаэлемент, поддерживаемый EPUB 2, устарел и заменен новым метаэлементом, но может быть включен для целей обратной совместимости. |
Приложение B. Основы EPUB 3
В этом разделе приведены некоторые сведения о структуре и разметке файлов EPUB 2 и 3.
Структура и правила именования
Спецификация EPUB не предполагает какой-то особой структуры папок или правил именования файлов, за исключением файла mimetype содержимого папки META-INF. Хотя спецификация существенно не изменилась по сравнению с EPUB 2, рекомендуем следующие правила именования файлов и папок:
mimetype
META-INF/container.xml
META-INF/encryption.xml
package.opf
EPUB/html
EPUB/css
EPUB/fonts/
EPUB/js
EPUB/images
EPUB/svg
Но на практике это в значительной степени зависит от автора.
Файл OPF
Эти примеры ключевых файлов EPUB 2 и 3 из «Алисы в Стране чудес». «Алиса» — очень простой документ, изменения не радикальны, но критичны. Почти все изменения в EPUB связаны с документом OPF. Вот версия EPUB 2.
<?xml version="1.0"?>
<package xmlns="http://www.idpf.org/2007/opf" xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0" unique-identifier="pubid">
<metadata>
<dc:title>Alice's Adventures in Wonderland</dc:title>
<dc:creator>Lewis Carroll</dc:creator>
<dc:date xmlns:opf="http://www.idpf.org/2007/opf" opf:event="creation">2013-08-29</dc:date>
<dc:subject>fiction</dc:subject>
<dc:language>en-GB</dc:language>
<dc:coverage>England - 19th Century</dc:coverage>
<dc:rights>Public Domain</dc:rights>
<dc:publisher>D. Appleton and Co</dc:publisher>
<dc:identifier id="pubid">fab106a7-1f9f-4716-8c80-08932fe21b66</dc:identifier>
</metadata>
<manifest>
<!-- fonts -->
<item id="font0" href="fonts/MinionPro.otf" media-type="application/vnd.ms-opentype"/>
...
<!-- navigation -->
<item id="ncx" href="toc.ncx" media-type="application/x-dtbncx+xml" />
<!-- body content -->
<item id="titlepage" href="titlepage.xhtml" media-type="application/xhtml+xml"/>
<item id="chapter01" href="chapter01.xhtml" media-type="application/xhtml+xml"/>
...
<!-- styling -->
<item id="css" href="style.css" media-type="text/css"/>
<!-- images -->
<item id="img01a" href="images/alice01a.gif" media-type="image/gif"/>
...
</manifest>
<spine toc="ncx">
<itemref idref="titlepage"/>
<itemref idref="chapter01"/>
...
</spine>
</package>
А вот версия EPUB 3:
<?xml version="1.0"?>
<package xmlns="http://www.idpf.org/2007/opf" unique-identifier="pub-id" version="3.0" >
<metadata xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:dcterms="http://purl.org/dc/terms/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:opf="http://www.idpf.org/2007/opf">
<dc:title>Alice's Adventures in Wonderland</dc:title>
<dc:creator>Lewis Carroll</dc:creator>
<dc:date>1865-07-04</dc:date>
<dc:subject>fiction</dc:subject>
<dc:language>en-GB</dc:language>
<dc:coverage>England - 19th Century</dc:coverage>
<dc:rights>Public Domain</dc:rights>
<dc:publisher>D. Appleton and Co</dc:publisher>
<dc:identifier id="pub-id">urn:uuid:7408D53A-5383-40AA-8078-5256C872AE41</dc:identifier>
<meta property="dcterms:modified">2016-03-14T11:23:26Z</meta>
<meta name="cover" content="coverpage" />
</metadata>
<manifest>
<!-- fonts -->
<item id="font0" href="fonts/MinionPro.otf" media-type="application/vnd.ms-opentype"/>
...
<!-- navigation -->
<item id="nav" href="nav.xhtml" media-type="application/xhtml+xml" properties="nav"/>
<!-- body content -->
<item id="titlepage" href="titlepage.xhtml" media-type="application/xhtml+xml"/>
<item id="chapter01" href="chapter01.xhtml" media-type="application/xhtml+xml"/>
...
<!-- styling -->
<item id="css" href="style.css" media-type="text/css"/>
<!-- images -->
<item id="img01a" href="images/alice01a.gif" media-type="image/gif" properties="cover-image"/>
<item id="img02a" href="images/alice02a.gif" media-type="image/gif"/>
...
</manifest>
<spine>
<itemref idref="titlepage"/>
<itemref idref="chapter01"/>
...
</spine>
</package>
Как можно видеть, изменения незначительны, но ключевые изменения ДОЛЖНЫ присутствовать, чтобы документ был валидным EPUB 3.
- Атрибут версии ДОЛЖЕН быть 3.0.
- Элемент метаописания со свойством
dcterms:modified
должен присутствовать и иметь валидную дату. - Если в документе есть страница обложки, она должна быть объявлена в метаэлементе с именем
"cover"
. Кроме того, сама обложка должна быть описана в манифесте со свойством"cover-image"
. - Один из файлов контента ДОЛЖЕН быть навигационным документом EPUB 3, объявленным со свойством
"nav"
. - Метаданные ДОЛЖНЫ включать элемент
dcterms:modified
, который содержит дату последнего изменения документа.
Наконец, элемент spine
в манифесте НЕ ДОЛЖЕН объявлять NCX, если только навигационный файл NCX не включен В ДОПОЛНЕНИЕ к навигационному HTML-файлу.
Навигация
Навигационный документ EPUB — веьсма гибкая сущность. Он может быть очень простым, как в файле «Алисы»:
<?xml version="1.0" encoding="UTF-8"?>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:epub="http://www.idpf.org/2007/ops">
<head>
<meta charset="utf-8" />
<link rel="stylesheet" type="text/css" href="style.css" />
</head>
<body class="reflow">
<nav xmlns:epub="http://www.idpf.org/2007/ops" epub:type="toc" id="toc">
<ol>
<li class="toc" id="chapter01">
<a href="chapter01.xhtml">I. Down the Rabbit-Hole</a>
</li>
<li class="toc" id="chapter02">
<a href="chapter02.xhtml">II. The Pool of Tears</a>
</li>
</ol>
</nav>
</body>
</html>
Но навигационный документ может использовать новую семантику, которая появилась в EPUB 3 для обеспечения пользователя более насыщенной и гибкой навигацией.
Приложение C. Примеры файлов EPUB
Это приложение содержит ссылки на набор примеров файлов EPUB 3. Файлы призваны продемонстрировать лучшие практики разнообразных свойств файлов EPUB. Каждый из файлов представлен и в виде файла EPUB, и в виде кода на github. Естественно, реально использование всей сложности и глубины спецификации EPUB почти безгранично. Приводимые примеры не покрывают всех возможностей, но только обеспечивают руководство по лучшим практикам использования ключевых характеристик.
Название | EPUB | Источник | Онлайновый пример | Комментарий |
---|---|---|---|---|
Tiny-EPUB | tiny3.epub | tiny-epub3 | tiny3.epub | Простейший возможный EPUB 3 |
Tiny-FXL | tiny3-FXL.epub | tiny-fxl-epub3 | tiny3-FXL.epub | Минималистичный EPUB 3 с фиксированным макетом |
Tiny-SVG | tiny3-SVG.epub | tiny-svg-epub3 | tiny3-SVG.epub | Минималичтиный EPUB 3 с SVG |
Tiny-RTL | tiny3-RTL.epub | tiny-rtl-epub3 | tiny3-RTL.epub | Минималистичный EPUB 3 с текстом справа налево |
Alice3 | alice3.epub | alice3-source | alice.epub | Простейший базовый epub |