Contents | Start | End | Previous: Chapter 20: Adding Interactivity To Your Book | Next: Chapter 22: Working With Text-To-Speech
In this chapter, we discuss how your books can be made more accessible to disabled readers by targeting the Epub 3 format. This is becoming more relevant as the European Union’ Accessibility Act comes into force in June 2025 and new ebooks in this market will need to comply.
For an alternative way to make your documents accessible, see Chapter 21: Working With Text-To-Speech.
If you intend to create books that are accessible to disabled readers, you need to understand how to use Jutoh to add extra information to your book. Jutoh has features that can help automate the insertion of accessibility information, while some must be added manually. For best results, you will need to do some reading around the subject to understand the principles and specifics of accessibility.
At present, a high level of accessibility (as illustrated by the features listed in this topic) is only supported by Epub 3, the DAISY digital talking book (DTB) standard, and annotated PDF. Of these formats, only Epub 3 and (to a limited extent) DTB are supported by Jutoh. Amazon accepts Epub 3 files, as does Apple and most other distributors. However, Epub 2 remains the lowest common denominator for distributing widely, and the format is still somewhat accessible, depending on how the book has been prepared.
Jutoh’s accessibility support should be enough to allow user’s books to be compliant with legislation. We will be listening to feedback in order to improve support further.
Jutoh tries to automate as much as possible, in particular relying on using a well-planned and consistently used set of styles in your project. If this doesn’t describe your project, please take the time to create named paragraph styles for headings, images, captions, and so on, and apply them to your book. Some forethought should save a lot of time in the long run.
Jutoh's accessibility features are demonstrated in the sample ‘Novella Accessibility Sample.jutoh’. This is a novella that’s publication-ready, in Kindle, Epub and print formats, with a narration-friendly transcript format too. It passes the ACE by DAISY checks, with metadata conformant to the EU Accessibility Act's requirements.
You can get a quick summary of some of the accessibility issues in your book by using the menu command Book | Check Accessibility. Since different configurations may generate different content, you will be offered a choice of configuration. Please note that while the Jutoh accessibility checker can be used for fixed layout books, contrast ratio checking will not work since determining text contrast against images is hard.
More detailed information is provided when you compile your book with an Epub 3 configuration and the advanced preferences option Accessibility warnings is enabled. Most of these warnings will allow you to identify the location in your book where the problem arises.
You can also use the free ACE by DAISY tool to check your Epub 3 file, and you should manually review your book for conformance with the latest accessibility standards.
The W3C organisation publishes WCAG (Web Content Accessibility Guidelines) which some countries, including European Union members, are adopting for digital media including ebooks. Obviously, not all of the guidelines apply to ebooks, which makes it rather heavy-going wading through them. To complicate matters, the standards are continually evolving, and the author or publisher is expected to keep track of these changes and update their books accordingly!
The following section lists the main aspects of accessibility as they relate to ebooks and Jutoh in particular. If you follow this, your book should conform to the current standard at the time of writing: WCAG 2.2. There are three levels, and Level II should be the appropriate one to target.
This is a checklist of what you can do in Jutoh to make your book accessible.
In the following, the term ‘tag’ refers to an HTML element such as ‘section’ or ‘em’. In most cases, these are hidden from the Jutoh user and generated automatically. However, occasionally this is not enough, and you may need to insert tags explicitly via the Objects tab in the Formatting Palette, or via Insert | Object. For example, you can insert a ‘nav’ object to tell assistive technology that a list is a table of contents, and you can insert a ‘span’ object to temporarily switch language for the enclosed text. Such objects appear as a start tag and end tag, preferably in their own paragraphs if they enclose multiple paragraphs.
There are frequent references to setting advanced properties such as Role or ARIA label. For a paragraph, you can access them by using Format | Paragraph and clicking Advanced. For images, click on the image and choose Advanced. For tables, right-click or control-click over the table, click on Table and then choose Advanced.
Fill in the accessibility metadata
To be compliant with the EU Accessibility Act, certain metadata must be added to your project. Click Edit on the toolbar to show the Project Properties, and then in the Metadata page, click on the Accessibility sub-page. Click on the “...” buttons next the fields that have them to choose from the possible options, or if you’re more familiar with the values, you can type in comma-separated values where appropriate.
You can also click Deduce From Project to set metadata values based on the content and its formatting. This should be used in conjunction with manual assessment.
The metadata will allow assistive technology to describe what features the book has, and will also indicate its level of conformance to accessibility standards. For more information, click Help when the Accessibility page is showing.
Use semantic markup
Sighted readers can use visual cues to understand the structure and intent of a book, but assistive technology requires more explicit guidance to help the blind or otherwise disabled user navigate the content. In Epub 3 terminology, for example, a table of contents comprising a list of links can be marked with a ‘nav’ element, and a chapter can be marked with a ‘section’ element whose Role is set to ‘doc-chapter’.
Similarly, if text should be read with emphasis, then you need to use the ‘em’ phrase element and not simply italics.
In addition, the Role attribute can be associated with many elements to indicate their purpose, including section elements, links, headings, and so on. Jutoh allows editing the role in the Advanced tab of various property dialogs, including image and document properties.
Although you can directly add elements to your text via the Objects tab of the Formatting Palette, and set roles via property dialogs, Jutoh offers a way to use styles to automatically add semantic markup. The Accessibility page in Project Properties (not to be confused with the accessibility metadata tab) lets you map from styles to elements with optional roles. This is described in more detail below.
Allow text to be resized
Avoid applying text size unduly, and use 12pt text for the majority of your text. 12pt text indicates the default size for ereader software, and Jutoh therefore omits a size specification for this text so it can be defined by the ereader. Also, avoid explicit line spacing (as opposed to before or after-paragraph spacing). You can strip line spacing from your book at compile time by clearing the configuration option Generate line spacing. To strip directly-formatted (ad hoc) text size from your book, use Format | Book | Formatting Cleanup and check Remove ad hoc point size from text.
Switch off text justification
Some people find justified text hard to read as it introduces irregular spacing. If you leave your paragraph style alignment to ‘Indeterminate’, the user will usually be able to set justification in the reader software if required. Make sure you also remove justification for the default formatting in the style sheet by editing its properties.
Use alternative text and other properties for images
For an image that is purely for decoration, check the Decorative option in the image properties. This is equivalent to setting the Role property to ‘presentation’ in the image properties Advanced tab. Assistive technology will then know to ignore it, and also for Jutoh to ignore it for the purposes of automatic figure insertion (see below).
If you have a lot of decorative images to mark as such, you can use Format | Book | Formatting Cleanup, and check the Mark images as decorative option. Set a matching image name (which might be a pattern such as “Decoration*”) or the image width or height.
If the image is not decorative, be sure to fill in the Alternative text field for the image. For your cover design, edit it via Project Properties/Cover/Edit Cover Design, click Properties in the cover design editor, and fill in the alternative text.
There’s no need to describe an image in detail if it’s functional, such as a button image; you could instead describe its purpose, such as “Edit”. Consider the image’s intent, and not just its visual details. You may wish to try an AI caption generator, but again, exercise caution in case the result does not capture the intent of the image.
If the image contains text, the text should be in the description.
Consider describing a complex image in the document text to help enlighten all readers.
You may not need to start the text with “An image of...” since most assistive technology will make it clear. However, less sophisticated ebook readers with speech output such as Thorium will just read the alternative text without indicating an image, so this advice may not always be applicable.
You can also use the ARIA advanced properties to provide further information to assistive technology such as a short label or reference relevant descriptions in the content by identifier. For example, click on a paragraph under an image that gives a long explanation of the image. Use Format | Paragraph and give it an identifier in the Advanced tab, say ‘description’. Then click on the image and in the Advanced tab, set ARIA described by to this identifier. Now assistive technology will know to give the user the option of a longer description of the image.
Use print book page numbers
WCAG accessibility advice recommends that where appropriate, you reference the equivalent print book page numbers in your ebook. This will create a list of page numbers for easier identification of content. You can also do this even if there isn’t a print book. Use Insert | Fields | Print Book Page Number to insert page break markers into the book, and use the configuration options Generate page list, Show page numbers, Page number formatting and Page number source to control this feature. For more information, please see Working with print book page numbers in the Jutoh help.
Enclose images and tables in figures
Wrapping images and tables up in ‘figure’ tags containing captions ensures that the ereader knows which text is associated with which figures. Jutoh can insert these tags if you enable the option in the Accessibility page of Project Properties. You can specify styles you have used for captions, and Jutoh will look for figures near the caption (currently, only a single image or table above the caption). In addition, Jutoh will optionally insert image alternative text and table descriptions using an HTML5 ‘details’ tag that displays an extra description when clicking on a button next to the caption. Obviously, for the best results, enter descriptions into all your images and tables. For images that are purely for decoration, set the Role property to ‘presentation’ to avoid spurious figures.
If your configuration specifies Epub version 2, then ‘div’ tags are added instead of ‘figure’ tags.
Include a table of contents
A table of contents is essential for accessibility, so you can either let Jutoh generate a default one on compilation, or use Format | Book | Build Table of Contents to insert one into the project.
If possible, specify a list style for your table of contents, so that the items will be formatted as a true list. This will be easier for assistive technology to identify and navigate.
You might also like to include a mini table of contents per chapter, especially if you are writing a complex non-fiction book. It should be formatted as a list, wrapped in a ‘nav’ tag which can be inserted via the Objects tab in the Formatting Palette, or via Insert | Object. The ‘nav’ tag should have its Role property set to ‘navigation’, with its ARIA label set to appropriate text such as “Contents for Chapter 1”.
Include a navigation document
The navigation document is a compulsory part of an Epub 3 file containing a table of contents and landmarks section. Jutoh generates this automatically from the navigation map and document guide types, but if you use an advanced table contents (built using Format | Book | Build Table of Contents) you can make it more helpful than the default, single-level contents that Jutoh generates by default.
Mark table headers
The sighted user can easily distinguish a table heading from the rest of the table if it has been formatted in an appropriate way; to help disabled readers, make it plain which are header rows in table properties by specifying the number of rows that are part of the header, in the Repeat header control. If several rows are part of the header, and there are spanned columns, Jutoh will generate code to indicate to the other table cells which all the appropriate header cells are.
If you have header cells that are outside the main header rows, you can mark them as such individually using the Cell headers control in the table properties dialog.
If your table is purely for layout purposes, you can mark it as such by setting the Role property to ‘presentation’. This will suppress warnings about the table.
Avoid split and merged table cells
Complex tables confuse screenreaders, so if possible avoid cell splits and merges.
Use the ‘aside’ element
It’s important for a disabled person to know what parts of the content are part of the main flow, and which are not. The HTML ‘aside’ element caters for this, and for text boxes, Jutoh lets you indicate in the box properties dialog whether it is an ‘aside’ or a normal block. You can configure footnotes to use asides by checking the configuration options Popup footnotes and Hide footnotes. You an also insert ‘aside’ elements manually if you wish.
Mark up language changes
You should specify a change in language using the Language attribute in the advanced properties of a paragraph or element (such as a span object) that you add.
Hide text from the screen reader if appropriate
You can use the ARIA hidden attribute in the advanced properties of a paragraph or element (such as a span object) that you add so that it’s skipped by the screen reader. Unfortunately there is no equivalent that will hide visual content but leave text to be read aloud.
Avoid ambiguous link text
Instead of using text such as ‘More’ or ‘Click here’, make it clearer and more specific since the context may not be so obvious to someone using assistive technology. Also avoid having the link itself as the link text.
Or, you can specify the ARIA label for the link, and this will be presented to the reader instead of the link text. The label is available in the URL dialog and also in the Properties tab of the page link selector dialog.
Don’t include text or tables in images
Unless impossible to avoid, try not to include images that are mainly or purely text, and likewise make proper tables instead of using images of tables.
Use a sequential hierarchy of headings
Use styles such as ‘Heading 1’, ‘Heading 2’ in sequential order with no jumps of heading number more than one. Ensure that whatever heading styles you use are recognised by Jutoh via the configuration option Heading style prefix, which by default is set to ‘Heading’. Or you can use the Project Properties/Accessibility to specify which styles map to headings and at what level.
If you have an element such as a paragraph or ‘div’ object that acts like a heading but which won’t be detected as a heading, you can set the element’s Role to ‘heading’ and its ARIA level to a hierarchy level number.
Ensure text has sufficient contrast
Over-use of colour can create situations where text will be hard to read. Jutoh will warn about these problems for reflowable books, but doesn’t currently detect problems with box or table border colours.
Don’t use colour as the sole way to convey information
If colour is the only way meaning is conveyed, it will be lost on blind readers.
Don’t use blank paragraphs for spacing
If possible, use correct before and after-paragraph spacing in your named styles instead of using blank paragraphs.
Use document guide types
Set the guide type for significant sections in your book, such as the title page (‘title-page’ or ‘titlepage’), table of contents (‘toc’), first chapter (‘text’ or ‘bodymatter’), and so on. This will be used for the guide section (Epub 2) and landmarks section (Epub 3), allowing easy navigation to the important parts of the book. Although Jutoh lists Epub 2 guide types in the document properties dialog, you can use either Epub 2 guide types or Epub 3 types and Jutoh will translate them appropriately.
Use available checking and testing facilities
You may be tempted to switch the Accessibility warnings option off in Advanced Preferences, but unless it’s irrelevant to you, try to keep it turned on so that you are alerted to various accessibility issues in your project. You can be warned about a bad heading hierarchy, poor text contrast, missing alternative text for images, and other problems.
For even more information about the accessibility of your book, you can use the ACE for DAISY accessibility checker. You can add ACE as an Epub helper in Preferences/Helpers so that you can quickly launch it as if it were a viewer.
Since an accessible book can be more complex, and Jutoh might miss some code generation problems, you should also use EpubCheck, available via Jutoh’s Check command if you have Java installed on your computer.
You can use the readers listed at the end of the chapter to test accessibility features. For example, language switching works in Thorium Reader on Windows if you have the correct voices installed.
If you test on a variety of ebook reader devices, you will get a feeling for what makes a difference. For example, you can see how contrast is different on an e-Ink display compared with a regular LCD screen.
The purpose of inserting sections is to assign more meaning than a simple heading or other style confers. For example, you might have two titles, ‘Chapter 1’ and ‘Acknowledgements’ both using the style ‘Heading 1’. If the configuration option Heading style prefix is set to ‘Heading’ (the default), then at least the paragraph will be generated using the h1 tag. However, it still doesn’t give much information about the type of section that this heading introduces.
What we would really like to do is enclose the heading (and the text below it) in a section, and assign the role ‘doc-chapter’ to the section within the Chapter 1 document, and the role ‘doc-acknowledgments’ within the Acknowledgements document.
For example:
<section epub:type="chapter" role="doc-chapter">
<h1 epub:type="title">Chapter 1</h1>
...
</section>
(Epub type is deprecated in favour of Role but is included for compatibility.)
So we could would like to use a ‘Chapter’ heading style and an ‘Acknowledgements’ heading style, both mapping to an ‘h1’ HTML tag but with different roles.
When creating an Epub 3 file, Jutoh scans the mapping for style patterns that match paragraph styles. If there is a match, Jutoh will insert a section tag in front of the heading paragraph, and will close the tag either when a subsection with a greater level is encountered, or the document ends. At the same time, the mapping item can assign the heading level, a Role and Epub type for the section, and an optional Role and Epub type for the heading itself.
You can define any number of mapping items for the same heading level, so it is a more powerful way of indicating headings than the simple Heading style prefix configuration option, and overrides it.
Similarly, for phrase element mappings, character styles are matched against entries in the mapping and the appropriate elements inserted. For ‘em’ and ‘strong’ tags, any existing italic and bold attributes are removed so the default HTML formatting for these elements will be used.
Jutoh can help generate SMIL media overlay files both with and without associated media files and timings. Unfortunately, the largest ebook vendor – Amazon – doesn’t yet support SMIL files, but this may change.
In the Accessibility page in Project Properties, click on the Speech tab and check Generate overlays for TTS. Now Jutoh will create a SMIL file for each section document describing the document at the paragraph level, if other document-specific settings do not take precedence. Even without an associated sound track, this provides useful information to suitably aware ereaders.
To add narration to your book, which also makes use of media overlays, see Adding narration to your book.
You can add lexicons to your project to help text-to-speech systems pronounce difficult words or phrases. In the Accessibilities/Speech tab, under Lexicons, click Add and then in the Lexicon dialog, choose either PLS resource or String tables.
If you choose PLS resource, you can specify a .pls file that you have added (or will add) to the project as a media resource or code document. It needs to be a path relative to the other content files, for example lexicons/lexicon_en.pls
.
If you choose to use string tables, specify a global and/or project string table that contains string names and values corresponding to the word or phrase in question, and phonetic description, respectively.
You may add as many lexicons as you wish. They will be referenced by all documents in the project without further intervention. The language specified for the lexicon will be used if it matches the reader’s localisation preferences.
You can also use the SSML attributes ssml:ph (‘Phoneme’ in Jutoh) and ssml:alphabet (‘Alphabet’ in Jutoh) to define pronunciation for a particular content element.
Not many systems yet support the extra speech markup. However, by including it now in your books, they will automatically get the enhanced features when the state of Epub 3 technology advances.
Apple Books supports Epub 3, and iOS devices have good general accessibility support. However it’s not clear how much of the extra Epub 3 markup is used in support of accessibility, and at the time of writing, Google Reader with TalkBack seems to be better than Apple Books at describing the structure of the book.
AZARDI is software for Windows and Mac that can read Epub 3 files. However, at present, it does not have accessibility features.
Gitden Reader is available for Android and iOS, and is a highly conformant Epub 2 and Epub 3 reader.
Thorium is available for desktop operating systems and can be used to test how your book works with speech. For example, it will allow switching between languages if you use suitable markup.
Kindle supports a subset of Epub 3.
Google Reader on Android combined with the TalkBack feature is good at explaining headings and table structure.
WCAG 2.2 Quick Reference:
www.w3.org/WAI/WCAG22/quickref/
WCAG 2.2 Specification:
W3C Accessibility Tutorials:
Accessible Epub 3:
www.oreilly.com/library/view/accessible-epub-3/9781449329297/
This chapter has taken a brief look at how your documents can be made more accessible. Next, we see how you can use Jutoh’s facilities for creating high-quality text-to-speech documents – an alternative way to make your documents accessible.
Contents | Start | End | Previous: Chapter 20: Adding Interactivity To Your Book | Next: Chapter 22: Working With Text-To-Speech