Digitalbooks.blog перевел короткий обзор 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 было достаточно для начала и обеспечивало поддержку некоторых публикаций, он основывался на небольшом наборе стандартов, которые быстро вышли из употребления, а именно:
EPUB 3 был разработан IDPF в 2010 году при поддержке DAISY Consortium на основе современных и стабильных стандартов Open Web Platform (HTML5/CSS3) для того, чтобы удовлетворить потребности в цифровых публикациях в нескольких областях, в том числе:
Таким образом, история EPUB 3 началась в мае 2010 года, спецификация стал официальной рекомендацией в 2011 году. Однако, несмотря на то, что это случилось несколько лет назад, значительная часть EPUB, выпускаемых в наши дни, все еще являются файлами в формате EPUB 2. Цель этого документа — объяснить, почему так произошло, и показать, почему миграция на EPUB 3 имеет смысл во многих отношениях.
Итак, почему производителям EPUB 2 следует переходить на EPUB 3? Если коротко, то для того, чтобы обеспечить доставку более богатого и доступного контента. Чтобы использовать возможности, предлагаемые EPUB 3, которые просто не могут быть достигнуты должным образом в спецификации EPUB 2. В следующих разделах мы рассмотрим несколько примеров использования EPUB, в которых видно, как устаревает EPUB 2 и выигрывает EPUB 3 — благодаря непрерывному обновлению веб-стандартов.
Контент EPUB 2 основан на XHTML 1.0 (Transitional), который представляет собой XML-форму HTML 4. В EPUB 3 базовые требования к HTML-контенту поменилясь с HTML4 на HTML5. Среди прочего, в HTML 5 появилось несколько важных структурных конструкций (например, section, header и др.). Эта разметка имеет два основных преимущества:
Поскольку EPUB 2 предполагает ограниченную поддержку типографики, композиция даже простого текста была понижена до уровня, неприемлемого для обычной полиграфии. EPUB 3 же обеспечил высококачественную визуализацию текста, используя стандарт CSS3, который продолжает улучшаться, включая буквицы, обтекание иллюстраций текстом и многое другое.
Сноски в EPUB 2 приводили к тому, что читатель мог потерять контекст чтения, поскольку заставляли его перепрыгнуть к концу главы. HTML5 вводит новый элемент, разметка которого позволяет программе для чтения так внедрять всплывающие сноски и концевые сноски, что читатель не теряет позицию чтения. См. прекрасную статью Лиз Кастро о том, как можно реализовать этот механизм. Использование подобных новых функций, поддерживаемых HTML5, позволяет авторам обеспечивать гораздо более плавное чтение.
EPUB 2 обеспечивал отображение последовательности текста только слева направо (LTR) и страницу за страницей. Кроме того, EPUB 2 не поддерживал двунаправленный текст. EPUB 3, напротив, поддерживает любой текст в Unicode, включая справа налево (RTL) и вертикальное письмо. Таким образом, тексты практически на любом языке, включая арабский, иврит, японский и китайский and Chinese, могут быть опубликованы в виде файлов EPUB 3.
Благодаря упорядоченной структуре EPUB 2 уже позволяет осуществлять некоторые основные функции доступности, но уже не может реализовать в полной мере современные требования по доступности, сформулированные в виде рекомендаций по доступности веб-сайтов (WCAG). Обеспечивающая такую доступность разметка НЕ поддерживается EPUB 2.
Спецификация EPUB 3 устанавливает формальные требования, которые должны удовлетворять требованиям, предъявляемым к содержанию, соответствует спецификации доступности. Эти требования также предоставляют авторам четкое руководство для оценки контента и позволяют третьей стороне сертифицировать качество документа для потребителей контента. Для работы с разметкой EPUB 3 были разработаны инструменты для оценки доступности (например, ACE от DAISY).
Кроме того, EPUB 3 поддерживает наложение медиа (media overlays), которое обеспечивает синхронное аудиосопровождение, широко используемое для лиц с ограниченными возможностями. В EPUB 3 такие книг создаются с помощью Media Overlay, таймлайна для предварительно записанной аудиодорожки в соответствии с разметкой контента EPUB. Формат файла для Media Overlays определяется как подмножество SMIL, рекомендованного Веб-Консорциумом для представления синхронизированной мультимедийной информации в XML.
Одной из важных претензий к EPUB 2 была довольно примитивная поддержка навигации, обеспечиваемая машиночитаемым (XML) описанием контента в оглавлении NCX и и в разделе guide со ссылками на определенные части документа. Однако если автору было нужно хорошо форматированное и привлекательное оглавление, то автор оказывался в зависимости от конкретной реализации отображения оглавления программой для чтения или был вынужден добавлять второй, избыточное оглавление.
Напротив, в EPUB 3 авторы могут создавать сложные и красивые оглавления, которые будут обрабатываться программами для чтения как HTML/CSS или как NCX в EPUB 2.
Помимо этого, авторы могут использовать словарь структурной семантики, который обеспечивает очень богатый, обширный набор терминов, похожий на (теперь устаревшему) <guide> в EPUB 2, но гораздо более полный и аккуратный.
В EPUB 3 также появилась поддержка подмножества MathML, которая позволяет авторам создавать документы с разметкой, отображающей математические уравнения.
Романы и эссе — прекрасный пример по преимуществу текстовых книг, в производстве которых нужно использовать EPUB 3. Обеспечивая высококачественную типографику и верстку, читателям предоставляется первоклассный текстовый макет, который выдвигает на первый план удовольствие от чтения. Как это и должно быть!
Благодаря технике верстке CSS3 текст и его графическое содержание могут иметь отличный дизайн, сохраняющийся при адаптации к различным размерам экрана. Специализированный контент, в частности, математические уравнения, теперь обеспечивается поддержкой MathML в EPUB 3.
Некоторые институты одобряют или даже рекомендуют использование 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, устарел и заменен новым метаэлементом, но может быть включен для целей обратной совместимости. |
В этом разделе приведены некоторые сведения о структуре и разметке файлов 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
Но на практике это в значительной степени зависит от автора.
Эти примеры ключевых файлов 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.
Наконец, элемент 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 для обеспечения пользователя более насыщенной и гибкой навигацией.
Это приложение содержит ссылки на набор примеров файлов 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 |
Источник: www.digitalbooks.blog