diff --git a/UX-Guide-Metadata/2.0/principles/index.html b/UX-Guide-Metadata/2.0/principles/index.html index eabff25d..1d57911e 100644 --- a/UX-Guide-Metadata/2.0/principles/index.html +++ b/UX-Guide-Metadata/2.0/principles/index.html @@ -1,3 +1,1466 @@ - - - \ No newline at end of file + + + + + + + + + +User Experience Guide for Displaying Accessibility Metadata 2.0 + + + + + + + + + + + + + +
+ +

User Experience Guide for Displaying Accessibility Metadata 2.0

+

+ Draft Community Group Report + +

+
+
This version:
+ https://w3c.github.io/publ-a11y/UX-Guide-Metadata/2.0/principles/principles-draft-note-20240830.html +
+
Latest published version:
+ https://www.w3.org/publishing/a11y/UX-Guide-metadata/principles/ +
+
Latest editor's draft:
https://w3c.github.io/publ-a11y/UX-Guide-Metadata/draft/principles/
+ + + + +
Editors:
+ Charles LaPierre (Benetech) +
+ Gregorio Pellegrino (Fondazione LIA) +
+ Gautier Chomel (EDRLab ) +
+ George Kerscher (DAISY Consortium) +
+ + +
Feedback:
+ GitHub w3c/publ-a11y + (pull requests, + new issue, + open issues) +
+ +
+ + +
+
+

Abstract

+ +

The accessibility of a publication is useful to know regardless of a person's abilities, as features such as the ability to make visual adjustments make for a better reading experience for everybody. This document proposes a shared framework for presenting publication accessibility metadata declarations in a user-friendly manner — to offer the information to end users in a way that is easy to understand regardless of their technical knowledge and is consistent across different publications and different digital catalogs.

+
+

Status of This Document

+ This specification was published by the + Publishing Community Group. It is not a W3C Standard nor is it + on the W3C Standards Track. + + Please note that under the + W3C Community Contributor License Agreement (CLA) + there is a limited opt-out and other conditions apply. + + Learn more about + W3C Community and Business Groups. +

+ GitHub Issues are preferred for + discussion of this specification. + + +

+

1. Introduction

+ + +

Reading a publication is a very personal experience. For most people this is routine, and little + consideration is given to how the title was obtained before it is read. Users may go to a bookstore, search for the + title to purchase online, or have the title selected for them by an instructor for a class.

+ +

Now consider that the person is blind and relies on assistive technology. The user needs that technology to assist them in + the purchase process as well as to read the publication. The person may wonder: will the screen reader work with + this title; are there image descriptions that will be spoken to describe these images; are there page + numbers which are accessible; is the reading order correct so a caution after reading a + paragraph which could be dangerous will be announced? All of these, and more accessibility concerns are potential issues + consumers have when trying to purchase and ultimately read a digital publication.

+ +

The good news is more and more publishers are creating publications that are Born Accessible (i.e., + accessible from the outset, not fixed later) and getting the accessibility validation or audit done by + independent organizations.

+ + +
+

2. General overview

+ + +

This document helps those who wish to render accessibility metadata directly to users understand how to + represent the accessibility claims inherent in machine-readable accessibility metadata in a user-friendly User Interface / User Experience + (UI/UX). This document targets implementers such as bookstores, retailers, distributors etc. Content creators will benefit from reading these Principles and are encouraged to follow EPUB Accessibility 1.1 Conformance and Discoverability Requirements section and its techniques.

+ +
Note
+

This document presents high-level principles without going into technical issues related to the + different metadata standards in the publishing industry.

+

Therefore, techniques are available that illustrate to developers how to + retrieve data to show the information outlined in this document.

+
+ +

Metadata found either inside a digital publication or in a corresponding external record may have + important accessibility claims that helps end users find and determine if the publication can meet + their specific accessibility needs.

+ +

All accessibility metadata is meant to be machine-readable – apart from the accessibility summary - in + this way accessibility metadata can be extracted and displayed uniformly across different publications + and localized to different user interface languages.

+ +

One important aspect is that the role of the Accessibility Summary metadata has changed in the latest + version of the EPUB Accessibility specification, so a more in-depth analysis in the Accessibility summary section is recommended.

+ +

This document offers guidance on how to aggregate and display claims inherent in metadata to end users; these are not strict + guidelines, but suggestions for providing a consistent experience for users through different portals. + Different implementers may choose to implement these guidelines in a slightly different way, some examples + can be seen in the Implementations section of the document.

+

2.1 Accessibility claims and declarations

+ + +

When presenting accessibility metadata provided by the publisher, it is suggested that the section is introduced using terms such as "claims" or "declarations." This heading should clearly convey to the end user that the information comes directly from the publisher and represents the accessibility information that the publisher intends to communicate. +

+
+ +

2.2 Publisher metadata ecosystem

+ +

It is helpful to visualize the metadata workflow. The image below shows the path publisher's metadata takes to get to the end user through a distributor or library. The two paths visualized for EPUB accessibility metadata and ONIX correspond to the techniques referenced in the linked techniques documents.

+
+
Figure 1 Flowchart: Metadata Ecosystem
+ Digital Publication Ecosystem flows into four areas: Metadata Delivery, Accessibility Metadata spec, Metadata Processing, and Resulting Statements +
+
+ Flowchart's Detailed Description +

+ The digital publication ecosystem has two main channels of "Metadata Delivery": "Embedded inside the EPUB", and "Thru the supply chain."

+

+ From the "Metadata Delivery" this flows into the "Accessibility Metadata spec" where from "Embedded inside the EPUB" flows into the "EPUB Accessibility Metadata 1.1 specification", and from "the supply chain" flows into the "ONIX Accessibility metadata." At this same level the "Crosswalk" links between the EPUB and ONIX metadata.

+

+ From here both flow down into the "Metadata Processing" layer where the EPUB metadata gets processed through the "Display Techniques for EPUB Accessibility Metadata", and the "ONIX accessibility metadata" is processed through the "Display Techniques for ONIX Accessibility Metadata."

+

+ Finally from the "Metadata Processing" layer both the Display Techniques for EPUB and ONIX flow into the "Resulting Statements" layer "User Experience Guide for Displaying Accessibility Metadata"

+
+ +
+

2.3 Metadata techniques

+ + +

To assist developers in implementing these guidelines, in-depth notes are available to explain how to + extract information from publishing industry metadata standards.

+ +

At the time of publishing this document the available techniques for metadata standards are:

+ + +
Note
+

Publishers update their ONIX records as needed. We expect "unknown" accessibility metadata may be initially provided but may change as more information becomes available. For this reason, implementors should be prepared to update the accessibility metadata as new ONIX feeds are made available.

+
+
+ +
+

3. General information

+ +

To solve the problem of displaying the accessibility metadata in a human readable form, vendors will determine their correct statement to display (from the User Experience Guide) by parsing the metadata and using the appropriate Display Techniques document.

+ +

The product details provide precious information about the usability of the book in relation to specific user needs. The following information should always be displayed:

+ + + +

3.1 Why this information is important for accessibility

+ + + + +
+

4. Key accessibility information

+ + +
Note
+

When the content creator does not provide any accessibility metadata for a publication, the three + pieces of key information that should always be present can still be shown (with an indication that + the information is missing): Visual adjustments, Supports nonvisual reading, + and Conformance.

+
+ +
Note
+

This document does not define the order in which to show the key accessibility information; each + implementer can decide the preferred order for showing the accessibility information that + follows.

+
+

4.1 Visual adjustments

+ + +
Note
+

This key information should always be displayed, even if there is no metadata (See the examples where + the metadata is not known).

+
+ +

Indicates if users can modify the appearance of the text and the page layout according to the + possibilities offered by the reading system.

+ +

This field answers whether visual adjustments are possible, not possible, or unknown.

+ +

Readers with visual impairments or cognitive disabilities need the ability to change the color of + text and its background (contrast), the font family and font size used, as well as spacing between + letters, words, sentences, or paragraphs.

+ +

Knowing that a publication can reflow to fit the + reading system's display area is not sufficient to know that modifications to the font, spacing, and + colors are possible or that the changes will not cause other readability issues (e.g., text being + clipped by its container).

+ +

4.1.1 Examples

+ + +

The examples are provided as lists of possible descriptive and compact explanations for + flexibility of adoption.

+ + + + +
+ +

4.1.2 Display techniques for Visual adjustments support

+ +

Specific techniques for meeting this principle are defined in the following documents:

+ +
+
+ + +

4.2 Supports nonvisual reading

+ + +
Note
+

This key information should always be displayed, even if there is no metadata (See the examples where + the metadata is not known).

+
+ +

Indicates whether all content required for comprehension can be consumed in text and therefore is + fully available to assistive technologies and reading systems using text-to-speech or electronic + braille functionality.

+
Note
+

The terms "electronic braille" and "refreshable braille" are used interchangeably, which denotes a + device with pop-up pins to present the braille on a tactile screen.

+
+

This field answers whether nonvisual reading is possible, not possible, or unknown.

+ +

Digital publications with essential content included in non-textual form (such as graphs, tables or + equations presented as images, videos, etc.) must include textual alternatives to ensure that users + reading with other senses than sight (mainly auditory and tactile) have access to the same + information as visual readers. These textual alternatives can include extended descriptions, + transcripts, captions, etc. depending on the nature of the nonvisual content.

+ +

4.2.1 Examples

+ + +

The examples are provided as lists of possible descriptive and compact explanations for + flexibility of adoption.

+ + + + +
+ +

4.2.2 Display techniques for nonvisual reading support

+ +

Specific techniques for meeting this principle are defined in the following documents:

+ +
+
+

4.3 Conformance

+ + +
Note
+

This key information should always be displayed, even if there is no metadata (See the examples where + the metadata is not known).

+
+ +

Identifies whether the digital publication claims to meet internationally recognized conformance + standards for accessibility.

+ +

Conformance metadata often uses terminology that most people will not understand, and therefore simple statements should be provided when EPUB accessibility and + WCAG levels are identified.

+ +

If the publication does not include a conformance claim, + the statement should indicate that the publication does not include a conformance statement.

+ +

In most cases, people will want to know more about the conformance and certification of the + publication. The certifying organization should be identified along with their credentials and + placed immediately after the conformance statement.

+ +

4.3.1 Conformance statements

+ +

The following list explains the meaning of each recommended conformance statement.

+
+
This publication exceeds accepted accessibility standards.
+
+

The publication contains a conformance statement that it meets the EPUB Accessibility and WCAG 2 Level AAA standard.

+
+
This publication meets accepted accessibility standards.
+
+

The publication contains a conformance statement that it meets the EPUB Accessibility and WCAG 2 Level AA standard.

+
+ +
This publication meets minimum accessibility standards.
+
+

The publication contains a conformance statement that it meets the EPUB Accessibility and WCAG 2 Level A standard.

+
+ + +
The publication does not include a conformance statement.
+
+

The conformance metadata is missing and conformity to a standard of this publication is unknown.

+
+ +
Certifier's name
+
Identifies the organization providing the certification review or process for certification.
+ +
Certifier's Credentials
+
If the certifier has a badge or a credential, then the text is provided. If there is a link + to their credential, then this can be provided as a link. If the certifier has a logo or + badge, this can be displayed. The display of the logo or badge can be arranged between the + certifier and the distributor showing the accessibility metadata.
+ +
+
+ +

4.3.2 Detailed conformance information

+ + +

The following information can be placed in a section that shows the details of the conformance + information.

+ +
+
Conformance Statement
+
Identifies the accessibility specification and the conformance level to which the + publication assertions are made. When the publication claims to conform to more than one + specification, additional conformance statements may be provided.
+ +
Certification date
+
If the date of the certifier's evaluation is provided, then this would be of interest. This + is normally associated with the certifier.
+ +
Certifier's Report
+
If a link to a report is provided, this may be of interest.
+
+
+ +

4.3.3 Examples

+ + +

Three examples are provided for the conformance statement, one shows a statement that claims to + meet recommended accessibility standards and a second that claims to meet the minimum level. The + third example shows a publication with unknown accessibility.

+ +

The examples present the conformance statement, the certifier, the certifiers credentials and is + followed by the detailed conformance information section

+ + + + + + + + +
+ +

4.3.4 Display techniques for conformance support

+ +

Specific techniques for meeting this principle are defined in the following documents:

+ + + +
+
+ + +

4.4 Pre-recorded audio

+ + +
Note
+

This key information can be hidden if metadata is missing.

+
+ +

Indicates the presence of pre-recorded audio and specifies if this audio is standalone (an + audiobook), accompanies text (embedded audio and video clips), or represents an alternative to the + text (synchronized text-audio playback).

+ +

Audiobooks created for mainstream use provide important access for many users with disabilities even + though they are not accessible to all. As they grow in popularity, audiobooks may provide more + accessibility options in the future.

+ +

Some publications provide audio (including audio in video) in addition to text. In this case, it is + important that the user is informed that they may not be able to access all content in the book.

+ +

Some publications provide pre-recorded audio with text synchronization. Users with hearing + impairments still can access the full content of these books.

+ +

4.4.1 Examples

+ + +

The examples are provided as lists of possible descriptive and compact explanations for + flexibility of adoption.

+ + + + +
+ +

4.4.2 Display techniques for pre-recorded audio support

+ +

Specific techniques for meeting this principle are defined in the following documents:

+ +
+
+ + +

4.6 Charts, diagrams, and formulas

+ + +
Note
+

This key information can be hidden if metadata is missing.

+
+ +

Indicates the presence of formulas (including math, chemistry, etc.), graphs, charts, and diagrams + within the title and whether these are in an accessible format or available in an alternative form + (e.g., whether formulas are navigable with assistive technologies, or whether extended descriptions + are available for complex images).

+ +

This group should be displayed only if the metadata indicates the presence of formulas or charts and + graphs within the title, otherwise it can be hidden.

+ + +

4.6.1 Examples

+ + +

The examples are provided as lists of possible descriptive and compact explanations for + flexibility of adoption.

+ + + + +
+ +

4.6.2 Display techniques for charts, diagrams, and formulas support

+ + +

Specific techniques for meeting this principle are defined in the following documents:

+ +
+
+ +

4.7 Hazards

+ + +
Note
+

This key information can be hidden if metadata is missing.

+
+ +

Identifies any potential hazards (e.g., flashing elements, background sounds, and motion simulation) + that could afflict physiologically sensitive users.

+ +

Unlike other accessibility properties, the presence of hazards can be expressed either positively or + negatively. This is because users search for content that is safe for them as well as want to know + when content is potentially dangerous to them.

+ +

The hazards property vocabulary includes a value of unknown, which means the content creator of the metadata explicitly acknowledges that the resource has not been checked for hazards. This is different than providing no metadata for this property which does not carry any meaning. +

+ +

4.7.1 Examples

+ + +

The examples are provided as lists of possible descriptive and compact explanations for + flexibility of adoption.

+ + + + +
+ +

4.7.2 Display techniques for hazards reporting

+ +

Specific techniques for meeting this principle are defined in the following documents:

+ +
+
+ +

4.8 Accessibility summary

+ + +
Note
+

This key information can be hidden if metadata is missing.

+
+ +

The accessibility summary was intended (in EPUB Accessibility 1.0) to describe in human-readable + prose the accessibility features present in the publication as well as any shortcomings. From EPUB + Accessibility version 1.1 the accessibility summary became a human-readable summary of the + accessibility that complements, but does not duplicate, the other discoverability metadata.

+ +

It is a free-form field that allows authors to add additional information to the accessible + properties of the resource.

+ +

Due to its nature, no specific processing of the content is required; it is sufficient to extract the + text from the metadata and display it to end users.

+ +

4.8.1 Examples

+ + + +
+ +

4.8.2 Display techniques for accessibility summary support

+ +

Specific techniques for meeting this principle are defined in the following documents:

+ +
+
+ +

4.10 Additional accessibility information

+ + +
Note
+

This key information can be hidden if metadata is missing.

+
+ +

This section lists additional metadata categories that can help users better understand the + accessibility characteristics of digital publications. These are for metadata that do not fit into + the other categories or are rarely used in trade publishing.

+ +

Additional accessibility information includes a wide range of information related to the + publication's content. Therefore, the features are grouped so that the presentation is more + understandable to end users.

+ +
+
Structure
+
+

For information on any structuring aids that facilitate use of a resource (e.g., ARIA).

+
+
Page breaks
+
The inclusion of page break markers from a print source allows users to identify where they are in a digital publication relative to its print equivalent.
+
Adaptation
+
+

For information on provisions in the content that enable reading in alternative access modes + (e.g., closed captions, ruby annotations, sign language, transcript).

+
+ + +
Clarity
+
+

For information on ways that the content has been enhanced for improved auditory or visual + clarity (e.g., high contrast display).

+
+ +
Tactile
+
+

For information on content that is available in tactile form (e.g., tactile content, tactile + graphic, tactile objects).

+
+ + +
Content
+
+

For information on specific types of content present in the digital publication (e.g., text + on visual, music on visual).

+
+ +
Other
+
+

For information that does not fall into one of the preceding categories (e.g., timing control + and color dependent).

+
+
+ +

4.10.1 Examples

+ +
Note
There are many features that may be present. Some of the features are listed in the examples. A complete list can be found in the techniques. +
+ + + +
+ +

4.10.2 Display techniques for additional accessibility information

+ +

Specific techniques for meeting this principle are defined in the following documents:

+ +
+
+
+

5. Discovering accessible content

+ + +

The guidelines for presenting accessibility metadata detailed in this document are intended to improve + the user experience when readers browse the catalogue entry for a publication. However, accessibility + metadata also has a vital role to play in helping readers discover publications that are accessible to + them.

+

Publication providers, such as vendors and libraries create searching and filtering tools that interpret + accessibility metadata to aid in discovery. The set and variety of filters depend on the public they + address and the type of book they propose.

+

User feedback indicates that in the absence of specific accessibility filters, they find product details like file + format and protection measures (e.g., digital rights management) crucial information in determining usability.

+

Taking into consideration those realities, the following sections propose a minimum and an + extension set for filtering options. Mostly any specific information could be added if considered of use + for the public of the platform.

+ + +

5.1 Minimum filtering set

+ +

Reading systems, commerce, and distribution platforms will typically have specific filtering + options; having uniformity for key aspects and providing guidance for a standardized approach can + help the discovery process for users searching for relevant titles. Accomplishing this, however, should + not prevent users with specific reading needs from finding books they are looking for. To achieve + this goal, it is recommended that all platforms present two minimum capabilities, centered around the + ways of consuming the content. These are:

+
    +
  1. Titles that support nonvisual reading
  2. +
  3. Titles that support visual adjustments
  4. +
+

Of note, only the positive values should be used.

+ +
+

5.2 Extended filtering set

+ +

In specific domains, the addition of other options will become important to help users find content + that responds to a particular need or scenarios. Each domain case would uniquely drive the selection + of appropriate items. Some examples of these domains (not exclusive) are:

+ + +
+
+

6. Localization

+ +

In these guidelines, we have used simple language to communicate the meaning of the metadata values. + Many people have contributed to the development of the words and phrases we have selected. We intend to + provide a mechanism for the publishing community to provide translations that localizes the strings + for equally effective communication in many languages. We understand that simply translating the + strings is not enough; the subtle meaning of the words and phrases of accessibility concepts must be + localized for maximum understanding.

+

For users seeking books, a seamless user experience is essential to avoid adding cognitive load to + the already complex task of understanding the included features and accessing the book.

+

The wording is part of the UX and similarities of wordings in language areas are as crucial as the + organization and categorization of the information.

+

The wording proposed in this guide has been widely discussed by a large group representing different + actors of the English-speaking geographies. It has been improved after proof-of-concept + implementations and reviewed by panels of testers.

+

To agree on linguistic areas wordings the actors should follow a localization framework. The UX guide + translation webpage will propose such framework and list translations with contextualization of the + localization process.

+
+ +

7. Implementations

+ +
Issue 268: Contact details of implementors
We are collecting information on companies and organizations that wish to possibly commit examples of their implementation. Please visit this GitHub issue to review companies and organizations that have put their name forward. To possibly volunteer an implementation, please put your company name, your name and your contact information.
+

These guidelines provide a general framework and make suggestions on the display of accessibility + metadata. It is not a normative description of what must be done. It is instructive to provide + examples of implementations from the community.

+ +

Linked below are static pages that show real-life implementations. We have captured these examples + from organization's websites that have agreed to allow us to showcase the work they have done to + display accessibility metadata.

+ +

Links TBD

+
+ + +

A. Acknowledgements

This section is non-normative.

+ + +

A.1 Contributors

+ + + +
+
+ + + \ No newline at end of file diff --git a/UX-Guide-Metadata/2.0/principles/media/MetadataEcosystem.jpg b/UX-Guide-Metadata/2.0/principles/media/MetadataEcosystem.jpg new file mode 100644 index 00000000..038b54a0 Binary files /dev/null and b/UX-Guide-Metadata/2.0/principles/media/MetadataEcosystem.jpg differ diff --git a/UX-Guide-Metadata/2.0/principles/principles-draft-note-20240830.html b/UX-Guide-Metadata/2.0/principles/principles-draft-note-20240830.html new file mode 100644 index 00000000..1d57911e --- /dev/null +++ b/UX-Guide-Metadata/2.0/principles/principles-draft-note-20240830.html @@ -0,0 +1,1466 @@ + + + + + + + + + +User Experience Guide for Displaying Accessibility Metadata 2.0 + + + + + + + + + + + + + +
+ +

User Experience Guide for Displaying Accessibility Metadata 2.0

+

+ Draft Community Group Report + +

+
+
This version:
+ https://w3c.github.io/publ-a11y/UX-Guide-Metadata/2.0/principles/principles-draft-note-20240830.html +
+
Latest published version:
+ https://www.w3.org/publishing/a11y/UX-Guide-metadata/principles/ +
+
Latest editor's draft:
https://w3c.github.io/publ-a11y/UX-Guide-Metadata/draft/principles/
+ + + + +
Editors:
+ Charles LaPierre (Benetech) +
+ Gregorio Pellegrino (Fondazione LIA) +
+ Gautier Chomel (EDRLab ) +
+ George Kerscher (DAISY Consortium) +
+ + +
Feedback:
+ GitHub w3c/publ-a11y + (pull requests, + new issue, + open issues) +
+ +
+ + +
+
+

Abstract

+ +

The accessibility of a publication is useful to know regardless of a person's abilities, as features such as the ability to make visual adjustments make for a better reading experience for everybody. This document proposes a shared framework for presenting publication accessibility metadata declarations in a user-friendly manner — to offer the information to end users in a way that is easy to understand regardless of their technical knowledge and is consistent across different publications and different digital catalogs.

+
+

Status of This Document

+ This specification was published by the + Publishing Community Group. It is not a W3C Standard nor is it + on the W3C Standards Track. + + Please note that under the + W3C Community Contributor License Agreement (CLA) + there is a limited opt-out and other conditions apply. + + Learn more about + W3C Community and Business Groups. +

+ GitHub Issues are preferred for + discussion of this specification. + + +

+

1. Introduction

+ + +

Reading a publication is a very personal experience. For most people this is routine, and little + consideration is given to how the title was obtained before it is read. Users may go to a bookstore, search for the + title to purchase online, or have the title selected for them by an instructor for a class.

+ +

Now consider that the person is blind and relies on assistive technology. The user needs that technology to assist them in + the purchase process as well as to read the publication. The person may wonder: will the screen reader work with + this title; are there image descriptions that will be spoken to describe these images; are there page + numbers which are accessible; is the reading order correct so a caution after reading a + paragraph which could be dangerous will be announced? All of these, and more accessibility concerns are potential issues + consumers have when trying to purchase and ultimately read a digital publication.

+ +

The good news is more and more publishers are creating publications that are Born Accessible (i.e., + accessible from the outset, not fixed later) and getting the accessibility validation or audit done by + independent organizations.

+ + +
+

2. General overview

+ + +

This document helps those who wish to render accessibility metadata directly to users understand how to + represent the accessibility claims inherent in machine-readable accessibility metadata in a user-friendly User Interface / User Experience + (UI/UX). This document targets implementers such as bookstores, retailers, distributors etc. Content creators will benefit from reading these Principles and are encouraged to follow EPUB Accessibility 1.1 Conformance and Discoverability Requirements section and its techniques.

+ +
Note
+

This document presents high-level principles without going into technical issues related to the + different metadata standards in the publishing industry.

+

Therefore, techniques are available that illustrate to developers how to + retrieve data to show the information outlined in this document.

+
+ +

Metadata found either inside a digital publication or in a corresponding external record may have + important accessibility claims that helps end users find and determine if the publication can meet + their specific accessibility needs.

+ +

All accessibility metadata is meant to be machine-readable – apart from the accessibility summary - in + this way accessibility metadata can be extracted and displayed uniformly across different publications + and localized to different user interface languages.

+ +

One important aspect is that the role of the Accessibility Summary metadata has changed in the latest + version of the EPUB Accessibility specification, so a more in-depth analysis in the Accessibility summary section is recommended.

+ +

This document offers guidance on how to aggregate and display claims inherent in metadata to end users; these are not strict + guidelines, but suggestions for providing a consistent experience for users through different portals. + Different implementers may choose to implement these guidelines in a slightly different way, some examples + can be seen in the Implementations section of the document.

+

2.1 Accessibility claims and declarations

+ + +

When presenting accessibility metadata provided by the publisher, it is suggested that the section is introduced using terms such as "claims" or "declarations." This heading should clearly convey to the end user that the information comes directly from the publisher and represents the accessibility information that the publisher intends to communicate. +

+
+ +

2.2 Publisher metadata ecosystem

+ +

It is helpful to visualize the metadata workflow. The image below shows the path publisher's metadata takes to get to the end user through a distributor or library. The two paths visualized for EPUB accessibility metadata and ONIX correspond to the techniques referenced in the linked techniques documents.

+
+
Figure 1 Flowchart: Metadata Ecosystem
+ Digital Publication Ecosystem flows into four areas: Metadata Delivery, Accessibility Metadata spec, Metadata Processing, and Resulting Statements +
+
+ Flowchart's Detailed Description +

+ The digital publication ecosystem has two main channels of "Metadata Delivery": "Embedded inside the EPUB", and "Thru the supply chain."

+

+ From the "Metadata Delivery" this flows into the "Accessibility Metadata spec" where from "Embedded inside the EPUB" flows into the "EPUB Accessibility Metadata 1.1 specification", and from "the supply chain" flows into the "ONIX Accessibility metadata." At this same level the "Crosswalk" links between the EPUB and ONIX metadata.

+

+ From here both flow down into the "Metadata Processing" layer where the EPUB metadata gets processed through the "Display Techniques for EPUB Accessibility Metadata", and the "ONIX accessibility metadata" is processed through the "Display Techniques for ONIX Accessibility Metadata."

+

+ Finally from the "Metadata Processing" layer both the Display Techniques for EPUB and ONIX flow into the "Resulting Statements" layer "User Experience Guide for Displaying Accessibility Metadata"

+
+ +
+

2.3 Metadata techniques

+ + +

To assist developers in implementing these guidelines, in-depth notes are available to explain how to + extract information from publishing industry metadata standards.

+ +

At the time of publishing this document the available techniques for metadata standards are:

+ + +
Note
+

Publishers update their ONIX records as needed. We expect "unknown" accessibility metadata may be initially provided but may change as more information becomes available. For this reason, implementors should be prepared to update the accessibility metadata as new ONIX feeds are made available.

+
+
+ +
+

3. General information

+ +

To solve the problem of displaying the accessibility metadata in a human readable form, vendors will determine their correct statement to display (from the User Experience Guide) by parsing the metadata and using the appropriate Display Techniques document.

+ +

The product details provide precious information about the usability of the book in relation to specific user needs. The following information should always be displayed:

+ + + +

3.1 Why this information is important for accessibility

+ + + + +
+

4. Key accessibility information

+ + +
Note
+

When the content creator does not provide any accessibility metadata for a publication, the three + pieces of key information that should always be present can still be shown (with an indication that + the information is missing): Visual adjustments, Supports nonvisual reading, + and Conformance.

+
+ +
Note
+

This document does not define the order in which to show the key accessibility information; each + implementer can decide the preferred order for showing the accessibility information that + follows.

+
+

4.1 Visual adjustments

+ + +
Note
+

This key information should always be displayed, even if there is no metadata (See the examples where + the metadata is not known).

+
+ +

Indicates if users can modify the appearance of the text and the page layout according to the + possibilities offered by the reading system.

+ +

This field answers whether visual adjustments are possible, not possible, or unknown.

+ +

Readers with visual impairments or cognitive disabilities need the ability to change the color of + text and its background (contrast), the font family and font size used, as well as spacing between + letters, words, sentences, or paragraphs.

+ +

Knowing that a publication can reflow to fit the + reading system's display area is not sufficient to know that modifications to the font, spacing, and + colors are possible or that the changes will not cause other readability issues (e.g., text being + clipped by its container).

+ +

4.1.1 Examples

+ + +

The examples are provided as lists of possible descriptive and compact explanations for + flexibility of adoption.

+ + + + +
+ +

4.1.2 Display techniques for Visual adjustments support

+ +

Specific techniques for meeting this principle are defined in the following documents:

+ +
+
+ + +

4.2 Supports nonvisual reading

+ + +
Note
+

This key information should always be displayed, even if there is no metadata (See the examples where + the metadata is not known).

+
+ +

Indicates whether all content required for comprehension can be consumed in text and therefore is + fully available to assistive technologies and reading systems using text-to-speech or electronic + braille functionality.

+
Note
+

The terms "electronic braille" and "refreshable braille" are used interchangeably, which denotes a + device with pop-up pins to present the braille on a tactile screen.

+
+

This field answers whether nonvisual reading is possible, not possible, or unknown.

+ +

Digital publications with essential content included in non-textual form (such as graphs, tables or + equations presented as images, videos, etc.) must include textual alternatives to ensure that users + reading with other senses than sight (mainly auditory and tactile) have access to the same + information as visual readers. These textual alternatives can include extended descriptions, + transcripts, captions, etc. depending on the nature of the nonvisual content.

+ +

4.2.1 Examples

+ + +

The examples are provided as lists of possible descriptive and compact explanations for + flexibility of adoption.

+ + + + +
+ +

4.2.2 Display techniques for nonvisual reading support

+ +

Specific techniques for meeting this principle are defined in the following documents:

+ +
+
+

4.3 Conformance

+ + +
Note
+

This key information should always be displayed, even if there is no metadata (See the examples where + the metadata is not known).

+
+ +

Identifies whether the digital publication claims to meet internationally recognized conformance + standards for accessibility.

+ +

Conformance metadata often uses terminology that most people will not understand, and therefore simple statements should be provided when EPUB accessibility and + WCAG levels are identified.

+ +

If the publication does not include a conformance claim, + the statement should indicate that the publication does not include a conformance statement.

+ +

In most cases, people will want to know more about the conformance and certification of the + publication. The certifying organization should be identified along with their credentials and + placed immediately after the conformance statement.

+ +

4.3.1 Conformance statements

+ +

The following list explains the meaning of each recommended conformance statement.

+
+
This publication exceeds accepted accessibility standards.
+
+

The publication contains a conformance statement that it meets the EPUB Accessibility and WCAG 2 Level AAA standard.

+
+
This publication meets accepted accessibility standards.
+
+

The publication contains a conformance statement that it meets the EPUB Accessibility and WCAG 2 Level AA standard.

+
+ +
This publication meets minimum accessibility standards.
+
+

The publication contains a conformance statement that it meets the EPUB Accessibility and WCAG 2 Level A standard.

+
+ + +
The publication does not include a conformance statement.
+
+

The conformance metadata is missing and conformity to a standard of this publication is unknown.

+
+ +
Certifier's name
+
Identifies the organization providing the certification review or process for certification.
+ +
Certifier's Credentials
+
If the certifier has a badge or a credential, then the text is provided. If there is a link + to their credential, then this can be provided as a link. If the certifier has a logo or + badge, this can be displayed. The display of the logo or badge can be arranged between the + certifier and the distributor showing the accessibility metadata.
+ +
+
+ +

4.3.2 Detailed conformance information

+ + +

The following information can be placed in a section that shows the details of the conformance + information.

+ +
+
Conformance Statement
+
Identifies the accessibility specification and the conformance level to which the + publication assertions are made. When the publication claims to conform to more than one + specification, additional conformance statements may be provided.
+ +
Certification date
+
If the date of the certifier's evaluation is provided, then this would be of interest. This + is normally associated with the certifier.
+ +
Certifier's Report
+
If a link to a report is provided, this may be of interest.
+
+
+ +

4.3.3 Examples

+ + +

Three examples are provided for the conformance statement, one shows a statement that claims to + meet recommended accessibility standards and a second that claims to meet the minimum level. The + third example shows a publication with unknown accessibility.

+ +

The examples present the conformance statement, the certifier, the certifiers credentials and is + followed by the detailed conformance information section

+ + + + + + + + +
+ +

4.3.4 Display techniques for conformance support

+ +

Specific techniques for meeting this principle are defined in the following documents:

+ + + +
+
+ + +

4.4 Pre-recorded audio

+ + +
Note
+

This key information can be hidden if metadata is missing.

+
+ +

Indicates the presence of pre-recorded audio and specifies if this audio is standalone (an + audiobook), accompanies text (embedded audio and video clips), or represents an alternative to the + text (synchronized text-audio playback).

+ +

Audiobooks created for mainstream use provide important access for many users with disabilities even + though they are not accessible to all. As they grow in popularity, audiobooks may provide more + accessibility options in the future.

+ +

Some publications provide audio (including audio in video) in addition to text. In this case, it is + important that the user is informed that they may not be able to access all content in the book.

+ +

Some publications provide pre-recorded audio with text synchronization. Users with hearing + impairments still can access the full content of these books.

+ +

4.4.1 Examples

+ + +

The examples are provided as lists of possible descriptive and compact explanations for + flexibility of adoption.

+ + + + +
+ +

4.4.2 Display techniques for pre-recorded audio support

+ +

Specific techniques for meeting this principle are defined in the following documents:

+ +
+
+ + +

4.6 Charts, diagrams, and formulas

+ + +
Note
+

This key information can be hidden if metadata is missing.

+
+ +

Indicates the presence of formulas (including math, chemistry, etc.), graphs, charts, and diagrams + within the title and whether these are in an accessible format or available in an alternative form + (e.g., whether formulas are navigable with assistive technologies, or whether extended descriptions + are available for complex images).

+ +

This group should be displayed only if the metadata indicates the presence of formulas or charts and + graphs within the title, otherwise it can be hidden.

+ + +

4.6.1 Examples

+ + +

The examples are provided as lists of possible descriptive and compact explanations for + flexibility of adoption.

+ + + + +
+ +

4.6.2 Display techniques for charts, diagrams, and formulas support

+ + +

Specific techniques for meeting this principle are defined in the following documents:

+ +
+
+ +

4.7 Hazards

+ + +
Note
+

This key information can be hidden if metadata is missing.

+
+ +

Identifies any potential hazards (e.g., flashing elements, background sounds, and motion simulation) + that could afflict physiologically sensitive users.

+ +

Unlike other accessibility properties, the presence of hazards can be expressed either positively or + negatively. This is because users search for content that is safe for them as well as want to know + when content is potentially dangerous to them.

+ +

The hazards property vocabulary includes a value of unknown, which means the content creator of the metadata explicitly acknowledges that the resource has not been checked for hazards. This is different than providing no metadata for this property which does not carry any meaning. +

+ +

4.7.1 Examples

+ + +

The examples are provided as lists of possible descriptive and compact explanations for + flexibility of adoption.

+ + + + +
+ +

4.7.2 Display techniques for hazards reporting

+ +

Specific techniques for meeting this principle are defined in the following documents:

+ +
+
+ +

4.8 Accessibility summary

+ + +
Note
+

This key information can be hidden if metadata is missing.

+
+ +

The accessibility summary was intended (in EPUB Accessibility 1.0) to describe in human-readable + prose the accessibility features present in the publication as well as any shortcomings. From EPUB + Accessibility version 1.1 the accessibility summary became a human-readable summary of the + accessibility that complements, but does not duplicate, the other discoverability metadata.

+ +

It is a free-form field that allows authors to add additional information to the accessible + properties of the resource.

+ +

Due to its nature, no specific processing of the content is required; it is sufficient to extract the + text from the metadata and display it to end users.

+ +

4.8.1 Examples

+ + + +
+ +

4.8.2 Display techniques for accessibility summary support

+ +

Specific techniques for meeting this principle are defined in the following documents:

+ +
+
+ +

4.10 Additional accessibility information

+ + +
Note
+

This key information can be hidden if metadata is missing.

+
+ +

This section lists additional metadata categories that can help users better understand the + accessibility characteristics of digital publications. These are for metadata that do not fit into + the other categories or are rarely used in trade publishing.

+ +

Additional accessibility information includes a wide range of information related to the + publication's content. Therefore, the features are grouped so that the presentation is more + understandable to end users.

+ +
+
Structure
+
+

For information on any structuring aids that facilitate use of a resource (e.g., ARIA).

+
+
Page breaks
+
The inclusion of page break markers from a print source allows users to identify where they are in a digital publication relative to its print equivalent.
+
Adaptation
+
+

For information on provisions in the content that enable reading in alternative access modes + (e.g., closed captions, ruby annotations, sign language, transcript).

+
+ + +
Clarity
+
+

For information on ways that the content has been enhanced for improved auditory or visual + clarity (e.g., high contrast display).

+
+ +
Tactile
+
+

For information on content that is available in tactile form (e.g., tactile content, tactile + graphic, tactile objects).

+
+ + +
Content
+
+

For information on specific types of content present in the digital publication (e.g., text + on visual, music on visual).

+
+ +
Other
+
+

For information that does not fall into one of the preceding categories (e.g., timing control + and color dependent).

+
+
+ +

4.10.1 Examples

+ +
Note
There are many features that may be present. Some of the features are listed in the examples. A complete list can be found in the techniques. +
+ + + +
+ +

4.10.2 Display techniques for additional accessibility information

+ +

Specific techniques for meeting this principle are defined in the following documents:

+ +
+
+
+

5. Discovering accessible content

+ + +

The guidelines for presenting accessibility metadata detailed in this document are intended to improve + the user experience when readers browse the catalogue entry for a publication. However, accessibility + metadata also has a vital role to play in helping readers discover publications that are accessible to + them.

+

Publication providers, such as vendors and libraries create searching and filtering tools that interpret + accessibility metadata to aid in discovery. The set and variety of filters depend on the public they + address and the type of book they propose.

+

User feedback indicates that in the absence of specific accessibility filters, they find product details like file + format and protection measures (e.g., digital rights management) crucial information in determining usability.

+

Taking into consideration those realities, the following sections propose a minimum and an + extension set for filtering options. Mostly any specific information could be added if considered of use + for the public of the platform.

+ + +

5.1 Minimum filtering set

+ +

Reading systems, commerce, and distribution platforms will typically have specific filtering + options; having uniformity for key aspects and providing guidance for a standardized approach can + help the discovery process for users searching for relevant titles. Accomplishing this, however, should + not prevent users with specific reading needs from finding books they are looking for. To achieve + this goal, it is recommended that all platforms present two minimum capabilities, centered around the + ways of consuming the content. These are:

+
    +
  1. Titles that support nonvisual reading
  2. +
  3. Titles that support visual adjustments
  4. +
+

Of note, only the positive values should be used.

+ +
+

5.2 Extended filtering set

+ +

In specific domains, the addition of other options will become important to help users find content + that responds to a particular need or scenarios. Each domain case would uniquely drive the selection + of appropriate items. Some examples of these domains (not exclusive) are:

+ + +
+
+

6. Localization

+ +

In these guidelines, we have used simple language to communicate the meaning of the metadata values. + Many people have contributed to the development of the words and phrases we have selected. We intend to + provide a mechanism for the publishing community to provide translations that localizes the strings + for equally effective communication in many languages. We understand that simply translating the + strings is not enough; the subtle meaning of the words and phrases of accessibility concepts must be + localized for maximum understanding.

+

For users seeking books, a seamless user experience is essential to avoid adding cognitive load to + the already complex task of understanding the included features and accessing the book.

+

The wording is part of the UX and similarities of wordings in language areas are as crucial as the + organization and categorization of the information.

+

The wording proposed in this guide has been widely discussed by a large group representing different + actors of the English-speaking geographies. It has been improved after proof-of-concept + implementations and reviewed by panels of testers.

+

To agree on linguistic areas wordings the actors should follow a localization framework. The UX guide + translation webpage will propose such framework and list translations with contextualization of the + localization process.

+
+ +

7. Implementations

+ +
Issue 268: Contact details of implementors
We are collecting information on companies and organizations that wish to possibly commit examples of their implementation. Please visit this GitHub issue to review companies and organizations that have put their name forward. To possibly volunteer an implementation, please put your company name, your name and your contact information.
+

These guidelines provide a general framework and make suggestions on the display of accessibility + metadata. It is not a normative description of what must be done. It is instructive to provide + examples of implementations from the community.

+ +

Linked below are static pages that show real-life implementations. We have captured these examples + from organization's websites that have agreed to allow us to showcase the work they have done to + display accessibility metadata.

+ +

Links TBD

+
+ + +

A. Acknowledgements

This section is non-normative.

+ + +

A.1 Contributors

+ + + +
+
+ + + \ No newline at end of file diff --git a/UX-Guide-Metadata/2.0/techniques/epub-metadata/epub-metadata-draft-note-20240830.html b/UX-Guide-Metadata/2.0/techniques/epub-metadata/epub-metadata-draft-note-20240830.html new file mode 100755 index 00000000..663ea115 --- /dev/null +++ b/UX-Guide-Metadata/2.0/techniques/epub-metadata/epub-metadata-draft-note-20240830.html @@ -0,0 +1,1656 @@ + + + + + + + + + +Display Techniques for EPUB Accessibility Metadata 2.0 + + + + + + + + + + + + +
+ +

Display Techniques for EPUB Accessibility Metadata 2.0

+

+ Draft Community Group Report + +

+
+
This version:
+ https://w3c.github.io/publ-a11y/UX-Guide-Metadata/2.0/techniques/epub-metadata/epub-metadata-draft-note-20240830.html +
+
Latest published version:
+ https://www.w3.org/publishing/a11y/UX-Guide-metadata/techniques/epub-metadata/ +
+
Latest editor's draft:
https://w3c.github.io/publ-a11y/UX-Guide-Metadata/draft/techniques/epub-metadata/
+ + + + +
Editor:
+ Charles LaPierre (Benetech) +
+ + +
Feedback:
+ GitHub w3c/publ-a11y + (pull requests, + new issue, + open issues) +
+ +
+ + +
+
+

Abstract

+

Status of This Document

+ This specification was published by the + Publishing Community Group. It is not a W3C Standard nor is it + on the W3C Standards Track. + + Please note that under the + W3C Community Contributor License Agreement (CLA) + there is a limited opt-out and other conditions apply. + + Learn more about + W3C Community and Business Groups. +

+ GitHub Issues are preferred for + discussion of this specification. + + +

+

1. EPUB Accessibility Metadata

+ + +

This metadata as outlined in EPUB Accessibility 1.1 [epub-a11y-11], can be found in the EPUB package document [EPUB-33].

+ +
Note
+ +
Note
+ +

1.1 EPUB Accessibility Metadata Examples

+ +

1.1.1 EPUB accessibility metadata describing an EPUB

+ +

Here is an example of accessibility metadata embedded within the package document, + which will be used as a reference point for the + following examples on EPUB accessibility metadata: the results of the XPath shown are based on + this example. +

+ +
+

1.1.2 EPUB accessibility metadata describing an audiobook

+ + +

Here is an example of an accessibility OPF Metadata for describing an audiobook, which will be used as a reference point for the following examples on EPUB accessibility metadata: the results of the XPath shown are based on this example.

+ +
+
+
+ +

2. Conventions for implementations

+ +

The code conventions used in the provided code snippet follow a structure commonly found in programming languages like Python, Java, or C++. Here's an explanation of the conventions:

+
+
Conditionals and Control Flow:
+
IF, ELSE IF, and ELSE (in bold and capital letters) statements are used to define different conditions and the corresponding actions to be taken.
+
Operators:
+
Written operators (is present) are used to check if a particular code or codelist is present (or not) in the metadata record.
+
Logical operators:
+
Logical operators (AND, OR, NOT, in bold and capital letters) are used to combine conditions.
+
String Literals:
+
String literals are used to represent the text that should be displayed when a particular condition is met.
+
Variable Naming:
+
The terms like "property" and "value" are used in a way that suggests a variable or data structure representing the metadata record.
+
Indentation:
+
The code uses consistent indentation to define blocks of code within conditional statements. This is crucial for readability and maintaining a clear structure.
+
Readability:
+
The code is written in a way that is intended to be easily readable and understandable even by non-coders.
+
+
+ +

3. Common Functions

+ +

In this section we define the functions common to all techniques, which are called by them during execution.

+

3.1 Preprocessing

+ +

Before working directly with the metadata we must read the metadata in the Package document (package document) inside the EPUB. This is a common starting point for all techniques that allows us to query the metadata directly.

+
Note
+

This algorithm takes the package_document_as_text argument: a UTF-8 string representing the Package document.

+

To generate the internal representation, run the following steps:

+
    +
  1. LET package_document_content be textual representation of the Package document for the publication given package_document_as_text.
  2. +
  3. LET package_document be the DOM tree that results from parsing package_document_content using an XML DOM parser.
  4. +
  5. Return package_document.
  6. +
+
+ +

3.2 Check for Node

+ +

Many of the techniques rely on checking for the presence or absence of metadata in the metadata section of the Package document.

+ +
Note
+ +

This algorithm takes:

+ +

To check for node, run the following steps:

+
    +
  1. + IF package_document contains path: + THEN return True. +
  2. +
  3. ELSE return False.
  4. +
+
+

3.3 Join array to comma list

+ +

This function serves to concatenate an array of strings, separating each element with a comma, with the last element separated by an ", and" (this string is localizable).

+

For example if the input array has elements ["one", "two", "three"], then the output is going to be "one, two, and three".

+

This algorithm takes the string_array argument: the list of string to join.

+

To join the array, run the following steps:

+
    +
  1. LET output_string be the result of: +
      +
    • calling join on string_array with the separator ", "
    • +
    • replacing the last occurrence of ", " with ", and ".
    • +
    +
  2. +
  3. return output_string.
  4. +
+
+ +
+ +

4. Techniques

+ + +

4.1 Visual adjustments

+ + +

This technique relates to Visual adjustments key information.

+

This algorithm takes the package_document_as_text argument: a UTF-8 string representing the Package document.

+ + +

4.1.1 Understanding the variables

+
+
all_textual_content_can_be_modified
+
+

If true it indicates that the accessibilityFeature="displayTransformability" (All textual content can be modified) is present in the package document, otherwise if false it means that the metadata is not present.

+

All textual content can be modified means that the digital publication does not restrict the ability of users to modify and reflow the display of any textual content to the full extent allowed by the reading system (i.e. to change the text size or typeface, line height and word spacing, colors).

+
+
is_fixed_layout
+
+

If true it indicates that the layout="pre-paginated" (Fixed format) is present in the package document, otherwise if false it means that the metadata is not present.

+

Fixed format means that digital publication is in fixed format (e.g. EPUB Fixed Layout).

+
+
+ +

4.1.2 Variables setup

+
    +
  1. LET package_document be the result of calling preprocessing given package_document_as_text.
  2. + +
  3. LET all_textual_content_can_be_modified be the result of calling check for node on package_document, /package/metadata/meta[@property="schema:accessibilityFeature" and text()="displayTransformability"].
  4. + +
  5. LET is_fixed_layout be the result of calling check for node on package_document, /package/metadata/meta[@property="rendition:layout" and text()="pre-paginated"].
  6. + +
+

4.1.3 Instructions

+
    +
  1. + IF all_textual_content_can_be_modified: + THEN display "Appearance can be modified". +
  2. +
  3. + ELSE IF is_fixed_layout: + THEN display "Appearance cannot be modified". +
  4. +
  5. ELSE display "Appearance modifiability not known".
  6. +
+
+ +

4.2 Supports nonvisual reading

+ +

This technique relates to Supports nonvisual reading key information.

+

This algorithm takes the package_document_as_text argument: a UTF-8 string representing the Package document.

+

4.2.1 Understanding the variables

+
+
all_necessary_content_textual
+
+

If true it indicates that the accessModeSufficient="textual" (all main content is provided in textual form) is present in the package document, otherwise if false it means that the metadata is not present.

+

All non-decorative content supports reading without sight means that all contents of the digital publication necessary to use and understanding, including text, images (via their alternative descriptions), audio and video material (via their transcripts, descriptions, captions or subtitles) are fully accessible via suitable reading devices, for example text-to-speech screen readers or tactile reading devices (‘Braille displays’), and nothing in the digital publication prevents or blocks the use of alternative reading modes. The entire publication can be navigated and ‘read’ using only text rendered via sound or touch, and does not require visual perception.

+
+
non_textual_content_images
+
+

If true it indicates that at least one of the following is present in the package document:

+
    +
  • accessMode="chartOnVisual" (Charts and Graphs);
  • +
  • accessMode="chemOnVisual" (Chemistry);
  • +
  • accessMode="diagramOnVisual" (Diagrams);
  • +
  • accessMode="mathOnVisual" (Math);
  • +
  • accessMode="musicOnVisual" (Music);
  • +
  • accessMode="textOnVisual" (Images of text);
  • +
  • otherwise if false it means that this metadata is not present.
  • +
+

This means that the content contains images of any type.

+
+
textual_alternative_images
+
+

If true it indicates that at least one of the following is present in the package document:

+
    +
  • accessibilityFeature="alternativeText" (Short alternative textual descriptions);
  • +
  • accessibilityFeature="longDescription" (Full alternative textual descriptions);
  • +
  • accessibilityFeature="describedMath" (Visual of math fully described));
  • +
  • otherwise if false it means that this metadata is not present.
  • +
+

This means that there are textual alternatives for images.

+
+
+

4.2.2 Variables setup

+
    +
  1. LET package_document be the result of calling preprocessing given package_document_as_text.
  2. + +
  3. LET all_necessary_content_textual be the result of calling check for node on package_document, /package/metadata/meta[@property="schema:accessModeSufficient" and text()="textual"].
  4. +
  5. + LET non_textual_content_images be the result of calling check for node on + package_document, /package/metadata/meta[@property="schema:accessibilityFeature" and
    (text()="chartOnVisual" or text()="chemOnVisual" or
    + text()="diagramOnVisual" or text()="mathOnVisual" or
    + text()="musicOnVisual" or text()="textOnVisual")]
    . +
  6. + +
  7. LET textual_alternative_images be the result of calling check for node on package_document, /package/metadata/meta[@property="schema:accessibilityFeature" and
    (text()="longDescription" or text()="alternativeText" or text()="describedMath")]
    . + +
  8. +
+

4.2.3 Instructions

+
    +
  1. + IF all_necessary_content_textual: + THEN display "Readable in read aloud and braille". +
  2. +
  3. + ELSE IF non_textual_content_images AND NOT textual_alternative_images: + THEN display "Not fully readable in read aloud and braille". +
  4. +
  5. ELSE display "May not be fully readable in read aloud and braille".
  6. +
+ + +
+ + +

4.3 Conformance

+ +

This technique relates to Conformance key information.

+ +

This algorithm takes the package_document_as_text argument: a UTF-8 string representing the Package document.

+ +

4.3.1 Understanding the variables

+
+
epub_accessibility_1_0
+
+

If true it indicates that the conformsTo="http://www.idpf.org/epub/a11y/accessibility-20170105.html#wcag-a" (EPUB Accessibility Specification 1.0 A) or the conformsTo="http://www.idpf.org/epub/a11y/accessibility-20170105.html#wcag-aa" (EPUB Accessibility Specification 1.0 AA) or the conformsTo="http://www.idpf.org/epub/a11y/accessibility-20170105.html#wcag-aaa" (EPUB Accessibility Specification 1.0 AAA) is present in the package document, otherwise if false it means that the metadata is not present.

+

This means that the publication conforms with either the requirements of EPUB Accessibility Spec 1.0, at level A, AA, or AAA.

+
+
epub_accessibility_1_1
+
+

If true it indicates that the conformsTo contains "EPUB Accessibility 1.1" (EPUB Accessibility Specification 1.1) is present in the package document, otherwise if false it means that the metadata is not present.

+

This means that the publication conforms with the requirements of EPUB Accessibility Spec 1.1.

+
+
wcag_20
+
+

If true it indicates that the conformsTo contains "WCAG 2.0" or conformsTo="http://www.idpf.org/epub/a11y/accessibility-20170105.html#wcag-a" (EPUB Accessibility Specification 1.0 A) or the conformsTo="http://www.idpf.org/epub/a11y/accessibility-20170105.html#wcag-aa" (EPUB Accessibility Specification 1.0 AA) or the conformsTo="http://www.idpf.org/epub/a11y/accessibility-20170105.html#wcag-aaa" (EPUB Accessibility Specification 1.0 AAA) are present in the package document, otherwise if false it means that the metadata is not present.

+

This means that the publication conforms with the requirements of WCAG version 2.0 or with the requirements of EPUB Accessibility Spec 1.0 (at level A, AA, or AAA). This is because being compliant with EPUB Accessibility 1.0 specification means at least being compliant with WCAG 2.0 specification.

+
+
wcag_21
+
+

If true it indicates that the conformsTo contains "WCAG 2.1" is present in the package document, otherwise if false it means that the metadata is not present.

+

This means that the publication conforms with the requirements of WCAG version 2.1.

+
+
wcag_22
+
+

If true it indicates that the conformsTo contains "WCAG 2.2" is present in the package document, otherwise if false it means that the metadata is not present.

+

This means that the publication conforms with the requirements of WCAG version 2.2.

+
+
level_a
+
+

If true it indicates that the conformsTo contains "Level A" or the conformsTo="http://www.idpf.org/epub/a11y/accessibility-20170105.html#wcag-a" (EPUB Accessibility Specification 1.0 A) are present in the package document, otherwise if false it means that the metadata is not present.

+

This means that the publication conforms with the requirements of WCAG level A or with the requirements of EPUB Accessibility Spec 1.0 level A.

+
+
level_aa
+
+

If true it indicates that the conformsTo contains "Level AA" or the conformsTo="http://www.idpf.org/epub/a11y/accessibility-20170105.html#wcag-aa" (EPUB Accessibility Specification 1.0 AA) are present in the package document, otherwise if false it means that the metadata is not present.

+

This means that the publication conforms with the requirements of WCAG level AA or with the requirements of EPUB Accessibility Spec 1.0 level AA.

+
+
level_aaa
+
+

If true it indicates that the conformsTo contains "Level AAA" or the conformsTo="http://www.idpf.org/epub/a11y/accessibility-20170105.html#wcag-aaa" (EPUB Accessibility Specification 1.0 A) are present in the package document, otherwise if false it means that the metadata is not present.

+

This means that the publication conforms with the requirements of WCAG level AAA or with the requirements of EPUB Accessibility Spec 1.0 level AAA.

+
+
certifier
+
+

Returns the description of a11y:certifiedBy (Compliance certification by (name)) if present in the package document, otherwise if false it means that the metadata is not present.

+

This means that the name of the organization responsible for compliance testing and certification of the product is present.

+
+
certifier_credentials
+
+

Returns the description of a11y:certifierCredential (Compliance certification by (URL)) if present in the package document, otherwise if false it means that the metadata is not present.

+

This means that the the URL of a web page belonging to an organization responsible for compliance testing and certification of the product is present – typically a ‘home page’ or a page describing the certification scheme itself.

+
+
certification_date
+
+

Returns the description of dcterms:date if that date property is associated with the a11y:certifiedBy (Latest accessibility assessment date) if present in the package document, otherwise if false it means that the metadata is not present.

+

This means that the date of the latest assessment or re-assessment of the accessibility of the product is present.

+
+
certifier_report
+
+

Returns the description of a11y:certifierReport (Compliance web page for detailed accessibility information) if present in the OPF, otherwise if false it means that the metadata is not present.

+

This means that is present the URL of a compliance web page for detailed accessibility information. The web page should be maintained by an independent compliance scheme or testing organization. Note the web page may include information about specific national requirements or voluntary conformance reports.

+
+
conformance-claimed
+
+

If true it indicates that the conformsTo is present in the package document, otherwise if false it means that the metadata is not present.

+

This means that the publication conforms to some specification.

+
+ +
+ +

4.3.2 Variables setup

+
    +
  1. LET package_document be the result of calling preprocessing given package_document_as_text.
  2. + +
  3. LET epub_accessibility_1_0 be the result of calling check for node on package_document, /package/metadata/meta[@property="dcterms:conformsTo" and contains(text(), http://www.idpf.org/epub/a11y/accessibility-20170105.html#wcag-"].
  4. + +
  5. LET epub_accessibility_1_1 be the result of calling check for node on package_document, /package/metadata/meta[@property="dcterms:conformsTo" and contains(text(), "EPUB Accessibility 1.1")].
  6. + +
  7. LET wcag_20 be the result of calling check for node on package_document, /package/metadata/meta[@property="dcterms:conformsTo" and contains(text(), "http://www.idpf.org/epub/a11y/accessibility-20170105.html#wcag-")] OR calling check for node on package_document, /package/metadata/meta[@property="dcterms:conformsTo" and contains(text(), "WCAG 2.0")]
  8. + +
  9. LET wcag_21 be the result of calling check for node on package_document, /package/metadata/meta[@property="dcterms:conformsTo" and contains(text(), WCAG 2.1")].
  10. + +
  11. LET wcag_22 be the result of calling check for node on package_document, /package/metadata/meta[@property="dcterms:conformsTo" and contains(text(), WCAG 2.2")].
  12. + +
  13. LET level_a be the result of calling check for node on package_document, /package/metadata/meta[@property="dcterms:conformsTo" and contains(text(), Level A")] OR calling check for node on package_document, /package/metadata/meta[@property="dcterms:conformsTo" and text()=http://www.idpf.org/epub/a11y/accessibility-20170105.html#wcag-a"].
  14. + +
  15. LET level_aa be the result of calling check for node on package_document, /package/metadata/meta[@property="dcterms:conformsTo" and contains(text(), Level AA")] OR calling check for node on package_document, /package/metadata/meta[@property="dcterms:conformsTo" and text()=http://www.idpf.org/epub/a11y/accessibility-20170105.html#wcag-aa"].
  16. + +
  17. LET level_aaa be the result of calling check for node on package_document, /package/metadata/meta[@property="dcterms:conformsTo" and contains(text(), Level AAA")] OR calling check for node on package_document, /package/metadata/meta[@property="dcterms:conformsTo" and text()=http://www.idpf.org/epub/a11y/accessibility-20170105.html#wcag-aaa"].
  18. + + +
  19. LET certifier be the value of the node extracted from package_document, using the xpath /package/metadata/meta[@property="a11y:certifiedBy"]/text().
  20. + +
  21. LET certifier_credentials be the value of the node extracted from package_document, using the xpath /package/metadata/meta[@property="a11y:certifierCredential"]/text().
  22. + +
  23. LET certification_date be the value of the node extracted from package_document, using the xpath /package/metadata/meta[@property="dcterms:date" and @refines=//meta[@property="a11y:certifiedBy"]/@id]/text()].
  24. + +
  25. LET certifier_report be the value of the node extracted from package_document, using the xpath /package/metadata/meta[@property="a11y:certifierReport"]/text()].
  26. + +
  27. LET conformance_claimed be the result of calling check for node on package_document, /package/metadata/meta[@property="dcterms:conformsTo"].
  28. +
+ +

4.3.3 Instructions

+
    +
  1. + IF level_aaa: + THEN display "This publication exceeds accepted accessibility standards". +
  2. +
  3. + ELSE IF level_aa: + THEN display "This publication meets accepted accessibility standards". +
  4. +
  5. + ELSE IF level_a: + THEN display "This publication meets minimum accessibility standards". +
  6. +
  7. + ELSE IF conformance_claimed: + THEN display "Conformance to accepted standards for accessibility of this publication cannot be determined". + +
  8. +
  9. + ELSE: + THEN display "The publication does not include a conformance statement". +
  10. +
  11. + IF certifier is NOT empty: + THEN +
      +
    • display "This publication is certified by "
    • +
    • display certifier.
    • +
    +
  12. +
  13. + IF certifier_credentials is NOT empty: + THEN +
      +
    • display "The certifier's credential is "
    • +
    • display certifier_credentials as link IF certifier_credentials is an URL.
    • +
    +
  14. +
  15. + display "Detailed Conformance Information" as heading. +
  16. +
  17. + IF epub_accessibility_1_0 OR epub_accessibility_1_1 OR wcag_20 OR wcag_21 OR wcag_22 OR level_aaa OR level_aa OR level_a: + THEN display "This publication claims to meet ". +
  18. +
  19. + IF epub_accessibility_1_0: + THEN display " EPUB Accessibility 1.0 ". +
  20. +
  21. + ELSE IF epub_accessibility_1_1: + THEN display " EPUB Accessibility 1.1 ". +
  22. +
  23. + IF wcag_22: + THEN display " WCAG 2.2 ". +
  24. +
  25. + ELSE IF wcag_21: + THEN display " WCAG 2.1 ". +
  26. +
  27. + ELSE IF wcag_20: + THEN display " WCAG 2.0 ". +
  28. +
  29. + IF level_aaa: + THEN display " Level AAA". +
  30. +
  31. + ELSE IF level_aa: + THEN display " Level AA". +
  32. +
  33. + ELSE IF level_a: + THEN display " Level A". +
  34. +
  35. + IF certification_date OR certifier OR certifier_credentials: + THEN display "The publication was certified ". +
  36. +
  37. + IF certification_date: + THEN +
      +
    • display " on "
    • +
    • display certification_date.
    • +
    +
  38. +
  39. + IF certifier: + THEN +
      +
    • display " by "
    • +
    • display certifier.
    • +
    +
  40. +
  41. + IF certifier_credentials: + THEN +
      +
    • display " with a credential of "
    • +
    • display certifier_credentials as link IF certifier_credentials is an URL.
    • +
    +
  42. +
  43. + IF certifier_report: + THEN +
      +
    • display "For more information refer to the certifier's report."
    • +
    • with certifier_report as link.
    • +
    +
  44. +
+ +
+ + +

4.4 Pre-recorded audio

+ +

This technique relates to Pre-recorded audio key information.

+ +

This algorithm takes the package_document_as_text argument: a UTF-8 string representing the Package document.

+ +

4.4.1 Understanding the variables

+
+
all_content_audio
+
+

If true it indicates that the accessModeSufficient="auditory" (all main content is provided in audio form) is present in the package document, otherwise if false it means that the metadata is not present.

+
+
synchronised_pre_recorded_audio
+
+

If true it indicates that the accessibilityFeature="sychronizedAudioText" is present in the package document, otherwise, if false, it means that the metadata is not present.

+

This indicates that text-synchronised pre-recorded audio narration (natural or synthesised voice) is included for substantially all textual matter, including all alternative descriptions, e.g. via a SMIL media overlay.

+
+ +
audio_content
+
+

If true it indicates that the accessMode="auditory" is present in the package document, otherwise, if false, it means that the metadata is not present.

+ +

This indicates that pre-recorded audio content is included as part of the work.

+
+ + +
+

4.4.2 Variables setup

+
    +
  1. LET package_document be the result of calling preprocessing given package_document_as_text.
  2. + +
  3. LET all_content_audio be the result of calling check for node on package_document, /package/metadata/meta[@property="schema:accessModeSufficient" and text()="auditory"].
  4. + +
  5. LET synchronised_pre_recorded_audio be the result of calling check for node on package_document, /package/metadata/meta[@property="schema:accessibilityFeature" and text()="sychronizedAudioText"].
  6. + +
  7. LET audio_content be the result of calling check for node on package_document, /package/metadata/meta[@property="schema:accessMode" and text()="auditory"].
  8. + +
+

4.4.3 Instructions

+
    +
  1. + IF all_content_audio: + THEN display "Audio only". +
  2. +
  3. + ELSE IF synchronised_pre_recorded_audio: + THEN display "Synchronized audio and text". +
  4. +
  5. + ELSE IF audio_content: + THEN display "Complementary audio and text". +
  6. + +
  7. + ELSE either omit this key informtion if metadata is missing or display "No information about pre-recorded audio". +
  8. +
+
+ + + +

4.6 Charts, diagrams, and formulas

+ +

This technique relates to Charts, diagrams, and formulas key information.

+ +

This algorithm takes the package_document_as_text argument: a UTF-8 string representing the Package document.

+

4.6.1 Understanding the variables

+
+
contains_charts_diagrams
+
+

If true it indicates that the accessibilityFeature="chartOnVisual" (charts encoded in visual form) is present in the package document, otherwise if false it means that the metadata is not present.

+

This means that there is a positive indication that the product has some information conveyed via some form of illustration, such as a graph, a chart, a diagram, a figure, etc).

+
+
long_text_descriptions
+
+

If true it indicates that the accessibilityFeature="longDescriptions" (Full alternative textual description) is present in the package document, otherwise if false it means that the metadata is not present.

+

This means that there is a positive indication that a full alternative textual description has been supplied for all of the graphs, charts, diagrams, or figures necessary to understand the content.

+
+
contains_chemical_formula
+
+

If true it indicates that the accessibilityFeature="chemOnVisual" (Chemical content) is present in the package document, otherwise if false it means that the metadata is not present.

+

This means that there is a positive indication that the publication contains chemical notations, formulae.

+
+
chemical_formula_as_chemml
+
+

If true it indicates that the accessibilityFeature="ChemML" (Accessible chemistry content as ChemML) is present in the package document, otherwise if false it means that the metadata is not present.

+

This means that there is a positive indication that the chemical formulae are presented using ChemML and works with compatible assistive technology.

+
+
contains_math_formula
+
+

If true it indicates that the accessibilityFeature="describedMath" (Mathematical content) is present in the package document, otherwise if false it means that the metadata is not present.

+

This means that there is a positive indication that the publication contains mathematical notation, equations, formulae.

+
+
math_formula_as_latex
+
+

If true it indicates that the accessibilityFeature="latex" (Accessible math content as LaTeX) is present in the package document, otherwise if false it means that the metadata is not present.

+

This means that there is a positive indication that the chemical formulae are presented using LaTeX and works with compatible assistive technology.

+
+
math_formula_as_mathml
+
+

If true it indicates that the accessibilityFeature="MathML" (Accessible math content as MathML) is present in the package document, otherwise if false it means that the metadata is not present.

+

This means that there is a positive indication that all mathematical content is presented using MathML and works with compatible assistive technology.

+
+
+

4.6.2 Variables setup

+
    +
  1. LET package_document be the result of calling preprocessing given package_document_as_text.
  2. + +
  3. LET contains_charts_diagrams be the result of calling check for node on package_document, /package/metadata/meta[@property="schema:accessibilityFeature" and text()="chartOnVisual"].
  4. + +
  5. LET long_text_descriptions be the result of calling check for node on package_document, /package/metadata/meta[@property="schema:accessibilityFeature" and text()="longDescriptions"].
  6. + +
  7. LET contains_chemical_formula be the result of calling check for node on package_document, /package/metadata/meta[@property="schema:accessibilityFeature" and text()="chemOnVisual"].
  8. + +
  9. LET chemical_formula_as_chemml be the result of calling check for node on package_document, /package/metadata/meta[@property="schema:accessibilityFeature" and text()="ChemML"].
  10. + + +
  11. LET contains_math_formula be the result of calling check for node on package_document, /package/metadata/meta[@property="schema:accessibilityFeature" and text()="describedMath"].
  12. + +
  13. LET math_formula_as_latex be the result of calling check for node on package_document, /package/metadata/meta[@property="schema:accessibilityFeature" and text()="latex"].
  14. + +
  15. LET math_formula_as_mathml be the result of calling check for node on package_document, /package/metadata/meta[@property="schema:accessibilityFeature" and text()="MathML"].
  16. +
+

4.6.3 Instructions

+
    +
  1. + IF (contains_charts_diagrams AND long_text_descriptions): + THEN display "Charts and diagrams have extended descriptions". +
  2. +
  3. + IF chemical_formula_as_chemml: + THEN display "Accessible chemistry content". +
  4. +
  5. + IF math_formula_as_latex OR math_formula_as_mathml: + THEN display "Accessible math content". +
  6. +
  7. + IF (contains_charts_diagrams OR contains_chemical_formula OR contains_math_formula) AND NOT (long_text_descriptions OR chemical_formula_as_chemml OR math_formula_as_latex OR math_formula_as_mathml): + THEN display "Accessibility of formulas, charts, and diagrams unknown". +
  8. +
+ +
+ +

4.7 Hazards

+ +

This technique relates to Hazards key information.

+

This algorithm takes the package_document_as_text argument: a UTF-8 string representing the Package document.

+ +

4.7.1 Understanding the variables

+
+
no_hazards_or_warnings_confirmed
+
+

If true it indicates that the accessibilityHazard="none" (no accessibility hazards) is present in the package document, otherwise if false it means that the metadata is not present.

+

This means there is a positive indication in the accessiblity metadata within the EPUB confirming there are no associated hazard warnings with this product.

+
+
flashing_hazard
+
+

If true it indicates that the accessibilityHazard="flashing" (WARNING - Flashing hazards) is present in the package document, otherwise if false it means that the metadata is not present.

+

This means that there is a positive indication in the accessiblity metadata within the EPUB confirming that the product has a flashing hazard which must be displayed.

+
+
no_flashing_hazards
+
+

If true it indicates that the accessibilityHazard="noFlashingHazard" (No flashing hazard warning necessary) is present in the package document, otherwise if false it means that the metadata is not present.

+

This means there is a positive indication in the accessiblity metadata within the EPUB confirming there are no flashing hazards associated with this product.

+
+
motion_simulation_hazard
+
+

If true it indicates that the accessibilityHazard="motionSimulation" (WARNING - Motion simulation hazard) is present in the package document, otherwise if false it means that the metadata is not present.

+

This means that there is a positive indication in the accessiblity metadata within the EPUB confirming that the product has a motion simulation hazard which must be displayed.

+
+
no_motion_hazards
+
+

If true it indicates that the accessibilityHazard="noMotionSimulationHazard" (No motion simulation hazard warning necessary) is present in the package document, otherwise if false it means that the metadata is not present.

This means there is a positive indication in the accessiblity metadata within the EPUB confirming there are no motion simulation hazards associated with this product.

+
+
sound_hazard
+
+

If true it indicates that the accessibilityHazard="Sound" (WARNING - Sound hazard) is present in the package document, otherwise if false it means that the metadata is not present.

+

This means that there is a positive indication in the accessiblity metadata within the EPUB confirming that the product has a sound hazard which must be displayed.

+
+
no_sound_hazards
+
+

If true it indicates that the accessibilityHazard="noSoundHazard" (No sound hazard warning necessary) is present in the package document, otherwise if false it means that the metadata is not present.

+

This means there is a positive indication in the accessiblity metadata within the EPUB confirming there are no sound hazards associated with this product.

+
+
unknown_if_contains_hazards
+
+

If true it indicates that the accessibilityHazard="unknown" (unknown hazards) is present in the package document, otherwise if false it means that the metadata is not present.

+

This means that the product has not been assessed for hazards and there is no information about potential hazards.

+
+ +
+ +

4.7.2 Variables setup

+
    +
  1. LET package_document be the result of calling preprocessing given package_document_as_text.
  2. + +
  3. LET no_hazards_or_warnings_confirmed be the result of calling check for node on package_document, /package/metadata/meta[@property="schema:accessibilityHazard" and text()="none"].
  4. + +
  5. LET flashing_hazard be the result of calling check for node on package_document, /package/metadata/meta[@property="schema:accessibilityHazard" and text()="flashing"].
  6. + + +
  7. LET no_flashing_hazards be the result of calling check for node on package_document, /package/metadata/meta[@property="schema:accessibilityHazard" and text()="noFlashingHazard"].
  8. + + +
  9. LET motion_simulation_hazard be the result of calling check for node on package_document, /package/metadata/meta[@property="schema:accessibilityHazard" and text()="motionSimulation"].
  10. + + +
  11. LET no_motion_hazards be the result of calling check for node on package_document, /package/metadata/meta[@property="schema:accessibilityHazard" and text()="noMotionSimulation"].
  12. + + +
  13. LET sound_hazard be the result of calling check for node on package_document, /package/metadata/meta[@property="schema:accessibilityHazard" and text()="sound"].
  14. + + + +
  15. LET no_sound_hazards be the result of calling check for node on package_document, /package/metadata/meta[@property="schema:accessibilityHazard" and text()="noSoundHazard"].
  16. + + +
  17. LET unknown_if_contains_hazards be the result of calling check for node on package_document, /package/metadata/meta[@property="schema:accessibilityHazard" and text()="unknown"].
  18. + +
+

4.7.3 Instructions

+
    +
  1. + IF no_hazards_or_warnings_confirmed OR (no_flashing_hazards AND no_motion_hazards AND no_sound_hazards): + THEN display "No hazards". +
  2. +
  3. + ELSE IF flashing_hazard OR motion_simulation_hazard OR sound_hazard: + THEN LET hazards be an empty array. +
      +
    1. + IF flashing_hazard: + THEN APPEND "flashing" to hazards. +
    2. +
    3. + IF motion_simulation_hazard: + THEN APPEND "motion" to hazards. +
    4. +
    5. + IF sound_hazard: + THEN APPEND "sound" to hazards. +
    6. +
    7. LET hazards_string be the result of: +
        +
      • calling join array to comma list given hazards
      • +
      • uppercasing the first character
      • +
      • concatenating " hazards" to the end of the string IF (length of hazards) > 1 ELSE concatenating " hazard" to the end of the string.
      • +
      +
    8. +
    9. display hazards_string.
    10. +
    +
  4. +
  5. + ELSE IF unknown_if_contains_hazards: + THEN display "The presence of hazards is unknown". +
  6. +
  7. + ELSE either omit this key informtion if metadata is missing or display "No information about possible hazards". + +
  8. +
+
+ + +

4.8 Accessibility summary

+ +

This technique relates to Accessibility summary key information.

+ +

This algorithm takes the package_document_as_text argument: a UTF-8 string representing the Package document.

+ +
Note

+ Being human-written, the accessibility summary will appear in the original language of the publication. Therefore it is necessary to take care of setting up the correct language tag information. +

+ +
Note

Accessibility summaries were necessary when no systems exposed computed accessibility metadata. With more systems now displaying this information, much of the accessibility summary may be redundant. Publishers should focus on adding information not provided within the computed metadata, such as specifying where in a video file a flashing hazard exists, or noting the reason why they failed to meet WCAG-AA due to color contrast issues in the Appendix.

+ +

4.8.1 Understanding the variables

+
+
accessibility_summary
+
+

If true it indicates that the accessibilitySummary is present in the package document, otherwise if false it means that the metadata is not present.

+

This means there is a human-written text containing a short explanatory summary of the accessibility of the product or the URL of a web page comprising such a summary. Summarizes the already existent information and may add information that the publisher could not express with the other codes.

+
+
lang_attribute_accessibility_summary
+
+

Returns the lang attribute of the node containing the accessibility_summary, or the lang attribute of the nearest anchestor.

+

This is the language code in which the text of the Accessibility summary was written.

+
+
language_of_text
+
+

Returns the value of nearest "language" (Language of content) if present in the package document, otherwise if false it means that the metadata is not present.

+

This indicates the main language of the content and therefore the most probable language of accessibility summary.

+
+
+

4.8.2 Variables setup

+
    +
  1. LET package_document be the result of calling preprocessing given package_document_as_text.
  2. + +
  3. LET accessibility_summary be the result of calling check for node on package_document, /package/metadata/meta[@property="schema:accessibilitySummary"].
  4. + +
  5. LET lang_attribute_accessibility_summary be the result of calling check for node on package_document, /package/metadata/meta[@property="schema:accessibilitySummary"]/(@lang|ancestor::*/@lang)[last()].
  6. + +
  7. LET language_of_text be the result of calling check for node on package_document, /package/metadata/dc:language[1]/text().
  8. + +
+

4.8.3 Instructions

+
    +
  1. + IF lang_attribute_accessibility_summary is NOT empty: + THEN LET language_accessibility_summary be the value of lang_attribute_accessibility_summary. +
  2. +
  3. + ELSE LET language_accessibility_summary be the value of language_of_text. +
  4. +
  5. + ELSE IF accessibility_summary is NOT empty: + THEN display the content of accessibility_summary with language_accessibility_summary as language.
  6. +
  7. + ELSE either omit this key informtion if metadata is missing or display "No accessibility summary". +
  8. +
+
+ + + + +

4.10 Additional accessibility information

+ +

This technique relates to Additional accessibility information key information.

+ +

This algorithm takes the package_document_as_text argument: a UTF-8 string representing the Package document.

+ +

4.10.1 Adaptation

+ + +
4.10.1.1 Understanding the variables
+
+
audio_descriptions
+
+

If true it indicates that the accessibilityFeature="audioDescriptions" (Audio Descriptions) is present in the package document, otherwise if false it means that the metadata is not present.

+

This means that there is an audio descriptions track available for video content.

+
+
braille
+
+

If true it indicates that the accessibilityFeature="braille" (Braille) is present in the package document, otherwise if false it means that the metadata is not present.

+

This means that there is braille available within the publication.

+
+
closed_captions
+
+

If true it indicates that the accessibilityFeature="closedCaptions" (Closed captions) is present in the package document, otherwise if false it means that the metadata is not present.

+

This means that the audio content of a video can be seen via closed captions that can be turned on or off by the viewer and which will be a separate file from the video itself.

+
+
open_captions
+
+

If true it indicates that the accessibilityFeature="openCaptions" (Open captions) is present in the package document, otherwise if false it means that the metadata is not present.

+

This means that the audio content of a video can be seen via open captions, which means they cannot be turned off and are always visible when the video plays.

+
+
tactile_graphic
+
+

If true it indicates that the accessibilityFeature="tactileGraphic" (tactile 2D graphic) is present in the package document, otherwise if false it means that the metadata is not present.

+

This means that there is tactile graphic(s) contained within this publication.

+
+
tactile_object
+
+

If true it indicates that the accessibilityFeature="tactileObject" (tactile 3D object) is present in the package document, otherwise if false it means that the metadata is not present.

+

This means that there is tactile 3D object(s) contained within this publication.

+
+
transcript
+
+

If true it indicates that the accessibilityFeature="transcript" (transcript) is present in the package document, otherwise if false it means that the metadata is not present.

+

This means that a transcript of the audio content of the product is supplied with it.

+
+
sign_language
+
+

If true it indicates that the accessibilityFeature="signLanguage" (Sign language interpretation) is present in the package document, otherwise if false it means that the metadata is not present.

+

This means that a full signing of audio content of the product is supplied with the video file.

+
+
+ +
4.10.1.2 Variables setup
+
    +
  1. LET package_document be the result of calling preprocessing given package_document_as_text.
  2. +
  3. LET audio_descriptions be the result of calling check for node on package_document, /package/metadata/meta[@property="schema:accessibilityFeature" and text()="audioDescription"].
  4. +
  5. LET braille be the result of calling check for node on package_document, /package/metadata/meta[@property="schema:accessibilityFeature" and text()="braille"].
  6. +
  7. LET closed_captions be the result of calling check for node on package_document, /package/metadata/meta[@property="schema:accessibilityFeature" and text()="closedCaptions"].
  8. +
  9. LET open_captions be the result of calling check for node on package_document, /package/metadata/meta[@property="schema:accessibilityFeature" and text()="openCaptions"].
  10. +
  11. LET tactile_graphic be the result of calling check for node on package_document, /package/metadata/meta[@property="schema:accessibilityFeature" and text()="tactileGraphic"].
  12. +
  13. LET tactile_object be the result of calling check for node on package_document, /package/metadata/meta[@property="schema:accessibilityFeature" and text()="tactileObject"].
  14. +
  15. LET transcript be the result of calling check for node on package_document, /package/metadata/meta[@property="schema:accessibilityFeature" and text()="transcript"].
  16. +
  17. LET sign_language be the result of calling check for node on package_document, /package/metadata/meta[@property="schema:accessibilityFeature" and text()="signLanguage"].
  18. +
+ +
4.10.1.3 Instructions
+
    +
  1. LET adaptation be an empty array.
  2. +
  3. + IF audio_descriptions: + THEN APPEND "audio descriptions" to adaptation. +
  4. +
  5. + IF braille: + THEN APPEND "braille" to adaptation. +
  6. +
  7. + IF closed_captions: + THEN APPEND "closed captions" to adaptation. +
  8. +
  9. + IF open_captions: + THEN APPEND "open captions" to adaptation. +
  10. +
  11. + IF tactile_graphic: + THEN APPEND "tactile graphic" to adaptation. +
  12. +
  13. + IF tactile_object: + THEN APPEND "tactile 3D object" to adaptation. +
  14. +
  15. + IF transcript: + THEN APPEND "transcript" to adaptation. +
  16. +
  17. + IF sign_language: + THEN APPEND "sign language" to adaptation. +
  18. +
  19. IF adaptation is NOT empty: +
      +
    1. LET adaptation_string be the result of: + +
    2. +
    3. display adaptation_string.
    4. +
    +
  20. +
+
+ +

4.10.2 Clarity

+ + +
4.10.2.1 Understanding the variables
+
+ +
aria
+
+

If true it indicates that the accessibilityFeature="aria" (ARIA roles - semantic markup) is present in the package document, otherwise if false it means that the metadata is not present.

+

This means that the use of AIRA, including DPUB ARIA is used to improve the semantic markup of the publication.

+
+
full_ruby_annotations
+
+

If true it indicates that the accessibilityFeature="fullRubyAnnotations" (Full Ruby Annotations) is present in the package document, otherwise if false it means that the metadata is not present.

+

This means that ruby annotations are attached to every CJK ideographic character in the content. Ruby annotations are used as pronunciation guides for the logographic characters for languages like Chinese or Japanese. They make difficult CJK ideographic characters more accessible.

+
+ +
text_to_speech_hinting
+
+

If true it indicates that the accessibilityFeature="ttsMarkup" (Text-to-speech markup provided) is present in the package document, otherwise if false it means that the metadata is not present.

+

This means that text-to-speech has been optimised through provision of PLS lexicons, SSML or CSS Speech synthesis hints or other speech synthesis markup languages or hinting.

+
+
high_contrast_between_foreground_and_background_audio
+
+

If true it indicates that the accessibilityFeature="highContrastAudio" (Use of high contrast between foreground and background audio) is present in the package document, otherwise if false it means that the metadata is not present.

+

This means that foreground audio content (eg voice) is presented with no or low background noise (eg ambient sounds, music), at least 20dB below the level of the foreground, or background noise can be switched off (eg via an alternative audio track). Brief and occasional sound effects may be as loud as foreground voice so long as they are isolated from the foreground.

+
+
high_contrast_between_text_and_background
+
+

If true it indicates that the accessibilityFeature="highContrastDisplay" (Use of high contrast between text and background color) is present in the package document, otherwise if false it means that the metadata is not present.

+

This means that body text is presented with a contrast ratio of at least 4.5:1 (or 3:1 for large/heading text).

+
+
large_print
+
+

If true it indicates that the accessibilityFeature="largePrint" (Large Print) is present in the package document, otherwise if false it means that the metadata is not present.

+

This means that the e-publication has been formatted to meet large print guidelines.

+
+
page_break_markers
+
+

If true it indicates that the accessibilityFeature="pageBreakMarkers" (Print-equivalent page numbering) is present in the package document, otherwise if false it means that the metadata is not present.

+

This means that the publication contains references to the page numbering.

+
+
ruby_annotations
+
+

If true it indicates that the accessibilityFeature="rubyAnnotations" (Ruby Annotations) is present in the package document, otherwise if false it means that the metadata is not present.

+

This means that ruby annotations are attached to some but not all CJK ideographic characters in the content.

+
+ +
+ +
4.10.2.2 Variables setup
+
    +
  1. LET package_document be the result of calling preprocessing given package_document_as_text.
  2. +
  3. LET aria be the result of calling check for node on package_document, /package/metadata/meta[@property="schema:accessibilityFeature" and text()="aria"].
  4. +
  5. LET full_ruby_annotations be the result of calling check for node on package_document, /package/metadata/meta[@property="schema:accessibilityFeature" and text()="fullRubyAnnotations"].
  6. +
  7. LET text_to_speech_hinting be the result of calling check for node on package_document, /package/metadata/meta[@property="schema:accessibilityFeature" and text()="ttsMarkup"].
  8. +
  9. LET high_contrast_between_foreground_and_background_audio be the result of calling check for node on package_document, /package/metadata/meta[@property="schema:accessibilityFeature" and text()="highContrastAudio"].
  10. +
  11. LET high_contrast_between_text_and_background be the result of calling check for node on package_document, /package/metadata/meta[@property="schema:accessibilityFeature" and text()="highContrastDisplay"].
  12. +
  13. LET large_print be the result of calling check for node on package_document, /package/metadata/meta[@property="schema:accessibilityFeature" and text()="largePrint"].
  14. +
  15. LET page_break_markers be the result of calling check for node on package_document, /package/metadata/meta[@property="schema:accessibilityFeature" and text()="pageBreakMarkers"].
  16. +
  17. LET ruby_annotations be the result of calling check for node on package_document, /package/metadata/meta[@property="schema:accessibilityFeature" and text()="rubyAnnotations"].
  18. +
+ +
4.10.2.3 Instructions
+
    +
  1. LET clarity be an empty array.
  2. +
  3. + IF aria: + THEN APPEND "aria" to clarity. +
  4. +
  5. + IF full_ruby_annotations: + THEN APPEND "full ruby annotations" to clarity. +
  6. +
  7. + IF text_to_speech_hinting: + THEN APPEND "text-to-speech hinting provided" to clarity. +
  8. +
  9. + IF high_contrast_between_foreground_and_background_audio: + THEN APPEND "high contrast between foreground and background audio" to clarity. +
  10. +
  11. + IF high_contrast_between_text_and_background: + THEN APPEND "high contrast between text and background" to clarity. +
  12. +
  13. + IF large_print: + THEN APPEND "large print" to clarity. +
  14. +
  15. + IF page_break_markers: + THEN APPEND "page breaks" to clarity. +
  16. +
  17. + IF ruby_annotations: + THEN APPEND "ruby annotations" to clarity. +
  18. + + +
  19. IF clarity is NOT empty: +
      +
    1. LET clarity_string be the result of: + +
    2. +
    3. display clarity_string.
    4. +
    +
  20. +
+
+ + +
+ +
+ +

A. Acknowledgements

This section is non-normative.

+ +

A.1 Contributors

+ + +
+

A.2 Reviewers

+ + +
+
+ +

B. References

B.1 Informative references

+ +
[EPUB-33]
+ EPUB 3.3. Ivan Herman; Matt Garrish; Dave Cramer. W3C. 25 May 2023. W3C Recommendation. URL: https://www.w3.org/TR/epub-33/ +
[epub-a11y-11]
+ EPUB Accessibility 1.1. George Kerscher; Matt Garrish; Charles LaPierre; Avneesh Singh; Gregorio Pellegrino. W3C. 25 May 2023. W3C Recommendation. URL: https://www.w3.org/TR/epub-a11y-11/ +
+
\ No newline at end of file diff --git a/UX-Guide-Metadata/2.0/techniques/epub-metadata/index.html b/UX-Guide-Metadata/2.0/techniques/epub-metadata/index.html old mode 100644 new mode 100755 index eabff25d..663ea115 --- a/UX-Guide-Metadata/2.0/techniques/epub-metadata/index.html +++ b/UX-Guide-Metadata/2.0/techniques/epub-metadata/index.html @@ -1,3 +1,1656 @@ - - - \ No newline at end of file + + + + + + + + + +Display Techniques for EPUB Accessibility Metadata 2.0 + + + + + + + + + + + + +
+ +

Display Techniques for EPUB Accessibility Metadata 2.0

+

+ Draft Community Group Report + +

+
+
This version:
+ https://w3c.github.io/publ-a11y/UX-Guide-Metadata/2.0/techniques/epub-metadata/epub-metadata-draft-note-20240830.html +
+
Latest published version:
+ https://www.w3.org/publishing/a11y/UX-Guide-metadata/techniques/epub-metadata/ +
+
Latest editor's draft:
https://w3c.github.io/publ-a11y/UX-Guide-Metadata/draft/techniques/epub-metadata/
+ + + + +
Editor:
+ Charles LaPierre (Benetech) +
+ + +
Feedback:
+ GitHub w3c/publ-a11y + (pull requests, + new issue, + open issues) +
+ +
+ + +
+
+

Abstract

+

Status of This Document

+ This specification was published by the + Publishing Community Group. It is not a W3C Standard nor is it + on the W3C Standards Track. + + Please note that under the + W3C Community Contributor License Agreement (CLA) + there is a limited opt-out and other conditions apply. + + Learn more about + W3C Community and Business Groups. +

+ GitHub Issues are preferred for + discussion of this specification. + + +

+

1. EPUB Accessibility Metadata

+ + +

This metadata as outlined in EPUB Accessibility 1.1 [epub-a11y-11], can be found in the EPUB package document [EPUB-33].

+ +
Note
+ +
Note
+ +

1.1 EPUB Accessibility Metadata Examples

+ +

1.1.1 EPUB accessibility metadata describing an EPUB

+ +

Here is an example of accessibility metadata embedded within the package document, + which will be used as a reference point for the + following examples on EPUB accessibility metadata: the results of the XPath shown are based on + this example. +

+ +
+

1.1.2 EPUB accessibility metadata describing an audiobook

+ + +

Here is an example of an accessibility OPF Metadata for describing an audiobook, which will be used as a reference point for the following examples on EPUB accessibility metadata: the results of the XPath shown are based on this example.

+ +
+
+
+ +

2. Conventions for implementations

+ +

The code conventions used in the provided code snippet follow a structure commonly found in programming languages like Python, Java, or C++. Here's an explanation of the conventions:

+
+
Conditionals and Control Flow:
+
IF, ELSE IF, and ELSE (in bold and capital letters) statements are used to define different conditions and the corresponding actions to be taken.
+
Operators:
+
Written operators (is present) are used to check if a particular code or codelist is present (or not) in the metadata record.
+
Logical operators:
+
Logical operators (AND, OR, NOT, in bold and capital letters) are used to combine conditions.
+
String Literals:
+
String literals are used to represent the text that should be displayed when a particular condition is met.
+
Variable Naming:
+
The terms like "property" and "value" are used in a way that suggests a variable or data structure representing the metadata record.
+
Indentation:
+
The code uses consistent indentation to define blocks of code within conditional statements. This is crucial for readability and maintaining a clear structure.
+
Readability:
+
The code is written in a way that is intended to be easily readable and understandable even by non-coders.
+
+
+ +

3. Common Functions

+ +

In this section we define the functions common to all techniques, which are called by them during execution.

+

3.1 Preprocessing

+ +

Before working directly with the metadata we must read the metadata in the Package document (package document) inside the EPUB. This is a common starting point for all techniques that allows us to query the metadata directly.

+
Note
+

This algorithm takes the package_document_as_text argument: a UTF-8 string representing the Package document.

+

To generate the internal representation, run the following steps:

+
    +
  1. LET package_document_content be textual representation of the Package document for the publication given package_document_as_text.
  2. +
  3. LET package_document be the DOM tree that results from parsing package_document_content using an XML DOM parser.
  4. +
  5. Return package_document.
  6. +
+
+ +

3.2 Check for Node

+ +

Many of the techniques rely on checking for the presence or absence of metadata in the metadata section of the Package document.

+ +
Note
+ +

This algorithm takes:

+ +

To check for node, run the following steps:

+
    +
  1. + IF package_document contains path: + THEN return True. +
  2. +
  3. ELSE return False.
  4. +
+
+

3.3 Join array to comma list

+ +

This function serves to concatenate an array of strings, separating each element with a comma, with the last element separated by an ", and" (this string is localizable).

+

For example if the input array has elements ["one", "two", "three"], then the output is going to be "one, two, and three".

+

This algorithm takes the string_array argument: the list of string to join.

+

To join the array, run the following steps:

+
    +
  1. LET output_string be the result of: +
      +
    • calling join on string_array with the separator ", "
    • +
    • replacing the last occurrence of ", " with ", and ".
    • +
    +
  2. +
  3. return output_string.
  4. +
+
+ +
+ +

4. Techniques

+ + +

4.1 Visual adjustments

+ + +

This technique relates to Visual adjustments key information.

+

This algorithm takes the package_document_as_text argument: a UTF-8 string representing the Package document.

+ + +

4.1.1 Understanding the variables

+
+
all_textual_content_can_be_modified
+
+

If true it indicates that the accessibilityFeature="displayTransformability" (All textual content can be modified) is present in the package document, otherwise if false it means that the metadata is not present.

+

All textual content can be modified means that the digital publication does not restrict the ability of users to modify and reflow the display of any textual content to the full extent allowed by the reading system (i.e. to change the text size or typeface, line height and word spacing, colors).

+
+
is_fixed_layout
+
+

If true it indicates that the layout="pre-paginated" (Fixed format) is present in the package document, otherwise if false it means that the metadata is not present.

+

Fixed format means that digital publication is in fixed format (e.g. EPUB Fixed Layout).

+
+
+ +

4.1.2 Variables setup

+
    +
  1. LET package_document be the result of calling preprocessing given package_document_as_text.
  2. + +
  3. LET all_textual_content_can_be_modified be the result of calling check for node on package_document, /package/metadata/meta[@property="schema:accessibilityFeature" and text()="displayTransformability"].
  4. + +
  5. LET is_fixed_layout be the result of calling check for node on package_document, /package/metadata/meta[@property="rendition:layout" and text()="pre-paginated"].
  6. + +
+

4.1.3 Instructions

+
    +
  1. + IF all_textual_content_can_be_modified: + THEN display "Appearance can be modified". +
  2. +
  3. + ELSE IF is_fixed_layout: + THEN display "Appearance cannot be modified". +
  4. +
  5. ELSE display "Appearance modifiability not known".
  6. +
+
+ +

4.2 Supports nonvisual reading

+ +

This technique relates to Supports nonvisual reading key information.

+

This algorithm takes the package_document_as_text argument: a UTF-8 string representing the Package document.

+

4.2.1 Understanding the variables

+
+
all_necessary_content_textual
+
+

If true it indicates that the accessModeSufficient="textual" (all main content is provided in textual form) is present in the package document, otherwise if false it means that the metadata is not present.

+

All non-decorative content supports reading without sight means that all contents of the digital publication necessary to use and understanding, including text, images (via their alternative descriptions), audio and video material (via their transcripts, descriptions, captions or subtitles) are fully accessible via suitable reading devices, for example text-to-speech screen readers or tactile reading devices (‘Braille displays’), and nothing in the digital publication prevents or blocks the use of alternative reading modes. The entire publication can be navigated and ‘read’ using only text rendered via sound or touch, and does not require visual perception.

+
+
non_textual_content_images
+
+

If true it indicates that at least one of the following is present in the package document:

+
    +
  • accessMode="chartOnVisual" (Charts and Graphs);
  • +
  • accessMode="chemOnVisual" (Chemistry);
  • +
  • accessMode="diagramOnVisual" (Diagrams);
  • +
  • accessMode="mathOnVisual" (Math);
  • +
  • accessMode="musicOnVisual" (Music);
  • +
  • accessMode="textOnVisual" (Images of text);
  • +
  • otherwise if false it means that this metadata is not present.
  • +
+

This means that the content contains images of any type.

+
+
textual_alternative_images
+
+

If true it indicates that at least one of the following is present in the package document:

+
    +
  • accessibilityFeature="alternativeText" (Short alternative textual descriptions);
  • +
  • accessibilityFeature="longDescription" (Full alternative textual descriptions);
  • +
  • accessibilityFeature="describedMath" (Visual of math fully described));
  • +
  • otherwise if false it means that this metadata is not present.
  • +
+

This means that there are textual alternatives for images.

+
+
+

4.2.2 Variables setup

+
    +
  1. LET package_document be the result of calling preprocessing given package_document_as_text.
  2. + +
  3. LET all_necessary_content_textual be the result of calling check for node on package_document, /package/metadata/meta[@property="schema:accessModeSufficient" and text()="textual"].
  4. +
  5. + LET non_textual_content_images be the result of calling check for node on + package_document, /package/metadata/meta[@property="schema:accessibilityFeature" and
    (text()="chartOnVisual" or text()="chemOnVisual" or
    + text()="diagramOnVisual" or text()="mathOnVisual" or
    + text()="musicOnVisual" or text()="textOnVisual")]
    . +
  6. + +
  7. LET textual_alternative_images be the result of calling check for node on package_document, /package/metadata/meta[@property="schema:accessibilityFeature" and
    (text()="longDescription" or text()="alternativeText" or text()="describedMath")]
    . + +
  8. +
+

4.2.3 Instructions

+
    +
  1. + IF all_necessary_content_textual: + THEN display "Readable in read aloud and braille". +
  2. +
  3. + ELSE IF non_textual_content_images AND NOT textual_alternative_images: + THEN display "Not fully readable in read aloud and braille". +
  4. +
  5. ELSE display "May not be fully readable in read aloud and braille".
  6. +
+ + +
+ + +

4.3 Conformance

+ +

This technique relates to Conformance key information.

+ +

This algorithm takes the package_document_as_text argument: a UTF-8 string representing the Package document.

+ +

4.3.1 Understanding the variables

+
+
epub_accessibility_1_0
+
+

If true it indicates that the conformsTo="http://www.idpf.org/epub/a11y/accessibility-20170105.html#wcag-a" (EPUB Accessibility Specification 1.0 A) or the conformsTo="http://www.idpf.org/epub/a11y/accessibility-20170105.html#wcag-aa" (EPUB Accessibility Specification 1.0 AA) or the conformsTo="http://www.idpf.org/epub/a11y/accessibility-20170105.html#wcag-aaa" (EPUB Accessibility Specification 1.0 AAA) is present in the package document, otherwise if false it means that the metadata is not present.

+

This means that the publication conforms with either the requirements of EPUB Accessibility Spec 1.0, at level A, AA, or AAA.

+
+
epub_accessibility_1_1
+
+

If true it indicates that the conformsTo contains "EPUB Accessibility 1.1" (EPUB Accessibility Specification 1.1) is present in the package document, otherwise if false it means that the metadata is not present.

+

This means that the publication conforms with the requirements of EPUB Accessibility Spec 1.1.

+
+
wcag_20
+
+

If true it indicates that the conformsTo contains "WCAG 2.0" or conformsTo="http://www.idpf.org/epub/a11y/accessibility-20170105.html#wcag-a" (EPUB Accessibility Specification 1.0 A) or the conformsTo="http://www.idpf.org/epub/a11y/accessibility-20170105.html#wcag-aa" (EPUB Accessibility Specification 1.0 AA) or the conformsTo="http://www.idpf.org/epub/a11y/accessibility-20170105.html#wcag-aaa" (EPUB Accessibility Specification 1.0 AAA) are present in the package document, otherwise if false it means that the metadata is not present.

+

This means that the publication conforms with the requirements of WCAG version 2.0 or with the requirements of EPUB Accessibility Spec 1.0 (at level A, AA, or AAA). This is because being compliant with EPUB Accessibility 1.0 specification means at least being compliant with WCAG 2.0 specification.

+
+
wcag_21
+
+

If true it indicates that the conformsTo contains "WCAG 2.1" is present in the package document, otherwise if false it means that the metadata is not present.

+

This means that the publication conforms with the requirements of WCAG version 2.1.

+
+
wcag_22
+
+

If true it indicates that the conformsTo contains "WCAG 2.2" is present in the package document, otherwise if false it means that the metadata is not present.

+

This means that the publication conforms with the requirements of WCAG version 2.2.

+
+
level_a
+
+

If true it indicates that the conformsTo contains "Level A" or the conformsTo="http://www.idpf.org/epub/a11y/accessibility-20170105.html#wcag-a" (EPUB Accessibility Specification 1.0 A) are present in the package document, otherwise if false it means that the metadata is not present.

+

This means that the publication conforms with the requirements of WCAG level A or with the requirements of EPUB Accessibility Spec 1.0 level A.

+
+
level_aa
+
+

If true it indicates that the conformsTo contains "Level AA" or the conformsTo="http://www.idpf.org/epub/a11y/accessibility-20170105.html#wcag-aa" (EPUB Accessibility Specification 1.0 AA) are present in the package document, otherwise if false it means that the metadata is not present.

+

This means that the publication conforms with the requirements of WCAG level AA or with the requirements of EPUB Accessibility Spec 1.0 level AA.

+
+
level_aaa
+
+

If true it indicates that the conformsTo contains "Level AAA" or the conformsTo="http://www.idpf.org/epub/a11y/accessibility-20170105.html#wcag-aaa" (EPUB Accessibility Specification 1.0 A) are present in the package document, otherwise if false it means that the metadata is not present.

+

This means that the publication conforms with the requirements of WCAG level AAA or with the requirements of EPUB Accessibility Spec 1.0 level AAA.

+
+
certifier
+
+

Returns the description of a11y:certifiedBy (Compliance certification by (name)) if present in the package document, otherwise if false it means that the metadata is not present.

+

This means that the name of the organization responsible for compliance testing and certification of the product is present.

+
+
certifier_credentials
+
+

Returns the description of a11y:certifierCredential (Compliance certification by (URL)) if present in the package document, otherwise if false it means that the metadata is not present.

+

This means that the the URL of a web page belonging to an organization responsible for compliance testing and certification of the product is present – typically a ‘home page’ or a page describing the certification scheme itself.

+
+
certification_date
+
+

Returns the description of dcterms:date if that date property is associated with the a11y:certifiedBy (Latest accessibility assessment date) if present in the package document, otherwise if false it means that the metadata is not present.

+

This means that the date of the latest assessment or re-assessment of the accessibility of the product is present.

+
+
certifier_report
+
+

Returns the description of a11y:certifierReport (Compliance web page for detailed accessibility information) if present in the OPF, otherwise if false it means that the metadata is not present.

+

This means that is present the URL of a compliance web page for detailed accessibility information. The web page should be maintained by an independent compliance scheme or testing organization. Note the web page may include information about specific national requirements or voluntary conformance reports.

+
+
conformance-claimed
+
+

If true it indicates that the conformsTo is present in the package document, otherwise if false it means that the metadata is not present.

+

This means that the publication conforms to some specification.

+
+ +
+ +

4.3.2 Variables setup

+
    +
  1. LET package_document be the result of calling preprocessing given package_document_as_text.
  2. + +
  3. LET epub_accessibility_1_0 be the result of calling check for node on package_document, /package/metadata/meta[@property="dcterms:conformsTo" and contains(text(), http://www.idpf.org/epub/a11y/accessibility-20170105.html#wcag-"].
  4. + +
  5. LET epub_accessibility_1_1 be the result of calling check for node on package_document, /package/metadata/meta[@property="dcterms:conformsTo" and contains(text(), "EPUB Accessibility 1.1")].
  6. + +
  7. LET wcag_20 be the result of calling check for node on package_document, /package/metadata/meta[@property="dcterms:conformsTo" and contains(text(), "http://www.idpf.org/epub/a11y/accessibility-20170105.html#wcag-")] OR calling check for node on package_document, /package/metadata/meta[@property="dcterms:conformsTo" and contains(text(), "WCAG 2.0")]
  8. + +
  9. LET wcag_21 be the result of calling check for node on package_document, /package/metadata/meta[@property="dcterms:conformsTo" and contains(text(), WCAG 2.1")].
  10. + +
  11. LET wcag_22 be the result of calling check for node on package_document, /package/metadata/meta[@property="dcterms:conformsTo" and contains(text(), WCAG 2.2")].
  12. + +
  13. LET level_a be the result of calling check for node on package_document, /package/metadata/meta[@property="dcterms:conformsTo" and contains(text(), Level A")] OR calling check for node on package_document, /package/metadata/meta[@property="dcterms:conformsTo" and text()=http://www.idpf.org/epub/a11y/accessibility-20170105.html#wcag-a"].
  14. + +
  15. LET level_aa be the result of calling check for node on package_document, /package/metadata/meta[@property="dcterms:conformsTo" and contains(text(), Level AA")] OR calling check for node on package_document, /package/metadata/meta[@property="dcterms:conformsTo" and text()=http://www.idpf.org/epub/a11y/accessibility-20170105.html#wcag-aa"].
  16. + +
  17. LET level_aaa be the result of calling check for node on package_document, /package/metadata/meta[@property="dcterms:conformsTo" and contains(text(), Level AAA")] OR calling check for node on package_document, /package/metadata/meta[@property="dcterms:conformsTo" and text()=http://www.idpf.org/epub/a11y/accessibility-20170105.html#wcag-aaa"].
  18. + + +
  19. LET certifier be the value of the node extracted from package_document, using the xpath /package/metadata/meta[@property="a11y:certifiedBy"]/text().
  20. + +
  21. LET certifier_credentials be the value of the node extracted from package_document, using the xpath /package/metadata/meta[@property="a11y:certifierCredential"]/text().
  22. + +
  23. LET certification_date be the value of the node extracted from package_document, using the xpath /package/metadata/meta[@property="dcterms:date" and @refines=//meta[@property="a11y:certifiedBy"]/@id]/text()].
  24. + +
  25. LET certifier_report be the value of the node extracted from package_document, using the xpath /package/metadata/meta[@property="a11y:certifierReport"]/text()].
  26. + +
  27. LET conformance_claimed be the result of calling check for node on package_document, /package/metadata/meta[@property="dcterms:conformsTo"].
  28. +
+ +

4.3.3 Instructions

+
    +
  1. + IF level_aaa: + THEN display "This publication exceeds accepted accessibility standards". +
  2. +
  3. + ELSE IF level_aa: + THEN display "This publication meets accepted accessibility standards". +
  4. +
  5. + ELSE IF level_a: + THEN display "This publication meets minimum accessibility standards". +
  6. +
  7. + ELSE IF conformance_claimed: + THEN display "Conformance to accepted standards for accessibility of this publication cannot be determined". + +
  8. +
  9. + ELSE: + THEN display "The publication does not include a conformance statement". +
  10. +
  11. + IF certifier is NOT empty: + THEN +
      +
    • display "This publication is certified by "
    • +
    • display certifier.
    • +
    +
  12. +
  13. + IF certifier_credentials is NOT empty: + THEN +
      +
    • display "The certifier's credential is "
    • +
    • display certifier_credentials as link IF certifier_credentials is an URL.
    • +
    +
  14. +
  15. + display "Detailed Conformance Information" as heading. +
  16. +
  17. + IF epub_accessibility_1_0 OR epub_accessibility_1_1 OR wcag_20 OR wcag_21 OR wcag_22 OR level_aaa OR level_aa OR level_a: + THEN display "This publication claims to meet ". +
  18. +
  19. + IF epub_accessibility_1_0: + THEN display " EPUB Accessibility 1.0 ". +
  20. +
  21. + ELSE IF epub_accessibility_1_1: + THEN display " EPUB Accessibility 1.1 ". +
  22. +
  23. + IF wcag_22: + THEN display " WCAG 2.2 ". +
  24. +
  25. + ELSE IF wcag_21: + THEN display " WCAG 2.1 ". +
  26. +
  27. + ELSE IF wcag_20: + THEN display " WCAG 2.0 ". +
  28. +
  29. + IF level_aaa: + THEN display " Level AAA". +
  30. +
  31. + ELSE IF level_aa: + THEN display " Level AA". +
  32. +
  33. + ELSE IF level_a: + THEN display " Level A". +
  34. +
  35. + IF certification_date OR certifier OR certifier_credentials: + THEN display "The publication was certified ". +
  36. +
  37. + IF certification_date: + THEN +
      +
    • display " on "
    • +
    • display certification_date.
    • +
    +
  38. +
  39. + IF certifier: + THEN +
      +
    • display " by "
    • +
    • display certifier.
    • +
    +
  40. +
  41. + IF certifier_credentials: + THEN +
      +
    • display " with a credential of "
    • +
    • display certifier_credentials as link IF certifier_credentials is an URL.
    • +
    +
  42. +
  43. + IF certifier_report: + THEN +
      +
    • display "For more information refer to the certifier's report."
    • +
    • with certifier_report as link.
    • +
    +
  44. +
+ +
+ + +

4.4 Pre-recorded audio

+ +

This technique relates to Pre-recorded audio key information.

+ +

This algorithm takes the package_document_as_text argument: a UTF-8 string representing the Package document.

+ +

4.4.1 Understanding the variables

+
+
all_content_audio
+
+

If true it indicates that the accessModeSufficient="auditory" (all main content is provided in audio form) is present in the package document, otherwise if false it means that the metadata is not present.

+
+
synchronised_pre_recorded_audio
+
+

If true it indicates that the accessibilityFeature="sychronizedAudioText" is present in the package document, otherwise, if false, it means that the metadata is not present.

+

This indicates that text-synchronised pre-recorded audio narration (natural or synthesised voice) is included for substantially all textual matter, including all alternative descriptions, e.g. via a SMIL media overlay.

+
+ +
audio_content
+
+

If true it indicates that the accessMode="auditory" is present in the package document, otherwise, if false, it means that the metadata is not present.

+ +

This indicates that pre-recorded audio content is included as part of the work.

+
+ + +
+

4.4.2 Variables setup

+
    +
  1. LET package_document be the result of calling preprocessing given package_document_as_text.
  2. + +
  3. LET all_content_audio be the result of calling check for node on package_document, /package/metadata/meta[@property="schema:accessModeSufficient" and text()="auditory"].
  4. + +
  5. LET synchronised_pre_recorded_audio be the result of calling check for node on package_document, /package/metadata/meta[@property="schema:accessibilityFeature" and text()="sychronizedAudioText"].
  6. + +
  7. LET audio_content be the result of calling check for node on package_document, /package/metadata/meta[@property="schema:accessMode" and text()="auditory"].
  8. + +
+

4.4.3 Instructions

+
    +
  1. + IF all_content_audio: + THEN display "Audio only". +
  2. +
  3. + ELSE IF synchronised_pre_recorded_audio: + THEN display "Synchronized audio and text". +
  4. +
  5. + ELSE IF audio_content: + THEN display "Complementary audio and text". +
  6. + +
  7. + ELSE either omit this key informtion if metadata is missing or display "No information about pre-recorded audio". +
  8. +
+
+ + + +

4.6 Charts, diagrams, and formulas

+ +

This technique relates to Charts, diagrams, and formulas key information.

+ +

This algorithm takes the package_document_as_text argument: a UTF-8 string representing the Package document.

+

4.6.1 Understanding the variables

+
+
contains_charts_diagrams
+
+

If true it indicates that the accessibilityFeature="chartOnVisual" (charts encoded in visual form) is present in the package document, otherwise if false it means that the metadata is not present.

+

This means that there is a positive indication that the product has some information conveyed via some form of illustration, such as a graph, a chart, a diagram, a figure, etc).

+
+
long_text_descriptions
+
+

If true it indicates that the accessibilityFeature="longDescriptions" (Full alternative textual description) is present in the package document, otherwise if false it means that the metadata is not present.

+

This means that there is a positive indication that a full alternative textual description has been supplied for all of the graphs, charts, diagrams, or figures necessary to understand the content.

+
+
contains_chemical_formula
+
+

If true it indicates that the accessibilityFeature="chemOnVisual" (Chemical content) is present in the package document, otherwise if false it means that the metadata is not present.

+

This means that there is a positive indication that the publication contains chemical notations, formulae.

+
+
chemical_formula_as_chemml
+
+

If true it indicates that the accessibilityFeature="ChemML" (Accessible chemistry content as ChemML) is present in the package document, otherwise if false it means that the metadata is not present.

+

This means that there is a positive indication that the chemical formulae are presented using ChemML and works with compatible assistive technology.

+
+
contains_math_formula
+
+

If true it indicates that the accessibilityFeature="describedMath" (Mathematical content) is present in the package document, otherwise if false it means that the metadata is not present.

+

This means that there is a positive indication that the publication contains mathematical notation, equations, formulae.

+
+
math_formula_as_latex
+
+

If true it indicates that the accessibilityFeature="latex" (Accessible math content as LaTeX) is present in the package document, otherwise if false it means that the metadata is not present.

+

This means that there is a positive indication that the chemical formulae are presented using LaTeX and works with compatible assistive technology.

+
+
math_formula_as_mathml
+
+

If true it indicates that the accessibilityFeature="MathML" (Accessible math content as MathML) is present in the package document, otherwise if false it means that the metadata is not present.

+

This means that there is a positive indication that all mathematical content is presented using MathML and works with compatible assistive technology.

+
+
+

4.6.2 Variables setup

+
    +
  1. LET package_document be the result of calling preprocessing given package_document_as_text.
  2. + +
  3. LET contains_charts_diagrams be the result of calling check for node on package_document, /package/metadata/meta[@property="schema:accessibilityFeature" and text()="chartOnVisual"].
  4. + +
  5. LET long_text_descriptions be the result of calling check for node on package_document, /package/metadata/meta[@property="schema:accessibilityFeature" and text()="longDescriptions"].
  6. + +
  7. LET contains_chemical_formula be the result of calling check for node on package_document, /package/metadata/meta[@property="schema:accessibilityFeature" and text()="chemOnVisual"].
  8. + +
  9. LET chemical_formula_as_chemml be the result of calling check for node on package_document, /package/metadata/meta[@property="schema:accessibilityFeature" and text()="ChemML"].
  10. + + +
  11. LET contains_math_formula be the result of calling check for node on package_document, /package/metadata/meta[@property="schema:accessibilityFeature" and text()="describedMath"].
  12. + +
  13. LET math_formula_as_latex be the result of calling check for node on package_document, /package/metadata/meta[@property="schema:accessibilityFeature" and text()="latex"].
  14. + +
  15. LET math_formula_as_mathml be the result of calling check for node on package_document, /package/metadata/meta[@property="schema:accessibilityFeature" and text()="MathML"].
  16. +
+

4.6.3 Instructions

+
    +
  1. + IF (contains_charts_diagrams AND long_text_descriptions): + THEN display "Charts and diagrams have extended descriptions". +
  2. +
  3. + IF chemical_formula_as_chemml: + THEN display "Accessible chemistry content". +
  4. +
  5. + IF math_formula_as_latex OR math_formula_as_mathml: + THEN display "Accessible math content". +
  6. +
  7. + IF (contains_charts_diagrams OR contains_chemical_formula OR contains_math_formula) AND NOT (long_text_descriptions OR chemical_formula_as_chemml OR math_formula_as_latex OR math_formula_as_mathml): + THEN display "Accessibility of formulas, charts, and diagrams unknown". +
  8. +
+ +
+ +

4.7 Hazards

+ +

This technique relates to Hazards key information.

+

This algorithm takes the package_document_as_text argument: a UTF-8 string representing the Package document.

+ +

4.7.1 Understanding the variables

+
+
no_hazards_or_warnings_confirmed
+
+

If true it indicates that the accessibilityHazard="none" (no accessibility hazards) is present in the package document, otherwise if false it means that the metadata is not present.

+

This means there is a positive indication in the accessiblity metadata within the EPUB confirming there are no associated hazard warnings with this product.

+
+
flashing_hazard
+
+

If true it indicates that the accessibilityHazard="flashing" (WARNING - Flashing hazards) is present in the package document, otherwise if false it means that the metadata is not present.

+

This means that there is a positive indication in the accessiblity metadata within the EPUB confirming that the product has a flashing hazard which must be displayed.

+
+
no_flashing_hazards
+
+

If true it indicates that the accessibilityHazard="noFlashingHazard" (No flashing hazard warning necessary) is present in the package document, otherwise if false it means that the metadata is not present.

+

This means there is a positive indication in the accessiblity metadata within the EPUB confirming there are no flashing hazards associated with this product.

+
+
motion_simulation_hazard
+
+

If true it indicates that the accessibilityHazard="motionSimulation" (WARNING - Motion simulation hazard) is present in the package document, otherwise if false it means that the metadata is not present.

+

This means that there is a positive indication in the accessiblity metadata within the EPUB confirming that the product has a motion simulation hazard which must be displayed.

+
+
no_motion_hazards
+
+

If true it indicates that the accessibilityHazard="noMotionSimulationHazard" (No motion simulation hazard warning necessary) is present in the package document, otherwise if false it means that the metadata is not present.

This means there is a positive indication in the accessiblity metadata within the EPUB confirming there are no motion simulation hazards associated with this product.

+
+
sound_hazard
+
+

If true it indicates that the accessibilityHazard="Sound" (WARNING - Sound hazard) is present in the package document, otherwise if false it means that the metadata is not present.

+

This means that there is a positive indication in the accessiblity metadata within the EPUB confirming that the product has a sound hazard which must be displayed.

+
+
no_sound_hazards
+
+

If true it indicates that the accessibilityHazard="noSoundHazard" (No sound hazard warning necessary) is present in the package document, otherwise if false it means that the metadata is not present.

+

This means there is a positive indication in the accessiblity metadata within the EPUB confirming there are no sound hazards associated with this product.

+
+
unknown_if_contains_hazards
+
+

If true it indicates that the accessibilityHazard="unknown" (unknown hazards) is present in the package document, otherwise if false it means that the metadata is not present.

+

This means that the product has not been assessed for hazards and there is no information about potential hazards.

+
+ +
+ +

4.7.2 Variables setup

+
    +
  1. LET package_document be the result of calling preprocessing given package_document_as_text.
  2. + +
  3. LET no_hazards_or_warnings_confirmed be the result of calling check for node on package_document, /package/metadata/meta[@property="schema:accessibilityHazard" and text()="none"].
  4. + +
  5. LET flashing_hazard be the result of calling check for node on package_document, /package/metadata/meta[@property="schema:accessibilityHazard" and text()="flashing"].
  6. + + +
  7. LET no_flashing_hazards be the result of calling check for node on package_document, /package/metadata/meta[@property="schema:accessibilityHazard" and text()="noFlashingHazard"].
  8. + + +
  9. LET motion_simulation_hazard be the result of calling check for node on package_document, /package/metadata/meta[@property="schema:accessibilityHazard" and text()="motionSimulation"].
  10. + + +
  11. LET no_motion_hazards be the result of calling check for node on package_document, /package/metadata/meta[@property="schema:accessibilityHazard" and text()="noMotionSimulation"].
  12. + + +
  13. LET sound_hazard be the result of calling check for node on package_document, /package/metadata/meta[@property="schema:accessibilityHazard" and text()="sound"].
  14. + + + +
  15. LET no_sound_hazards be the result of calling check for node on package_document, /package/metadata/meta[@property="schema:accessibilityHazard" and text()="noSoundHazard"].
  16. + + +
  17. LET unknown_if_contains_hazards be the result of calling check for node on package_document, /package/metadata/meta[@property="schema:accessibilityHazard" and text()="unknown"].
  18. + +
+

4.7.3 Instructions

+
    +
  1. + IF no_hazards_or_warnings_confirmed OR (no_flashing_hazards AND no_motion_hazards AND no_sound_hazards): + THEN display "No hazards". +
  2. +
  3. + ELSE IF flashing_hazard OR motion_simulation_hazard OR sound_hazard: + THEN LET hazards be an empty array. +
      +
    1. + IF flashing_hazard: + THEN APPEND "flashing" to hazards. +
    2. +
    3. + IF motion_simulation_hazard: + THEN APPEND "motion" to hazards. +
    4. +
    5. + IF sound_hazard: + THEN APPEND "sound" to hazards. +
    6. +
    7. LET hazards_string be the result of: +
        +
      • calling join array to comma list given hazards
      • +
      • uppercasing the first character
      • +
      • concatenating " hazards" to the end of the string IF (length of hazards) > 1 ELSE concatenating " hazard" to the end of the string.
      • +
      +
    8. +
    9. display hazards_string.
    10. +
    +
  4. +
  5. + ELSE IF unknown_if_contains_hazards: + THEN display "The presence of hazards is unknown". +
  6. +
  7. + ELSE either omit this key informtion if metadata is missing or display "No information about possible hazards". + +
  8. +
+
+ + +

4.8 Accessibility summary

+ +

This technique relates to Accessibility summary key information.

+ +

This algorithm takes the package_document_as_text argument: a UTF-8 string representing the Package document.

+ +
Note

+ Being human-written, the accessibility summary will appear in the original language of the publication. Therefore it is necessary to take care of setting up the correct language tag information. +

+ +
Note

Accessibility summaries were necessary when no systems exposed computed accessibility metadata. With more systems now displaying this information, much of the accessibility summary may be redundant. Publishers should focus on adding information not provided within the computed metadata, such as specifying where in a video file a flashing hazard exists, or noting the reason why they failed to meet WCAG-AA due to color contrast issues in the Appendix.

+ +

4.8.1 Understanding the variables

+
+
accessibility_summary
+
+

If true it indicates that the accessibilitySummary is present in the package document, otherwise if false it means that the metadata is not present.

+

This means there is a human-written text containing a short explanatory summary of the accessibility of the product or the URL of a web page comprising such a summary. Summarizes the already existent information and may add information that the publisher could not express with the other codes.

+
+
lang_attribute_accessibility_summary
+
+

Returns the lang attribute of the node containing the accessibility_summary, or the lang attribute of the nearest anchestor.

+

This is the language code in which the text of the Accessibility summary was written.

+
+
language_of_text
+
+

Returns the value of nearest "language" (Language of content) if present in the package document, otherwise if false it means that the metadata is not present.

+

This indicates the main language of the content and therefore the most probable language of accessibility summary.

+
+
+

4.8.2 Variables setup

+
    +
  1. LET package_document be the result of calling preprocessing given package_document_as_text.
  2. + +
  3. LET accessibility_summary be the result of calling check for node on package_document, /package/metadata/meta[@property="schema:accessibilitySummary"].
  4. + +
  5. LET lang_attribute_accessibility_summary be the result of calling check for node on package_document, /package/metadata/meta[@property="schema:accessibilitySummary"]/(@lang|ancestor::*/@lang)[last()].
  6. + +
  7. LET language_of_text be the result of calling check for node on package_document, /package/metadata/dc:language[1]/text().
  8. + +
+

4.8.3 Instructions

+
    +
  1. + IF lang_attribute_accessibility_summary is NOT empty: + THEN LET language_accessibility_summary be the value of lang_attribute_accessibility_summary. +
  2. +
  3. + ELSE LET language_accessibility_summary be the value of language_of_text. +
  4. +
  5. + ELSE IF accessibility_summary is NOT empty: + THEN display the content of accessibility_summary with language_accessibility_summary as language.
  6. +
  7. + ELSE either omit this key informtion if metadata is missing or display "No accessibility summary". +
  8. +
+
+ + + + +

4.10 Additional accessibility information

+ +

This technique relates to Additional accessibility information key information.

+ +

This algorithm takes the package_document_as_text argument: a UTF-8 string representing the Package document.

+ +

4.10.1 Adaptation

+ + +
4.10.1.1 Understanding the variables
+
+
audio_descriptions
+
+

If true it indicates that the accessibilityFeature="audioDescriptions" (Audio Descriptions) is present in the package document, otherwise if false it means that the metadata is not present.

+

This means that there is an audio descriptions track available for video content.

+
+
braille
+
+

If true it indicates that the accessibilityFeature="braille" (Braille) is present in the package document, otherwise if false it means that the metadata is not present.

+

This means that there is braille available within the publication.

+
+
closed_captions
+
+

If true it indicates that the accessibilityFeature="closedCaptions" (Closed captions) is present in the package document, otherwise if false it means that the metadata is not present.

+

This means that the audio content of a video can be seen via closed captions that can be turned on or off by the viewer and which will be a separate file from the video itself.

+
+
open_captions
+
+

If true it indicates that the accessibilityFeature="openCaptions" (Open captions) is present in the package document, otherwise if false it means that the metadata is not present.

+

This means that the audio content of a video can be seen via open captions, which means they cannot be turned off and are always visible when the video plays.

+
+
tactile_graphic
+
+

If true it indicates that the accessibilityFeature="tactileGraphic" (tactile 2D graphic) is present in the package document, otherwise if false it means that the metadata is not present.

+

This means that there is tactile graphic(s) contained within this publication.

+
+
tactile_object
+
+

If true it indicates that the accessibilityFeature="tactileObject" (tactile 3D object) is present in the package document, otherwise if false it means that the metadata is not present.

+

This means that there is tactile 3D object(s) contained within this publication.

+
+
transcript
+
+

If true it indicates that the accessibilityFeature="transcript" (transcript) is present in the package document, otherwise if false it means that the metadata is not present.

+

This means that a transcript of the audio content of the product is supplied with it.

+
+
sign_language
+
+

If true it indicates that the accessibilityFeature="signLanguage" (Sign language interpretation) is present in the package document, otherwise if false it means that the metadata is not present.

+

This means that a full signing of audio content of the product is supplied with the video file.

+
+
+ +
4.10.1.2 Variables setup
+
    +
  1. LET package_document be the result of calling preprocessing given package_document_as_text.
  2. +
  3. LET audio_descriptions be the result of calling check for node on package_document, /package/metadata/meta[@property="schema:accessibilityFeature" and text()="audioDescription"].
  4. +
  5. LET braille be the result of calling check for node on package_document, /package/metadata/meta[@property="schema:accessibilityFeature" and text()="braille"].
  6. +
  7. LET closed_captions be the result of calling check for node on package_document, /package/metadata/meta[@property="schema:accessibilityFeature" and text()="closedCaptions"].
  8. +
  9. LET open_captions be the result of calling check for node on package_document, /package/metadata/meta[@property="schema:accessibilityFeature" and text()="openCaptions"].
  10. +
  11. LET tactile_graphic be the result of calling check for node on package_document, /package/metadata/meta[@property="schema:accessibilityFeature" and text()="tactileGraphic"].
  12. +
  13. LET tactile_object be the result of calling check for node on package_document, /package/metadata/meta[@property="schema:accessibilityFeature" and text()="tactileObject"].
  14. +
  15. LET transcript be the result of calling check for node on package_document, /package/metadata/meta[@property="schema:accessibilityFeature" and text()="transcript"].
  16. +
  17. LET sign_language be the result of calling check for node on package_document, /package/metadata/meta[@property="schema:accessibilityFeature" and text()="signLanguage"].
  18. +
+ +
4.10.1.3 Instructions
+
    +
  1. LET adaptation be an empty array.
  2. +
  3. + IF audio_descriptions: + THEN APPEND "audio descriptions" to adaptation. +
  4. +
  5. + IF braille: + THEN APPEND "braille" to adaptation. +
  6. +
  7. + IF closed_captions: + THEN APPEND "closed captions" to adaptation. +
  8. +
  9. + IF open_captions: + THEN APPEND "open captions" to adaptation. +
  10. +
  11. + IF tactile_graphic: + THEN APPEND "tactile graphic" to adaptation. +
  12. +
  13. + IF tactile_object: + THEN APPEND "tactile 3D object" to adaptation. +
  14. +
  15. + IF transcript: + THEN APPEND "transcript" to adaptation. +
  16. +
  17. + IF sign_language: + THEN APPEND "sign language" to adaptation. +
  18. +
  19. IF adaptation is NOT empty: +
      +
    1. LET adaptation_string be the result of: + +
    2. +
    3. display adaptation_string.
    4. +
    +
  20. +
+
+ +

4.10.2 Clarity

+ + +
4.10.2.1 Understanding the variables
+
+ +
aria
+
+

If true it indicates that the accessibilityFeature="aria" (ARIA roles - semantic markup) is present in the package document, otherwise if false it means that the metadata is not present.

+

This means that the use of AIRA, including DPUB ARIA is used to improve the semantic markup of the publication.

+
+
full_ruby_annotations
+
+

If true it indicates that the accessibilityFeature="fullRubyAnnotations" (Full Ruby Annotations) is present in the package document, otherwise if false it means that the metadata is not present.

+

This means that ruby annotations are attached to every CJK ideographic character in the content. Ruby annotations are used as pronunciation guides for the logographic characters for languages like Chinese or Japanese. They make difficult CJK ideographic characters more accessible.

+
+ +
text_to_speech_hinting
+
+

If true it indicates that the accessibilityFeature="ttsMarkup" (Text-to-speech markup provided) is present in the package document, otherwise if false it means that the metadata is not present.

+

This means that text-to-speech has been optimised through provision of PLS lexicons, SSML or CSS Speech synthesis hints or other speech synthesis markup languages or hinting.

+
+
high_contrast_between_foreground_and_background_audio
+
+

If true it indicates that the accessibilityFeature="highContrastAudio" (Use of high contrast between foreground and background audio) is present in the package document, otherwise if false it means that the metadata is not present.

+

This means that foreground audio content (eg voice) is presented with no or low background noise (eg ambient sounds, music), at least 20dB below the level of the foreground, or background noise can be switched off (eg via an alternative audio track). Brief and occasional sound effects may be as loud as foreground voice so long as they are isolated from the foreground.

+
+
high_contrast_between_text_and_background
+
+

If true it indicates that the accessibilityFeature="highContrastDisplay" (Use of high contrast between text and background color) is present in the package document, otherwise if false it means that the metadata is not present.

+

This means that body text is presented with a contrast ratio of at least 4.5:1 (or 3:1 for large/heading text).

+
+
large_print
+
+

If true it indicates that the accessibilityFeature="largePrint" (Large Print) is present in the package document, otherwise if false it means that the metadata is not present.

+

This means that the e-publication has been formatted to meet large print guidelines.

+
+
page_break_markers
+
+

If true it indicates that the accessibilityFeature="pageBreakMarkers" (Print-equivalent page numbering) is present in the package document, otherwise if false it means that the metadata is not present.

+

This means that the publication contains references to the page numbering.

+
+
ruby_annotations
+
+

If true it indicates that the accessibilityFeature="rubyAnnotations" (Ruby Annotations) is present in the package document, otherwise if false it means that the metadata is not present.

+

This means that ruby annotations are attached to some but not all CJK ideographic characters in the content.

+
+ +
+ +
4.10.2.2 Variables setup
+
    +
  1. LET package_document be the result of calling preprocessing given package_document_as_text.
  2. +
  3. LET aria be the result of calling check for node on package_document, /package/metadata/meta[@property="schema:accessibilityFeature" and text()="aria"].
  4. +
  5. LET full_ruby_annotations be the result of calling check for node on package_document, /package/metadata/meta[@property="schema:accessibilityFeature" and text()="fullRubyAnnotations"].
  6. +
  7. LET text_to_speech_hinting be the result of calling check for node on package_document, /package/metadata/meta[@property="schema:accessibilityFeature" and text()="ttsMarkup"].
  8. +
  9. LET high_contrast_between_foreground_and_background_audio be the result of calling check for node on package_document, /package/metadata/meta[@property="schema:accessibilityFeature" and text()="highContrastAudio"].
  10. +
  11. LET high_contrast_between_text_and_background be the result of calling check for node on package_document, /package/metadata/meta[@property="schema:accessibilityFeature" and text()="highContrastDisplay"].
  12. +
  13. LET large_print be the result of calling check for node on package_document, /package/metadata/meta[@property="schema:accessibilityFeature" and text()="largePrint"].
  14. +
  15. LET page_break_markers be the result of calling check for node on package_document, /package/metadata/meta[@property="schema:accessibilityFeature" and text()="pageBreakMarkers"].
  16. +
  17. LET ruby_annotations be the result of calling check for node on package_document, /package/metadata/meta[@property="schema:accessibilityFeature" and text()="rubyAnnotations"].
  18. +
+ +
4.10.2.3 Instructions
+
    +
  1. LET clarity be an empty array.
  2. +
  3. + IF aria: + THEN APPEND "aria" to clarity. +
  4. +
  5. + IF full_ruby_annotations: + THEN APPEND "full ruby annotations" to clarity. +
  6. +
  7. + IF text_to_speech_hinting: + THEN APPEND "text-to-speech hinting provided" to clarity. +
  8. +
  9. + IF high_contrast_between_foreground_and_background_audio: + THEN APPEND "high contrast between foreground and background audio" to clarity. +
  10. +
  11. + IF high_contrast_between_text_and_background: + THEN APPEND "high contrast between text and background" to clarity. +
  12. +
  13. + IF large_print: + THEN APPEND "large print" to clarity. +
  14. +
  15. + IF page_break_markers: + THEN APPEND "page breaks" to clarity. +
  16. +
  17. + IF ruby_annotations: + THEN APPEND "ruby annotations" to clarity. +
  18. + + +
  19. IF clarity is NOT empty: +
      +
    1. LET clarity_string be the result of: + +
    2. +
    3. display clarity_string.
    4. +
    +
  20. +
+
+ + +
+ +
+ +

A. Acknowledgements

This section is non-normative.

+ +

A.1 Contributors

+ + +
+

A.2 Reviewers

+ + +
+
+ +

B. References

B.1 Informative references

+ +
[EPUB-33]
+ EPUB 3.3. Ivan Herman; Matt Garrish; Dave Cramer. W3C. 25 May 2023. W3C Recommendation. URL: https://www.w3.org/TR/epub-33/ +
[epub-a11y-11]
+ EPUB Accessibility 1.1. George Kerscher; Matt Garrish; Charles LaPierre; Avneesh Singh; Gregorio Pellegrino. W3C. 25 May 2023. W3C Recommendation. URL: https://www.w3.org/TR/epub-a11y-11/ +
+
\ No newline at end of file diff --git a/UX-Guide-Metadata/2.0/techniques/onix-metadata/index.html b/UX-Guide-Metadata/2.0/techniques/onix-metadata/index.html index eabff25d..97b5755e 100644 --- a/UX-Guide-Metadata/2.0/techniques/onix-metadata/index.html +++ b/UX-Guide-Metadata/2.0/techniques/onix-metadata/index.html @@ -1,3 +1,1627 @@ - - - \ No newline at end of file + + + + + + + + + +Display Techniques for ONIX Accessibility Metadata 2.0 + + + + + + + + + + + + +
+ +

Display Techniques for ONIX Accessibility Metadata 2.0

+

+ Draft Community Group Report + +

+
+
This version:
+ https://w3c.github.io/publ-a11y/UX-Guide-Metadata/2.0/techniques/onix-metadata/onix-metadata-draft-note-20240830.html +
+
Latest published version:
+ https://www.w3.org/publishing/a11y/UX-Guide-metadata/techniques/onix-metadata/ +
+
Latest editor's draft:
https://w3c.github.io/publ-a11y/UX-Guide-Metadata/draft/techniques/onix-metadata/
+ + + + +
Editors:
+ Gregorio Pellegrino (Fondazione LIA) +
+ Gautier Chomel (EDRLab ) +
+ Christopher Saynor (EDItEUR) +
+ + +
Feedback:
+ GitHub w3c/publ-a11y + (pull requests, + new issue, + open issues) +
+ +
+ + +
+
+

Abstract

+

Status of This Document

+ This specification was published by the + Publishing Community Group. It is not a W3C Standard nor is it + on the W3C Standards Track. + + Please note that under the + W3C Community Contributor License Agreement (CLA) + there is a limited opt-out and other conditions apply. + + Learn more about + W3C Community and Business Groups. +

+ GitHub Issues are preferred for + discussion of this specification. + + +

+

1. ONIX Metadata

+ + +
Note

+ Techniques for displaying accessibility metadata in other metadata formats can be found in the Display Techniques for Displaying Accessibility Metadata +

+ +
Note

+ This document provides techniques for meeting the guidelines of the User Experience Guide for Displaying Accessibility Metadata. It provides practical examples for extracting information from the ONIX metadata for showing it to the end users. +

+ +
Note

+ ONIX messages describe products for the global book supply chain and will be sent from publisher or creator of the EPUB or digital books with full audio to those who will make the products available for sale, lending or subscription. + These platforms may not yet have the actual files, as they may not yet be ready, or may only choose to list them for sale if they have certain accessibility features. + ONIX also only describes a product, it cannot describe the features of the reading systems on which a product may be accessed. + It is important to use ONIX metadata as a complement to the accessibility data embedded within the publication itself, if describing accessible books, books with full audio and related products for the global book supply chain. + An ONIX file can be used to display accessibility information in advance of publication or when you do not have access to the metadata in the digital file itself. + Some accessibility information may only be available when you have access to the file itself. + If you are unfamiliar with ONIX, then there is more documentation available from EDItEUR.org. +

+ +
Note

+ It is important to note that ONIX 3.0 includes a number of new accessibility metadata codes, some of which may not be expressible in earlier versions of ONIX. +

+ +

1.1 ONIX record examples

+ +

1.1.1 ONIX record describing an EPUB

+ +

Here is an example of an ONIX record (version 3.0), which will be used as a reference point for the + following examples on EPUB accessibility metadata: the results of the XPath shown are based on + this example.

+ +
+

1.1.2 ONIX record describing an audiobook

+ +

Here is an example of an ONIX record (version 3.0) for describing an audiobook, which will be used as a reference point for the + some of the following examples on EPUB accessibility metadata: the results of the XPath shown are based on + this example.

+ +
+
+
+

2. Conventions for implementations

+ +

The code conventions used in the provided code snippet follow a structure commonly found in programming languages like Python, Java, or C++. Here's an explanation of the conventions:

+
+
Conditionals and Control Flow:
+
IF, ELSE IF, and ELSE (in bold and capital letters) statements are used to define different conditions and the corresponding actions to be taken.
+
Operators:
+
Written operators (is present) are used to check if a particular code or codelist is present (or not) in the metadata record.
+
Logical operators:
+
Logical operators (AND, OR, NOT, in bold and capital letters) are used to combine conditions.
+
String Literals:
+
String literals are used to represent the text that should be displayed when a particular condition is met.
+
Variable Naming:
+
The terms like "codelist" and "code" are used in a way that suggests a variable or data structure representing a code or codelist to be accessed directly after the ingestion of the metadata record.
+
Indentation:
+
The code uses consistent indentation to define blocks of code within conditional statements. This is crucial for readability and maintaining a clear structure.
+
Readability:
+
The code is written in a way that is intended to be easily readable and understandable even by non-coders.
+
+
+

3. Common Functions

+ +

In this section we define the functions common to all techniques, which are called by them during execution.

+

3.1 Preprocessing

+ +

Before working directly with the metadata we must read the ONIX record. This is a common starting point for all techniques that allows us to query the record directly.

+
Note
+

This algorithm takes the onix_record_as_text argument: a UTF-8 string representing the ONIX record.

+

To generate the internal representation, run the following steps:

+
    +
  1. LET record be textual representation of the ONIX record for the publication given onix_record_as_text.
  2. +
  3. LET onix be the DOM tree that results from parsing record using an XML DOM parser.
  4. +
  5. return onix.
  6. +
+
Note
+
+

3.2 Check for Node

+ +

Many of the techniques rely on checking for the presence or absence of metadata in the ONIX record.

+

This algorithm takes:

+ +

To check for node, run the following steps:

+
    +
  1. + IF onix contains path: + THEN return True. +
  2. +
  3. ELSE return False.
  4. +
+
+

3.3 Join array to comma list

+ +

This function serves to concatenate an array of strings, separating each element with a comma, with the last element separated by an ", and" (this string is localizable).

+

For example if the input array has elements ["one", "two", "three"], then the output is going to be "one, two, and three".

+

This algorithm takes the string_array argument: the list of string to join.

+

To join the array, run the following steps:

+
    +
  1. LET output_string be the result of: +
      +
    • calling join on string_array with the separator ", "
    • +
    • replacing the last occurrence of ", " with ", and ".
    • +
    +
  2. +
  3. return output_string.
  4. +
+
+
+

4. Techniques

+ + +

4.1 Visual adjustments

+ +

This technique relates to Visual adjustments key information.

+

This algorithm takes the onix_record_as_text argument: a UTF-8 string representing the ONIX record.

+

4.1.1 Understanding the variables

+
+
all_textual_content_can_be_modified
+
+

If true it indicates that the code 36 of codelist 196 (All textual content can be modified) is present in the ONIX record, otherwise if false it means that the metadata is not present.

+

All textual content can be modified means that the digital publication does not restrict the ability of users to modify and reflow the display of any textual content to the full extent allowed by the reading system (i.e. to change the text size or typeface, line height and word spacing, colors).

+
+
is_fixed_layout
+
+

If true it indicates that the code E201 of codelist 175 (Fixed format) is present in the ONIX record, otherwise if false it means that the metadata is not present.

+

Fixed format means that digital publication is in fixed format (e.g. EPUB Fixed Layout).

+
+
+

4.1.2 Variables setup

+
    +
  1. LET onix be the result of calling preprocessing given onix_record_as_text.
  2. +
  3. LET all_textual_content_can_be_modified be the result of calling check for node on onix, /ONIXMessage/Product/DescriptiveDetail/ProductFormFeature[ProductFormFeatureType = "09" and ProductFormFeatureValue = "36"].
  4. +
  5. LET is_fixed_layout be the result of calling check for node on onix, /ONIXMessage/Product/DescriptiveDetail/ProductFormDetail[text() = "E201"] AND NOT the result of calling check for node on onix, /ONIXMessage/Product/DescriptiveDetail/ProductFormDetail[text() = "E200"].
  6. +
+

4.1.3 Instructions

+
    +
  1. + IF all_textual_content_can_be_modified: + THEN display "Appearance can be modified". +
  2. +
  3. + ELSE IF is_fixed_layout: + THEN display "Appearance cannot be modified". +
  4. +
  5. ELSE display "Appearance modifiability not known".
  6. +
+
+ +

4.2 Supports nonvisual reading

+ +

This technique relates to Supports nonvisual reading key information.

+

This algorithm takes the onix_record_as_text argument: a UTF-8 string representing the ONIX record.

+

4.2.1 Understanding the variables

+
+
all_necessary_content_textual
+
+

If true it indicates that the code 52 of codelist 196 (All non-decorative content supports reading without sight) is present in the ONIX record, otherwise if false it means that the metadata is not present.

+

All non-decorative content supports reading without sight means that all contents of the digital publication necessary to use and understanding, including text, images (via their alternative descriptions), audio and video material (via their transcripts, descriptions, captions or subtitles) are fully accessible via suitable reading devices, for example text-to-speech screen readers or tactile reading devices (‘Braille displays’), and nothing in the digital publication prevents or blocks the use of alternative reading modes. The entire publication can be navigated and ‘read’ using only text rendered via sound or touch, and does not require visual perception.

+
+
real_text
+
+

If true it indicates that the code 10 of codelist 81 (Text) is present in the ONIX record, otherwise if false it means that the metadata is not present.

+

Text means that digital publication contains "real" text (user-selectable) as its main content (or as secondary content).

+
+
non_textual_content_images
+
+

If true it indicates that at least one of the following is present in the ONIX record:

+ +

This means that the content contains images of any type.

+
+
textual_alternative_images
+
+

If true it indicates that at least one of the following is present in the ONIX record:

+ +

This means that there are textual alternatives for images.

+
+
+

4.2.2 Variables setup

+
    +
  1. LET onix be the result of calling preprocessing given onix_record_as_text.
  2. +
  3. LET all_necessary_content_textual be the result of calling check for node on onix, /ONIXMessage/Product/DescriptiveDetail/ProductFormFeature[ProductFormFeatureType = "09" and ProductFormFeatureValue = "52"].
  4. +
  5. LET real_text be the result of calling check for node on onix, /ONIXMessage/Product/DescriptiveDetail[PrimaryContentType = "10" or ProductContentType = "10"].
  6. +
  7. LET non_textual_content_images be the result of calling check for node on onix, /ONIXMessage/Product/DescriptiveDetail[PrimaryContentType = "07" or PrimaryContentType = "18" or PrimaryContentType = "19" or PrimaryContentType = "12" or PrimaryContentType = "49" or PrimaryContentType = "20" or ProductContentType = "07" or ProductContentType = "18" or ProductContentType = "19" or ProductContentType = "12" or ProductContentType = "49" or ProductContentType = "20"].
  8. +
  9. LET textual_alternative_images be the result of calling check for node on onix, /ONIXMessage/Product/DescriptiveDetail/ProductFormFeature[ProductFormFeatureType = "09" and (ProductFormFeatureValue = "14" or ProductFormFeatureValue = "15" or ProductFormFeatureValue = "16")].
  10. +
+

4.2.3 Instructions

+
    +
  1. + IF all_necessary_content_textual: + THEN display "Readable in read aloud and braille". +
  2. +
  3. + ELSE IF real_text AND non_textual_content_images AND NOT textual_alternative_images: + THEN display "Not fully readable in read aloud and braille". +
  4. +
  5. ELSE display "May not be fully readable in read aloud and braille".
  6. +
+
+ +

4.3 Conformance

+ +

This technique relates to Conformance key information.

+

This algorithm takes the onix_record_as_text argument: a UTF-8 string representing the ONIX record.

+

4.3.1 Understanding the variables

+
+
epub_accessibility_10
+
+

If true it indicates that either the code 02 of codelist 196 (EPUB Accessibility Specification 1.0 A) or the code 03 of codelist 196 (EPUB Accessibility Specification 1.0 AA) are present in the ONIX record, otherwise if false it means that the metadata is not present.

+

This means that the publication conforms with either the requirements of EPUB Accessibility Spec 1.0, at level A or level AA.

+
+
epub_accessibility_11
+
+

If true it indicates that the code 04 of codelist 196 (EPUB Accessibility Specification 1.1) is present in the ONIX record, otherwise if false it means that the metadata is not present.

+

This means that the publication conforms with the requirements of EPUB Accessibility Spec 1.1.

+
+
wcag_20
+
+

If true it indicates that the code 80 of codelist 196 (WCAG v2.0) or the code 02 of codelist 196 (EPUB Accessibility Specification 1.0 A) or the code 03 of codelist 196 (EPUB Accessibility Specification 1.0 AA) are present in the ONIX record, otherwise if false it means that the metadata is not present.

+

This means that the publication conforms with the requirements of WCAG version 2.0 or with the requirements of EPUB Accessibility Spec 1.0 (at level A or level AA). This is because being compliant with EPUB Accessibility 1.0 specification means at least being compliant with WCAG 2.0 specification.

+
+
wcag_21
+
+

If true it indicates that the code 81 of codelist 196 (WCAG v2.1) is present in the ONIX record, otherwise if false it means that the metadata is not present.

+

This means that the publication conforms with the requirements of WCAG version 2.1.

+
+
wcag_22
+
+

If true it indicates that the code 82 of codelist 196 (WCAG v2.2) is present in the ONIX record, otherwise if false it means that the metadata is not present.

+

This means that the publication conforms with the requirements of WCAG version 2.2.

+
+
level_a
+
+

If true it indicates that the code 84 of codelist 196 (WCAG level A) or the code 02 of codelist 196 (EPUB Accessibility Specification 1.0 A) are present in the ONIX record, otherwise if false it means that the metadata is not present.

+

This means that the publication conforms with the requirements of WCAG level A or with the requirements of EPUB Accessibility Spec 1.0 level A.

+
+
level_aa
+
+

If true it indicates that the code 85 of codelist 196 (WCAG level AA) or the code 03 of codelist 196 (EPUB Accessibility Specification 1.0 AA) are present in the ONIX record, otherwise if false it means that the metadata is not present.

+

This means that the publication conforms with the requirements of WCAG level AA or with the requirements of EPUB Accessibility Spec 1.0 level AA.

+
+
level_aaa
+
+

If true it indicates that the code 86 of codelist 196 (WCAG level AAA) is present in the ONIX record, otherwise if false it means that the metadata is not present.

+

This means that the publication conforms with the requirements of WCAG level AAA.

+
+
certifier
+
+

Returns the description of code 90 of codelist 196 (Compliance certification by (name)) if present in the ONIX record, otherwise if false it means that the metadata is not present.

+

This means that the name of the organization responsible for compliance testing and certification of the product is present.

+
+
certifier_credentials
+
+

Returns the description of code 93 of codelist 196 (Compliance certification by (URL)) if present in the ONIX record, otherwise if false it means that the metadata is not present.

+

This means that the the URL of a web page belonging to an organization responsible for compliance testing and certification of the product is present – typically a ‘home page’ or a page describing the certification scheme itself.

+
+
certification_date
+
+

Returns the description of code 91 of codelist 196 (Latest accessibility assessment date) if present in the ONIX record, otherwise if false it means that the metadata is not present.

+

This means that the date of the latest assessment or re-assessment of the accessibility of the product is present.

+
+
certifier_report
+
+

Returns the description of code 94 of codelist 196 (Compliance web page for detailed accessibility information) if present in the ONIX record, otherwise if false it means that the metadata is not present.

+

This means that is present the URL of a compliance web page for detailed accessibility information. The web page should be maintained by an independent compliance scheme or testing organization. Note the web page may include information about specific national requirements or voluntary conformance reports.

+
+
+ +

4.3.2 Variables setup

+
    +
  1. LET onix be the result of calling preprocessing given onix_record_as_text.
  2. +
  3. LET epub_accessibility_10 be the result of calling check for node on onix, /ONIXMessage/Product/DescriptiveDetail/ProductFormFeature[ProductFormFeatureType = "09" and ProductFormFeatureValue = "02"] OR calling check for node on onix, /ONIXMessage/Product/DescriptiveDetail/ProductFormFeature[ProductFormFeatureType = "09" and ProductFormFeatureValue = "03"].
  4. +
  5. LET epub_accessibility_11 be the result of calling check for node on onix, /ONIXMessage/Product/DescriptiveDetail/ProductFormFeature[ProductFormFeatureType = "09" and ProductFormFeatureValue = "04"].
  6. +
  7. LET wcag_20 be the result of calling check for node on onix, /ONIXMessage/Product/DescriptiveDetail/ProductFormFeature[ProductFormFeatureType = "09" and ProductFormFeatureValue = "80"] OR calling check for node on onix, /ONIXMessage/Product/DescriptiveDetail/ProductFormFeature[ProductFormFeatureType = "09" and ProductFormFeatureValue = "02"] OR calling check for node on onix, /ONIXMessage/Product/DescriptiveDetail/ProductFormFeature[ProductFormFeatureType = "09" and ProductFormFeatureValue = "03"].
  8. +
  9. LET wcag_21 be the result of calling check for node on onix, /ONIXMessage/Product/DescriptiveDetail/ProductFormFeature[ProductFormFeatureType = "09" and ProductFormFeatureValue = "81"].
  10. +
  11. LET wcag_22 be the result of calling check for node on onix, /ONIXMessage/Product/DescriptiveDetail/ProductFormFeature[ProductFormFeatureType = "09" and ProductFormFeatureValue = "82"].
  12. +
  13. LET level_a be the result of calling check for node on onix, /ONIXMessage/Product/DescriptiveDetail/ProductFormFeature[ProductFormFeatureType = "09" and ProductFormFeatureValue = "84"] OR calling check for node on onix, /ONIXMessage/Product/DescriptiveDetail/ProductFormFeature[ProductFormFeatureType = "09" and ProductFormFeatureValue = "02"].
  14. +
  15. LET level_aa be the result of calling check for node on onix, /ONIXMessage/Product/DescriptiveDetail/ProductFormFeature[ProductFormFeatureType = "09" and ProductFormFeatureValue = "85"] OR calling check for node on onix, /ONIXMessage/Product/DescriptiveDetail/ProductFormFeature[ProductFormFeatureType = "09" and ProductFormFeatureValue = "03"].
  16. +
  17. LET level_aaa be the result of calling check for node on onix, /ONIXMessage/Product/DescriptiveDetail/ProductFormFeature[ProductFormFeatureType = "09" and ProductFormFeatureValue = "86"].
  18. +
  19. LET certifier be the value of the node extracted from onix, using the xpath /ONIXMessage/Product/DescriptiveDetail/ProductFormFeature[ProductFormFeatureType = "09" and ProductFormFeatureValue = "90"]/ProductFormFeatureDescription.
  20. +
  21. LET certifier_credentials be the value of the node extracted from onix, using the xpath /ONIXMessage/Product/DescriptiveDetail/ProductFormFeature[ProductFormFeatureType = "09" and ProductFormFeatureValue = "93"]/ProductFormFeatureDescription.
  22. +
  23. LET certification_date be the value of the node extracted from onix, using the xpath /ONIXMessage/Product/DescriptiveDetail/ProductFormFeature[ProductFormFeatureType = "09" and ProductFormFeatureValue = "91"]/ProductFormFeatureDescription.
  24. +
  25. LET certifier_report be the value of the node extracted from onix, using the xpath /ONIXMessage/Product/DescriptiveDetail/ProductFormFeature[ProductFormFeatureType = "09" and ProductFormFeatureValue = "94"]/ProductFormFeatureDescription.
  26. +
+ +

4.3.3 Instructions

+
    +
  1. + IF level_aaa: + THEN display "This publication exceeds accepted accessibility standards". +
  2. +
  3. + ELSE IF level_aa: + THEN display "This publication meets accepted accessibility standards". +
  4. +
  5. + ELSE IF level_a: + THEN display "This publication meets minimum accessibility standards". +
  6. +
  7. + ELSE: + THEN display "The publication does not include a conformance statement". +
  8. +
  9. + IF certifier is NOT empty: + THEN +
      +
    • display "This publication is certified by "
    • +
    • display certifier.
    • +
    +
  10. +
  11. + IF certifier_credentials is NOT empty: + THEN +
      +
    • display "The certifier's credential is "
    • +
    • display certifier_credentials as link IF certifier_credentials is an URL.
    • +
    +
  12. +
  13. + display "Detailed Conformance Information" as heading. +
  14. +
  15. + IF epub_accessibility_10 OR epub_accessibility_11 OR wcag_20 OR wcag_21 OR wcag_22 OR level_aaa OR level_aa OR level_a: + THEN display "This publication claims to meet ". +
  16. +
  17. + IF epub_accessibility_10: + THEN display " EPUB Accessibility 1.0 ". +
  18. +
  19. + ELSE IF epub_accessibility_11: + THEN display " EPUB Accessibility 1.1 ". +
  20. +
  21. + IF wcag_22: + THEN display " WCAG 2.2 ". +
  22. +
  23. + ELSE IF wcag_21: + THEN display " WCAG 2.1 ". +
  24. +
  25. + ELSE IF wcag_20: + THEN display " WCAG 2.0 ". +
  26. +
  27. + IF level_aaa: + THEN display " Level AAA". +
  28. +
  29. + ELSE IF level_aa: + THEN display " Level AA". +
  30. +
  31. + ELSE IF level_a: + THEN display " Level A". +
  32. +
  33. + IF certification_date OR certifier OR certifier_credentials: + THEN display "The publication was certified ". +
  34. +
  35. + IF certification_date: + THEN +
      +
    • display " on "
    • +
    • display certification_date.
    • +
    +
  36. +
  37. + IF certifier: + THEN +
      +
    • display " by "
    • +
    • display certifier.
    • +
    +
  38. +
  39. + IF certifier_credentials: + THEN +
      +
    • display " with a credential of "
    • +
    • display certifier_credentials as link IF certifier_credentials is an URL.
    • +
    +
  40. +
  41. + IF certifier_report: + THEN +
      +
    • display "For more information refer to the certifier's report."
    • +
    • with certifier_report as link.
    • +
    +
  42. +
+ +
+ +

4.4 Pre-recorded audio

+ +

This technique relates to Pre-recorded audio key information.

+

This algorithm takes the onix_record_as_text argument: a UTF-8 string representing the ONIX record.

+

4.4.1 Understanding the variables

+
+
audiobook
+
+

If true it indicates that the code 01 of codelist 81 (Audiobook) is present in the ONIX record, otherwise if false it means that the metadata is not present.

+

This means that the primary content is an Audio recording of a reading of a book or other text.

+
+
all_content_audio
+
+

If true it indicates that the code 39 of codelist 196 (Supplementary material to an audiobook is accessible) is present in the ONIX record, otherwise if false it means that the metadata is not present.

+

This means that all supplementary visual or textual material necessary for understanding of an audiobook, is available as pre-recorded audio, or has full alternative text that can be read via text-to- speech. Only for use in ONIX 3.0 or later.

+
+
all_content_pre_recorded
+
+

If true it indicates that the code 51 of codelist 196 (All non-decorative content supports reading via pre-recorded audio) is present in the ONIX record, otherwise if false it means that the metadata is not present.

+

This means that all contents of the digital publication necessary to use and understanding, including any text, images (via alternative descriptions), video (via audio description) is fully accessible via suitable audio reproduction. The entire publication can be navigated and ‘read’ using only pre-recorded sound, and does not require visual or tactile perception.

+
+
synchronised_pre_recorded_audio
+
+

If true it indicates that one of the following codes is present in the ONIX record:

+ +

Otherwise, if false, it means that none of the above metadata is present.

+

This indicates that text-synchronised pre-recorded audio narration (natural or synthesised voice) is included for substantially all textual matter, including all alternative descriptions, e.g. via a SMIL media overlay.

+
+
non_textual_content_audio
+
+

If true it indicates that one of the following codes is present in the ONIX record:

+ +

Otherwise, if false, it means that none of the above metadata is present.

+

This indicates that pre-recorded audio content is included as part of the work. It can be Audio recording of a reading, performance or dramatization of part of the work or additional pre-recorded audio of any supplementary material such as full or partial reading, lecture, performance, dramatization, interview, background documentary or other audio content not included in the primary or unenhanced version

+
+
non_textual_content_audio_in_video
+
+

If true it indicates that one of the following codes is present in the ONIX record:

+ +

Otherwise, if false, it means that none of the above metadata is present.

+

This indicates that pre-recorded video including audio content is included as part of the work. It can be video recording of a reading, performance of part of the work or additional pre-recorded video of any supplementary material such as full or partial reading, lecture, performance, dramatization, interview, background documentary or other video containing audio content.

+
+
+

4.4.2 Variables setup

+
    +
  1. LET onix be the result of calling preprocessing given onix_record_as_text.
  2. +
  3. LET audiobook be the result of calling check for node on onix, /ONIXMessage/Product/DescriptiveDetail/DescriptiveDetail[PrimaryContentType = "81" or ContentType = "81"] .
  4. +
  5. LET all_content_audio be the result of calling check for node on onix, /ONIXMessage/Product/DescriptiveDetail/ProductFormFeature[ProductFormFeatureType = "09" and ProductFormFeatureValue = "39"].
  6. +
  7. LET all_content_pre_recorded be the result of calling check for node on onix, /ONIXMessage/Product/DescriptiveDetail/ProductFormFeature[ProductFormFeatureType = "09" and ProductFormFeatureValue = "51"].
  8. +
  9. LET synchronised_pre_recorded_audio be the result of calling check for node on onix, /ONIXMessage/Product/DescriptiveDetail/ProductFormFeature[ProductFormFeatureType = "09" and ProductFormFeatureValue = "20"] + AND calling check for node on onix, /ONIXMessage/Product/DescriptiveDetail/ProductFormDetail[text() = "A305"]. +
  10. +
  11. LET non_textual_content_audio be the result of calling check for node on onix, /ONIXMessage/Product/DescriptiveDetail/DescriptiveDetail[ContentType = "21" or ContentType = "22"] . +
  12. +
  13. LET non_textual_content_audio_in_video be the result of calling check for node on onix, /ONIXMessage/Product/DescriptiveDetail/DescriptiveDetail[ContentType = "06" or ContentType = "25" or ContentType = "26" or ContentType = "27" or ContentType = "28" or ContentType = "29" or ContentType = "30"] . +
  14. +
+

4.4.3 Instructions

+
    +
  1. + IF all_content_audio AND NOT synchronised_pre_recorded_audio: + THEN display "Audio only". +
  2. +
  3. + ELSE IF audiobook OR non_textual_content_audio OR non_textual_content_audio_in_video AND NOT all_content_pre_recorded: + THEN display "Complementary audio and text". +
  4. +
  5. + ELSE IF all_content_pre_recorded AND synchronised_pre_recorded_audio: + THEN display "Synchronized audio and text". +
  6. +
  7. + ELSE display "No information about pre-recorded audio". +
    Note

    This key information can be hidden if metadata is missing.

    +
  8. +
+
+ + + +

4.6 Charts, diagrams, and formulas

+ +

This technique relates to Charts, diagrams, and formulas key information.

+

This algorithm takes the onix_record_as_text argument: a UTF-8 string representing the ONIX record.

+

4.6.1 Understanding the variables

+
+
contains_charts_diagrams
+
+

If true it indicates that the code 19 of codelist 81 (Figures, diagrams, charts, graphs) is present in the ONIX record, otherwise if false it means that the metadata is not present.

+

This means that there is a positive indication that the product has some information conveyed via some form of illustration, such as a graph, a chart, a diagram, a figure, etc).

+
+
charts_diagrams_as_non_graphical_data
+
+

If true it indicates that the code 16 of codelist 196 (Visualized data also available as non-graphical datas) is present in the ONIX record, otherwise if false it means that the metadata is not present.

+

This means that there is a positive indication that all data presented in a visual format (graph, chart, etc) has an alternative non-graphical presentation of the same data.

+
+
charts_diagrams_diagrams_as_long_text
+
+

If true it indicates that the code 15 of codelist 196 (Full alternative textual description) is present in the ONIX record, otherwise if false it means that the metadata is not present.

+

This means that there is a positive indication that a full alternative textual description has been supplied for all of the graphs, charts, diagrams, or figures necessary to understand the content.

+
+
contains_chemical_formula
+
+

If true it indicates that the code 47 of codelist 81 (Chemical content) is present in the ONIX record, otherwise if false it means that the metadata is not present.

+

This means that there is a positive indication that the publication contains chemical notations, formulae.

+
+
chemical_formula_as_chemml
+
+

If true it indicates that the code 18 of codelist 196 (Accessible chemistry content as ChemML) is present in the ONIX record, otherwise if false it means that the metadata is not present.

+

This means that there is a positive indication that the chemical formulae are presented using ChemML and works with compatible assistive technology.

+
+
chemical_formula_as_mathml
+
+

If true it indicates that the code 34 of codelist 196 (Accessible chemistry content as MathML) is present in the ONIX record, otherwise if false it means that the metadata is not present.

+

This means that there is a positive indication that the chemical formulae are presented using MathML and works with compatible assistive technology.

+
+
contains_math_formula
+
+

If true it indicates that the code 48 of codelist 81 (Mathematical content) is present in the ONIX record, otherwise if false it means that the metadata is not present.

+

This means that there is a positive indication that the publication contains mathematical notation, equations, formulae.

+
+
math_formula_as_latex
+
+

If true it indicates that the code 35 of codelist 196 (Accessible math content as LaTeX) is present in the ONIX record, otherwise if false it means that the metadata is not present.

+

This means that there is a positive indication that the chemical formulae are presented using LaTeX and works with compatible assistive technology.

+
+
math_formula_as_mathml
+
+

If true it indicates that the code 17 of codelist 196 (Accessible math content as MathML) is present in the ONIX record, otherwise if false it means that the metadata is not present.

+

This means that there is a positive indication that all mathematical content is presented using MathML and works with compatible assistive technology.

+
+
+

4.6.2 Variables setup

+
    +
  1. LET onix be the result of calling preprocessing given onix_record_as_text.
  2. +
  3. LET contains_charts_diagrams be the result of calling check for node on onix, /ONIXMessage/Product/DescriptiveDetail/DescriptiveDetail[PrimaryContentType = "19" or ContentType = "19"] .
  4. +
  5. LET charts_diagrams_as_non_graphical_data be the result of calling check for node on onix, /ONIXMessage/Product/DescriptiveDetail/ProductFormFeature[ProductFormFeatureType = "09" and ProductFormFeatureValue = "16"].
  6. +
  7. LET charts_diagrams_diagrams_as_long_text be the result of calling check for node on onix, /ONIXMessage/Product/DescriptiveDetail/ProductFormFeature[ProductFormFeatureType = "09" and ProductFormFeatureValue = "15"].
  8. +
  9. LET contains_chemical_formula be the result of calling check for node on onix, /ONIXMessage/Product/DescriptiveDetail/DescriptiveDetail[PrimaryContentType = "47" or ContentType = "47"] .
  10. +
  11. LET chemical_formula_as_chemml be the result of calling check for node on onix, /ONIXMessage/Product/DescriptiveDetail/ProductFormFeature[ProductFormFeatureType = "09" and ProductFormFeatureValue = "18"].
  12. +
  13. LET chemical_formula_as_mathml be the result of calling check for node on onix, /ONIXMessage/Product/DescriptiveDetail/ProductFormFeature[ProductFormFeatureType = "09" and ProductFormFeatureValue = "34"].
  14. +
  15. LET contains_math_formula be the result of calling check for node on onix, /ONIXMessage/Product/DescriptiveDetail/DescriptiveDetail[PrimaryContentType = "48" or ContentType = "48"] .
  16. +
  17. LET math_formula_as_latex be the result of calling check for node on onix, /ONIXMessage/Product/DescriptiveDetail/ProductFormFeature[ProductFormFeatureType = "09" and ProductFormFeatureValue = "35"].
  18. +
  19. LET math_formula_as_mathml be the result of calling check for node on onix, /ONIXMessage/Product/DescriptiveDetail/ProductFormFeature[ProductFormFeatureType = "09" and ProductFormFeatureValue = "17"].
  20. +
+

4.6.3 Instructions

+
    +
  1. + IF contains_charts_diagrams AND charts_diagrams_diagrams_as_long_text: + THEN display "Charts and diagrams have extended descriptions". +
  2. +
  3. + IF contains_charts_diagrams AND charts_diagrams_as_non_graphical_data: + THEN display "Visualized data also available as non-graphical data". +
  4. +
  5. + IF chemical_formula_as_chemml OR chemical_formula_as_mathml: + THEN display "Accessible chemistry content". +
  6. +
  7. + IF math_formula_as_latex OR math_formula_as_mathml: + THEN display "Accessible math content". +
  8. +
  9. + IF (contains_charts_diagrams OR contains_chemical_formula OR contains_math_formula) AND NOT (charts_diagrams_diagrams_as_long_text OR charts_diagrams_as_non_graphical_data OR chemical_formula_as_chemml OR chemical_formula_as_mathml OR math_formula_as_latex OR math_formula_as_mathml): + THEN display "Accessibility of formulas, charts, and diagrams unknown". +
  10. +
+
+ +

4.7 Hazards

+ +

This technique relates to Hazards key information.

+

This algorithm takes the onix_record_as_text argument: a UTF-8 string representing the ONIX record.

+

4.7.1 Understanding the variables

+
+
no_hazards_or_warnings_confirmed
+
+

If true it indicates that the code 00 of codelist 143 (No known hazards or warnings) is present in the ONIX record, otherwise if false it means that the metadata is not present.

+

This means there is a positive indication in the ONIX record confirming there are no associated hazard warnings with this product.

+
+
flashing_hazard
+
+

If true it indicates that the code 13 of codelist 143 (WARNING - Flashing hazard) is present in the ONIX record, otherwise if false it means that the metadata is not present.

+

This means that there is a positive indication that the product has a flashing hazard which must be displayed.

+
+
no_flashing_hazards
+
+

If true it indicates that the code 14 of codelist 143 (No flashing hazard warning necessary) is present in the ONIX record, otherwise if false it means that the metadata is not present.

+

This means there is a positive indication in the ONIX record confirming there are no flashing hazards associated with this product.

+
+
motion_simulation_hazard
+
+

If true it indicates that the code 17 of codelist 143 (WARNING - Motion simulation hazard) is present in the ONIX record, otherwise if false it means that the metadata is not present.

+

This means that there is a positive indication that the product has a motion simulation hazard which must be displayed.

+
+
no_motion_hazards
+
+

If true it indicates that the code 18 of codelist 143 (No motion simulation hazard warning necessary) is present in the ONIX record, otherwise if false it means that the metadata is not present.

+

This means there is a positive indication in the ONIX record confirming there are no motion simulation hazards associated with this product.

+
+
sound_hazard
+
+

If true it indicates that the code 15 of codelist 143 (WARNING - Sound hazard) is present in the ONIX record, otherwise if false it means that the metadata is not present.

+

This means that there is a positive indication that the product has a sound hazard which must be displayed.

+
+
no_sound_hazards
+
+

If true it indicates that the code 16 of codelist 143 (No sound hazard warning necessary) is present in the ONIX record, otherwise if false it means that the metadata is not present.

+

This means there is a positive indication in the ONIX record confirming there are no sound hazards associated with this product.

+
+
unknown_if_contains_hazards
+
+

If true it indicates that the code 08 of codelist 196 (Unknown accessibility) is present in the ONIX record, otherwise if false it means that the metadata is not present.

+

This means that the product has not been assessed for hazards and there is no information about potential hazards.

+
+
+

4.7.2 Variables setup

+
    +
  1. LET onix be the result of calling preprocessing given onix_record_as_text.
  2. +
  3. LET no_hazards_or_warnings_confirmed be the result of calling check for node on onix, /ONIXMessage/Product/DescriptiveDetail/ProductFormFeature[ProductFormFeatureType = "12" and ProductFormFeatureValue = "00"].
  4. +
  5. LET flashing_hazard be the result of calling check for node on onix, /ONIXMessage/Product/DescriptiveDetail/ProductFormFeature[ProductFormFeatureType = "12" and ProductFormFeatureValue = "13"].
  6. +
  7. LET no_flashing_hazards be the result of calling check for node on onix, /ONIXMessage/Product/DescriptiveDetail/ProductFormFeature[ProductFormFeatureType = "12" and ProductFormFeatureValue = "14"].
  8. +
  9. LET motion_simulation_hazard be the result of calling check for node on onix, /ONIXMessage/Product/DescriptiveDetail/ProductFormFeature[ProductFormFeatureType = "12" and ProductFormFeatureValue = "17"].
  10. +
  11. LET no_motion_hazards be the result of calling check for node on onix, /ONIXMessage/Product/DescriptiveDetail/ProductFormFeature[ProductFormFeatureType = "12" and ProductFormFeatureValue = "18"].
  12. +
  13. LET sound_hazard be the result of calling check for node on onix, /ONIXMessage/Product/DescriptiveDetail/ProductFormFeature[ProductFormFeatureType = "12" and ProductFormFeatureValue = "15"].
  14. +
  15. LET no_sound_hazards be the result of calling check for node on onix, /ONIXMessage/Product/DescriptiveDetail/ProductFormFeature[ProductFormFeatureType = "12" and ProductFormFeatureValue = "16"].
  16. +
  17. LET unknown_if_contains_hazards be the result of calling check for node on onix, /ONIXMessage/Product/DescriptiveDetail/ProductFormFeature[ProductFormFeatureType = "09" and ProductFormFeatureValue = "08"].
  18. +
+

4.7.3 Instructions

+
    +
  1. + IF no_hazards_or_warnings_confirmed OR (no_flashing_hazards AND no_motion_hazards AND no_sound_hazards): + THEN display "No hazards". +
  2. +
  3. + ELSE IF flashing_hazard OR motion_simulation_hazard OR sound_hazard: + THEN LET hazards be an empty array. +
      +
    1. + IF flashing_hazard: + THEN APPEND "flashing" to hazards. +
    2. +
    3. + IF motion_simulation_hazard: + THEN APPEND "motion" to hazards. +
    4. +
    5. + IF sound_hazard: + THEN APPEND "sound" to hazards. +
    6. +
    7. LET hazards_string be the result of: +
        +
      • calling join array to comma list given hazards
      • +
      • uppercasing the first character
      • +
      • concatenating " hazards" to the end of the string IF (length of hazards) > 1 ELSE concatenating " hazard" to the end of the string.
      • +
      +
    8. +
    9. display hazards_string.
    10. +
    +
  4. +
  5. + ELSE IF unknown_if_contains_hazards: + THEN display "The presence of hazards is unknown". +
  6. +
  7. + ELSE display "No information about possible hazards". +
    Note

    This key information can be hidden if metadata is missing.

    +
  8. +
+
+ +

4.8 Accessibility summary

+ +

This technique relates to Accessibility summary key information.

+

This algorithm takes the onix_record_as_text argument: a UTF-8 string representing the ONIX record.

+
Note

+ Being human-written, the accessibility summary and addendum will appear in the original language of the publication. Therefore it is necessary of take care of setting up the correct language tag information. +

+ +
Note

Accessibility summary existed when no system exposed the computed accessibility metadata. With more and more systems displaying this information, most of the accessibility summary may be redundant. It may be advised to display only the accessibility addendum.

+ +

4.8.1 Understanding the variables

+
+
accessibility_summary
+
+

Returns the description of code 00 of codelist 196 (Accessibility summary) if present in the ONIX record, otherwise if false it means that the metadata is not present.

+

This means there is a human-written text containing a short explanatory summary of the accessibility of the product or the URL of a web page comprising such a summary. Summarizes the already existent information and may add information that the publisher could not express with the other codes.

+
+
lang_attribute_accessibility_summary
+
+

Returns the lang attribute of the node containing the accessibility_summary, or the lang attribute of the nearest ancestor.

+

This is the language code in which the text of the Accessibility summary was written.

+
+
accessibility_addendum
+
+

Returns the description of code 92 of codelist 196 (Accessibility addendum) if present in the ONIX record, otherwise if false it means that the metadata is not present.

+

This means there is a human-written text containing a short addendum to the accessibility detail of the product. It contains precise information that the publisher could not express with the other's codes.

+
+
lang_attribute_accessibility_addendum
+
+

Returns the lang attribute of the node containing the accessibility_addendum, or the lang attribute of the nearest ancestor.

+

This is the language code in which the text of the Accessibility addendum was written.

+
+
known_limited_accessibility
+
+

Returns the description of code 09 of codelist 196 (Inaccessible, or known limited accessibility) if present in the ONIX record, otherwise if false it means that the metadata is not present.

+

This means there is a human-written text containing details of and reasons for limitations on accessibility of an ebook.

+
+
lang_known_limited_accessibility
+
+

Returns the lang attribute of the node containing the known_limited_accessibility, or the lang attribute of the nearest ancestor.

+

This is the language code in which the text of the Inaccessible, or known limited accessibility was written.

+
+
language_of_text
+
+

Returns the value of nearest code 01 of codelist 22 (Language of text) if present in the ONIX record, otherwise if false it means that the metadata is not present.

+

This indicates the main language of the content and therefore the most probable language of accessibility summary and addendum.

+
+
+

4.8.2 Variables setup

+
    +
  1. LET onix be the result of calling preprocessing given onix_record_as_text.
  2. +
  3. LET accessibility_addendum be the value of the node extracted from onix, using the xpath /ONIXMessage/Product/DescriptiveDetail/ProductFormFeature[ProductFormFeatureType = "09" and ProductFormFeatureValue = "92"]/ProductFormFeatureDescription.
  4. +
  5. LET lang_attribute_accessibility_addendum be the value extracted from onix, using the xpath /ONIXMessage/Product/DescriptiveDetail/ProductFormFeature[ProductFormFeatureType = "09" and ProductFormFeatureValue = "92"]/ProductFormFeatureDescription/(@lang|ancestor::*/@lang)[last()].
  6. +
  7. LET known_limited_accessibility be the value of the node extracted from onix, using the xpath /ONIXMessage/Product/DescriptiveDetail/ProductFormFeature[ProductFormFeatureType = "09" and ProductFormFeatureValue = "09"]/ProductFormFeatureDescription.
  8. +
  9. LET lang_known_limited_accessibility be the value extracted from onix, using the xpath /ONIXMessage/Product/DescriptiveDetail/ProductFormFeature[ProductFormFeatureType = "09" and ProductFormFeatureValue = "09"]/ProductFormFeatureDescription/(@lang|ancestor::*/@lang)[last()].
  10. +
  11. LET accessibility_summary be the value of the node extracted from onix, using the xpath /ONIXMessage/Product/DescriptiveDetail/ProductFormFeature[ProductFormFeatureType = "09" and ProductFormFeatureValue = "00"]/ProductFormFeatureDescription.
  12. +
  13. LET lang_attribute_accessibility_summary be the value extracted from onix, using the xpath /ONIXMessage/Product/DescriptiveDetail/ProductFormFeature[ProductFormFeatureType = "09" and ProductFormFeatureValue = "00"]/ProductFormFeatureDescription/(@lang|ancestor::*/@lang)[last()].
  14. +
  15. LET language_of_text be the value of the node extracted from onix, using the xpath /ONIXMessage/Product/DescriptiveDetail/Language[LanguageRole="01"]/LanguageCode.
  16. +
+

4.8.3 Instructions

+
    +
  1. + IF lang_attribute_accessibility_addendum is NOT empty: + THEN LET language_accessibility_addendum be the value of lang_attribute_accessibility_addendum. +
  2. +
  3. + ELSE LET language_accessibility_addendum be the value of language_of_text. +
  4. +
  5. + IF lang_known_limited_accessibility is NOT empty: + THEN LET language_known_limited_accessibility be the value of lang_known_limited_accessibility. +
  6. +
  7. + ELSE LET language_known_limited_accessibility be the value of language_of_text. +
  8. +
  9. + IF lang_attribute_accessibility_summary is NOT empty: + THEN LET language_accessibility_summary be the value of lang_attribute_accessibility_summary. +
  10. +
  11. + ELSE LET language_accessibility_summary be the value of language_of_text. +
  12. +
  13. + IF known_limited_accessibility is NOT empty: + THEN display the content of known_limited_accessibility with language_known_limited_accessibility as language. +
  14. +
  15. + IF accessibility_addendum is NOT empty: + THEN display the content of accessibility_addendum with language_accessibility_addendum as language. +
  16. +
  17. + ELSE IF accessibility_summary is NOT empty: + THEN display the content of accessibility_summary with language_accessibility_summary as language. +
  18. +
  19. + ELSE display "No accessibility summary". +
    Note

    This key information can be hidden if metadata is missing.

    +
  20. +
+
+ + + +

4.10 Additional accessibility information

+ +

This technique relates to Additional accessibility information key information.

+ +

4.10.1 Adaptation

+ +

This algorithm takes the onix_record_as_text argument: a UTF-8 string representing the ONIX record.

+
4.10.1.1 Understanding the variables
+
+
dyslexia_readability
+
+

If true it indicates that the code 24 of codelist 196 (Dyslexia readability) is present in the ONIX record, otherwise if false it means that the metadata is not present.

+

This means that the product has been specifically adapted or has features specifically to improve readability for dyslexic readers, for example specialised font, character and/or line spacing, justification and paragraph spacing, coloring and other options provided specifically to improve readability for dyslexic readers.

+
+
closed_captions
+
+

If true it indicates that the code V210 of codelist 175 (Closed captions) is present in the ONIX record, otherwise if false it means that the metadata is not present.

+

This means that the audio content of a video can be seen via closed captions that can be turned on or off by the viewer and which will be a separate file from the video itself.

+
+
open_captions
+
+

If true it indicates that the code V211 of codelist 175 (Open captions) is present in the ONIX record, otherwise if false it means that the metadata is not present.

+

This means that the audio content of a video can be seen via open captions, which means they cannot be turned off and are always visible when the video plays.

+
+
full_transcript
+
+

If true it indicates that the code V212 of codelist 175 (Full transcript) is present in the ONIX record, otherwise if false it means that the metadata is not present.

+

This means that a full transcript of the audio content of the product is supplied with it.

+
+
sign_language
+
+

If true it indicates that the code V213 of codelist 175 (Sign language interpretation) is present in the ONIX record, otherwise if false it means that the metadata is not present.

+

This means that a full signing of audio content of the product supplied with the video file.

+
+
+ +
4.10.1.2 Variables setup
+
    +
  1. LET onix be the result of calling preprocessing given onix_record_as_text.
  2. +
  3. LET dyslexia_readability be the result of calling check for node on onix, /ONIXMessage/Product/DescriptiveDetail/ProductFormFeature[ProductFormFeatureType = "09" and ProductFormFeatureValue = "24"].
  4. +
  5. LET closed_captions be the result of calling check for node on onix, /ONIXMessage/Product/DescriptiveDetail[ProductFormDetail = "V210"].
  6. +
  7. LET open_captions be the result of calling check for node on onix, /ONIXMessage/Product/DescriptiveDetail[ProductFormDetail = "V211"].
  8. +
  9. LET full_transcript be the result of calling check for node on onix, /ONIXMessage/Product/DescriptiveDetail[ProductFormDetail = "V212"].
  10. +
  11. LET sign_language be the result of calling check for node on onix, /ONIXMessage/Product/DescriptiveDetail[ProductFormDetail = "V213"].
  12. +
+ +
4.10.1.3 Instructions
+
    +
  1. LET adaptation be an empty array.
  2. +
  3. + IF dyslexia_readability: + THEN APPEND "dyslexia readability" to adaptation. +
  4. +
  5. + IF closed_captions: + THEN APPEND "closed captions" to adaptation. +
  6. +
  7. + IF open_captions: + THEN APPEND "open captions" to adaptation. +
  8. +
  9. + IF full_transcript: + THEN APPEND "full transcript" to adaptation. +
  10. +
  11. + IF sign_language: + THEN APPEND "sign language" to adaptation. +
  12. +
  13. IF adaptation is NOT empty: +
      +
    1. LET adaptation_string be the result of: + +
    2. +
    3. display adaptation_string.
    4. +
    +
  14. +
+
+ +

4.10.2 Clarity

+ +

This algorithm takes the onix_record_as_text argument: a UTF-8 string representing the ONIX record.

+
4.10.2.1 Understanding the variables
+
+
text_to_speech_hinting
+
+

If true it indicates that the code 21 of codelist 196 (Text-to-speech hinting provided) is present in the ONIX record, otherwise if false it means that the metadata is not present.

+

This means that text-to-speech has been optimised through provision of PLS lexicons, SSML or CSS Speech synthesis hints or other speech synthesis markup languages or hinting.

+
+
color_not_sole_means_of_conveying_information
+
+

If true it indicates that the code 25 of codelist 196 (Use of color is not sole means of conveying information) is present in the ONIX record, otherwise if false it means that the metadata is not present.

+

This means that for readers with color vision deficiency, use of color (eg in diagrams, graphs and charts, in prompts or on buttons inviting a response) is not the sole means of graphical distinction or of conveying information.

+
+
high_contrast_between_text_and_background
+
+

If true it indicates that the code 26 of codelist 196 (Use of high contrast between text and background color) is present in the ONIX record, otherwise if false it means that the metadata is not present.

+

This means that body text is presented with a contrast ratio of at least 4.5:1 (or 3:1 for large/heading text).

+
+
ultra_high_contrast_between_text_and_background
+
+

If true it indicates that the code 37 of codelist 196 (Use of ultra-high contrast between text foreground and background) is present in the ONIX record, otherwise if false it means that the metadata is not present.

+

This means that body text is presented with a contrast ratio of at least 7:1 (or 4.5:1 for large/heading text).

+
+
visible_page_numbering
+
+

If true it indicates that the code E205 of codelist 175 (Visible page numbering) is present in the ONIX record, otherwise if false it means that the metadata is not present.

+

This means that the e-publication (mostly in the case of a fixed-format) contains visible page numbers.

+
+
high_contrast_between_foreground_and_background_audio
+
+

If true it indicates that the code 27 of codelist 196 (Use of high contrast between foreground and background audio) is present in the ONIX record, otherwise if false it means that the metadata is not present.

+

This means that foreground audio content (eg voice) is presented with no or low background noise (eg ambient sounds, music), at least 20dB below the level of the foreground, or background noise can be switched off (eg via an alternative audio track). Brief and occasional sound effects may be as loud as foreground voice so long as they are isolated from the foreground.

+
+
without_background_sounds
+
+

If true it indicates that the code A312 of codelist 175 (Without background sounds) is present in the ONIX record, otherwise if false it means that the metadata is not present.

+

This means that pre-recorded audiobook narration does not contain any background sounds, including music, sound effects, etc, though music and effects may be present if isolated from the speech (ie the sounds do not overlap).

+
+
+ +
4.10.2.2 Variables setup
+
    +
  1. LET onix be the result of calling preprocessing given onix_record_as_text.
  2. +
  3. LET text_to_speech_hinting be the result of calling check for node on onix, /ONIXMessage/Product/DescriptiveDetail/ProductFormFeature[ProductFormFeatureType = "09" and ProductFormFeatureValue = "21"].
  4. +
  5. LET color_not_sole_means_of_conveying_information be the result of calling check for node on onix, /ONIXMessage/Product/DescriptiveDetail/ProductFormFeature[ProductFormFeatureType = "09" and ProductFormFeatureValue = "25"].
  6. +
  7. LET high_contrast_between_text_and_background be the result of calling check for node on onix, /ONIXMessage/Product/DescriptiveDetail/ProductFormFeature[ProductFormFeatureType = "09" and ProductFormFeatureValue = "26"].
  8. +
  9. LET ultra_high_contrast_between_text_and_background be the result of calling check for node on onix, /ONIXMessage/Product/DescriptiveDetail/ProductFormFeature[ProductFormFeatureType = "09" and ProductFormFeatureValue = "37"].
  10. +
  11. LET visible_page_numbering be the result of calling check for node on onix, /ONIXMessage/Product/DescriptiveDetail[ProductFormDetail = "E205"].
  12. +
  13. LET high_contrast_between_foreground_and_background_audio be the result of calling check for node on onix, /ONIXMessage/Product/DescriptiveDetail/ProductFormFeature[ProductFormFeatureType = "09" and ProductFormFeatureValue = "27"].
  14. +
  15. LET without_background_sounds be the result of calling check for node on onix, /ONIXMessage/Product/DescriptiveDetail[ProductFormDetail = "A312"].
  16. +
+ +
4.10.2.3 Instructions
+
    +
  1. LET clarity be an empty array.
  2. +
  3. + IF text_to_speech_hinting: + THEN APPEND "text-to-speech hinting provided" to clarity. +
  4. +
  5. + IF color_not_sole_means_of_conveying_information: + THEN APPEND "color is not the sole means of conveying information" to clarity. +
  6. +
  7. + IF high_contrast_between_text_and_background: + THEN APPEND "high contrast between text and background" to clarity. +
  8. +
  9. + IF ultra_high_contrast_between_text_and_background: + THEN APPEND "ultra high contrast between text and background" to clarity. +
  10. +
  11. + IF visible_page_numbering: + THEN APPEND "visible page numbering " to clarity. +
  12. +
  13. + IF high_contrast_between_foreground_and_background_audio: + THEN APPEND "high contrast between foreground and background audio" to clarity. +
  14. +
  15. + IF without_background_sounds: + THEN APPEND "without background sounds" to clarity. +
  16. +
  17. IF clarity is NOT empty: +
      +
    1. LET clarity_string be the result of: + +
    2. +
    3. display clarity_string.
    4. +
    +
  18. +
+
+
+
+

A. Acknowledgements

This section is non-normative.

+ +

A.1 Contributors

+ + +
+

A.2 Reviewers

+ + +
+
+ + + \ No newline at end of file diff --git a/UX-Guide-Metadata/2.0/techniques/onix-metadata/onix-metadata-draft-note-20240830.html b/UX-Guide-Metadata/2.0/techniques/onix-metadata/onix-metadata-draft-note-20240830.html new file mode 100644 index 00000000..97b5755e --- /dev/null +++ b/UX-Guide-Metadata/2.0/techniques/onix-metadata/onix-metadata-draft-note-20240830.html @@ -0,0 +1,1627 @@ + + + + + + + + + +Display Techniques for ONIX Accessibility Metadata 2.0 + + + + + + + + + + + + +
+ +

Display Techniques for ONIX Accessibility Metadata 2.0

+

+ Draft Community Group Report + +

+
+
This version:
+ https://w3c.github.io/publ-a11y/UX-Guide-Metadata/2.0/techniques/onix-metadata/onix-metadata-draft-note-20240830.html +
+
Latest published version:
+ https://www.w3.org/publishing/a11y/UX-Guide-metadata/techniques/onix-metadata/ +
+
Latest editor's draft:
https://w3c.github.io/publ-a11y/UX-Guide-Metadata/draft/techniques/onix-metadata/
+ + + + +
Editors:
+ Gregorio Pellegrino (Fondazione LIA) +
+ Gautier Chomel (EDRLab ) +
+ Christopher Saynor (EDItEUR) +
+ + +
Feedback:
+ GitHub w3c/publ-a11y + (pull requests, + new issue, + open issues) +
+ +
+ + +
+
+

Abstract

+

Status of This Document

+ This specification was published by the + Publishing Community Group. It is not a W3C Standard nor is it + on the W3C Standards Track. + + Please note that under the + W3C Community Contributor License Agreement (CLA) + there is a limited opt-out and other conditions apply. + + Learn more about + W3C Community and Business Groups. +

+ GitHub Issues are preferred for + discussion of this specification. + + +

+

1. ONIX Metadata

+ + +
Note

+ Techniques for displaying accessibility metadata in other metadata formats can be found in the Display Techniques for Displaying Accessibility Metadata +

+ +
Note

+ This document provides techniques for meeting the guidelines of the User Experience Guide for Displaying Accessibility Metadata. It provides practical examples for extracting information from the ONIX metadata for showing it to the end users. +

+ +
Note

+ ONIX messages describe products for the global book supply chain and will be sent from publisher or creator of the EPUB or digital books with full audio to those who will make the products available for sale, lending or subscription. + These platforms may not yet have the actual files, as they may not yet be ready, or may only choose to list them for sale if they have certain accessibility features. + ONIX also only describes a product, it cannot describe the features of the reading systems on which a product may be accessed. + It is important to use ONIX metadata as a complement to the accessibility data embedded within the publication itself, if describing accessible books, books with full audio and related products for the global book supply chain. + An ONIX file can be used to display accessibility information in advance of publication or when you do not have access to the metadata in the digital file itself. + Some accessibility information may only be available when you have access to the file itself. + If you are unfamiliar with ONIX, then there is more documentation available from EDItEUR.org. +

+ +
Note

+ It is important to note that ONIX 3.0 includes a number of new accessibility metadata codes, some of which may not be expressible in earlier versions of ONIX. +

+ +

1.1 ONIX record examples

+ +

1.1.1 ONIX record describing an EPUB

+ +

Here is an example of an ONIX record (version 3.0), which will be used as a reference point for the + following examples on EPUB accessibility metadata: the results of the XPath shown are based on + this example.

+ +
+

1.1.2 ONIX record describing an audiobook

+ +

Here is an example of an ONIX record (version 3.0) for describing an audiobook, which will be used as a reference point for the + some of the following examples on EPUB accessibility metadata: the results of the XPath shown are based on + this example.

+ +
+
+
+

2. Conventions for implementations

+ +

The code conventions used in the provided code snippet follow a structure commonly found in programming languages like Python, Java, or C++. Here's an explanation of the conventions:

+
+
Conditionals and Control Flow:
+
IF, ELSE IF, and ELSE (in bold and capital letters) statements are used to define different conditions and the corresponding actions to be taken.
+
Operators:
+
Written operators (is present) are used to check if a particular code or codelist is present (or not) in the metadata record.
+
Logical operators:
+
Logical operators (AND, OR, NOT, in bold and capital letters) are used to combine conditions.
+
String Literals:
+
String literals are used to represent the text that should be displayed when a particular condition is met.
+
Variable Naming:
+
The terms like "codelist" and "code" are used in a way that suggests a variable or data structure representing a code or codelist to be accessed directly after the ingestion of the metadata record.
+
Indentation:
+
The code uses consistent indentation to define blocks of code within conditional statements. This is crucial for readability and maintaining a clear structure.
+
Readability:
+
The code is written in a way that is intended to be easily readable and understandable even by non-coders.
+
+
+

3. Common Functions

+ +

In this section we define the functions common to all techniques, which are called by them during execution.

+

3.1 Preprocessing

+ +

Before working directly with the metadata we must read the ONIX record. This is a common starting point for all techniques that allows us to query the record directly.

+
Note
+

This algorithm takes the onix_record_as_text argument: a UTF-8 string representing the ONIX record.

+

To generate the internal representation, run the following steps:

+
    +
  1. LET record be textual representation of the ONIX record for the publication given onix_record_as_text.
  2. +
  3. LET onix be the DOM tree that results from parsing record using an XML DOM parser.
  4. +
  5. return onix.
  6. +
+
Note
+
+

3.2 Check for Node

+ +

Many of the techniques rely on checking for the presence or absence of metadata in the ONIX record.

+

This algorithm takes:

+ +

To check for node, run the following steps:

+
    +
  1. + IF onix contains path: + THEN return True. +
  2. +
  3. ELSE return False.
  4. +
+
+

3.3 Join array to comma list

+ +

This function serves to concatenate an array of strings, separating each element with a comma, with the last element separated by an ", and" (this string is localizable).

+

For example if the input array has elements ["one", "two", "three"], then the output is going to be "one, two, and three".

+

This algorithm takes the string_array argument: the list of string to join.

+

To join the array, run the following steps:

+
    +
  1. LET output_string be the result of: +
      +
    • calling join on string_array with the separator ", "
    • +
    • replacing the last occurrence of ", " with ", and ".
    • +
    +
  2. +
  3. return output_string.
  4. +
+
+
+

4. Techniques

+ + +

4.1 Visual adjustments

+ +

This technique relates to Visual adjustments key information.

+

This algorithm takes the onix_record_as_text argument: a UTF-8 string representing the ONIX record.

+

4.1.1 Understanding the variables

+
+
all_textual_content_can_be_modified
+
+

If true it indicates that the code 36 of codelist 196 (All textual content can be modified) is present in the ONIX record, otherwise if false it means that the metadata is not present.

+

All textual content can be modified means that the digital publication does not restrict the ability of users to modify and reflow the display of any textual content to the full extent allowed by the reading system (i.e. to change the text size or typeface, line height and word spacing, colors).

+
+
is_fixed_layout
+
+

If true it indicates that the code E201 of codelist 175 (Fixed format) is present in the ONIX record, otherwise if false it means that the metadata is not present.

+

Fixed format means that digital publication is in fixed format (e.g. EPUB Fixed Layout).

+
+
+

4.1.2 Variables setup

+
    +
  1. LET onix be the result of calling preprocessing given onix_record_as_text.
  2. +
  3. LET all_textual_content_can_be_modified be the result of calling check for node on onix, /ONIXMessage/Product/DescriptiveDetail/ProductFormFeature[ProductFormFeatureType = "09" and ProductFormFeatureValue = "36"].
  4. +
  5. LET is_fixed_layout be the result of calling check for node on onix, /ONIXMessage/Product/DescriptiveDetail/ProductFormDetail[text() = "E201"] AND NOT the result of calling check for node on onix, /ONIXMessage/Product/DescriptiveDetail/ProductFormDetail[text() = "E200"].
  6. +
+

4.1.3 Instructions

+
    +
  1. + IF all_textual_content_can_be_modified: + THEN display "Appearance can be modified". +
  2. +
  3. + ELSE IF is_fixed_layout: + THEN display "Appearance cannot be modified". +
  4. +
  5. ELSE display "Appearance modifiability not known".
  6. +
+
+ +

4.2 Supports nonvisual reading

+ +

This technique relates to Supports nonvisual reading key information.

+

This algorithm takes the onix_record_as_text argument: a UTF-8 string representing the ONIX record.

+

4.2.1 Understanding the variables

+
+
all_necessary_content_textual
+
+

If true it indicates that the code 52 of codelist 196 (All non-decorative content supports reading without sight) is present in the ONIX record, otherwise if false it means that the metadata is not present.

+

All non-decorative content supports reading without sight means that all contents of the digital publication necessary to use and understanding, including text, images (via their alternative descriptions), audio and video material (via their transcripts, descriptions, captions or subtitles) are fully accessible via suitable reading devices, for example text-to-speech screen readers or tactile reading devices (‘Braille displays’), and nothing in the digital publication prevents or blocks the use of alternative reading modes. The entire publication can be navigated and ‘read’ using only text rendered via sound or touch, and does not require visual perception.

+
+
real_text
+
+

If true it indicates that the code 10 of codelist 81 (Text) is present in the ONIX record, otherwise if false it means that the metadata is not present.

+

Text means that digital publication contains "real" text (user-selectable) as its main content (or as secondary content).

+
+
non_textual_content_images
+
+

If true it indicates that at least one of the following is present in the ONIX record:

+ +

This means that the content contains images of any type.

+
+
textual_alternative_images
+
+

If true it indicates that at least one of the following is present in the ONIX record:

+ +

This means that there are textual alternatives for images.

+
+
+

4.2.2 Variables setup

+
    +
  1. LET onix be the result of calling preprocessing given onix_record_as_text.
  2. +
  3. LET all_necessary_content_textual be the result of calling check for node on onix, /ONIXMessage/Product/DescriptiveDetail/ProductFormFeature[ProductFormFeatureType = "09" and ProductFormFeatureValue = "52"].
  4. +
  5. LET real_text be the result of calling check for node on onix, /ONIXMessage/Product/DescriptiveDetail[PrimaryContentType = "10" or ProductContentType = "10"].
  6. +
  7. LET non_textual_content_images be the result of calling check for node on onix, /ONIXMessage/Product/DescriptiveDetail[PrimaryContentType = "07" or PrimaryContentType = "18" or PrimaryContentType = "19" or PrimaryContentType = "12" or PrimaryContentType = "49" or PrimaryContentType = "20" or ProductContentType = "07" or ProductContentType = "18" or ProductContentType = "19" or ProductContentType = "12" or ProductContentType = "49" or ProductContentType = "20"].
  8. +
  9. LET textual_alternative_images be the result of calling check for node on onix, /ONIXMessage/Product/DescriptiveDetail/ProductFormFeature[ProductFormFeatureType = "09" and (ProductFormFeatureValue = "14" or ProductFormFeatureValue = "15" or ProductFormFeatureValue = "16")].
  10. +
+

4.2.3 Instructions

+
    +
  1. + IF all_necessary_content_textual: + THEN display "Readable in read aloud and braille". +
  2. +
  3. + ELSE IF real_text AND non_textual_content_images AND NOT textual_alternative_images: + THEN display "Not fully readable in read aloud and braille". +
  4. +
  5. ELSE display "May not be fully readable in read aloud and braille".
  6. +
+
+ +

4.3 Conformance

+ +

This technique relates to Conformance key information.

+

This algorithm takes the onix_record_as_text argument: a UTF-8 string representing the ONIX record.

+

4.3.1 Understanding the variables

+
+
epub_accessibility_10
+
+

If true it indicates that either the code 02 of codelist 196 (EPUB Accessibility Specification 1.0 A) or the code 03 of codelist 196 (EPUB Accessibility Specification 1.0 AA) are present in the ONIX record, otherwise if false it means that the metadata is not present.

+

This means that the publication conforms with either the requirements of EPUB Accessibility Spec 1.0, at level A or level AA.

+
+
epub_accessibility_11
+
+

If true it indicates that the code 04 of codelist 196 (EPUB Accessibility Specification 1.1) is present in the ONIX record, otherwise if false it means that the metadata is not present.

+

This means that the publication conforms with the requirements of EPUB Accessibility Spec 1.1.

+
+
wcag_20
+
+

If true it indicates that the code 80 of codelist 196 (WCAG v2.0) or the code 02 of codelist 196 (EPUB Accessibility Specification 1.0 A) or the code 03 of codelist 196 (EPUB Accessibility Specification 1.0 AA) are present in the ONIX record, otherwise if false it means that the metadata is not present.

+

This means that the publication conforms with the requirements of WCAG version 2.0 or with the requirements of EPUB Accessibility Spec 1.0 (at level A or level AA). This is because being compliant with EPUB Accessibility 1.0 specification means at least being compliant with WCAG 2.0 specification.

+
+
wcag_21
+
+

If true it indicates that the code 81 of codelist 196 (WCAG v2.1) is present in the ONIX record, otherwise if false it means that the metadata is not present.

+

This means that the publication conforms with the requirements of WCAG version 2.1.

+
+
wcag_22
+
+

If true it indicates that the code 82 of codelist 196 (WCAG v2.2) is present in the ONIX record, otherwise if false it means that the metadata is not present.

+

This means that the publication conforms with the requirements of WCAG version 2.2.

+
+
level_a
+
+

If true it indicates that the code 84 of codelist 196 (WCAG level A) or the code 02 of codelist 196 (EPUB Accessibility Specification 1.0 A) are present in the ONIX record, otherwise if false it means that the metadata is not present.

+

This means that the publication conforms with the requirements of WCAG level A or with the requirements of EPUB Accessibility Spec 1.0 level A.

+
+
level_aa
+
+

If true it indicates that the code 85 of codelist 196 (WCAG level AA) or the code 03 of codelist 196 (EPUB Accessibility Specification 1.0 AA) are present in the ONIX record, otherwise if false it means that the metadata is not present.

+

This means that the publication conforms with the requirements of WCAG level AA or with the requirements of EPUB Accessibility Spec 1.0 level AA.

+
+
level_aaa
+
+

If true it indicates that the code 86 of codelist 196 (WCAG level AAA) is present in the ONIX record, otherwise if false it means that the metadata is not present.

+

This means that the publication conforms with the requirements of WCAG level AAA.

+
+
certifier
+
+

Returns the description of code 90 of codelist 196 (Compliance certification by (name)) if present in the ONIX record, otherwise if false it means that the metadata is not present.

+

This means that the name of the organization responsible for compliance testing and certification of the product is present.

+
+
certifier_credentials
+
+

Returns the description of code 93 of codelist 196 (Compliance certification by (URL)) if present in the ONIX record, otherwise if false it means that the metadata is not present.

+

This means that the the URL of a web page belonging to an organization responsible for compliance testing and certification of the product is present – typically a ‘home page’ or a page describing the certification scheme itself.

+
+
certification_date
+
+

Returns the description of code 91 of codelist 196 (Latest accessibility assessment date) if present in the ONIX record, otherwise if false it means that the metadata is not present.

+

This means that the date of the latest assessment or re-assessment of the accessibility of the product is present.

+
+
certifier_report
+
+

Returns the description of code 94 of codelist 196 (Compliance web page for detailed accessibility information) if present in the ONIX record, otherwise if false it means that the metadata is not present.

+

This means that is present the URL of a compliance web page for detailed accessibility information. The web page should be maintained by an independent compliance scheme or testing organization. Note the web page may include information about specific national requirements or voluntary conformance reports.

+
+
+ +

4.3.2 Variables setup

+
    +
  1. LET onix be the result of calling preprocessing given onix_record_as_text.
  2. +
  3. LET epub_accessibility_10 be the result of calling check for node on onix, /ONIXMessage/Product/DescriptiveDetail/ProductFormFeature[ProductFormFeatureType = "09" and ProductFormFeatureValue = "02"] OR calling check for node on onix, /ONIXMessage/Product/DescriptiveDetail/ProductFormFeature[ProductFormFeatureType = "09" and ProductFormFeatureValue = "03"].
  4. +
  5. LET epub_accessibility_11 be the result of calling check for node on onix, /ONIXMessage/Product/DescriptiveDetail/ProductFormFeature[ProductFormFeatureType = "09" and ProductFormFeatureValue = "04"].
  6. +
  7. LET wcag_20 be the result of calling check for node on onix, /ONIXMessage/Product/DescriptiveDetail/ProductFormFeature[ProductFormFeatureType = "09" and ProductFormFeatureValue = "80"] OR calling check for node on onix, /ONIXMessage/Product/DescriptiveDetail/ProductFormFeature[ProductFormFeatureType = "09" and ProductFormFeatureValue = "02"] OR calling check for node on onix, /ONIXMessage/Product/DescriptiveDetail/ProductFormFeature[ProductFormFeatureType = "09" and ProductFormFeatureValue = "03"].
  8. +
  9. LET wcag_21 be the result of calling check for node on onix, /ONIXMessage/Product/DescriptiveDetail/ProductFormFeature[ProductFormFeatureType = "09" and ProductFormFeatureValue = "81"].
  10. +
  11. LET wcag_22 be the result of calling check for node on onix, /ONIXMessage/Product/DescriptiveDetail/ProductFormFeature[ProductFormFeatureType = "09" and ProductFormFeatureValue = "82"].
  12. +
  13. LET level_a be the result of calling check for node on onix, /ONIXMessage/Product/DescriptiveDetail/ProductFormFeature[ProductFormFeatureType = "09" and ProductFormFeatureValue = "84"] OR calling check for node on onix, /ONIXMessage/Product/DescriptiveDetail/ProductFormFeature[ProductFormFeatureType = "09" and ProductFormFeatureValue = "02"].
  14. +
  15. LET level_aa be the result of calling check for node on onix, /ONIXMessage/Product/DescriptiveDetail/ProductFormFeature[ProductFormFeatureType = "09" and ProductFormFeatureValue = "85"] OR calling check for node on onix, /ONIXMessage/Product/DescriptiveDetail/ProductFormFeature[ProductFormFeatureType = "09" and ProductFormFeatureValue = "03"].
  16. +
  17. LET level_aaa be the result of calling check for node on onix, /ONIXMessage/Product/DescriptiveDetail/ProductFormFeature[ProductFormFeatureType = "09" and ProductFormFeatureValue = "86"].
  18. +
  19. LET certifier be the value of the node extracted from onix, using the xpath /ONIXMessage/Product/DescriptiveDetail/ProductFormFeature[ProductFormFeatureType = "09" and ProductFormFeatureValue = "90"]/ProductFormFeatureDescription.
  20. +
  21. LET certifier_credentials be the value of the node extracted from onix, using the xpath /ONIXMessage/Product/DescriptiveDetail/ProductFormFeature[ProductFormFeatureType = "09" and ProductFormFeatureValue = "93"]/ProductFormFeatureDescription.
  22. +
  23. LET certification_date be the value of the node extracted from onix, using the xpath /ONIXMessage/Product/DescriptiveDetail/ProductFormFeature[ProductFormFeatureType = "09" and ProductFormFeatureValue = "91"]/ProductFormFeatureDescription.
  24. +
  25. LET certifier_report be the value of the node extracted from onix, using the xpath /ONIXMessage/Product/DescriptiveDetail/ProductFormFeature[ProductFormFeatureType = "09" and ProductFormFeatureValue = "94"]/ProductFormFeatureDescription.
  26. +
+ +

4.3.3 Instructions

+
    +
  1. + IF level_aaa: + THEN display "This publication exceeds accepted accessibility standards". +
  2. +
  3. + ELSE IF level_aa: + THEN display "This publication meets accepted accessibility standards". +
  4. +
  5. + ELSE IF level_a: + THEN display "This publication meets minimum accessibility standards". +
  6. +
  7. + ELSE: + THEN display "The publication does not include a conformance statement". +
  8. +
  9. + IF certifier is NOT empty: + THEN +
      +
    • display "This publication is certified by "
    • +
    • display certifier.
    • +
    +
  10. +
  11. + IF certifier_credentials is NOT empty: + THEN +
      +
    • display "The certifier's credential is "
    • +
    • display certifier_credentials as link IF certifier_credentials is an URL.
    • +
    +
  12. +
  13. + display "Detailed Conformance Information" as heading. +
  14. +
  15. + IF epub_accessibility_10 OR epub_accessibility_11 OR wcag_20 OR wcag_21 OR wcag_22 OR level_aaa OR level_aa OR level_a: + THEN display "This publication claims to meet ". +
  16. +
  17. + IF epub_accessibility_10: + THEN display " EPUB Accessibility 1.0 ". +
  18. +
  19. + ELSE IF epub_accessibility_11: + THEN display " EPUB Accessibility 1.1 ". +
  20. +
  21. + IF wcag_22: + THEN display " WCAG 2.2 ". +
  22. +
  23. + ELSE IF wcag_21: + THEN display " WCAG 2.1 ". +
  24. +
  25. + ELSE IF wcag_20: + THEN display " WCAG 2.0 ". +
  26. +
  27. + IF level_aaa: + THEN display " Level AAA". +
  28. +
  29. + ELSE IF level_aa: + THEN display " Level AA". +
  30. +
  31. + ELSE IF level_a: + THEN display " Level A". +
  32. +
  33. + IF certification_date OR certifier OR certifier_credentials: + THEN display "The publication was certified ". +
  34. +
  35. + IF certification_date: + THEN +
      +
    • display " on "
    • +
    • display certification_date.
    • +
    +
  36. +
  37. + IF certifier: + THEN +
      +
    • display " by "
    • +
    • display certifier.
    • +
    +
  38. +
  39. + IF certifier_credentials: + THEN +
      +
    • display " with a credential of "
    • +
    • display certifier_credentials as link IF certifier_credentials is an URL.
    • +
    +
  40. +
  41. + IF certifier_report: + THEN +
      +
    • display "For more information refer to the certifier's report."
    • +
    • with certifier_report as link.
    • +
    +
  42. +
+ +
+ +

4.4 Pre-recorded audio

+ +

This technique relates to Pre-recorded audio key information.

+

This algorithm takes the onix_record_as_text argument: a UTF-8 string representing the ONIX record.

+

4.4.1 Understanding the variables

+
+
audiobook
+
+

If true it indicates that the code 01 of codelist 81 (Audiobook) is present in the ONIX record, otherwise if false it means that the metadata is not present.

+

This means that the primary content is an Audio recording of a reading of a book or other text.

+
+
all_content_audio
+
+

If true it indicates that the code 39 of codelist 196 (Supplementary material to an audiobook is accessible) is present in the ONIX record, otherwise if false it means that the metadata is not present.

+

This means that all supplementary visual or textual material necessary for understanding of an audiobook, is available as pre-recorded audio, or has full alternative text that can be read via text-to- speech. Only for use in ONIX 3.0 or later.

+
+
all_content_pre_recorded
+
+

If true it indicates that the code 51 of codelist 196 (All non-decorative content supports reading via pre-recorded audio) is present in the ONIX record, otherwise if false it means that the metadata is not present.

+

This means that all contents of the digital publication necessary to use and understanding, including any text, images (via alternative descriptions), video (via audio description) is fully accessible via suitable audio reproduction. The entire publication can be navigated and ‘read’ using only pre-recorded sound, and does not require visual or tactile perception.

+
+
synchronised_pre_recorded_audio
+
+

If true it indicates that one of the following codes is present in the ONIX record:

+ +

Otherwise, if false, it means that none of the above metadata is present.

+

This indicates that text-synchronised pre-recorded audio narration (natural or synthesised voice) is included for substantially all textual matter, including all alternative descriptions, e.g. via a SMIL media overlay.

+
+
non_textual_content_audio
+
+

If true it indicates that one of the following codes is present in the ONIX record:

+ +

Otherwise, if false, it means that none of the above metadata is present.

+

This indicates that pre-recorded audio content is included as part of the work. It can be Audio recording of a reading, performance or dramatization of part of the work or additional pre-recorded audio of any supplementary material such as full or partial reading, lecture, performance, dramatization, interview, background documentary or other audio content not included in the primary or unenhanced version

+
+
non_textual_content_audio_in_video
+
+

If true it indicates that one of the following codes is present in the ONIX record:

+ +

Otherwise, if false, it means that none of the above metadata is present.

+

This indicates that pre-recorded video including audio content is included as part of the work. It can be video recording of a reading, performance of part of the work or additional pre-recorded video of any supplementary material such as full or partial reading, lecture, performance, dramatization, interview, background documentary or other video containing audio content.

+
+
+

4.4.2 Variables setup

+
    +
  1. LET onix be the result of calling preprocessing given onix_record_as_text.
  2. +
  3. LET audiobook be the result of calling check for node on onix, /ONIXMessage/Product/DescriptiveDetail/DescriptiveDetail[PrimaryContentType = "81" or ContentType = "81"] .
  4. +
  5. LET all_content_audio be the result of calling check for node on onix, /ONIXMessage/Product/DescriptiveDetail/ProductFormFeature[ProductFormFeatureType = "09" and ProductFormFeatureValue = "39"].
  6. +
  7. LET all_content_pre_recorded be the result of calling check for node on onix, /ONIXMessage/Product/DescriptiveDetail/ProductFormFeature[ProductFormFeatureType = "09" and ProductFormFeatureValue = "51"].
  8. +
  9. LET synchronised_pre_recorded_audio be the result of calling check for node on onix, /ONIXMessage/Product/DescriptiveDetail/ProductFormFeature[ProductFormFeatureType = "09" and ProductFormFeatureValue = "20"] + AND calling check for node on onix, /ONIXMessage/Product/DescriptiveDetail/ProductFormDetail[text() = "A305"]. +
  10. +
  11. LET non_textual_content_audio be the result of calling check for node on onix, /ONIXMessage/Product/DescriptiveDetail/DescriptiveDetail[ContentType = "21" or ContentType = "22"] . +
  12. +
  13. LET non_textual_content_audio_in_video be the result of calling check for node on onix, /ONIXMessage/Product/DescriptiveDetail/DescriptiveDetail[ContentType = "06" or ContentType = "25" or ContentType = "26" or ContentType = "27" or ContentType = "28" or ContentType = "29" or ContentType = "30"] . +
  14. +
+

4.4.3 Instructions

+
    +
  1. + IF all_content_audio AND NOT synchronised_pre_recorded_audio: + THEN display "Audio only". +
  2. +
  3. + ELSE IF audiobook OR non_textual_content_audio OR non_textual_content_audio_in_video AND NOT all_content_pre_recorded: + THEN display "Complementary audio and text". +
  4. +
  5. + ELSE IF all_content_pre_recorded AND synchronised_pre_recorded_audio: + THEN display "Synchronized audio and text". +
  6. +
  7. + ELSE display "No information about pre-recorded audio". +
    Note

    This key information can be hidden if metadata is missing.

    +
  8. +
+
+ + + +

4.6 Charts, diagrams, and formulas

+ +

This technique relates to Charts, diagrams, and formulas key information.

+

This algorithm takes the onix_record_as_text argument: a UTF-8 string representing the ONIX record.

+

4.6.1 Understanding the variables

+
+
contains_charts_diagrams
+
+

If true it indicates that the code 19 of codelist 81 (Figures, diagrams, charts, graphs) is present in the ONIX record, otherwise if false it means that the metadata is not present.

+

This means that there is a positive indication that the product has some information conveyed via some form of illustration, such as a graph, a chart, a diagram, a figure, etc).

+
+
charts_diagrams_as_non_graphical_data
+
+

If true it indicates that the code 16 of codelist 196 (Visualized data also available as non-graphical datas) is present in the ONIX record, otherwise if false it means that the metadata is not present.

+

This means that there is a positive indication that all data presented in a visual format (graph, chart, etc) has an alternative non-graphical presentation of the same data.

+
+
charts_diagrams_diagrams_as_long_text
+
+

If true it indicates that the code 15 of codelist 196 (Full alternative textual description) is present in the ONIX record, otherwise if false it means that the metadata is not present.

+

This means that there is a positive indication that a full alternative textual description has been supplied for all of the graphs, charts, diagrams, or figures necessary to understand the content.

+
+
contains_chemical_formula
+
+

If true it indicates that the code 47 of codelist 81 (Chemical content) is present in the ONIX record, otherwise if false it means that the metadata is not present.

+

This means that there is a positive indication that the publication contains chemical notations, formulae.

+
+
chemical_formula_as_chemml
+
+

If true it indicates that the code 18 of codelist 196 (Accessible chemistry content as ChemML) is present in the ONIX record, otherwise if false it means that the metadata is not present.

+

This means that there is a positive indication that the chemical formulae are presented using ChemML and works with compatible assistive technology.

+
+
chemical_formula_as_mathml
+
+

If true it indicates that the code 34 of codelist 196 (Accessible chemistry content as MathML) is present in the ONIX record, otherwise if false it means that the metadata is not present.

+

This means that there is a positive indication that the chemical formulae are presented using MathML and works with compatible assistive technology.

+
+
contains_math_formula
+
+

If true it indicates that the code 48 of codelist 81 (Mathematical content) is present in the ONIX record, otherwise if false it means that the metadata is not present.

+

This means that there is a positive indication that the publication contains mathematical notation, equations, formulae.

+
+
math_formula_as_latex
+
+

If true it indicates that the code 35 of codelist 196 (Accessible math content as LaTeX) is present in the ONIX record, otherwise if false it means that the metadata is not present.

+

This means that there is a positive indication that the chemical formulae are presented using LaTeX and works with compatible assistive technology.

+
+
math_formula_as_mathml
+
+

If true it indicates that the code 17 of codelist 196 (Accessible math content as MathML) is present in the ONIX record, otherwise if false it means that the metadata is not present.

+

This means that there is a positive indication that all mathematical content is presented using MathML and works with compatible assistive technology.

+
+
+

4.6.2 Variables setup

+
    +
  1. LET onix be the result of calling preprocessing given onix_record_as_text.
  2. +
  3. LET contains_charts_diagrams be the result of calling check for node on onix, /ONIXMessage/Product/DescriptiveDetail/DescriptiveDetail[PrimaryContentType = "19" or ContentType = "19"] .
  4. +
  5. LET charts_diagrams_as_non_graphical_data be the result of calling check for node on onix, /ONIXMessage/Product/DescriptiveDetail/ProductFormFeature[ProductFormFeatureType = "09" and ProductFormFeatureValue = "16"].
  6. +
  7. LET charts_diagrams_diagrams_as_long_text be the result of calling check for node on onix, /ONIXMessage/Product/DescriptiveDetail/ProductFormFeature[ProductFormFeatureType = "09" and ProductFormFeatureValue = "15"].
  8. +
  9. LET contains_chemical_formula be the result of calling check for node on onix, /ONIXMessage/Product/DescriptiveDetail/DescriptiveDetail[PrimaryContentType = "47" or ContentType = "47"] .
  10. +
  11. LET chemical_formula_as_chemml be the result of calling check for node on onix, /ONIXMessage/Product/DescriptiveDetail/ProductFormFeature[ProductFormFeatureType = "09" and ProductFormFeatureValue = "18"].
  12. +
  13. LET chemical_formula_as_mathml be the result of calling check for node on onix, /ONIXMessage/Product/DescriptiveDetail/ProductFormFeature[ProductFormFeatureType = "09" and ProductFormFeatureValue = "34"].
  14. +
  15. LET contains_math_formula be the result of calling check for node on onix, /ONIXMessage/Product/DescriptiveDetail/DescriptiveDetail[PrimaryContentType = "48" or ContentType = "48"] .
  16. +
  17. LET math_formula_as_latex be the result of calling check for node on onix, /ONIXMessage/Product/DescriptiveDetail/ProductFormFeature[ProductFormFeatureType = "09" and ProductFormFeatureValue = "35"].
  18. +
  19. LET math_formula_as_mathml be the result of calling check for node on onix, /ONIXMessage/Product/DescriptiveDetail/ProductFormFeature[ProductFormFeatureType = "09" and ProductFormFeatureValue = "17"].
  20. +
+

4.6.3 Instructions

+
    +
  1. + IF contains_charts_diagrams AND charts_diagrams_diagrams_as_long_text: + THEN display "Charts and diagrams have extended descriptions". +
  2. +
  3. + IF contains_charts_diagrams AND charts_diagrams_as_non_graphical_data: + THEN display "Visualized data also available as non-graphical data". +
  4. +
  5. + IF chemical_formula_as_chemml OR chemical_formula_as_mathml: + THEN display "Accessible chemistry content". +
  6. +
  7. + IF math_formula_as_latex OR math_formula_as_mathml: + THEN display "Accessible math content". +
  8. +
  9. + IF (contains_charts_diagrams OR contains_chemical_formula OR contains_math_formula) AND NOT (charts_diagrams_diagrams_as_long_text OR charts_diagrams_as_non_graphical_data OR chemical_formula_as_chemml OR chemical_formula_as_mathml OR math_formula_as_latex OR math_formula_as_mathml): + THEN display "Accessibility of formulas, charts, and diagrams unknown". +
  10. +
+
+ +

4.7 Hazards

+ +

This technique relates to Hazards key information.

+

This algorithm takes the onix_record_as_text argument: a UTF-8 string representing the ONIX record.

+

4.7.1 Understanding the variables

+
+
no_hazards_or_warnings_confirmed
+
+

If true it indicates that the code 00 of codelist 143 (No known hazards or warnings) is present in the ONIX record, otherwise if false it means that the metadata is not present.

+

This means there is a positive indication in the ONIX record confirming there are no associated hazard warnings with this product.

+
+
flashing_hazard
+
+

If true it indicates that the code 13 of codelist 143 (WARNING - Flashing hazard) is present in the ONIX record, otherwise if false it means that the metadata is not present.

+

This means that there is a positive indication that the product has a flashing hazard which must be displayed.

+
+
no_flashing_hazards
+
+

If true it indicates that the code 14 of codelist 143 (No flashing hazard warning necessary) is present in the ONIX record, otherwise if false it means that the metadata is not present.

+

This means there is a positive indication in the ONIX record confirming there are no flashing hazards associated with this product.

+
+
motion_simulation_hazard
+
+

If true it indicates that the code 17 of codelist 143 (WARNING - Motion simulation hazard) is present in the ONIX record, otherwise if false it means that the metadata is not present.

+

This means that there is a positive indication that the product has a motion simulation hazard which must be displayed.

+
+
no_motion_hazards
+
+

If true it indicates that the code 18 of codelist 143 (No motion simulation hazard warning necessary) is present in the ONIX record, otherwise if false it means that the metadata is not present.

+

This means there is a positive indication in the ONIX record confirming there are no motion simulation hazards associated with this product.

+
+
sound_hazard
+
+

If true it indicates that the code 15 of codelist 143 (WARNING - Sound hazard) is present in the ONIX record, otherwise if false it means that the metadata is not present.

+

This means that there is a positive indication that the product has a sound hazard which must be displayed.

+
+
no_sound_hazards
+
+

If true it indicates that the code 16 of codelist 143 (No sound hazard warning necessary) is present in the ONIX record, otherwise if false it means that the metadata is not present.

+

This means there is a positive indication in the ONIX record confirming there are no sound hazards associated with this product.

+
+
unknown_if_contains_hazards
+
+

If true it indicates that the code 08 of codelist 196 (Unknown accessibility) is present in the ONIX record, otherwise if false it means that the metadata is not present.

+

This means that the product has not been assessed for hazards and there is no information about potential hazards.

+
+
+

4.7.2 Variables setup

+
    +
  1. LET onix be the result of calling preprocessing given onix_record_as_text.
  2. +
  3. LET no_hazards_or_warnings_confirmed be the result of calling check for node on onix, /ONIXMessage/Product/DescriptiveDetail/ProductFormFeature[ProductFormFeatureType = "12" and ProductFormFeatureValue = "00"].
  4. +
  5. LET flashing_hazard be the result of calling check for node on onix, /ONIXMessage/Product/DescriptiveDetail/ProductFormFeature[ProductFormFeatureType = "12" and ProductFormFeatureValue = "13"].
  6. +
  7. LET no_flashing_hazards be the result of calling check for node on onix, /ONIXMessage/Product/DescriptiveDetail/ProductFormFeature[ProductFormFeatureType = "12" and ProductFormFeatureValue = "14"].
  8. +
  9. LET motion_simulation_hazard be the result of calling check for node on onix, /ONIXMessage/Product/DescriptiveDetail/ProductFormFeature[ProductFormFeatureType = "12" and ProductFormFeatureValue = "17"].
  10. +
  11. LET no_motion_hazards be the result of calling check for node on onix, /ONIXMessage/Product/DescriptiveDetail/ProductFormFeature[ProductFormFeatureType = "12" and ProductFormFeatureValue = "18"].
  12. +
  13. LET sound_hazard be the result of calling check for node on onix, /ONIXMessage/Product/DescriptiveDetail/ProductFormFeature[ProductFormFeatureType = "12" and ProductFormFeatureValue = "15"].
  14. +
  15. LET no_sound_hazards be the result of calling check for node on onix, /ONIXMessage/Product/DescriptiveDetail/ProductFormFeature[ProductFormFeatureType = "12" and ProductFormFeatureValue = "16"].
  16. +
  17. LET unknown_if_contains_hazards be the result of calling check for node on onix, /ONIXMessage/Product/DescriptiveDetail/ProductFormFeature[ProductFormFeatureType = "09" and ProductFormFeatureValue = "08"].
  18. +
+

4.7.3 Instructions

+
    +
  1. + IF no_hazards_or_warnings_confirmed OR (no_flashing_hazards AND no_motion_hazards AND no_sound_hazards): + THEN display "No hazards". +
  2. +
  3. + ELSE IF flashing_hazard OR motion_simulation_hazard OR sound_hazard: + THEN LET hazards be an empty array. +
      +
    1. + IF flashing_hazard: + THEN APPEND "flashing" to hazards. +
    2. +
    3. + IF motion_simulation_hazard: + THEN APPEND "motion" to hazards. +
    4. +
    5. + IF sound_hazard: + THEN APPEND "sound" to hazards. +
    6. +
    7. LET hazards_string be the result of: +
        +
      • calling join array to comma list given hazards
      • +
      • uppercasing the first character
      • +
      • concatenating " hazards" to the end of the string IF (length of hazards) > 1 ELSE concatenating " hazard" to the end of the string.
      • +
      +
    8. +
    9. display hazards_string.
    10. +
    +
  4. +
  5. + ELSE IF unknown_if_contains_hazards: + THEN display "The presence of hazards is unknown". +
  6. +
  7. + ELSE display "No information about possible hazards". +
    Note

    This key information can be hidden if metadata is missing.

    +
  8. +
+
+ +

4.8 Accessibility summary

+ +

This technique relates to Accessibility summary key information.

+

This algorithm takes the onix_record_as_text argument: a UTF-8 string representing the ONIX record.

+
Note

+ Being human-written, the accessibility summary and addendum will appear in the original language of the publication. Therefore it is necessary of take care of setting up the correct language tag information. +

+ +
Note

Accessibility summary existed when no system exposed the computed accessibility metadata. With more and more systems displaying this information, most of the accessibility summary may be redundant. It may be advised to display only the accessibility addendum.

+ +

4.8.1 Understanding the variables

+
+
accessibility_summary
+
+

Returns the description of code 00 of codelist 196 (Accessibility summary) if present in the ONIX record, otherwise if false it means that the metadata is not present.

+

This means there is a human-written text containing a short explanatory summary of the accessibility of the product or the URL of a web page comprising such a summary. Summarizes the already existent information and may add information that the publisher could not express with the other codes.

+
+
lang_attribute_accessibility_summary
+
+

Returns the lang attribute of the node containing the accessibility_summary, or the lang attribute of the nearest ancestor.

+

This is the language code in which the text of the Accessibility summary was written.

+
+
accessibility_addendum
+
+

Returns the description of code 92 of codelist 196 (Accessibility addendum) if present in the ONIX record, otherwise if false it means that the metadata is not present.

+

This means there is a human-written text containing a short addendum to the accessibility detail of the product. It contains precise information that the publisher could not express with the other's codes.

+
+
lang_attribute_accessibility_addendum
+
+

Returns the lang attribute of the node containing the accessibility_addendum, or the lang attribute of the nearest ancestor.

+

This is the language code in which the text of the Accessibility addendum was written.

+
+
known_limited_accessibility
+
+

Returns the description of code 09 of codelist 196 (Inaccessible, or known limited accessibility) if present in the ONIX record, otherwise if false it means that the metadata is not present.

+

This means there is a human-written text containing details of and reasons for limitations on accessibility of an ebook.

+
+
lang_known_limited_accessibility
+
+

Returns the lang attribute of the node containing the known_limited_accessibility, or the lang attribute of the nearest ancestor.

+

This is the language code in which the text of the Inaccessible, or known limited accessibility was written.

+
+
language_of_text
+
+

Returns the value of nearest code 01 of codelist 22 (Language of text) if present in the ONIX record, otherwise if false it means that the metadata is not present.

+

This indicates the main language of the content and therefore the most probable language of accessibility summary and addendum.

+
+
+

4.8.2 Variables setup

+
    +
  1. LET onix be the result of calling preprocessing given onix_record_as_text.
  2. +
  3. LET accessibility_addendum be the value of the node extracted from onix, using the xpath /ONIXMessage/Product/DescriptiveDetail/ProductFormFeature[ProductFormFeatureType = "09" and ProductFormFeatureValue = "92"]/ProductFormFeatureDescription.
  4. +
  5. LET lang_attribute_accessibility_addendum be the value extracted from onix, using the xpath /ONIXMessage/Product/DescriptiveDetail/ProductFormFeature[ProductFormFeatureType = "09" and ProductFormFeatureValue = "92"]/ProductFormFeatureDescription/(@lang|ancestor::*/@lang)[last()].
  6. +
  7. LET known_limited_accessibility be the value of the node extracted from onix, using the xpath /ONIXMessage/Product/DescriptiveDetail/ProductFormFeature[ProductFormFeatureType = "09" and ProductFormFeatureValue = "09"]/ProductFormFeatureDescription.
  8. +
  9. LET lang_known_limited_accessibility be the value extracted from onix, using the xpath /ONIXMessage/Product/DescriptiveDetail/ProductFormFeature[ProductFormFeatureType = "09" and ProductFormFeatureValue = "09"]/ProductFormFeatureDescription/(@lang|ancestor::*/@lang)[last()].
  10. +
  11. LET accessibility_summary be the value of the node extracted from onix, using the xpath /ONIXMessage/Product/DescriptiveDetail/ProductFormFeature[ProductFormFeatureType = "09" and ProductFormFeatureValue = "00"]/ProductFormFeatureDescription.
  12. +
  13. LET lang_attribute_accessibility_summary be the value extracted from onix, using the xpath /ONIXMessage/Product/DescriptiveDetail/ProductFormFeature[ProductFormFeatureType = "09" and ProductFormFeatureValue = "00"]/ProductFormFeatureDescription/(@lang|ancestor::*/@lang)[last()].
  14. +
  15. LET language_of_text be the value of the node extracted from onix, using the xpath /ONIXMessage/Product/DescriptiveDetail/Language[LanguageRole="01"]/LanguageCode.
  16. +
+

4.8.3 Instructions

+
    +
  1. + IF lang_attribute_accessibility_addendum is NOT empty: + THEN LET language_accessibility_addendum be the value of lang_attribute_accessibility_addendum. +
  2. +
  3. + ELSE LET language_accessibility_addendum be the value of language_of_text. +
  4. +
  5. + IF lang_known_limited_accessibility is NOT empty: + THEN LET language_known_limited_accessibility be the value of lang_known_limited_accessibility. +
  6. +
  7. + ELSE LET language_known_limited_accessibility be the value of language_of_text. +
  8. +
  9. + IF lang_attribute_accessibility_summary is NOT empty: + THEN LET language_accessibility_summary be the value of lang_attribute_accessibility_summary. +
  10. +
  11. + ELSE LET language_accessibility_summary be the value of language_of_text. +
  12. +
  13. + IF known_limited_accessibility is NOT empty: + THEN display the content of known_limited_accessibility with language_known_limited_accessibility as language. +
  14. +
  15. + IF accessibility_addendum is NOT empty: + THEN display the content of accessibility_addendum with language_accessibility_addendum as language. +
  16. +
  17. + ELSE IF accessibility_summary is NOT empty: + THEN display the content of accessibility_summary with language_accessibility_summary as language. +
  18. +
  19. + ELSE display "No accessibility summary". +
    Note

    This key information can be hidden if metadata is missing.

    +
  20. +
+
+ + + +

4.10 Additional accessibility information

+ +

This technique relates to Additional accessibility information key information.

+ +

4.10.1 Adaptation

+ +

This algorithm takes the onix_record_as_text argument: a UTF-8 string representing the ONIX record.

+
4.10.1.1 Understanding the variables
+
+
dyslexia_readability
+
+

If true it indicates that the code 24 of codelist 196 (Dyslexia readability) is present in the ONIX record, otherwise if false it means that the metadata is not present.

+

This means that the product has been specifically adapted or has features specifically to improve readability for dyslexic readers, for example specialised font, character and/or line spacing, justification and paragraph spacing, coloring and other options provided specifically to improve readability for dyslexic readers.

+
+
closed_captions
+
+

If true it indicates that the code V210 of codelist 175 (Closed captions) is present in the ONIX record, otherwise if false it means that the metadata is not present.

+

This means that the audio content of a video can be seen via closed captions that can be turned on or off by the viewer and which will be a separate file from the video itself.

+
+
open_captions
+
+

If true it indicates that the code V211 of codelist 175 (Open captions) is present in the ONIX record, otherwise if false it means that the metadata is not present.

+

This means that the audio content of a video can be seen via open captions, which means they cannot be turned off and are always visible when the video plays.

+
+
full_transcript
+
+

If true it indicates that the code V212 of codelist 175 (Full transcript) is present in the ONIX record, otherwise if false it means that the metadata is not present.

+

This means that a full transcript of the audio content of the product is supplied with it.

+
+
sign_language
+
+

If true it indicates that the code V213 of codelist 175 (Sign language interpretation) is present in the ONIX record, otherwise if false it means that the metadata is not present.

+

This means that a full signing of audio content of the product supplied with the video file.

+
+
+ +
4.10.1.2 Variables setup
+
    +
  1. LET onix be the result of calling preprocessing given onix_record_as_text.
  2. +
  3. LET dyslexia_readability be the result of calling check for node on onix, /ONIXMessage/Product/DescriptiveDetail/ProductFormFeature[ProductFormFeatureType = "09" and ProductFormFeatureValue = "24"].
  4. +
  5. LET closed_captions be the result of calling check for node on onix, /ONIXMessage/Product/DescriptiveDetail[ProductFormDetail = "V210"].
  6. +
  7. LET open_captions be the result of calling check for node on onix, /ONIXMessage/Product/DescriptiveDetail[ProductFormDetail = "V211"].
  8. +
  9. LET full_transcript be the result of calling check for node on onix, /ONIXMessage/Product/DescriptiveDetail[ProductFormDetail = "V212"].
  10. +
  11. LET sign_language be the result of calling check for node on onix, /ONIXMessage/Product/DescriptiveDetail[ProductFormDetail = "V213"].
  12. +
+ +
4.10.1.3 Instructions
+
    +
  1. LET adaptation be an empty array.
  2. +
  3. + IF dyslexia_readability: + THEN APPEND "dyslexia readability" to adaptation. +
  4. +
  5. + IF closed_captions: + THEN APPEND "closed captions" to adaptation. +
  6. +
  7. + IF open_captions: + THEN APPEND "open captions" to adaptation. +
  8. +
  9. + IF full_transcript: + THEN APPEND "full transcript" to adaptation. +
  10. +
  11. + IF sign_language: + THEN APPEND "sign language" to adaptation. +
  12. +
  13. IF adaptation is NOT empty: +
      +
    1. LET adaptation_string be the result of: + +
    2. +
    3. display adaptation_string.
    4. +
    +
  14. +
+
+ +

4.10.2 Clarity

+ +

This algorithm takes the onix_record_as_text argument: a UTF-8 string representing the ONIX record.

+
4.10.2.1 Understanding the variables
+
+
text_to_speech_hinting
+
+

If true it indicates that the code 21 of codelist 196 (Text-to-speech hinting provided) is present in the ONIX record, otherwise if false it means that the metadata is not present.

+

This means that text-to-speech has been optimised through provision of PLS lexicons, SSML or CSS Speech synthesis hints or other speech synthesis markup languages or hinting.

+
+
color_not_sole_means_of_conveying_information
+
+

If true it indicates that the code 25 of codelist 196 (Use of color is not sole means of conveying information) is present in the ONIX record, otherwise if false it means that the metadata is not present.

+

This means that for readers with color vision deficiency, use of color (eg in diagrams, graphs and charts, in prompts or on buttons inviting a response) is not the sole means of graphical distinction or of conveying information.

+
+
high_contrast_between_text_and_background
+
+

If true it indicates that the code 26 of codelist 196 (Use of high contrast between text and background color) is present in the ONIX record, otherwise if false it means that the metadata is not present.

+

This means that body text is presented with a contrast ratio of at least 4.5:1 (or 3:1 for large/heading text).

+
+
ultra_high_contrast_between_text_and_background
+
+

If true it indicates that the code 37 of codelist 196 (Use of ultra-high contrast between text foreground and background) is present in the ONIX record, otherwise if false it means that the metadata is not present.

+

This means that body text is presented with a contrast ratio of at least 7:1 (or 4.5:1 for large/heading text).

+
+
visible_page_numbering
+
+

If true it indicates that the code E205 of codelist 175 (Visible page numbering) is present in the ONIX record, otherwise if false it means that the metadata is not present.

+

This means that the e-publication (mostly in the case of a fixed-format) contains visible page numbers.

+
+
high_contrast_between_foreground_and_background_audio
+
+

If true it indicates that the code 27 of codelist 196 (Use of high contrast between foreground and background audio) is present in the ONIX record, otherwise if false it means that the metadata is not present.

+

This means that foreground audio content (eg voice) is presented with no or low background noise (eg ambient sounds, music), at least 20dB below the level of the foreground, or background noise can be switched off (eg via an alternative audio track). Brief and occasional sound effects may be as loud as foreground voice so long as they are isolated from the foreground.

+
+
without_background_sounds
+
+

If true it indicates that the code A312 of codelist 175 (Without background sounds) is present in the ONIX record, otherwise if false it means that the metadata is not present.

+

This means that pre-recorded audiobook narration does not contain any background sounds, including music, sound effects, etc, though music and effects may be present if isolated from the speech (ie the sounds do not overlap).

+
+
+ +
4.10.2.2 Variables setup
+
    +
  1. LET onix be the result of calling preprocessing given onix_record_as_text.
  2. +
  3. LET text_to_speech_hinting be the result of calling check for node on onix, /ONIXMessage/Product/DescriptiveDetail/ProductFormFeature[ProductFormFeatureType = "09" and ProductFormFeatureValue = "21"].
  4. +
  5. LET color_not_sole_means_of_conveying_information be the result of calling check for node on onix, /ONIXMessage/Product/DescriptiveDetail/ProductFormFeature[ProductFormFeatureType = "09" and ProductFormFeatureValue = "25"].
  6. +
  7. LET high_contrast_between_text_and_background be the result of calling check for node on onix, /ONIXMessage/Product/DescriptiveDetail/ProductFormFeature[ProductFormFeatureType = "09" and ProductFormFeatureValue = "26"].
  8. +
  9. LET ultra_high_contrast_between_text_and_background be the result of calling check for node on onix, /ONIXMessage/Product/DescriptiveDetail/ProductFormFeature[ProductFormFeatureType = "09" and ProductFormFeatureValue = "37"].
  10. +
  11. LET visible_page_numbering be the result of calling check for node on onix, /ONIXMessage/Product/DescriptiveDetail[ProductFormDetail = "E205"].
  12. +
  13. LET high_contrast_between_foreground_and_background_audio be the result of calling check for node on onix, /ONIXMessage/Product/DescriptiveDetail/ProductFormFeature[ProductFormFeatureType = "09" and ProductFormFeatureValue = "27"].
  14. +
  15. LET without_background_sounds be the result of calling check for node on onix, /ONIXMessage/Product/DescriptiveDetail[ProductFormDetail = "A312"].
  16. +
+ +
4.10.2.3 Instructions
+
    +
  1. LET clarity be an empty array.
  2. +
  3. + IF text_to_speech_hinting: + THEN APPEND "text-to-speech hinting provided" to clarity. +
  4. +
  5. + IF color_not_sole_means_of_conveying_information: + THEN APPEND "color is not the sole means of conveying information" to clarity. +
  6. +
  7. + IF high_contrast_between_text_and_background: + THEN APPEND "high contrast between text and background" to clarity. +
  8. +
  9. + IF ultra_high_contrast_between_text_and_background: + THEN APPEND "ultra high contrast between text and background" to clarity. +
  10. +
  11. + IF visible_page_numbering: + THEN APPEND "visible page numbering " to clarity. +
  12. +
  13. + IF high_contrast_between_foreground_and_background_audio: + THEN APPEND "high contrast between foreground and background audio" to clarity. +
  14. +
  15. + IF without_background_sounds: + THEN APPEND "without background sounds" to clarity. +
  16. +
  17. IF clarity is NOT empty: +
      +
    1. LET clarity_string be the result of: + +
    2. +
    3. display clarity_string.
    4. +
    +
  18. +
+
+
+
+

A. Acknowledgements

This section is non-normative.

+ +

A.1 Contributors

+ + +
+

A.2 Reviewers

+ + +
+
+ + + \ No newline at end of file diff --git a/UX-Guide-Metadata/bin/publish-principles.sh b/UX-Guide-Metadata/bin/1.0/publish-principles.sh similarity index 100% rename from UX-Guide-Metadata/bin/publish-principles.sh rename to UX-Guide-Metadata/bin/1.0/publish-principles.sh diff --git a/UX-Guide-Metadata/bin/publish-techniques.sh b/UX-Guide-Metadata/bin/1.0/publish-techniques.sh similarity index 100% rename from UX-Guide-Metadata/bin/publish-techniques.sh rename to UX-Guide-Metadata/bin/1.0/publish-techniques.sh diff --git a/UX-Guide-Metadata/bin/publish-drafts.sh b/UX-Guide-Metadata/bin/publish-drafts.sh new file mode 100755 index 00000000..3c59e28c --- /dev/null +++ b/UX-Guide-Metadata/bin/publish-drafts.sh @@ -0,0 +1,84 @@ +#!/bin/bash + +# Script for creating static version for the UX-Guide-Metadata documents +# It starts from the published draft (in the main branch): https://w3c.github.io/publ-a11y/UX-Guide-Metadata/draft/principles/ +# It generates the static version +# It runs nuchecker and link checker +# The output is a zip folder that can be sent to W3C staff for publishing on the website + +# pre-run: cleans and temporary directory... +basedir=$(readlink -f "$0") +basedir=$(dirname "$basedir") +documents=( "principles" "techniques/epub-metadata" "techniques/onix-metadata" ) +bold=$(tput bold) +normal=$(tput sgr0) + +# input +read -p 'Publishing date (format YYYY-MM-DD): ' publishDate +publishDateWithoutDashes=${publishDate//-/} + +for document in "${documents[@]}" +do + printf "\n\nDocument ${bold}$document${normal}...\n" + + # variables for document + tmpdir=$(mktemp -d) + filename=${document##*/} + versionFilename="$filename-draft-note-$publishDateWithoutDashes.html" + versionURL="https://w3c.github.io/publ-a11y/UX-Guide-Metadata/2.0/$document/$versionFilename" + + # copies the content to the temporary directory + printf "\nCopying the content to the temporary directory..." + cp -a "$basedir/../draft/$document/." $tmpdir + rm $tmpdir/*.md + + # generates the static version + printf "\nGenerating static version...\n" + curl \ + -G \ + --data-urlencode "type=respec" \ + --data-urlencode "url=https://w3c.github.io/publ-a11y/UX-Guide-Metadata/draft/$document/?specStatus=CG-DRAFT&publishDate=$publishDate&thisVersion=$versionURL" \ + https://labs.w3.org/spec-generator/ \ + -o "$tmpdir/index.html" + + # runs nuchecker + nuVersion=$(java -jar "$basedir/libs/vnu/vnu.jar" --version) + printf "\nRunning Nu Html Checker version $nuVersion...\n" + java -jar "$basedir/libs/vnu/vnu.jar" \ + "$tmpdir/index.html" + + + # commenting while waiting for this issue to be fixed: https://github.com/validator/validator/issues/1745 + # if [ $? -gt 0 ] + # then + # exit 1 + # fi + + # runs link checker + # installed via commands: + # cpan install App::cpanminus + # cpanm W3C::LinkChecker@4.81 + # cpan install Mozilla::CA + # tried to install version 5.0.0 on mac, but I got errors + checklinkVersion=$(checklink --version) + printf "\nRunning $checklinkVersion...\n" + checklink \ + --summary \ + --broken \ + "https://w3c.github.io/publ-a11y/UX-Guide-Metadata/draft/$document/?specStatus=CG-DRAFT&publishDate=$publishDate" + + # commenting while waiting for this issue to be fixed: https://github.com/w3c/publ-a11y/issues/386 + # if [ $? -gt 0 ] + # then + # exit 1 + # fi + + printf "\nMoving temporary files to directory..." + mv $tmpdir/* "$basedir/../2.0/$document/" + + printf "\nCopying for versioning..." + cp "$basedir/../2.0/$document/index.html" "$basedir/../2.0/$document/$versionFilename" + +done + +printf "\nDone" \ No newline at end of file