На скорую руку перевел короткий обзор 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 is now required in HTML. A NCX is still permitted but a TOC is a requirement Доступность В частности, включение атрибутов 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 почти безгранично. Приводимые примеры не покрывают всех возможностей, но только обеспечивают руководство по лучшим практикам использования ключевых характеристик.