Other techniques for implementing EPUB accessibility metadata are available: Display Techniques for Displaying Accessibility Metadata
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.
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.
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.
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.
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.
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:
In this section we define the functions common to all techniques, which are called by them during execution.
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.
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:
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:
True
.
False
.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.
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.
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).
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.
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.
/ONIXMessage/Product/DescriptiveDetail/ProductFormFeature[ProductFormFeatureType = "09" and ProductFormFeatureValue = "52"]
./ONIXMessage/Product/DescriptiveDetail/PrimaryContentType[text() = "10"]
OR the result of calling check for node on onix, /ONIXMessage/Product/DescriptiveDetail/ProductContentType[text() = "10"]
./ONIXMessage/Product/DescriptiveDetail/PrimaryContentType[text() = "07" or text() = "18" or text() = "19" or text() = "12" or text() = "49" or text() = "20"]
OR the result of calling check for node on onix, /ONIXMessage/Product/DescriptiveDetail/ProductContentType[text() = "07" or text() = "18" or text() = "19" or text() = "12" or text() = "49" or text() = "20"]
./ONIXMessage/Product/DescriptiveDetail/ProductFormFeature[ProductFormFeatureType = "09" and (ProductFormFeatureValue = "14" or ProductFormFeatureValue = "15" or ProductFormFeatureValue = "16")]
."Readable in read aloud and braille"
.
"Not fully readable in read aloud and braille"
.
"May not be fully readable in read aloud and braille"
.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.
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).
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).
/ONIXMessage/Product/DescriptiveDetail/ProductFormFeature[ProductFormFeatureType = "09" and ProductFormFeatureValue = "36"]
./ONIXMessage/Product/DescriptiveDetail/ProductFormDetail[text() = "E201"]
AND NOT the result of calling check for node on onix, /ONIXMessage/Product/DescriptiveDetail/ProductFormDetail[text() = "E200"]
."Appearance can be modified"
.
"Appearance cannot be modified"
.
"Appearance modifiability not known"
.This technique relates to Conformance key information.
This technique relates to Pre-recorded audio key information.
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.
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).
If true it indicates that the code 16 of codelist 196 (Visualised 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.
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.
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.
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.
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.
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.
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.
/ONIXMessage/Product/DescriptiveDetail/DescriptiveDetail[PrimaryContentType = "19" or ContentType = "19"]
./ONIXMessage/Product/DescriptiveDetail/ProductFormFeature[ProductFormFeatureType = "09" and ProductFormFeatureValue = "16"]
./ONIXMessage/Product/DescriptiveDetail/ProductFormFeature[ProductFormFeatureType = "09" and ProductFormFeatureValue = "15"]
./ONIXMessage/Product/DescriptiveDetail/DescriptiveDetail[PrimaryContentType = "47" or ContentType = "47"]
./ONIXMessage/Product/DescriptiveDetail/ProductFormFeature[ProductFormFeatureType = "09" and ProductFormFeatureValue = "18"]
./ONIXMessage/Product/DescriptiveDetail/ProductFormFeature[ProductFormFeatureType = "09" and ProductFormFeatureValue = "34"]
./ONIXMessage/Product/DescriptiveDetail/DescriptiveDetail[PrimaryContentType = "48" or ContentType = "48"]
./ONIXMessage/Product/DescriptiveDetail/ProductFormFeature[ProductFormFeatureType = "09" and ProductFormFeatureValue = "35"]
./ONIXMessage/Product/DescriptiveDetail/ProductFormFeature[ProductFormFeatureType = "09" and ProductFormFeatureValue = "17"]
."Charts and diagrams have extended descriptions"
.
"Visualised data also available as non-graphical data"
.
"Accessible chemistry content"
.
"Accessible math content"
.
"Accessibility of formulas, charts, and diagrams unknown"
.
This technique relates to Hazards key information.
This algorithm takes the onix_record_as_text argument: a UTF-8 string representing the ONIX record.
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.
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.
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.
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.
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.
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.
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.
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.
/ONIXMessage/Product/DescriptiveDetail/ProductFormFeature[ProductFormFeatureType = "12" and ProductFormFeatureValue = "00"]
./ONIXMessage/Product/DescriptiveDetail/ProductFormFeature[ProductFormFeatureType = "12" and ProductFormFeatureValue = "13"]
./ONIXMessage/Product/DescriptiveDetail/ProductFormFeature[ProductFormFeatureType = "12" and ProductFormFeatureValue = "14"]
./ONIXMessage/Product/DescriptiveDetail/ProductFormFeature[ProductFormFeatureType = "12" and ProductFormFeatureValue = "17"]
./ONIXMessage/Product/DescriptiveDetail/ProductFormFeature[ProductFormFeatureType = "12" and ProductFormFeatureValue = "18"]
./ONIXMessage/Product/DescriptiveDetail/ProductFormFeature[ProductFormFeatureType = "12" and ProductFormFeatureValue = "15"]
./ONIXMessage/Product/DescriptiveDetail/ProductFormFeature[ProductFormFeatureType = "12" and ProductFormFeatureValue = "16"]
./ONIXMessage/Product/DescriptiveDetail/ProductFormFeature[ProductFormFeatureType = "09" and ProductFormFeatureValue = "08"]
."No hazards"
.
"flashing"
to hazards.
"motion"
to hazards.
"sound"
to hazards.
", "
", "
with " and "
" hazards"
to the end of the string IF (length of hazards) > 1 ELSE concatenating " hazard"
to the end of the string."The presence of hazards is unknown"
.
"No information about possible hazards"
.
This key information can be hidden if metadata is missing.
This technique relates to Accessibility summary key information.
This technique relates to Additional accessibility information key information.