Закат 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, а также в ссылках ниже.

ХарактеристикаКомментарий
Поддержка HTML5EPUB 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 для представления звука, синхронизированного с контентом.
Дополнительные модули CSS3EPUB 3 опредяет профиль CSS на основе CSS 2.1 с дополнением модулей из CSS3, в то время, как EPUB 2 основывается на спецификации CSS2. См. подробнее: EPUB Style Sheets.
WOFFEPUB 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.
BindingsEPUB больше не поддерживает привязки в манифесте, чтобы обеспечить альтернативное резервное копирование для внешних ресурсов, встроенных в элемент объекта. Внутренний механизм резервного элемента объекта [HTML] (встроенный контент) может использоваться для резервного копирования ключевых медиафайлов.
ToursСхема манифеста больше не включает элементов tours (убранных уже в OPF 2.0.1) и полностью удалена из EPUB 3.
Filesystem ContainerOCF 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-EPUBtiny3.epubtiny-epub3tiny3.epubПростейший возможный EPUB 3
Tiny-FXLtiny3-FXL.epubtiny-fxl-epub3tiny3-FXL.epubМинималистичный EPUB 3 с фиксированным макетом
Tiny-SVGtiny3-SVG.epubtiny-svg-epub3tiny3-SVG.epubМинималичтиный EPUB 3 с SVG
Tiny-RTLtiny3-RTL.epubtiny-rtl-epub3tiny3-RTL.epubМинималистичный EPUB 3 с текстом справа налево
Alice3alice3.epubalice3-sourcealice.epubПростейший базовый epub