EPUB 3 Accessibility Guidelines

Accessibility QA Checklist

Semantics

The epub:type attribute

  • Semantics from the EPUB Structural Semantics Vocabulary added to identify structural sections and significant content structures

Logical Reading Order

  • Secondary content is identifiable from logical reading order by inclusion in aside and figure tags
  • The order of the markup in content files matches the primary narrative
  • The publication is readable from beginning to end without scripting or styles applied

Separation of Style

  • CSS properties not defined using the style attribute [R]

XHTML Content Documents

Language

  • The lang and xml:lang attributes are set on all root html elements
  • The lang and xml:lang attributes are set on all instances of foreign language prose

Emphasis and Bolding

  • em, strong, i and b tags used as per their definitions in HTML5 [R]
  • CSS styling used for presentational bolding and italics [R]

Sections

  • All structurally-significant content grouped in section elements [R]

Headings

  • Numbered headings accurately reflect the document hierarchy
  • Each sectioning element has only a single heading
  • Headings have not been used in blockquote and figure elements [R]

Lists

  • Sets of related items marked up using ol or ul elements, as appropriate
  • Glossaries, dictionaries, faqs and similar name/value association lists marked up using dl elements

Tables

  • All table heading cells identified using th elements
  • The thead element used to group multi-row headings
  • The scope attribute added when heading cell applicability is not clear [R]
  • The headers attribute added to cells when their heading is ambiguous or contained in more than one cell [R]
  • A summary of the table layout and content provided for all complex tables [R]
  • Captions provided, as applicable [R]
  • Tables not used for presentational or fixed layout of content

Audio

  • Native controls enabled by default
  • To assist when audio may not be audible, one or more of the following provided: [R]
    • Transcripts of audio content provided
    • Sign-language interpretation provided via an associated video element
  • Navigation by scene provided, when applicable [O]

Video

  • Native controls enabled by default
  • To assist when audio may not be audible, one or more of the following provided: [R]
    • Captions for all video content containing audio content
    • Subtitles for all video content contain ing spoken language
    • Sign-language interpretation track for all video content
    • Transcripts of video content provided
  • To assist when video may not be visible: [R]
    • Text description tracks provided
  • Navigation by scene provided, when applicable [O]

Figures

  • Images, charts, code samples and other secondary content encapsulated in figure tags
  • The figcaption element used to identify figure captions

Images

  • Text alternatives provided for all significant images
  • Descriptions provided for all significant images [R]
  • alt attribute left empty for all decorative images
  • The ARIA role attribute included with the property presentation for all decorative images [R]

Image Maps

  • alt attribute used to provide meaningful labels to image map areas
  • Server-side image maps not used [R]

Inline Frames

  • A meaningful title added to all significant iframe elements
  • A link to the associated content document included as a fallback for all significant iframe elements [R]
  • Relative sizing units used for all iframe elements [R]
  • Scrolling not disabled by default on iframe elements [R]

Notes

  • Notes within the primary narrative identified using the aside element with an appropriate epub:type value
  • Groups of notes identified by an appropriate epub:type value
  • Note references identified using the epub:type attribute with the value noteref

Annotations

  • Annotations within the primary narrative identified using the aside element with an epub:type attribute with the value annotation
  • Inline annotations identified using the ruby element [R]
  • Annotation references identified using the epub:type attribute with the value annoref

Context Breaks

  • Changes in context identified using hr elements [R]

Page Numbers

  • The print source identified in a dc:source element in the package document metadata section
  • Print page break locations included when the EPUB has a print equivalent [R]
  • The navigation document includes a page-list nav to facilitate page navigation [R]

MathML

Descriptions

  • MathML markup included for all math content
  • Simple MathML content described using the alttext attribute [R]
  • Complex MathML content described using an embedded annotation-xml element [R]

SVG Content Documents and Images

Language

  • The xml:lang attribute set on all root svg elements
  • The xml:lang attribute set on all instances of foreign language text within each SVG image

Titles and Descriptions

  • All significant images include a title (title element)
  • All complex images include a description (desc element)
  • All components within an SVG image include a title and desc
  • All presentational SVG images marked using the ARIA role attribute [R]

Components

  • Component definitions re-used whenever possible to simplify overall comprehension [R]

Text Content

  • All embedded text content contained in text elements
  • Sufficient contrast maintained between embedded text and background image
  • Custom fonts used in place of creating text as images

Linking

  • All embedded links include an xlink:title attribute explaining the target location
  • Linked components are visually distinguishable from unlinked components [R]

Styling

  • CSS rules defined for title and desc elements to enable rendering
  • Visual styling of components separated into CSS style sheets to facilitate reader customization [R]

Interactivity

  • Scripting not required to render or understand SVG images
  • ARIA roles, states and properties used to enhance the accessibility of scripted content
  • Text equivalents are updated whenever dynamic content changes
  • Device-independent events used for all interactive actions

EPUB Style Sheets

Colors

  • Semantic markup used whenever colors convey information visually
  • Sufficient contrast levels maintained between the text and any background colors and images (as defined in WCAG 2.0)
  • Text not positioned over pictures and other images with noisy backgrounds [R]
  • Red/green combinations have been avoided [R]
  • Red/black combinations have been avoided [R]
  • Brightly colored hue combinations have been avoided [R]

Backgrounds

  • Background images not used to convey information
  • Sufficient contrast levels maintained between the text and any background colors and images (as defined in WCAG 2.0)

Hidden Content

  • Content critical to the logical flow of a publication not initialized in a hidden state
  • HTML5 and ARIA techniques used to include optional text and descriptions
  • The state of the aria-hidden attribute maintained as the visibility of content is toggled

Fixed Layout

XHTML

  • Logical reading order maintained in markup
  • Semantic markup applied to content to facilitate comprehension of layout

Image

  • Publication does not contain empty documents that employ the background-image property to display images

Navigation

Media Overlays

Highlighting

  • Sufficient contrast maintained between active text and the highlighting color

Lists

  • Each list in the markup represented by a seq element with its epub:type attribute set to list [R]
  • Each list item in the markup represented either by a seq or par element with its epub:type attribute set to list-item [R]
  • All related dt and dd elements in a definition list are grouped together in a seq element with its epub:type attribute set to list-item [R]

Tables

  • Each table in the markup represented by a seq element with its epub:type attribute set to table [R]
  • Each table row in the markup represented by a seq element with its epub:type attribute set to table-row [R]
  • Each table cell in the markup represented either by a seq or par element with its epub:type attribute set to table-cell [R]

Text-to-Speech

PLS Lexicons

  • The lexicon defines all unique proper names, nouns and other complex words [R]
  • The lexicon includes the default pronunciation for any heteronyms [R]

SSML

  • Pronunciations defined to disambiguate heteronyms [R]
  • Pronunciations defined for ambiguous number forms [R]
  • Pronunciations defined for jargon, slang, slurred and other non-standard speech forms [R]

CSS3 Speech

  • All abbreviations, acronyms, numbers and other constructs that should be spelled out have the spell-out property defined [R]

Scripted Interactivity

Progressive Enhancement

  • Scripting not required in order to traverse the complete logical reading order of the publication
  • Scripting not required in order to make content visible
  • Readers can access all content regardless of location, preference settings, etc. [R]

Content Validity

  • Scripting not used to manipulate the HTML DOM in such a way that it produces invalid markup

WAI-ARIA & Custom Controls

  • All custom controls are reachable in a device-independent manner
  • All custom controls fully implement ARIA roles, states and properties, as appropriate

Forms

  • Labels and controls linked via markup
  • All custom controls are reachable in a device-independent manner
  • Form controls laid out in logical order or tabindex attribute used to give order
  • All custom controls made accessible via use of ARIA roles, states and properties
  • The aria-invalid attribute set when fields contain invalid data

Live Regions

  • All live regions identified using ARIA roles and properties
  • Assertiveness of all announcements matches their importance to the reading experience

Canvas

  • figure and figcaption used to add context when canvas represents a static image
  • canvas only used to enhance graph, chart and similar data representations
  • ARIA roles, states and properties used to make interactive canvas elements accessible
  • Alternate representations and fallbacks included when accessible scripting not possible

Note: Always consider including an ONIX metadata record with your publication indicating the applicable accessibility criteria that have been met (see the ONIX metadata info page).