Accessibility

Status: Published
Version: 1.0
License: this recommendation document is licensed under CC BY-ND 4.0 UK
DOI: https://doi.org/10.3789/niso-rp-47-2024
ISBN: 978-1-950980-30-7

Provenance

JATS4R accessibility subgroup members (in alphabetical order):

Jeffrey Beck (Co-chair), NCBI/NLM/NIH (https://orcid.org/0000-0002-1798-9797); Joni Dames, Inera | Wiley Partner Solutions (https://orcid.org/0000-0002-4257-2045); David Haber, American Society for Microbiology (https://orcid.org/0000-0001-6327-0305); Audrey Hamelers, Dryad Data Repository (https://orcid.org/0000-0003-1555-5116); Melissa Jones, Silverchair; Bill Kasdorf, Kasdorf & Associates, LLC (https://orcid.org/0000-0001-7002-4786); George Kerscher, DAISY Consortium and Global Literacy Benetech; Stephen Laverick (Co-chair), Green Fifteen Publishing Consultancy (https://orcid.org/0000-0001-9063-766X); Jennifer McAndrews, AIP Publishing; Adam Palumbo, NIEHS/NIH; Oliver Rickard, Atypon | Wiley Partner Solutions; Tzviya Siegman, Wiley; Guy van der Kolk, Typefi; Jonathan Watson, Emerald (https://orcid.org/0000-0003-2620-0767); Mark Weiler, Laurier University

Context

<abstract>, <ack>, <alt-text>, <alternatives>, <app>, <back>, <caption>, <custom-meta>, <custom-meta-group>, <def>, <def-list>, <disp-formula>, <ext-link>, <fig>, <graphic>, <inline-formula>, <inline-graphic>, <inline-media>, <label>, <list>, <list-item>, <long-desc>, <media>, <meta-name>, <meta-value>, <named-content>, <private-char>, <processing-meta>, <pub-id>, <related-article>, <sec>, <self-uri>, <table>, <table-wrap>, <textual-form>, <td>, <th>, <title>, <tr>, <uri>, <xref>

@alt, @content-type, @continued-from, @disp-level, @headers, @list-type, @prefix-word, @scope, @summary, @vocab, @vocab-identifier, @vocab-term-identifier, @xlink:href, @xlink:title, @xml:lang

Description

Accessibility is the practice of ensuring there are minimal barriers to access and interact with websites and other electronic information for users with physical or situational disabilities. Accessible design ensures that there is equal access to information and functionality for as many users as possible, including those with permanent, temporary, or situational impairment of, for example: vision, hearing, mobility, memory, attention, or cognition; as well as those with economic or technological restrictions, such as internet speed and bandwidth.

This document provides a best-practice recommendation for tagging objects in JATS XML documents so that the XML can then be used to make accessible end user presentation versions of the article, generally in HTML or EPUB formats. The goal is not to make the JATS XML accessible but to ensure that the appropriate information is available in the XML document.

We have focused on the XML document tagging; rendering or final presentation of the objects is considered to be out of scope for these recommendations. The following recommendation is for JATS v 1.3 and backward. Differences between the Journal Publishing and Archiving DTDs are noted within the recommendations as applicable.

Additional Reading

Recommendation

Figures and images

  1. <alt-text>. This element is required for accessibility for all images and/or figures. The content text should describe the image/figure as a whole in a brief yet meaningful way. To support reuse of images, <alt-text> should be applied to the <graphic> element (See Example 1).

    [[Validator tool result: if self::graphic[not(alt-text)] ERROR “All <graphic> must have <alt-text>.”]]

    <alt-text> content should not duplicate the figure caption or figure title plus caption.

    [[Validator tool result: if self::graphic[normalize-space(alt-text)= normalize-space(parent::fig/caption/title)] WARNING “<alt-text> should not be a duplication of the figure title.” ]]

    [[Validator tool result: if self::graphic[normalize-space(alt-text)= normalize-space(parent::fig/caption/p[1])] WARNING “<alt-text> should not be a duplication of the figure caption.”]]

    <alt-text> should contain only pertinent information and be kept brief for a good user experience. A lengthier description can be tagged using <long-desc>, see below. When deciding what content to put in alt-text and what content to put in long-desc, it’s worth considering that (in the HTML presentation version) alt-text is read out by screen readers as part of the normal flow of the page, whereas the user tends to have the choice of whether to hear the long-desc or not.

    If an image is decorative rather than substantive (this would usually be an Editorial decision), use <alt-text>null</alt-text>. The explicit “null” value is preferred because an empty <alt-text> could mean that the value was simply forgotten. This will allow screen readers to skip images included in a document for esthetic reasons only or those that are illustrations of provided text.  For a deeper discussion on decorative text, see the Web Accessibility Initiative on Decorative Images.

    [[Validator tool result: if self::graphic[normalize-space(alt-text)=”]  WARNING “Use value ‘null’ to indicate a decorative (non-substantive) image” ]]

    In the instance of “text as an image”, the text depicted within the image should be stated within <alt-text>.

    We do not recommend representing tables as images, but if it is unavoidable due to constraints of the content available, follow these “Figures and images” recommendations.

    Multi-panel images should include, in <alt-text>, a framing description of the whole image (e.g, “A figure consisting of 4 panels.”) followed by a description of each panel (e.g., “Panel 1, an image of a cell. Panel 2, an image of a cell nucleus.”) (See Examples 2 & 3).

    If the <alt-text> content has been generated by machine, use the @content-type=”machine-generated” on <alt-text>.
  2.  <long-desc>. Include this element when <alt-text> cannot sufficiently describe the complexity of an image or figure. The use of <long-desc> is especially important for figures such as graphs or tables which communicate such information as measurements, values, trends, and conclusions.

    <long-desc> may be a child of the <graphic> or a child of <fig> if the description applies to a whole figure that includes multiple <graphic> elements. It should not be in both places (See Example 1).

    [[Validator tool result: if self::graphic[child::long-desc and parent::fig[child::long-desc]] ERROR “<long-desc> should be for the entire figure or for each included image, not both places.”]]

    A figure or image may link to a structured long description that is contained elsewhere within the document with <xref ref-type=”custom” custom-type=”long-desc” rid=”{targetID}”/> (See Example 4b) or externally with @xlink:href on <long-desc> (See Example 4a).

    If the <long-desc> content has been generated by machine, use the @content-type=”machine-generated” on <long-desc>.

Audio and Video

  1. Any audio or video included in an article should be accompanied by a transcript or a description of the audio or video that is either supplied in the document or referenced externally (See Examples 5 & 6). A transcript is text conveying the spoken audio verbatim and descriptions of sounds or actions in the recording, and a description (<long-desc>) is a detailed summary of the recording.

    For transcripts included in the document, <media> should include an <xref> that links to a transcript elsewhere in the document, either in a <sec sec-type=”transcript”> in <back>, or in an appendix (<app content-type=”transcript”>). <xref> is available in <media> in JATS 1.3 and later. Linking to transcripts within the JATS XML document is not available in earlier versions of the article models.

    Alternatively, the media element could contain an <ext-link> to a transcript, a .vtt file or other accessible version of the recording outside the document.
  1. For shorter <inline-media> audio objects, use <alt-text> to describe the audio or video (See Example 7).

Tables

The scope of this recommendation is for tables used for tabular data, in which values are organized into rows and columns and row and/or column headers are present. It is not good practice to use tables for layout alone, and it should be avoided.

  1. Data tables must be tagged using the XHTML-based model outlined in JATS. OASIS (CALS) tables are not recommended for accessibility and should not be used.

    [[Validator tool result: if  <oasis:table> exists,  ERROR “OASIS (CALS) tables are not recommended for accessibility and should not be used. Tag all tables using the XHTML-based JATS model instead.”]]
  1. <table>. Data tables must be tagged using the <table> element and should not be supplied as images or other non-tabular content. Images can be used within table cells, but they should not be used in lieu of table tagging.

    [[Validator tool result: if <table-wrap> element does not include  <table>, ERROR “<table> element not found inside <table-wrap>. The <table> element is required inside <table-wrap> for data table accessibility.”]]
  1. <th>. This element is required for data table accessibility. It can be used to define headers either for columns (within a single <tr>) or for rows (across multiple <tr> elements), or both, but it must be present (See Example 8).

    [[Validator tool result: if  <th> element not found within <table>, ERROR “<th> element not found within <table>. Headers must be included in <th> tags for data table accessibility.”]]
  1. @headers. For more complex tables, where the relationship between the headers and the data is potentially unclear, this attribute is recommended for data table accessibility. It can be used on either a <th> element or <td> element to explicitly define the relationship between a header and its associated cells (See Example 9). 
  2. @scope. For tables with irregular or merged headers, this attribute is recommended for data table accessibility. It can be used on the <td> or <th> element to provide additional information about the table’s structure (See Example 9).
  3. <caption>. This element is recommended to help users identify a table and understand what it is about.
  4. @summary. If you wish to provide a longer summary, we recommend using the @summary attribute on the <table> element. The summary attribute has been deprecated in HTML, but this attribute can be used in JATS to store the information.
  1. <ext-link>. The text wrapped by <ext-link> should be concise and should meaningfully describe the linked object including when the link is removed from its context. e.g.,

    Read <ext-link xlink:href=”https://jats.nlm.nih.gov/archiving/tag-library/1.3/element/ext-link.html”>more about linking in JATS</ext-link>

    is preferred over

    <ext-link xlink:href=”https://jats.nlm.nih.gov/archiving/tag-library/1.3/element/ext-link.html”>Read more</ext-link> about linking in JATS

    A URI is not descriptive link text. <ext-link> should not wrap URI text content (See Example 10a).

    [[Validator tool result: if <ext-link> text content contains a URL, WARNING: ‘A URI is not descriptive link text. The text of ext-link should describe the linked object.’]]

    If for any reason the <ext-link> cannot contain fully descriptive text, a description of the link should be provided in @xlink:title.

    [[Validator tool result: if (<ext-link> is empty  or contains just a URL) and not(@xlink:title), ERROR: ‘Text that describes the linked object must be provided for each link either in the element content or in @xlink:title.’]]
  1. <uri>, <self-uri>. A URI is not accessible link text. If a URI is turned into a link in any product of the JATS, care should be taken to provide a meaningful description for the link based on the surrounding context. If @xlink:href is included on the element, an accessible description of the link should be provided in @xlink:title (See Example 10b).

    [[Validator tool result: if (<uri> is empty  or contains just a URL) and not(@xlink:title), ERROR: ‘Text that describes the linked object must be provided for each link either in the element content or in @xlink:title.’]]

    [[Validator tool result: if (<self-uri> is empty  or contains just a URL) and not(@xlink:title), ERROR: ‘Text that describes the linked object must be provided for each link either in the element content or in @xlink:title.’]]

    [[Validator tool result: if <uri> text content contains a URL, WARNING: ‘A URI is not descriptive link text. The text of uri should describe the linked object.’]]

    [[Validator tool result: if <self-uri> text content contains a URL, WARNING: ‘A URI is not descriptive link text. The text of self-uri should describe the linked object.’]]
  1. <xref>, <pub-id>, <related-article>, @xlink:href. <xref> is often turned into a link in products of the JATS, and there is a large list of elements which accept the @xlink:href attribute, any of which could be turned into links in the results of transformations from the JATS.

    If any elements are turned into a link in any product of the JATS, care should be taken to provide a meaningful description for the link based on the surrounding context. Following JATS4R recommendations for relevant areas can help to ensure that the context is complete and enough information is available to create an accessible link. If @xlink:href is included on the element, an accessible description of the link can be also provided in @xlink:title.

    Care should also be taken in renderings  of JATS XML to ensure that the target size, or clickable area, of links is large enough to be physically accessible by users. This can be especially important to consider with <xref> links, for example to references or footnotes, where the text can be as short as a single character. Prefer more than a single character as link content, or when creating transformations and styling the results, create link elements with target sizes meeting WCAG22 target size requirements.

Headings

  1. <title>. JATS requires that <sec> (and similar elements taking <title> that also take <sec>, such as <abstract>, <ack>, and <app>) be properly nested. To create accessible headings, <title> must be included in each <sec> (See Example 11).

    [[Validator tool result: if <sec> does not contain <title>, ERROR: ‘Each sec element must have a title.’]]

    In transformation, any <title> or other element that is used to create a heading must do so in proper ranked/nesting order: starting from rank 1, and with no levels skipped when beginning a new section.
  2. @disp-level. Do not use @disp-level or otherwise include sections in which the display and hierarchical heading level differ from each other. This attribute is only available in the Archiving Tag Sets.

    [[Validator tool result: if <sec> has @disp-level, ERROR: ‘Document structure should be defined by the position of the sections, not by the @disp-level attribute.’]]

Lists

  1. <list>, <list-item>, <def-list>, <def>, @list-type, @prefix-word, @continued-from. Use list and definition list elements and attributes according to the JATS specification (See Examples 12a & 12b).
  2. <list-item><label>. <label> overrides the @list-type with a custom list label for each <list-item>. This is less accessible and machine readable, and should be avoided if a standard ordered-list numbering or unordered-list display @list-type can be used.

    [[Validator tool result: if <list-item> contains <label>, WARNING: ‘Accessible @list-type overridden by list-item/label.’]]

Language and pronunciation

  1. @xml:lang. @xml:lang must be used to indicate the document language at the article level, and should then be used to indicate the language of any elements or phrases which differ from the main language used. Declaring the correct language of text affects the pronunciation used by screen readers. Follow JATS language code specifications.

    Phrases which differ in language from their containing elements must be indicated using @xml:lang on <named-content> with the @content-type=”foreign-phrase” attribute (See Example 13).
  1. @alt. Use to provide a short textual alternative or pronunciation guide for components such as abbreviations and emoticons—for example, to indicate that “WHO” should be pronounced “W.H.O.” or “World Health Organization”, and not “who”; or that “:-)” should be interpreted as “smile” (See Example 14).

Special characters

  1. For the correct reading of your special characters by screen readers or other text-to-speech or text-to-braille systems, ensure that you use the correct Unicode value in each instance, rather than any character that looks similar to the character desired. For example, when indicating temperature, take care to use the degree symbol (°, &#176;) and not a modifier small O (°, &#7506;) or the masculine ordinal symbol (º, &#186;).
  2. <private-char> Do not use <private-char>. Use the correct Unicode values for any characters that should be read. Do not use graphics for character representation.

    [[Validator tool result: if <private-char>, ERROR: ‘Do not use <private-char> or use graphics for special characters.’]]

Math

  1. All math must be encoded using MathML. MathML is a W3C standard for describing mathematical notation (See Examples 15 & 16).

    Encoding math as MathML enables presentation services to deliver the facilities required to make math accessible. These facilities include unambiguous speech generation, braille generation, magnification, coloring, sync highlighting and the ability to allow the user to navigate around mathematical expressions. MathML is now natively supported by all the major web browsers and screen readers.

    Do not use <graphic> to represent math. Having a <graphic> with <alt-text> is not acceptable. The <alt-text> does not enable the accessibility facilities described above.

    [[Validator tool result: if <disp-formula> contains <graphic>, ERROR: ‘Do not use <graphic> to represent mathematical notation.’]]

    [[Validator tool result: if <inline-formula> contains <graphic>, ERROR: ‘Do not use <graphic> to represent mathematical notation.’]]

Accessibility metadata

While most accessibility metadata is more appropriate for the rendered instance of an article, there are some properties that could be helpful to include in the JATS XML (See Example 17). These are defined as properties of a Creative Work at schema.org (https://schema.org/CreativeWork):

  • accessibilityFeature: Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility.
  • accessibilityHazard: A characteristic of the described resource that is physiologically dangerous to some users. Related to WCAG 2.2 guideline 2.3. 
  • accessibilitySummary: A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as “short descriptions are present but long descriptions will be needed for non-visual users” or “short descriptions are present and no long descriptions are needed.” 

These properties are article-level properties. The values for these properties are defined by the Schema.org Accessibility Properties for Discoverability Vocabulary (https://www.w3.org/community/reports/a11y-discov-vocab/CG-FINAL-vocabulary-20230306/#accessibilityFeature-vocabulary). JATS-appropriate values are included in this recommendation.

  1. accessibilityFeature.  Include accessibilityFeature in a <custom-meta-group> within the article’s <processing-meta>.

    a. The <custom-meta-group> should have a content-type attribute set to “accessibility-metadata” to identify it as Accessibility Metadata. This <custom-meta-group> may also contain other Accessibility Metadata properties. It may contain an xml:base attribute to be applied to all descendant vocab-identifier and vocab-term-identifier attributes.

    b. Include each accessibilityFeature property in a distinct <custom-meta> within the Accessibility Metadata <custom-meta-group>.

    c. Set @vocab=”schema.org” on each <custom-meta>.

    d. Set the URI for the vocabulary in @vocab-identifier as “https://www.w3.org/community/reports/a11y-discov-vocab/CG-FINAL-vocabulary-20230306/#accessibilityFeature”.

    e. Set the URI for the term in @vocab-term-identifier.

    f. Include “accessibilityFeature” in the <meta-name>.

    g. Include the accessibilityFeature value in <meta-value>.

    h. Use values from this subset of the accessibilityFeature controlled vocabulary: annotations, ARIA, pageBreakMarkers, pageNavigation, structuralNavigation, tableOfContents, alternativeText, audioDescription, captions, describedMath, longDescription, rubyAnnotations, signLanguage, transcript, ChemML, latex, MathML, none.
<meta-value>URI (xml:base=”https://www.w3.org/community/reports/a11y-discov-vocab/CG-FINAL-vocabulary-20230306/”)
annotations#annotations
ARIA#ARIA
pageBreakMarkers#pageBreakMarkers
pageNavigation#pageNavigation
structureNavigation#structureNavigation
tableOfContents#tableOfContents
alternativeText#alternativeText
audioDescription#audioDescription
captions#captions
describedMath#describedMath
longDescription#longDescription
rubyAnnotations#rubyAnnotations
signLanguage#signLanguage
transcript#transcript
ChemML#ChemML
latex#latex
MathML#MathML
none#feature-none
  1. accessibilityHazard.  Include accessibilityHazard in a <custom-meta-group> within the article’s <processing-meta>. This is an article-level property, and it should be set on the article if any referenced file includes any of the hazards listed.

    a. The <custom-meta-group> should have a content-type attribute set to “accessibility-metadata” to identify it as Accessibility Metadata. This <custom-meta-group> may also contain other Accessibility Metadata properties. It may contain an xml:base attribute to be applied to all descendant vocab-identifier and vocab-term-identifier attributes.

    b. Include each accessibilityHazard property in a distinct <custom-meta> within the Accessibility Metadata <custom-meta-group>.

    c. Set @vocab=”schema.org” on each <custom-meta>.

    d. Set the URI for the vocabulary in @vocab-identifier as “https://www.w3.org/community/reports/a11y-discov-vocab/CG-FINAL-vocabulary-20230306/#accessibilityHazard“.

    e. Set the URI for the term in @vocab-term-identifier.

    f. Include “accessibilityHazard” in the <meta-name>.

    g. Include the accessibilityHazard value in <meta-value>.

    h. Use values from this subset of the accessibilityHazard controlled vocabulary: flashing, noFlashingHazard, motionSimulation, noMotionSimulationHazard, sound, noSoundHazard, unknown, none.
<meta-value>URI (xml:base=”https://www.w3.org/community/reports/a11y-discov-vocab/CG-FINAL-vocabulary-20230306/”)
flashing#flashing
noFlashingHazard#noFlashingHazard
motionSimulation#motionSimulation
noMotionSimulationHazard#noMotionSimulationHazard
sound#sound
noSoundHazard#noSoundHazard
unknown#unknown
none#hazard-none
  1. accessibilitySummary.  Include accessibilitySummary in a <custom-meta-group> within the article’s <processing-meta>.

    a. The <custom-meta-group> should have a content-type attribute set to “accessibility-metadata” to identify it as Accessibility Metadata. This <custom-meta-group> may also contain other Accessibility Metadata properties. 

    b. Include each accessibilitySummary in a distinct <custom-meta> within the Accessibility Metadata <custom-meta-group>.

    c. Set @vocab=”schema.org” on each <custom-meta>.

    d. Set the URI for the vocabulary in @vocab-identifier as “https://www.w3.org/community/reports/a11y-discov-vocab/CG-FINAL-vocabulary-20230306/#accessibilitySummary”.

    e. Set the URI for the term in @vocab-term-identifier.

    f. Include “accessibilitySummary” in the <meta-name>.

    g. Include the summary statement in <meta-value>.

    [[Validator tool result: if self::custom-meta-group[@content-type=’accessibility-metadata’ and not(parent::processing-meta)] ERROR “Accessibility Metadata should be in a <custom-meta-group> in <processing-meta>.”]]

    [[Validator tool result: if self::custom-meta[parent::custom-meta-group[@content-type=’accessibility-metadata’] and not(@vocab=’schema.org’)] ERROR “Accessibility Metadata entries should use the schema.org vocabulary.”]]

    [[Validator tool result: test self::custom-meta[parent::custom-meta-group[@content-type=’accessibility-metadata’] and (meta-name=’accessibilityFeature’ or meta-name=’accessibilityHazard’ or meta-name=’accessibilityStatement’)] ERROR “Accessibility Metadata entries must have a <meta-name> value of ‘accessibilityFeature’, ‘accessibilityHazard’, or ‘accessibilityStatement’.”]]

Alternatives

<alternatives> is a container element used to hold a group of processing alternatives. This is a useful structure for containing logically equivalent versions of the same information object. But it requires users of the content to understand and be able to choose the best representation of the object. When rendering an object that is provided in <alternatives>, the most accessible option should be used. This may not alway be obvious, so use of <alternatives> should be limited. 

  1. Do not use <alternatives> as a way to avoid providing an accessible version of an object. If an object is provided within alternatives at least one version must meet the recommendations for that object type provided in this document. For example:

    a. <alternatives> that includes an image of a formula and that formula is included as MathML

    b. <alternatives> that includes an image of a table and that same table is tagged in HTML with the appropriate headings, scope, and captions as described in the Tables section above (See Example 18).
  2. Avoid using <textual-form>. Use <alt-text>, <long-desc> and tagging for transcripts as defined above

    [[Validator tool result: test self::textual-form[parent::alternatives and (ancestor::disp-formula or ancestor::inline-formula)] ERROR “Do not use <textual-form> for math. Use MathML tagging.

    [[Validator tool result: test self::textual-form[parent::alternatives and (ancestor::fig or ancestor::fig-group)] ERROR “Do not use <textual-form> for figures. Use <alt-text>, <long-desc>, or supply a transcript for audio or  video material.

Examples

Example 1. <alt-text> and <long-desc> on a simple figure

Figure 1. Blackbeard’s pirate flag.

<fig>
  <label>Figure 1</label>
  <caption>
	<title>Blackbeard's pirate flag.</title>
  </caption>
  <graphic xlink:href="flag.jpg">
  	<alt-text>A black flag with a skeleton spearing a  heart</alt-text>
 	 <long-desc>A black flag with a horned white skeleton holding an upraised white hourglass in its right hand and a white spear in its left hand. The skeleton is 
pointing the spear at a red heart, which is dripping three red drops 
of blood.</long-desc>
</graphic>
</fig>

Example 2. <alt-text> and <long-desc> on a figure with multiple graphics where there is a <long-desc> for each image

Figure 1. Blackbeard’s pirate flags.

  

<fig>
  	<label>Figure 1</label>
  	<caption>
    		<title>Blackbeard's pirate flags.</title>
  	</caption>
  	<graphic xlink:href="flag1.jpg">
    		<alt-text>A black flag with a skeleton and a heart</alt-text>
    		<long-desc>A black flag with a horned white skeleton holding an 
upraised white hourglass in its right hand and a white spear in its 
left hand. The skeleton is pointing the spear at a red heart, which 
is dripping three red drops of blood.</long-desc>
  	</graphic>
  	<graphic xlink:href="flag2.jpg">
    		<alt-text>A white flag with a skeleton and a heart</alt-text>
    		<long-desc>A white flag with a horned black skeleton holding an 
upraised black hourglass in its right hand and a black spear in its 
left hand. The skeleton is pointing the spear at a black heart, which 
is dripping three black drops of blood.</long-desc>
  	</graphic>
</fig>

Example 3. <alt-text> and <long-desc> on a figure with multiple graphics where one <long-desc> describes the whole figure (set of images)

Figure 1. Blackbeard’s pirate flags.

<fig>
  	<label>Figure 1</label>
  	<caption>
    		<title>Blackbeard's pirate flags.</title>
  	</caption>
        <long-desc>A black flag and a white flag each with a horned white skeleton holding an upraised hourglass in its right hand and a spear in its left hand. The skeleton is pointing the spear at a heart, which is dripping three drops of blood.</long-desc>
  	<graphic xlink:href="flag1.jpg">
    		<alt-text>A black flag with a skeleton and a heart</alt-text>
    	</graphic>
  	<graphic xlink:href="flag2.jpg">
    		<alt-text>A white flag with a skeleton and a heart</alt-text>
    	</graphic>
</fig>

Example 4. <long-desc> referenced from figure

Figure 1. Blackbeard’s pirate flag.

Example 4a. <long-desc> outside of the XML document

<fig>
  <label>Figure 1</label>
  <caption>
	<title>Blackbeard's pirate flag.</title>
  </caption>
  <graphic xlink:href="flag.jpg">
  	<alt-text>A black flag with a skeleton and a heart</alt-text>
 	 <long-desc xlink:href="https://example.com/long-desc/pirateflag"/>
  </graphic>
</fig>

Example 4b. <long-desc> within the XML document

<fig>
  <label>Figure 1</label>
  <caption>
	<title>Blackbeard's pirate flag.</title>
  </caption>
  <graphic xlink:href="flag.jpg">
  	<alt-text>A black flag with a skeleton and a heart</alt-text>
 	 <xref ref-type="custom" custom-type="long-desc" rid="LD1"/>
</graphic>
</fig>

<back>
   <!-- The long-desc could be in an appendix - - >   
   <app-group>
      <app content-type="long-desc" id="LD1">
         <title>Blackbeard's Pirate Flag</title>
         <p>A black flag with a horned white skeleton holding an upraised white hourglass in its right hand and a white spear in its left hand. The skeleton is pointing the spear at a red heart, which is dripping three red drops of blood.</p>
      </app>
   </app-group>
   	 
   <!-- Or in a backmatter section - - >
      <sec sec-type="long-desc" id="LD1">
          <title>Blackbeard's Pirate Flag</title>
          <p>A black flag with a horned white skeleton holding an upraised white hourglass in its right hand and a white spear in its left hand. The skeleton is pointing the spear at a red heart, which is dripping three red drops of blood.</p>
   </sec>
</back>

Example 5: A video transcript included in the article

<media id="vid1" content-type="video" xlink:href="v1-video1-orig.avi" >
	<xref ref-type="custom" custom-type="transcript" rid="TR1"/>
</media>

<!-- this sec could be in <back> - - >
<sec sec-type="transcript" id="TR1">
     <title>Interview With A Vampire</title>
     <speech><speaker>Lestat</speaker><p>Thank you for joining me</p></speech>
     <speech><speaker>Louis</speaker><p>Great to be here!</p></speech>
</sec>

Or 

<app content-type="transcript" id="TR1">
     <title>Interview With A Vampire</title>
     <speech><speaker>Lestat</speaker><p>Thank you for joining me</p></speech>
     <speech><speaker>Louis</speaker><p>Great to be here!</p></speech>
</app>

Example 6: A video transcript outside of the article

<media id="vid1" content-type="video" xlink:href="v1-video1-orig.avi">
   <ext-link ext-link-type="transcript" xlink:href="https://www.transcript-URL.com">Transcript for Video 1: The title of the video</ext-link>
</media>

Example 7: A short video or audio clip that includes <alt-text>

<inline-media id="audid1" content-type="audio" xlink:href="aud1-audio1-orig.mp3">
   <alt-text>Description of audio clip</alt-text>
</inline-media>

Example 8: Simple table with <th> elements

<table-wrap>
    <label>Table 1</label>
    <caption>
        <title>Simple table with headings</title>
    </caption>
    <table>
        <tr>
            <th>Header 1</th>
            <th>Header 2</th>
        </tr>
        <tr>
            <td>Data 1</td>
            <td>Data 2</td>
        </tr>
        <tr>
            <td>Data 3</td>
            <td>Data 4</td>
        </tr>
    </table>
</table-wrap>

Example 9: Table with header cells in the top row and first column

<table-wrap>
   <label>Table 1</label>
   <caption>
      <title>Delivery slots</title>
   </caption>
   <table>
       <tr>
          <th/>
          <th id=”t1h1”>Monday</th>
          <th id=”t1h2”>Tuesday</th>
          <th id=”t1h3”>Wednesday</th>
          <th id=”t1h4”>Thursday</th>
          <th id=”t1h5”>Friday</th>
       </tr>
       <tr>
          <td id=”t1c1” scope=”row”>09:00 – 11:00</td>
          <td id=”t1c2” headers=”t1c1 t1h1”>Closed</td>
          <td id=”t1c3” headers=”t1c1 t1h2”>Open</td>
          <td id=”t1c4” headers=”t1c1 t1h3”>Open</td>
          <td id=”t1c5” headers=”t1c1 t1h4”>Closed</td>
          <td id=”t1c6” headers=”t1c1 t1h5”>Closed</td>
       </tr>
       <tr>
          <td id=”t1c7” scope=”row”>11:00 – 13:00</td>
          <td id=”t1c8” headers=”t1c7 t1h1”>Open</td>
          <td id=”t1c9” headers=”t1c7 t1h2”>Open</td>
          <td id=”t1c10” headers=”t1c7 t1h3”>Closed</td>
          <td id=”t1c11” headers=”t1c7 t1h4”>Closed</td>
          <td id=”t1c12” headers=”t1c7 t1h5”>Closed</td>
       </tr>
       <tr>
          <td id=”t1c13” scope=”row”>13:00 – 15:00</td>
          <td id=”t1c14” headers=”t1c13 t1h1”>Open</td>
          <td id=”t1c15” headers=”t1c13 t1h2”>Open</td>
          <td id=”t1c16” headers=”t1c13 t1h3”>Open</td>
          <td id=”t1c17” headers=”t1c13 t1h4”>Closed</td>
          <td id=”t1c18” headers=”t1c13 t1h5”>Closed</td>
       </tr>
       <tr>
          <td id=”t1c19” scope=”row”>15:00 – 17:00</td>
          <td id=”t1c20” headers=”t1c19 t1h1”>Closed</td>
          <td id=”t1c21” headers=”t1c19 t1h2”>Closed</td>
          <td id=”t1c22” headers=”t1c19 t1h3”>Closed</td>
          <td id=”t1c23” headers=”t1c19 t1h4”>Open</td>
          <td id=”t1c24” headers=”t1c19 t1h5”>Open</td>
       </tr>
    </table>
</table-wrap>
<ext-link xlink:href="https://jats.nlm.nih.gov/archiving/tag-library/1.3/element/ext-link.html" xlink:title=”Description of tagging of external links using JATS”>Read more about linking in JATS</ext-link>

is preferred over

<ext-link xlink:href="https://jats.nlm.nih.gov/archiving/tag-library/1.3/element/ext-link.html">Read more</ext-link> about linking in JATS

Example 10b. <uri>

<uri xlink:href="https://jats.nlm.nih.gov/archiving/tag-library/1.3/element/ext-link.html" xlink:title=”Description of tagging of external links using JATS”/>

Example 11: Headings

<sec>
   <title>Heading 1</title>
   <p>This is a paragraph.</p>
   <sec>
        <title>Heading 1.1</title>
         <p>This is a paragraph in a sub-section.</p>
   </sec>
</sec>
<sec>
   <title>Heading 2</title>
   <p>This is a paragraph in the second top-level section of the document.</p>
</sec>

<back>
   <ack>
      <title>Acknowledgements</title>
      <p>The authors acknowledge everyone who contributed.</p>
   </ack>
</back>

Example 12: Lists

Example 12a: Bulleted list

<list list-type="bullet">
  <list-item>
   <p>For &#x2265;95% of pregnant women to have at least one antenatal visit.</p>
  </list-item>
  <list-item>
    <p>Syphilis testing in &#x2265;95% of pregnant women who attend an antenatal visit.</p>
  </list-item>
  <list-item>
    <p>Adequate syphilis treatment of &#x2265;95% syphilis-seropositive pregnant women.</p>
  </list-item>
</list>

Example 12b: Ordered or Numbered list

<list list-type="order">
  <list-item>
    <p>Describe the current status of the global epidemiology of congenital syphilis</p>
  </list-item>
  <list-item>
    <p>Describe the trends in congenital syphilis epidemiology over the last decade.</p>
  </list-item>
</list>

Example 13: Language

<p>Well, I’m afraid I must bid you all <named-content xml:lang="fr" content-type="foreign-phrase">adieu</named-content>. Until we meet again!"</p>

Example 14: Pronunciation

<p>According to the <abbrev alt="W.H.O.">WHO</abbrev>, regular exercise can help reduce the risk of noncommunicable diseases such as heart disease, stroke, and diabetes.</p>

Example 15: Display Formula

1948 rating rule for 10-Rater model yachts where the product of waterline length and sail area divided by 6000 can be no more than 10.

<disp-formula>
   <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML">
      <mml:mfrac>
         <mml:mrow>
            <mml:mtext>LWL</mml:mtext>
            <mml:mo>×</mml:mo>
            <mml:mtext>SA</mml:mtext>
         </mml:mrow>
         <mml:mrow>
            <mml:mn>6000</mml:mn>
         </mml:mrow>
      </mml:mfrac>
      <mml:mo>&#x2265;</mml:mo>
      <mml:mn>10</mml:mn>
   </mml:math>  
</disp-formula>

Example 16: Inline formula with other MathML in the text

… recognize the Pythagorean formula a² + b² = c² where a² and b² represent the squares of the legs of a right triangle and c² represents the square of the hypotenuse.

<p>... recognize the Pythagorean formula
	<inline-formula>
    	<mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML">
        	<mml:msup>
            	<mml:mi>a</mml:mi>
            	<mml:mn>2</mml:mn>
        	</mml:msup>
        	<mml:mo>+</mml:mo>
        	<mml:msup>
            	<mml:mi>b</mml:mi>
            	<mml:mn>2</mml:mn>
        	</mml:msup>
        	<mml:mo>=</mml:mo>
        	<mml:msup>
            	<mml:mi>c</mml:mi>
            	<mml:mn>2</mml:mn>
        	</mml:msup>
    	</mml:math>
	</inline-formula> where <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML">
    	<mml:msup>
        	<mml:mi>a</mml:mi>
        	<mml:mn>2</mml:mn>
    	</mml:msup>
	</mml:math> and <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML">
    	<mml:msup>
        	<mml:mi>b</mml:mi>
        	<mml:mn>2</mml:mn>
    	</mml:msup>
	</mml:math> represent the squares of the legs of a right triangle and <mml:math
    	xmlns:mml="http://www.w3.org/1998/Math/MathML">
    	<mml:msup>
        	<mml:mi>c</mml:mi>
        	<mml:mn>2</mml:mn>
    	</mml:msup>
	</mml:math> represents the square of the hypotenuse.</p>

Example 17: Accessibility Metadata Example

<processing-meta>
   <custom-meta-group 
content-type="accessibility-metadata"
xml:base="https://www.w3.org/community/reports/a11y-discov-vocab/CG-FINAL-vocabulary-20230306/">
    	<!-- This section is for Accessibility Feature -->
    	<!-- Structure and Navigation Terms -->
    	<custom-meta vocab="schema.org" vocab-identifier="#accessibilityFeature"
        		vocab-term-identifier="#annotations">
        		<meta-name>accessibilityFeature</meta-name>
        		<meta-value>annotations</meta-value>
    		</custom-meta>
    	<custom-meta vocab="schema.org" vocab-identifier="#accessibilityFeature"
        		vocab-term-identifier="#ARIA">
        		<meta-name>accessibilityFeature</meta-name>
        		<meta-value>ARIA</meta-value>
    		</custom-meta>
    	<custom-meta vocab="schema.org" vocab-identifier="#accessibilityFeature"
        		vocab-term-identifier="#pageBreakMarkers">
        		<meta-name>accessibilityFeature</meta-name>
        		<meta-value>pageBreakMarkers</meta-value>
    		</custom-meta>
    	<custom-meta vocab="schema.org" vocab-identifier="#accessibilityFeature"
        		vocab-term-identifier="#pageNavigation">
        		<meta-name>accessibilityFeature</meta-name>
        		<meta-value>pageNavigation</meta-value>
    		</custom-meta>
    	<custom-meta vocab="schema.org" vocab-identifier="#accessibilityFeature"
        		vocab-term-identifier="#structuralNavigation">
        		<meta-name>accessibilityFeature</meta-name>
        		<meta-value>structuralNavigation</meta-value>
    		</custom-meta>
    	<custom-meta vocab="schema.org" vocab-identifier="#accessibilityFeature"
        		vocab-term-identifier="#tableOfContents">
        		<meta-name>accessibilityFeature</meta-name>
        		<meta-value>tableOfContents</meta-value>
    		</custom-meta>
    	<!-- Adaptation Terms -->
    	<custom-meta vocab="schema.org" vocab-identifier="#accessibilityFeature"
        		vocab-term-identifier="#alternativeText">
        		<meta-name>accessibilityFeature</meta-name>
        		<meta-value>alternativeText</meta-value>
    		</custom-meta>
    	<custom-meta vocab="schema.org" vocab-identifier="#accessibilityFeature"
        		vocab-term-identifier="#audioDescription">
        		<meta-name>accessibilityFeature</meta-name>
        		<meta-value>audioDescription</meta-value>
    		</custom-meta>
    	<custom-meta vocab="schema.org" vocab-identifier="#accessibilityFeature"
        		vocab-term-identifier="#captions">
        		<meta-name>accessibilityFeature</meta-name>
        		<meta-value>captions</meta-value>
    		</custom-meta>
    	<custom-meta vocab="schema.org" vocab-identifier="#accessibilityFeature"
        		vocab-term-identifier="#describedMath">
        		<meta-name>accessibilityFeature</meta-name>
        		<meta-value>describedMath</meta-value>
    		</custom-meta>
    	<custom-meta vocab="schema.org" vocab-identifier="#accessibilityFeature"
        		vocab-term-identifier="#longDescription">
        		<meta-name>accessibilityFeature</meta-name>
        		<meta-value>longDescription</meta-value>
    		</custom-meta>
    	<custom-meta vocab="schema.org" vocab-identifier="#accessibilityFeature"
        		vocab-term-identifier="#rubyAnnotations">
        		<meta-name>accessibilityFeature</meta-name>
        		<meta-value>rubyAnnotations</meta-value>
    		</custom-meta>
    	<custom-meta vocab="schema.org" vocab-identifier="#accessibilityFeature"
        		vocab-term-identifier="#signLanguage">
        		<meta-name>accessibilityFeature</meta-name>
        		<meta-value>signLanguage</meta-value>
    		</custom-meta>
    	<custom-meta vocab="schema.org" vocab-identifier="#accessibilityFeature"
        		vocab-term-identifier="#transcript">
        		<meta-name>accessibilityFeature</meta-name>
        		<meta-value>transcript</meta-value>
    		</custom-meta>
    	<!-- Specialized Markup Terms-->
    	<custom-meta vocab="schema.org" vocab-identifier="#accessibilityFeature"
        		vocab-term-identifier="#ChemML">
        		<meta-name>accessibilityFeature</meta-name>
        		<meta-value>ChemML</meta-value>
    		</custom-meta>
    	<custom-meta vocab="schema.org" vocab-identifier="#accessibilityFeature"
        		vocab-term-identifier="#latex">
        		<meta-name>accessibilityFeature</meta-name>
        		<meta-value>latex</meta-value>
    		</custom-meta>
    	<custom-meta vocab="schema.org" vocab-identifier="#accessibilityFeature"
        		vocab-term-identifier="#MathML">
        		<meta-name>accessibilityFeature</meta-name>
        		<meta-value>MathML</meta-value>
    		</custom-meta>
   	<custom-meta vocab="schema.org" vocab-identifier="#accessibilityFeature"
        		vocab-term-identifier="#feature-none">
        		<meta-name>accessibilityFeature</meta-name>
        		<meta-value>none</meta-value>
    		</custom-meta>

    	<!-- This section is for Accessibility Hazard -->
    	<custom-meta vocab="schema.org" vocab-identifier="#accessibilityHazard"
        		vocab-term-identifier="#flashing">
        		<meta-name>accessibilityHazard</meta-name>
        		<meta-value>flashing</meta-value>
    		</custom-meta>
    	<custom-meta vocab="schema.org" vocab-identifier="#accessibilityHazard"
        		vocab-term-identifier="#noFlashingHazard">
        		<meta-name>accessibilityHazard</meta-name>
        		<meta-value>noFlashingHazard</meta-value>
    		</custom-meta>
    	<custom-meta vocab="schema.org" vocab-identifier="#accessibilityHazard"
        		vocab-term-identifier="#motionSimulation">
        		<meta-name>accessibilityHazard</meta-name>
        		<meta-value>motionSimulation</meta-value>
    		</custom-meta>
    	<custom-meta vocab="schema.org" vocab-identifier="#accessibilityHazard"
        		vocab-term-identifier="#noMotionSimulationHazard">
        		<meta-name>accessibilityHazard</meta-name>
        		<meta-value>noMotionSimulationHazard</meta-value>
    		</custom-meta>
    	<custom-meta vocab="schema.org" vocab-identifier="#accessibilityHazard"
        		vocab-term-identifier="#sound">
        		<meta-name>accessibilityHazard</meta-name>
        		<meta-value>sound</meta-value>
    		</custom-meta>
    	<custom-meta vocab="schema.org" vocab-identifier="#accessibilityHazard"
        		vocab-term-identifier="#noSoundHazard">
        		<meta-name>accessibilityHazard</meta-name>
        		<meta-value>noSoundHazard</meta-value>
    		</custom-meta>
    	<custom-meta vocab="schema.org" vocab-identifier="#accessibilityHazard"
        		vocab-term-identifier="#unknown">
        		<meta-name>accessibilityHazard</meta-name>
        		<meta-value>unknown</meta-value>
    		</custom-meta>
    	<custom-meta vocab="schema.org" vocab-identifier="#accessibilityHazard"
        		vocab-term-identifier="#hazard-none">
        		<meta-name>accessibilityHazard</meta-name>
        		<meta-value>none</meta-value>
    		</custom-meta>

    	<!-- This section is for Accessibility Summary -->
    	<custom-meta vocab="schema.org" vocab-identifier="#accessibilitySummary">
        		<meta-name>accessibilitySummary</meta-name>
        		<meta-value>This publication meets WCAG 2.1 Level AA</meta-value>
    		</custom-meta>
		</custom-meta-group>
</processing-meta>

Example 18: Alternatives

<disp-formula>
  	   <alternatives>
    	      <graphic xlink:href="10rater.jpg">
      	         <alt-text>1948 Formula for a 10-Rater model yacht. The product of the
      	         sail area (in square inches) and Load Waterline Length (in inches)
      	         divided by 6000 should not be created than 10.</alt-text>
    	     </graphic>
               <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML">
                  <mml:mfrac>
                     <mml:mrow>
                        <mml:mtext>LWL</mml:mtext>
                        <mml:mo>×</mml:mo>
                       <mml:mtext>SA</mml:mtext>
                   </mml:mrow>
                   <mml:mrow>
                      <mml:mn>6000</mml:mn>
                  </mml:mrow>
              </mml:mfrac>
             <mml:mo>&#x2265;</mml:mo>
             <mml:mn>10</mml:mn>
          </mml:math>  
      </alternatives>
</disp-formula>

History

Working: 15 July, 2022 – 29 September, 2023
JATS4R Steering Committee review: 26 September 2023 – 10 October, 2023
Public review:  27 November, 2023 – 22 December, 2023
JATS4R Steering Committee review: 8 February, 2024
NISO Topic Committee review: 1 March, 2024 – 8 March, 2024
Published: 13 March, 2024

Updated on March 19, 2024

Related Articles

Comments

  1. This is great timing. While we will be looking to review and provide feedback, I have an initial comment/query. We have been working on providing transcripts and we use Publishing tagset (1.2). Your descriptions states: “The following recommendation is for JATS v 1.3 and backward. Differences between the Journal Publishing and Archiving DTDs are noted within the recommendations as applicable.”, but looking at your solution (example 5) it only supports 1.3 as earlier versions of the tagset do not allow in .
    Can you suggest a way that 1.2 users can capture transcripts in a separate or and link to a element? Because of these limitations to link out to other element/object within this file, we had been toying with using etc. which is not ideal, but were out of ideas. Can you please confirm that your recommendation for Transcript mark up is only 1.3 (blue) compliant ?

    1. Apologies, I missed the mark-up. Missing mark-up from my comment:

      “as earlier versions of the tag set do not allow <xref> in <media> (in Archiving and Publishing).

      “we had been toying with using <textual-form specific-use="transcript"><named-content content-type="speech"><speech> etc which is not ideal, but were out of ideas. “

Provide feedback on this recommendation

Please note you are commenting on this specific recommendation. To suggest a new recommendation, please follow the link on the homepage. By proceeding with your comment here, you understand that your comment will be publicly visible and you may be contacted by JATS4R in case of further clarification.

You may use markdown to format your comment. For example, to allow <> tags to display, please start and end that portion of your comment with three backtick characters, ```.