SlideShare a Scribd company logo
1 of 67
http://www.niso.org/news/events/2012/nisowebinars/ebooks_epub3/



Understanding Critical Elements of
E-books: Standards for Formatting
          and Metadata
Part 1: EPUB3: Putting Electronic
      Books into a Package
             March 14, 2012

               Speakers:
  Bill Kasdorf and Sanders Kleinfeld
Adding Interactivity to Ebooks
        with HTML5




      Sanders Kleinfeld
Ebook Production =
Developing Content for a Multitude of
            Screens…

   eInk       Color Tablet   Desktop Browser
…Via many formats, technologies,
      and software tools
EPUB 2.0.1                CSS          Mobi
                NCX               epubpreflight
 DRM
                fixed layout             regex
        JS
 KF8                           .iba
              epubcheck               oXygen

OPF             sigil           EPUB 3

  kindlegen             XSL      masochism
HTML5
HTML5: New elements
          (http://www.w3.org/TR/html5-diff/#new-elements)



Navigation:                        Multimedia/Interactivity:
<article>                          <audio>
<aside>                            <canvas>
<header>                           <embed>
<hgroup>                           <source>
<footer>                           <track>
<figure>                           <video>
<figcaption>
<nav>
<section>
HTML5: New elements (continued)
             (http://www.w3.org/TR/html5-diff/#new-elements)

New <input> types:                    Miscellaneous:
color                                 <bdi>
date                                  <command>
datetime                              <datalist>
datetime-local                        <details>
email                                 <keygen>
month                                 <mark>
number                                <meter>
range                                 <output>
search                                <progress>
tel                                   <summary>
time                                  <rp>
url                                   <rt>
week                                  <ruby>
                                      <time>
                                      <wbr>
What is HTML5, really?

A constellation of technologies
Canvas                 Audio/Video




         Geolocation                 CSS3
When people say "HTML5," they're
         usually referring to...
...next-generation web sites that include one or more of the
following:

• Embedded audio/video media without resorting to Flash or
  other plugins
• Native interactivity/animation/games without resorting to
  Flash or other plugins
• Geolocation functionality
• Sites with local storage that you can download and run offline
• Fancy CSS3: columns, text shadows, animations...
• Native support for MathML and SVG
• Semantic markup
HTML5 in Action on the Web
Why should publishers care
     about HTML5?
HTML5 is the Backbone of the
            EPUB 3 Standard
The EPUB 3.0 specification for ebooks mandates that content
documents use XHTML (HTML5) syntax:
http://idpf.org/epub/30/spec/epub30-contentdocs.html#sec-xhtml

While most major ereaders do not formally support EPUB 3,
many HTML5 features are currently supported by the following
platforms:

•   iBooks for iPad, iPhone, iPod
•   NOOK Color/Tablet
•   Kindle Fire
•   Kindle Apps (iPhone/iPad/Android/etc.)
•   Safari Books Online
HTML5 in action in ebooks
HTML5 Canvas for Publishers


Canvas allows you to embed a dynamic sketchpad in your
content:

<canvas id="my_first_canvas" width="200"
height="225">
The content you put here will show up if your
rendering engine doesn't support the
&lt;canvas&gt; element.
</canvas>
You draw on the <canvas> with JavaScript
   my_canvas.strokeRect(0,0,200,225) // to start, draw a border around the canvas

//draw face
    my_canvas.beginPath();
    my_canvas.arc(100, 100, 75, (Math.PI/180)*0, (Math.PI/180)*360, false); // circle dimensions
my_canvas.strokeStyle = "black"; // circle outline is black
my_canvas.lineWidth = 3; // outline is three pixels wide
my_canvas.fillStyle = "yellow"; // fill circle with yellow
my_canvas.stroke(); // draw circle
my_canvas.fill(); // fill in circle
my_canvas.closePath();




// now, draw left eye
my_canvas.fillStyle = "black"; // switch to black for the fill
my_canvas.beginPath();
    my_canvas.arc(65, 70, 10, (Math.PI/180)*0, (Math.PI/180)*360, false); // circle dimensions
my_canvas.stroke(); // draw circle
my_canvas.fill(); // fill in circle
my_canvas.closePath();

// now, draw right eye
my_canvas.beginPath();
    my_canvas.arc(135, 70, 10, (Math.PI/180)*0, (Math.PI/180)*360, false); // circle dimensions
my_canvas.stroke(); // draw circle
my_canvas.fill(); // fill in circle
my_canvas.closePath();

// draw smile
    my_canvas.lineWidth = 6; // switch to six pixels wide for outline
    my_canvas.beginPath();
    my_canvas.arc(99, 120, 35, (Math.PI/180)*0, (Math.PI/180)*-180, false); // semicircle dimensions
my_canvas.stroke();
my_canvas.closePath();

// Smiley Speaks!
my_canvas.fillStyle = "black"; // switch to black for text fill
The result...
But Canvas is all about interactivity...

You can dynamically update what's displayed on the canvas in
real time, and in response to user input, which opens the door to
animations, games, and more.
Canvas in Action: Graphing Calculator
       http://bit.ly/canvascalc
Canvas in Action II: Finger Painting
  http://bit.ly/canvasfingerpaint
Geolocation for Publishers

The W3C Geolocation API (http://dev.w3.org/geo/api/spec-
source.html) provides a simple way of getting a user's
latitude/longitude coordinates:
navigator.geolocation.getCurrentPosition(callback_function)

Where callback_functionis a function you define to receive and process the
latitude/longitude data.
Geolocation’s value in ebooks

•   Interactive Atlas, Road Maps
•   Travel/Restaurant guides customized for user’s location
•   Geolocated fiction
•   Geolocation-based games (geocaching, scavenger hunt)
Geolocation in Action:
    A Geolocated Tale
http://bit.ly/geolocatedtale
          Before...
Geolocation in Action:
    A Geolocated Tale
http://bit.ly/geolocatedtale

           After...
Audio/Video for Publishers

 HTML5 lets you embed audio/video directly in your content
 without any plugins needed:

<audio id="new_slang">                      <video id="dancing_pony" width="300"
<source src="new_slang.wav"                 height="300">
type="audio/wav"/>                          <source src="dancing_pony.mp4"
<source src="new_slang.mp3"                 type="video/mp4"/>
type="audio/mp3"/>                          <source src="dancing_pony.ogg"
<source src="new_slang.ogg"                 type="video/ogg"/>
type="audio/ogg"/>                          <em>(Sorry, &lt;video&gt; element not
 <em>(Sorry, &lt;audio&gt; element not      supported in your browser/ereader, so
supported in your browser/ereader, so you   you will not be able to watch this
will not be able to listen to this          video.)</em>
song.)</em>                                 </video>
</audio>
Audio/Video Compatibility Woes
                            (via Wikipedia)


<audio> support in Browsers
(http://en.wikipedia.org/wiki/Html5_audio#Audio_format_support)




<video> support in Browsers
(http://en.wikipedia.org/wiki/HTML5_video#Table)
Ereader Audio/Video
              Compatibility Redux
For audio, use MP3. It works on:

• iBooks
• NOOK Color/Tablet
• Kindle software readers (iPad/iPhone/Android/etc.)

For video, use H.264/MP4. It works on:

• iBooks
• NOOK Color/Tablet
• Kindle software readers (iPad/iPhone/Android/etc.)
Audio in Action:
Audio-Enabled Glossary
http://bit.ly/miniglossary
Video in Action:
 A Clip About <canvas>
http://bit.ly/ormcanvasvid
MathML for Publishers
• MathML is an XML vocabulary for representing mathematical
  expressions.

• MathML provides both Presentation and Content Markup
  models.

• Presentation markup tags math expressions based on how
  they should be displayed (e.g., “superscripted 2”).

• Content markuptags expressions based on the mathematical
  operations performed (e.g., “taken to the 2nd power”)

• The HTML5 specification provides native support for
  MathML in HTML documents
MathML Presentation Markup Glossary
         (abridged edition)
•   <math> -- Root element for a mathematical expression
•   <mrow> -- Element for grouping subexpressions
•   <mo> -- Math operator (e.g., +, -)
•   <mi> -- Math identifier (e.g., variable or constant)
•   <mn> -- Number
•   <mfrac> -- Fraction
•   <msqrt> -- Square root
•   <msup> -- Superscript
•   <msub> -- Subscript
•   <mfenced> -- Parentheses or braces
Convert a Famous Equation to MathML!
      http://bit.ly/mathconverter
But why write all this markup:
<math xmlns="http://www.w3.org/1998/Math/MathML">
<mstyledisplaystyle="true">
<mi> E </mi>
<mo> = </mo>
<mi>m</mi>
<msup>
<mrow>
<mi> c </mi>
</mrow>
<mrow>
<mn> 2 </mn>
</mrow>
</msup>
</mstyle>
</math>




When you can just embed the equation
           as an image?
Advantages of Using MathML
         Instead of Images:

• Equations are resizable, like text

• Equations can be styled with CSS

• Equations can be interacted with
  using JavaScript
MathML in Action:
Quadratic Equation Solver
   http://bit.ly/mathml
HTML5 support in today’s
             ereaders
               <canvas>       Geolocation     <audio>         <video>        MathML
iBooks 1.x     YES            Sort of*        YES             YES            YES
NOOK           NO             NO              YES             YES            NO
Color/Tablet
Safari Books   YES            YES             YES             YES            YES
Online
Kindle Apps    NO             NO              YES             YES            NO


Kindle Fire    NO             NO              NO              NO             NO




    * iBooks 1.x supports Geolocation API, but does not support calls to related
    APIs (Google Maps, GeoNames, etc.)
Download HTML5 for Publishers:
 http://bit.ly/html5forpubs
Contact Me!
Email: sanders@oreilly.com
   Twitter: @sandersk

More Related Content

More from National Information Standards Organization (NISO)

More from National Information Standards Organization (NISO) (20)

Rapple "Scholarly Communications and the Sustainable Development Goals"
Rapple "Scholarly Communications and the Sustainable Development Goals"Rapple "Scholarly Communications and the Sustainable Development Goals"
Rapple "Scholarly Communications and the Sustainable Development Goals"
 
Compton "NISO Webinar, Sustainability in Publishing"
Compton "NISO Webinar, Sustainability in Publishing"Compton "NISO Webinar, Sustainability in Publishing"
Compton "NISO Webinar, Sustainability in Publishing"
 
Mattingly "AI & Prompt Design: Large Language Models"
Mattingly "AI & Prompt Design: Large Language Models"Mattingly "AI & Prompt Design: Large Language Models"
Mattingly "AI & Prompt Design: Large Language Models"
 
Hazen, Morse, and Varnum "Spring 2024 ODI Conformance Statement Workshop for ...
Hazen, Morse, and Varnum "Spring 2024 ODI Conformance Statement Workshop for ...Hazen, Morse, and Varnum "Spring 2024 ODI Conformance Statement Workshop for ...
Hazen, Morse, and Varnum "Spring 2024 ODI Conformance Statement Workshop for ...
 
Mattingly "AI & Prompt Design" - Introduction to Machine Learning"
Mattingly "AI & Prompt Design" - Introduction to Machine Learning"Mattingly "AI & Prompt Design" - Introduction to Machine Learning"
Mattingly "AI & Prompt Design" - Introduction to Machine Learning"
 
Mattingly "Text and Data Mining: Building Data Driven Applications"
Mattingly "Text and Data Mining: Building Data Driven Applications"Mattingly "Text and Data Mining: Building Data Driven Applications"
Mattingly "Text and Data Mining: Building Data Driven Applications"
 
Mattingly "Text and Data Mining: Searching Vectors"
Mattingly "Text and Data Mining: Searching Vectors"Mattingly "Text and Data Mining: Searching Vectors"
Mattingly "Text and Data Mining: Searching Vectors"
 
Mattingly "Text Mining Techniques"
Mattingly "Text Mining Techniques"Mattingly "Text Mining Techniques"
Mattingly "Text Mining Techniques"
 
Mattingly "Text Processing for Library Data: Representing Text as Data"
Mattingly "Text Processing for Library Data: Representing Text as Data"Mattingly "Text Processing for Library Data: Representing Text as Data"
Mattingly "Text Processing for Library Data: Representing Text as Data"
 
Carpenter "Designing NISO's New Strategic Plan: 2023-2026"
Carpenter "Designing NISO's New Strategic Plan: 2023-2026"Carpenter "Designing NISO's New Strategic Plan: 2023-2026"
Carpenter "Designing NISO's New Strategic Plan: 2023-2026"
 
Ross and Clark "Strategic Planning"
Ross and Clark "Strategic Planning"Ross and Clark "Strategic Planning"
Ross and Clark "Strategic Planning"
 
Mattingly "Data Mining Techniques: Classification and Clustering"
Mattingly "Data Mining Techniques: Classification and Clustering"Mattingly "Data Mining Techniques: Classification and Clustering"
Mattingly "Data Mining Techniques: Classification and Clustering"
 
Straza "Global collaboration towards equitable and open science: UNESCO Recom...
Straza "Global collaboration towards equitable and open science: UNESCO Recom...Straza "Global collaboration towards equitable and open science: UNESCO Recom...
Straza "Global collaboration towards equitable and open science: UNESCO Recom...
 
Lippincott "Beyond access: Accelerating discovery and increasing trust throug...
Lippincott "Beyond access: Accelerating discovery and increasing trust throug...Lippincott "Beyond access: Accelerating discovery and increasing trust throug...
Lippincott "Beyond access: Accelerating discovery and increasing trust throug...
 
Kriegsman "Integrating Open and Equitable Research into Open Science"
Kriegsman "Integrating Open and Equitable Research into Open Science"Kriegsman "Integrating Open and Equitable Research into Open Science"
Kriegsman "Integrating Open and Equitable Research into Open Science"
 
Mattingly "Ethics and Cleaning Data"
Mattingly "Ethics and Cleaning Data"Mattingly "Ethics and Cleaning Data"
Mattingly "Ethics and Cleaning Data"
 
Mercado-Lara "Open & Equitable Program"
Mercado-Lara "Open & Equitable Program"Mercado-Lara "Open & Equitable Program"
Mercado-Lara "Open & Equitable Program"
 
Ratner "Enhancing Open Science: Assessing Tools & Charting Progress"
Ratner "Enhancing Open Science: Assessing Tools & Charting Progress"Ratner "Enhancing Open Science: Assessing Tools & Charting Progress"
Ratner "Enhancing Open Science: Assessing Tools & Charting Progress"
 
Pfeiffer "Enhancing Open Science: Assessing Tools & Charting Progress"
Pfeiffer "Enhancing Open Science: Assessing Tools & Charting Progress"Pfeiffer "Enhancing Open Science: Assessing Tools & Charting Progress"
Pfeiffer "Enhancing Open Science: Assessing Tools & Charting Progress"
 
Hahnel “Mapping Progress: Reflections and Charting Future Pathways"
Hahnel “Mapping Progress: Reflections and Charting Future Pathways"Hahnel “Mapping Progress: Reflections and Charting Future Pathways"
Hahnel “Mapping Progress: Reflections and Charting Future Pathways"
 

Recently uploaded

Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Hiroshi SHIBATA
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesThousandEyes
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfNeo4j
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...AliaaTarek5
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality AssuranceInflectra
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfIngrid Airi González
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demoHarshalMandlekar2
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rick Flair
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesKari Kakkonen
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfpanagenda
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterMydbops
 

Recently uploaded (20)

Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdf
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdf
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demo
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examples
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL Router
 

NISO Webinar: E-books (Part 1) EPUB3: Putting Electronic Books into a Package (March 14, 2012): Presentation Slides

  • 1. http://www.niso.org/news/events/2012/nisowebinars/ebooks_epub3/ Understanding Critical Elements of E-books: Standards for Formatting and Metadata Part 1: EPUB3: Putting Electronic Books into a Package March 14, 2012 Speakers: Bill Kasdorf and Sanders Kleinfeld
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31. Adding Interactivity to Ebooks with HTML5 Sanders Kleinfeld
  • 32. Ebook Production = Developing Content for a Multitude of Screens… eInk Color Tablet Desktop Browser
  • 33. …Via many formats, technologies, and software tools EPUB 2.0.1 CSS Mobi NCX epubpreflight DRM fixed layout regex JS KF8 .iba epubcheck oXygen OPF sigil EPUB 3 kindlegen XSL masochism
  • 34. HTML5
  • 35. HTML5: New elements (http://www.w3.org/TR/html5-diff/#new-elements) Navigation: Multimedia/Interactivity: <article> <audio> <aside> <canvas> <header> <embed> <hgroup> <source> <footer> <track> <figure> <video> <figcaption> <nav> <section>
  • 36. HTML5: New elements (continued) (http://www.w3.org/TR/html5-diff/#new-elements) New <input> types: Miscellaneous: color <bdi> date <command> datetime <datalist> datetime-local <details> email <keygen> month <mark> number <meter> range <output> search <progress> tel <summary> time <rp> url <rt> week <ruby> <time> <wbr>
  • 37. What is HTML5, really? A constellation of technologies
  • 38. Canvas Audio/Video Geolocation CSS3
  • 39. When people say "HTML5," they're usually referring to... ...next-generation web sites that include one or more of the following: • Embedded audio/video media without resorting to Flash or other plugins • Native interactivity/animation/games without resorting to Flash or other plugins • Geolocation functionality • Sites with local storage that you can download and run offline • Fancy CSS3: columns, text shadows, animations... • Native support for MathML and SVG • Semantic markup
  • 40. HTML5 in Action on the Web
  • 41. Why should publishers care about HTML5?
  • 42. HTML5 is the Backbone of the EPUB 3 Standard The EPUB 3.0 specification for ebooks mandates that content documents use XHTML (HTML5) syntax: http://idpf.org/epub/30/spec/epub30-contentdocs.html#sec-xhtml While most major ereaders do not formally support EPUB 3, many HTML5 features are currently supported by the following platforms: • iBooks for iPad, iPhone, iPod • NOOK Color/Tablet • Kindle Fire • Kindle Apps (iPhone/iPad/Android/etc.) • Safari Books Online
  • 43. HTML5 in action in ebooks
  • 44. HTML5 Canvas for Publishers Canvas allows you to embed a dynamic sketchpad in your content: <canvas id="my_first_canvas" width="200" height="225"> The content you put here will show up if your rendering engine doesn't support the &lt;canvas&gt; element. </canvas>
  • 45. You draw on the <canvas> with JavaScript my_canvas.strokeRect(0,0,200,225) // to start, draw a border around the canvas //draw face my_canvas.beginPath(); my_canvas.arc(100, 100, 75, (Math.PI/180)*0, (Math.PI/180)*360, false); // circle dimensions my_canvas.strokeStyle = "black"; // circle outline is black my_canvas.lineWidth = 3; // outline is three pixels wide my_canvas.fillStyle = "yellow"; // fill circle with yellow my_canvas.stroke(); // draw circle my_canvas.fill(); // fill in circle my_canvas.closePath(); // now, draw left eye my_canvas.fillStyle = "black"; // switch to black for the fill my_canvas.beginPath(); my_canvas.arc(65, 70, 10, (Math.PI/180)*0, (Math.PI/180)*360, false); // circle dimensions my_canvas.stroke(); // draw circle my_canvas.fill(); // fill in circle my_canvas.closePath(); // now, draw right eye my_canvas.beginPath(); my_canvas.arc(135, 70, 10, (Math.PI/180)*0, (Math.PI/180)*360, false); // circle dimensions my_canvas.stroke(); // draw circle my_canvas.fill(); // fill in circle my_canvas.closePath(); // draw smile my_canvas.lineWidth = 6; // switch to six pixels wide for outline my_canvas.beginPath(); my_canvas.arc(99, 120, 35, (Math.PI/180)*0, (Math.PI/180)*-180, false); // semicircle dimensions my_canvas.stroke(); my_canvas.closePath(); // Smiley Speaks! my_canvas.fillStyle = "black"; // switch to black for text fill
  • 47. But Canvas is all about interactivity... You can dynamically update what's displayed on the canvas in real time, and in response to user input, which opens the door to animations, games, and more.
  • 48. Canvas in Action: Graphing Calculator http://bit.ly/canvascalc
  • 49. Canvas in Action II: Finger Painting http://bit.ly/canvasfingerpaint
  • 50. Geolocation for Publishers The W3C Geolocation API (http://dev.w3.org/geo/api/spec- source.html) provides a simple way of getting a user's latitude/longitude coordinates: navigator.geolocation.getCurrentPosition(callback_function) Where callback_functionis a function you define to receive and process the latitude/longitude data.
  • 51. Geolocation’s value in ebooks • Interactive Atlas, Road Maps • Travel/Restaurant guides customized for user’s location • Geolocated fiction • Geolocation-based games (geocaching, scavenger hunt)
  • 52. Geolocation in Action: A Geolocated Tale http://bit.ly/geolocatedtale Before...
  • 53. Geolocation in Action: A Geolocated Tale http://bit.ly/geolocatedtale After...
  • 54. Audio/Video for Publishers HTML5 lets you embed audio/video directly in your content without any plugins needed: <audio id="new_slang"> <video id="dancing_pony" width="300" <source src="new_slang.wav" height="300"> type="audio/wav"/> <source src="dancing_pony.mp4" <source src="new_slang.mp3" type="video/mp4"/> type="audio/mp3"/> <source src="dancing_pony.ogg" <source src="new_slang.ogg" type="video/ogg"/> type="audio/ogg"/> <em>(Sorry, &lt;video&gt; element not <em>(Sorry, &lt;audio&gt; element not supported in your browser/ereader, so supported in your browser/ereader, so you you will not be able to watch this will not be able to listen to this video.)</em> song.)</em> </video> </audio>
  • 55. Audio/Video Compatibility Woes (via Wikipedia) <audio> support in Browsers (http://en.wikipedia.org/wiki/Html5_audio#Audio_format_support) <video> support in Browsers (http://en.wikipedia.org/wiki/HTML5_video#Table)
  • 56. Ereader Audio/Video Compatibility Redux For audio, use MP3. It works on: • iBooks • NOOK Color/Tablet • Kindle software readers (iPad/iPhone/Android/etc.) For video, use H.264/MP4. It works on: • iBooks • NOOK Color/Tablet • Kindle software readers (iPad/iPhone/Android/etc.)
  • 57. Audio in Action: Audio-Enabled Glossary http://bit.ly/miniglossary
  • 58. Video in Action: A Clip About <canvas> http://bit.ly/ormcanvasvid
  • 59. MathML for Publishers • MathML is an XML vocabulary for representing mathematical expressions. • MathML provides both Presentation and Content Markup models. • Presentation markup tags math expressions based on how they should be displayed (e.g., “superscripted 2”). • Content markuptags expressions based on the mathematical operations performed (e.g., “taken to the 2nd power”) • The HTML5 specification provides native support for MathML in HTML documents
  • 60. MathML Presentation Markup Glossary (abridged edition) • <math> -- Root element for a mathematical expression • <mrow> -- Element for grouping subexpressions • <mo> -- Math operator (e.g., +, -) • <mi> -- Math identifier (e.g., variable or constant) • <mn> -- Number • <mfrac> -- Fraction • <msqrt> -- Square root • <msup> -- Superscript • <msub> -- Subscript • <mfenced> -- Parentheses or braces
  • 61. Convert a Famous Equation to MathML! http://bit.ly/mathconverter
  • 62. But why write all this markup: <math xmlns="http://www.w3.org/1998/Math/MathML"> <mstyledisplaystyle="true"> <mi> E </mi> <mo> = </mo> <mi>m</mi> <msup> <mrow> <mi> c </mi> </mrow> <mrow> <mn> 2 </mn> </mrow> </msup> </mstyle> </math> When you can just embed the equation as an image?
  • 63. Advantages of Using MathML Instead of Images: • Equations are resizable, like text • Equations can be styled with CSS • Equations can be interacted with using JavaScript
  • 64. MathML in Action: Quadratic Equation Solver http://bit.ly/mathml
  • 65. HTML5 support in today’s ereaders <canvas> Geolocation <audio> <video> MathML iBooks 1.x YES Sort of* YES YES YES NOOK NO NO YES YES NO Color/Tablet Safari Books YES YES YES YES YES Online Kindle Apps NO NO YES YES NO Kindle Fire NO NO NO NO NO * iBooks 1.x supports Geolocation API, but does not support calls to related APIs (Google Maps, GeoNames, etc.)
  • 66. Download HTML5 for Publishers: http://bit.ly/html5forpubs