These tips will serve as a guide for creating accessible EPUB 3 files.
Visual reading is only one way of accessing content. Do not use visual-only cues such as colored text, font size or positioning as the only clue to the meaning or importance of a word or section. Do not use tables or pictures of text to control the appearance of the content. The meaning of the content should be the same both with and without any styles or formatting applied.
Include a complete table of contents in the front matter and consider smaller tables of contents at the start of each section. Use <section> and <aside> tags in the content and the <itemref linear=”no”> tag in the manifest file to define a logical reading order.
Create a structure by using numbered headings in a logical structure. For other tagged structures, specify their content with the epub:type attribute. For example, the tag that contains the preface of a book might look like <section epub:type=”preface”>. Specific tags are for specific content only (i.e., the <cite> tag is only for citations) and should be used according to the standard. Use the most specific tag available and do not automatically wrap <div> or <span> tags around everything.
Include semantic information to describe the content of a tag. A section tag for the table of contents would look like <section epub:type="toc”> or a list of definitions in a glossary would be tagged with <dl epub:type="glossary">. Use the EPUB 3 Structural Semantics Vocabulary as defined at (http://idpf.org/epub/vocab/structure/) to identify content.
Any content embedded in an image is not available to visually impaired readers. Use proper and complete markup for text and tabular data, including headers and scope attributes for tables. If images of tables are unavoidable, provide a link to a separate page containing the properly marked up tabular data.
Every image should have a description, caption or alt text unless it is solely decorative.
Page numbers are the way many people navigate within a book. Use the epub:type=”pagebreak” attribute to designate page numbers. Include the ISBN of the source of the page numbers in the package metadata for the book. A tag for a page number might look like <span xml:id="page361" epub:type="pagebreak">361</span>.
To make sure each word will be rendered correctly, specify the default language of the content in the root html tag. Indicate any words, phrases or passages in a different language by using the xml:lang attribute: <span xml:lang="fr" lang="fr">rue Saint-Andre-des-Arts</span>.
9. Use MathML
MathML makes mathematical equations accessible to everyone by eliminating the ambiguity of a verbal description of a picture. There are many tools available to support MathML creation.
Make sure the native controls for video and audio content are enabled by default. Provide fallback options such as captions or descriptions for video and transcripts for audio.
[This work is licensed under the Creative Commons Attribution-NonCommercial 2.5 Generic License.]