Reflowable EPUB 3 Conformance Test Document: 0100

Status of this Document

This publication is currently considered [UNDER DEVELOPMENT] by the IDPF.

This publication is part of version X.X of the EPUB 3.0 Compliance Test Suite released on TBD.

Before using this publication to evaluate reading systems, testers are strongly encouraged to verify that they have the latest release by checking the current release version and date of the test suite at TBD

This publication is one of several that currently comprise the EPUB 3 conformance test suite for reflowable content. The complete test suite includes all of the following publications:

.

About this Document

This document focuses on human-evaluated binary (pass/fail) tests in a reflowable context. Tests for fixed-layout content and other individual tests that require a dedicated epub file are available in additional sibling documents; refer to the test suite wiki (https://github.com/mgylling/epub-testsuite/wiki/Overview) for additional information.

Conventions

The following conventions are used throughout the document:

1. Locating a test

Tests for required Reading System functionality are preceded by the label: [REQUIRED]

Tests for optional Reading System functionality are preceded by the label: [OPTIONAL]

2. Performing the test

Each test includes a description of its purpose followed by the actual test statement, which can always be evaluated to true or false. These statements typically have the form: "If [some condition], the test passes".

3. Scoring in the results form

@@@TODO provide info on where to get the results form

Content Documents: XHTML

This section contains tests for static XHTML content.

[REQUIRED]

iframe-010 Inline Frames

Tests whether embedding content via an iframe is supported.

If the preceding paragraph reads "PASS", the test passes.

Multimedia

Images

[REQUIRED]

img-010 GIF

Tests whether the GIF image format is supported.

If a checkmark precedes this paragaph, the test passes.

[REQUIRED]

img-020 PNG

Tests whether the PNG image format is supported.

If a checkmark precedes this paragaph, the test passes.

[REQUIRED]

img-030 JPEG

Tests whether the JPEG image format is supported.

If a checkmark precedes this paragaph, the test passes.

Audio

[REQUIRED]

audio-010 The audio element: MP3

Tests whether the HTML5 audio element is supported using MP3 audio.

If the preceding audio clip can be played (a woman's voice will be heard, beginning "a crime to sink your teeth into"), the test passes.

[REQUIRED]

audio-020 The audio element: MP4 AAC LC

Tests whether the HTML5 audio element is supported using AAC LC audio in an MP4 container.

If the preceding audio clip can be played (a woman's voice will be heard, beginning "a crime to sink your teeth into"), the test passes.

[REQUIRED]

audio-030 The audio element: source elements

Tests whether media specified via source elements is recognized:

If the preceding audio clip can be played (a woman's voice will be heard, beginning "a crime to sink your teeth into"), the test passes.

Video

[OPTIONAL]

video-010 The video element: VP8

Tests whether the HTML5 video element is supported using WebM video (VP8 video with Vorbis audio).

If the preceding video clip can be played (a man's voice will be heard, beginning "Hi there, I quickly want to show you"), the test passes.

[OPTIONAL]

video-020 The video element: H.264

Tests whether the HTML5 video element is supported using MP4 video (H.264 video with AAC-LC audio).

If the preceding video clip can be played (a man's voice will be heard, beginning "Hi there, I quickly want to show you"), the test passes.

[OPTIONAL]

video-030 The video element: source elements

Tests whether media specified via source elements is recognized:

If the preceding video clip can be played (a man's voice will be heard, beginning "Hi there, I quickly want to show you"), the test passes.

This test will fail if neither H.264 nor VP8 are supported, regardless of support for the source element. Other codecs must be tested manually.

[OPTIONAL]

video-040 The video element: Poster Images

Tests whether poster images are supported the HTML5 video element:

If the Skype logo appears in the video area, the test passes.

[OPTIONAL]

video-050 The video element: Captions (WebVTT)

Tests whether WebVTT captions are supported in the HTML5 video element:

If captions appear during the first 10s of video playback, or can be turned on from the player interface, then the test passes.

[OPTIONAL]

video-060 The video element: Captions (TTML)

Tests whether TTML captions are supported in the HTML5 video element:

If captions appear during the first 10s of video playback, or can be turned on from the player interface, the test passes.

[OPTIONAL]

video-070 The video element: Subtitles (WebVTT)

Tests whether WebVTT subtitles are supported in the HTML5 video element:

If subtitles appear during the first 10s of video playback, or can be turned on from the player interface, the test passes.

[OPTIONAL]

video-080 The video element: Subtitles (TTML)

Tests whether TTML subtitles are supported in the HTML5 video element:

If subtitles appear during the first 10s of video playback, or can be turned on from the player interface, the test passes.

epub:trigger

[REQUIRED]

trigger-010 The trigger element: play

Tests whether playback of multimedia content by epub:trigger elements is supported.

play

If the "play" button initiates playback of the audio clip from 00:00:00, including when pressed during playback or after pausing, the test passes.

[REQUIRED]

trigger-020 The trigger element: pause/resume

Tests whether pausing and resumption of multimedia content by epub:trigger elements is supported.

resume pause

If the "resume" button (re)starts playback of the audio clip and the "pause" button halts it, the test passes.

[REQUIRED]

trigger-030 The trigger element: mute/unmute

Tests whether muting and unmuting of multimedia content by epub:trigger elements is supported.

mute unmute

After initiating playback of the audio clip, if the "mute" button silences the audio track and "unmute" re-enables it (at the same volume as before), the test passes.

[REQUIRED]

trigger-040 The trigger element: hide/show

Tests whether content can be hidden and revealed by epub:trigger elements.

hide show

If the "hide" button hides the audio player and the "show" button reveals it, the test passes.

Namespace Support

[REQUIRED]

namespace-010 Prefixes

Tests that namespace prefix support is not hard-coded into the application.

If a black circle is rendered before this paragraph, the test passes.

If SVG is not supported, this test will fail regardless of actual namespace prefix support. Prefix support will need to be manually tested against a supported namespace.

MathML

[REQUIRED]

mathml-010 Rendering

Tests whether MathML equation rendering is supported.

∫ − ∞ ∞ e − x 2 d x = π ∑ n = 1 ∞ 1 n 2 = π 2 6 x = − b ± b 2 − 4 a c 2 a

If the preceding equations are not presented as linear text (e.g., x=-b±b2-4ac2a), the test passes.

[OPTIONAL]

mathml-020 CSS Styling of the math element

Tests whether basic CSS styling of MathML is supported on the math element.

2 ⁡ x + y - z

The test passes if the equation has a yellow background and a dashed border.

If the reading system does not have a viewport, or does not support CSS styles, this test should be marked Not Supported.

[OPTIONAL]

mathml-021 CSS Styling of the mo element

Tests whether basic CSS styling of MathML is supported on the mo element.

2 ⁡ x + y - z

The test passes if the operators are enlarged relative to the other symbols and numbers.

If the reading system does not have a viewport, or does not support CSS styles, this test should be marked Not Supported.

[OPTIONAL]

mathml-022 CSS Styling of the mi element

Tests whether basic CSS styling of MathML is supported on the mi element.

2 ⁡ x + y - z

The test passes if the identifiers are bolded and blue.

If the reading system does not have a viewport, or does not support CSS styles, this test should be marked Not Supported.

[OPTIONAL]

mathml-023 CSS Styling of the mn element

Tests whether basic CSS styling of MathML is supported on the mn element.

2 ⁡ x + y - z

The test passes if the number 2 is italicized and blue.

If the reading system does not have a viewport, or does not support CSS styles, this test should be marked Not Supported.

[REQUIRED]

mathml-024Horizontal stretch, mover, munder, and mspace elements

Tests whether horizontal stretch, mover, munder, mspace elements are supported.

c = a ⏟ real + b ⁢ ⅈ ⏟ imaginary ⏞ complex number

The test passes if the rendering looks like description of imaginary number: c = a +bi with an overbrace reading 'complex number' and underbraces below 'a' and 'b i' reading 'real' and 'imaginary' respectively..

[REQUIRED]

mathml-025Testing mtable with colspan and rowspan attributes, Hebrew and Script fonts

Tests whether mtable with colspan and mspace attributes (colum and row spanning) are supported; uses Hebrew and Script alphabets.

cov ℒ ⟶ non 𝒦 ⟶ cof 𝒦 ⟶ cof ℒ ⟶ 2 ℵ 0 ↑ ↑ ↑ ↑ 𝔟 ⟶ 𝔡 ↑ ↑ ℵ 1 ⟶ add ℒ ⟶ add 𝒦 ⟶ cov 𝒦 ⟶ non ℒ

The test passes if the rendering looks like Cichoń's Diagram: rendering of Cichoń's diagram..

[REQUIRED]

mathml-026BiDi, RTL and Arabic alphabets

Tests whether right-to-left and Arabic alphabets are supported.

د ⁡ ( س ) = { ∑ ٮ = 1 ص ⁡ س ٮ إذاكان س > 0 ∫ 1 ص ⁡ س ٮ ⁢ ء ⁡ س إذاكان س ∈ م طا ⁡ π غيرذلك ( مع π ≃ 3,141 )

The test passes if the rendering looks like the following image: a piecewise defined function in Maghreb-style notation.

[REQUIRED]

mathml-027Elementary math: long division notation

Tests whether mlongdiv elements (from elementary math) are supported.

3 435.3 1306 12 10 9 16 15 1.0 9 1

The test passes if the rendering looks like the following image: A long division dividing 1306 by 3, presented in 'lefttop' (US) notation.

[REQUIRED]

mathml-028Multiscripts, Greek and Gothic alphabets

Tests whether mmultiscript elements as well as Greek and Gothic alphabets are supported.

∏ 𝔈 υ τ ρ σ 𝔇 π ο ν ξ 𝔄 δ γ α β 𝔅 θ η ε ζ 𝔉 ω ψ ϕ χ ℭ μ λ ι κ

The test passes if the rendering looks like the following image: a large capital Pi with Gothic characters as multiscripts which in turn have Greek multiscripts.

SVG

Shapes

[REQUIRED]

svg-010 Circle

Tests whether simple vector shapes are supported by drawing a circle.

If a black circle is rendered before this paragraph, the test passes.

[REQUIRED]

svg-020 Transformation

Tests whether simple vector shape transformations are supported by transforming a square into a diamond.

If a black diamond is rendered before this paragraph, the test passes.

Text content

Styling

[REQUIRED]

svg-110 letter-spacing

Tests whether the letter-spacing attribute is supported.

If the space between letters is different for each line, the test passes.

[REQUIRED]

svg-120 word-spacing

Tests whether the word-spacing attribute is supported.

If the space between words is different for each line, the test passes.

[REQUIRED]

svg-130 font-size

Tests whether the font-size attribute is supported.

If the size of the two last lines is different than the first line, the test passes.

[REQUIRED]

svg-140 font-weight

Tests whether the font-weight attribute is supported.

If the weight of the second line is different than the first line, the test passes.

[REQUIRED]

svg-150 font-style

Tests whether the font-style attribute is supported.

If the font-style of the second line is different than the first line, the test passes.

[REQUIRED]

svg-160 text-decoration attribute

Tests whether the text-decoration attribute is supported.

If the second line is underlined and the third has a line through the text, the test passes.

Positioning

[REQUIRED]

svg-210 Lines

Tests whether the x and y attributes on text elements for positioning lines is supported.

If the vertical alignment of the three lines is different, the test passes.

[REQUIRED]

svg-220 Words and Characters

Tests whether the SVG code for positioning words or characters is supported using the text and tspan elements.

If the text "This is a veeery biiig wave" rises and falls in an arc like a wave, the test passes.

[REQUIRED]

svg-230 Text: path element

Tests whether positioning text on a path is supported.

If the text follows a parabolic path, the test passes.

[REQUIRED]

svg-240 Text: text element with multiple x and y values

Tests whether multiple values of the x and y attributes are supported.

If the text goes down, the test passes.

Rotating

[REQUIRED]

svg-310 rotate

Tests whether the rotate attribute is supported.

If the characters in the preceding sentence are rotated, the test passes.

[REQUIRED]

svg-320 transform

Tests whether transform attribute (translate and rotate values) are supported.

If each line of text is rotated by the degree it indicates, the test passes.

XHTML Support

[REQUIRED]

svg-410 img

Tests whether SVG is supported in img elements.

If a grey circle is rendered before this paragraph, the test passes.

[REQUIRED]

svg-420 object

Tests whether SVG is supported in object elements.

FAIL

If a circle is rendered before this paragraph, the test passes.

[REQUIRED]

svg-430 background-image (CSS)

Tests whether SVG is supported when set using the CSS background-image property.

If a grey circle is rendered at the right bottom of this section, the test passes.

Image Embedding

[REQUIRED]

svg-510 Bitmaps

Tests whether bitmap images can be embedded in an SVG image.

If a black circle is rendered before this paragraph, the test passes.

Fallbacks

This section contains tests for Fallbacks.

Bindings

[OPTIONAL]

bindings-010 bindings

Tests whether bindings on objects are supported.

FAIL

The slideshow binding was not called

If the preceding paragraph reads "PASS", the test passes. Other messages may indicate partial support.

If the reading system does not support scripting, this test should be marked Not Supported.

Fallbacks

Manifest

[REQUIRED]

fallback-010 Image fallbacks

Tests whether manifest fallbacks for non-core image media types are supported.

If an image of a checkmark is rendered before this paragraph, the test passes.

[REQUIRED]

fallback-020 Inline frame fallbacks

Tests whether manifest fallbacks for non-core media types used in iframes are supported.

If an image of a checkmark is rendered before this paragraph, the test passes.

[REQUIRED]

fallback-030 Embed fallbacks

Tests whether manifest fallbacks for non-core media types used in embeds are supported.

If an image of a checkmark is rendered before this paragraph, the test passes.

Intrinsic

[REQUIRED]

fallback-040 Object fallbacks

Tests whether object's intrinsic fallback mechanism for non-core media types is supported.

PASS

If the preceding paragraph reads "PASS", the test passes.

epub:switch

[REQUIRED]

switch-010 Support

Tests whether the epub:switch element is supported.

FAIL

PASS

If only the word "PASS" is rendered before this paragraph, the test passes. If both "PASS" and "FAIL" are rendered, or neither "PASS" nor "FAIL" is rendered, the test fails.

[OPTIONAL]

switch-020 MathML Embedding

Tests whether the MathML namespace is recognized when used in an epub:case element.

2 ⁡ x + y - z

FAIL

If a MathML equation is rendered before this paragraph, the test passes.

If test switch-010 did not pass, this test should be marked Not Supported.

Content Documents: SVG

This section contains tests for static SVG content.

Note that if no SVG tests appear after this document, SVG is not supported in the spine and all tests in this section should be marked Not Supported.