Digital Publishing Accessibility API Mappings 1.1

W3C Working Draft

More details about this document
This version:
https://www.w3.org/TR/2023/WD-dpub-aam-1.1-20230626/
Latest published version:
https://www.w3.org/TR/dpub-aam-1.1/
Latest editor's draft:
https://w3c.github.io/dpub-aam/
History:
https://www.w3.org/standards/history/dpub-aam-1.1/
Commit history
Implementation report:
https://w3c.github.io/test-results/dpub-aam/
Editors:
Matt Garrish (DAISY Consortium)
Tzviya Siegman (Wiley)
Former editors:
(Igalia, S.L.)
(Knowbility)
Feedback:
GitHub w3c/dpub-aam (pull requests, new issue, open issues)
public-aria@w3.org with subject line [dpub-aam-1.1] … message topic … (archives)

Abstract

The Digital Publishing Accessibility API Mappings (DPub-AAM) defines how user agents map the Digital Publishing WAI-ARIA Module [dpub-aria-1.1] markup to platform accessibility APIs. It is intended for user agent developers responsible for accessibility in their user agent so that they can support the accessibility content produced for digital publishing.

Status of This Document

This section describes the status of this document at the time of its publication. A list of current W3C publications and the latest revision of this technical report can be found in the W3C technical reports index at https://www.w3.org/TR/.

Feature development for this version is complete. This is a Candidate Recommendation Draft published to obtain implementation feedback before finalization of the specification.

The primary change since the First Public Working Draft was to update the Mac AX API mappings to add the AXCustomContent fields for announcing roles. Feedback on any aspect of the specification is encouraged. A list of all substantive changes is available in the change log.

This document was published by the Accessible Rich Internet Applications Working Group as a Working Draft using the Recommendation track.

Publication as a Working Draft does not imply endorsement by W3C and its Members.

This is a draft document and may be updated, replaced or obsoleted by other documents at any time. It is inappropriate to cite this document as other than work in progress.

This document was produced by a group operating under the W3C Patent Policy. W3C maintains a public list of any patent disclosures made in connection with the deliverables of the group; that page also includes instructions for disclosing a patent. An individual who has actual knowledge of a patent which the individual believes contains Essential Claim(s) must disclose the information in accordance with section 6 of the W3C Patent Policy.

This document is governed by the 2 November 2021 W3C Process Document.

1. Introduction

This section is non-normative.

The implementation of this specification in user agents enables authors to produce more accessible e-books, by conveying structural book constructs used by the digital publishing industry to assistive technologies. It does this by extending the Core Accessibility API Mappings 1.1 [CORE-AAM-1.1] and the Accessible Name and Description: Computation 1.2 [ACCNAME-1.2] specifications for user agents. It provides Accessibility API Mapping guidance for the roles defined in the Digital Publish WAI-ARIA Module.

The DPub-AAM is part of the WAI-ARIA suite described in the WAI-ARIA Overview.

2. Conformance

As well as sections marked as non-normative, all authoring guidelines, diagrams, examples, and notes in this specification are non-normative. Everything else in this specification is normative.

The key word MUST in this document is to be interpreted as described in BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all capitals, as shown here.

2.1 RFC-2119 Keywords

RFC-2119 keywords are formatted in uppercase and contained in a strong element with class="rfc2119". When the keywords shown above are used, but do not share this format, they do not convey formal information in the RFC 2119 sense, and are merely explanatory (i.e., informative). As much as possible, such usages are avoided in this specification.

2.2 Normative and Informative Sections

The indication whether a section is normative or non-normative (informative) applies to the entire section including sub-sections.

Informative sections provide information useful to understanding the specification. Such sections may contain examples of recommended practice, but it is not required to follow such recommendations in order to conform to this specification.

2.3 Roles deprecated in DPUB-ARIA

The DPUB-ARIA specification [dpub-aria-1.1] lists some roles as deprecated. Although this means authors are encouraged not to use these roles, it is expected that the roles could still be used in legacy content. Therefore, it is important that user agents continue to map these roles to accessibility APIs, and doing so is part of conformance to this specification. When future versions of the DPUB-ARIA specification change such roles from deprecated to removed, they will be removed from the mappings as well and user agents will no longer be asked to continue support for those roles.

3. Supporting keyboard navigation

Enabling keyboard navigation in web applications is a necessary step toward making accessible web applications possible. Conforming user agents MUST conform to Supporting Keyboard Navigation requirements in [CORE-AAM-1.1].

4. Mapping WAI-ARIA to accessibility APIs

4.1 General rules for exposing WAI-ARIA semantics

This section MUST conform to General rules for exposing WAI-ARIA semantics in [CORE-AAM-1.1].

5. Conflicts between native markup semantics and WAI-ARIA

User agents MUST conform to Conflicts between native markup semantics and WAI-ARIA in [CORE-AAM-1.1].

6. Exposing attributes that do not directly map to accessibility API properties

User agents MUST conform to Exposing attributes that do not directly map to accessibility API properties in [CORE-AAM-1.1].

7. Role mapping

Platform accessibility APIs traditionally have had a finite set of predefined roles that are expected by assistive technologies on that platform and only one or two roles may be exposed. In contrast, WAI-ARIA allows multiple roles to be specified as an ordered set of space-separated valid role tokens. The additional roles are fallback roles similar to the concept of specifying multiple fonts in case the first choice font type is not supported.

7.1 General Rules

User agents MUST conform to the Role Mapping General Rules accessibility API computational requirements in [CORE-AAM-1.1].

7.2 Role Mapping Table

Note

Translators: For label text associated with the following table and its toggle buttons, see the mappingTableLabels object in the <head> section of this document.

This section defines how WAI-ARIA digital publishing roles map to platform accessibility APIs. Elements having roles with a prefix value of doc-, that are not listed in this role mapping table, have no normative mappings.

doc-abstract
doc-abstract
MSAA + IAccessible2 Role + Other IAccessible2 Features Expose IAccessible2:
  • IA2_ROLE_SECTION
  • Object attribute xml-roles:doc-abstract.
UIA Control Type + Other Features
  • Control Type is Text
  • Localized Control Type is 'abstract'
ATK/AT-SPI Role

Expose ROLE_SECTION and object attribute xml-roles:doc-abstract.

Mac AX API
  • AXRole: AXGroup
  • AXSubrole: AXApplicationGroup
  • AXRoleDescription: 'group'
  • AXCustomContent: { label: "type", value: "abstract" }
doc-acknowledgments
doc-acknowledgments
MSAA + IAccessible2 Role + Other IAccessible2 Features Expose IAccessible2:
  • IA2_ROLE_LANDMARK
  • Object attribute xml-roles:doc-acknowledgments.
UIA Control Type + Other Features
  • Control Type is Text
  • Localized Control Type is 'acknowledgements'
  • Landmark Type is Custom
  • Localized Landmark Type is 'acknowledgements'
ATK/AT-SPI Role

Expose ROLE_LANDMARK and object attribute xml-roles:doc-acknowledgments.

Mac AX API
  • AXRole: AXGroup
  • AXSubrole: AXLandmarkRegion
  • AXRoleDescription: 'region'
  • AXCustomContent: { label: "type", value: "acknowledgements" }
doc-afterword
doc-afterword
MSAA + IAccessible2 Role + Other IAccessible2 Features Expose IAccessible2:
  • IA2_ROLE_LANDMARK
  • Object attribute xml-roles:doc-afterword.
UIA Control Type + Other Features
  • Control Type is Text
  • Localized Control Type is 'afterword'
  • Landmark Type is Custom
  • Localized Landmark Type is 'afterword'
ATK/AT-SPI Role

Expose ROLE_LANDMARK and object attribute xml-roles:doc-afterword.

Mac AX API
  • AXRole: AXGroup
  • AXSubrole: AXLandmarkRegion
  • AXRoleDescription: 'region'
  • AXCustomContent: { label: "type", value: "afterword" }
doc-appendix
doc-appendix
MSAA + IAccessible2 Role + Other IAccessible2 Features Expose IAccessible2:
  • IA2_ROLE_LANDMARK
  • Object attribute xml-roles:doc-appendix.
UIA Control Type + Other Features
  • Control Type is Text
  • Localized Control Type is 'appendix'
  • Landmark Type is Custom
  • Localized Landmark Type is 'appendix'
ATK/AT-SPI Role

Expose ROLE_LANDMARK and object attribute xml-roles:doc-appendix.

Mac AX API
  • AXRole: AXGroup
  • AXSubrole: AXLandmarkRegion
  • AXRoleDescription: 'region'
  • AXCustomContent: { label: "type", value: "appendix" }
doc-backlink
doc-backlink
MSAA + IAccessible2 Role + Other IAccessible2 Features Expose
  • ROLE_SYSTEM_LINK + STATE_LINKED
  • STATE_LINKED on all descendants

IAccessible2:

  • Object attribute xml-roles:doc-backlink.
  • AccessibleHypertext interface
UIA Control Type + Other Features
  • Control Type is Text
  • Localized Control Type is 'backlink'
ATK/AT-SPI Role

Expose ROLE_LINK and object attribute xml-roles:doc-backlink.

Mac AX API
  • AXRole: AXLink
  • AXSubrole: <nil>
  • AXRoleDescription: 'link'
  • AXCustomContent: { label: "type", value: "back" }
doc-biblioentry
doc-biblioentry
MSAA + IAccessible2 Role + Other IAccessible2 Features Expose

ROLE_SYSTEM_LISTITEM + STATE_SYSTEM_READONLY

IAccessible2:

Object attribute xml-roles:doc-biblioentry.

UIA Control Type + Other Features
  • Control Type is Text
  • Localized Control Type is 'biblioentry'
ATK/AT-SPI Role

Expose ROLE_LIST_ITEM and object attribute xml-roles:doc-bilioentry.

Mac AX API
  • AXRole: AXGroup
  • AXSubrole: <nil>
  • AXRoleDescription: 'group'
  • AXCustomContent: {}
doc-bibliography
doc-bibliography
MSAA + IAccessible2 Role + Other IAccessible2 Features Expose IAccessible2:
  • IA2_ROLE_LANDMARK
  • Object attribute xml-roles:doc-bibliography.
UIA Control Type + Other Features
  • Control Type is Text
  • Localized Control Type is 'bibliography'
  • Landmark Type is Custom
  • Localized Landmark Type is 'biblography'
ATK/AT-SPI Role

Expose ROLE_LANDMARK and object attribute xml-roles:doc-bibliography.

Mac AX API
  • AXRole: AXGroup
  • AXSubrole: AXLandmarkRegion
  • AXRoleDescription: 'region'
  • AXCustomContent: { label: "type", value: "bibliography" }
listitem descendants of doc-bibliography (not descendant of another listitem)
listitem descendants of doc-bibliography (not descendant of another listitem)
MSAA + IAccessible2 Role + Other IAccessible2 Features Expose

ROLE_SYSTEM_LISTITEM + STATE_SYSTEM_READONLY

IAccessible2:

Object attribute xml-roles:doc-biblioentry.

UIA Control Type + Other Features
  • Control Type is Text
  • Localized Control Type is 'biblioentry'
ATK/AT-SPI Role

Expose ROLE_LIST_ITEM and object attribute xml-roles:doc-bilioentry.

Mac AX API
  • AXRole: AXGroup
  • AXSubrole: <nil>
  • AXRoleDescription: 'group'
  • AXCustomContent: {}
doc-biblioref
doc-biblioref
MSAA + IAccessible2 Role + Other IAccessible2 Features Expose
  • ROLE_SYSTEM_LINK + STATE_LINKED
  • STATE_LINKED on all descendants

IAccessible2:

  • Object attribute xml-roles:doc-biblioref.
  • AccessibleHypertext interface
UIA Control Type + Other Features
  • Control Type is Text
  • Localized Control Type is 'biblioref'
ATK/AT-SPI Role

Expose ROLE_LINK and object attribute xml-roles:doc-biblioref.

Mac AX API
  • AXRole: AXLink
  • AXSubrole: <nil>
  • AXRoleDescription: 'link'
  • AXCustomContent: { label: "type", value: "bibliography" }
doc-chapter
doc-chapter
MSAA + IAccessible2 Role + Other IAccessible2 Features Expose IAccessible2:
  • IA2_ROLE_LANDMARK
  • Object attribute xml-roles:doc-chapter.
UIA Control Type + Other Features
  • Control Type is Text
  • Localized Control Type is 'chapter'
  • Landmark Type is Custom
  • Localized Landmark Type is 'chapter'
ATK/AT-SPI Role

Expose ROLE_LANDMARK and object attribute xml-roles:chapter.

Mac AX API
  • AXRole: AXGroup
  • AXSubrole: AXLandmarkChapter
  • AXRoleDescription: 'chapter'
  • AXCustomContent: {}
doc-colophon
doc-colophon
MSAA + IAccessible2 Role + Other IAccessible2 FeaturesExpose

IA2_ROLE_SECTION

IAccessible2: Object attribute xml-roles:doc-colophon.

UIA Control Type + Other Features
  • Control Type is Text
  • Localized Control Type is 'colophon'
ATK/AT-SPI Role

Expose ROLE_SECTION and object attribute xml-roles:doc-colophon.

Mac AX API
  • AXRole: AXGroup
  • AXSubrole: AXApplicationGroup
  • AXRoleDescription: 'group'
  • AXCustomContent: { label: "type", value: "colophon" }
doc-conclusion
doc-conclusion
MSAA + IAccessible2 Role + Other IAccessible2 Features Expose IAccessible2:
  • IA2_ROLE_LANDMARK
  • Object attribute xml-roles:doc-conclusion.
UIA Control Type + Other Features
  • Control Type is Text
  • Localized Control Type is 'conclusion'
  • Landmark Type is Custom
  • Localized Landmark Type is 'conclusion'
ATK/AT-SPI Role

Expose ROLE_LANDMARK and object attribute xml-roles:doc-conclusion.

Mac AX API
  • AXRole: AXGroup
  • AXSubrole: AXLandmarkRegion
  • AXRoleDescription: 'region'
  • AXCustomContent: { label: "type", value: "conclusion" }
doc-cover
doc-cover
MSAA + IAccessible2 Role + Other IAccessible2 FeaturesExpose

ROLE_SYSTEM_GRAPHIC

IAccessible2: Object attribute xml-roles:doc-cover.

UIA Control Type + Other FeaturesControl Type is Image
ATK/AT-SPI Role

expose ROLE_IMAGE and object attribute xml-roles:doc-cover.

Mac AX API
  • AXRole: AXImage
  • AXSubrole: <nil>
  • AXRoleDescription: 'cover image'
  • AXCustomContent: {}
doc-credit
doc-credit
MSAA + IAccessible2 Role + Other IAccessible2 FeaturesExpose

IA2_ROLE_SECTION

IAccessible2:

Object attribute xml-roles:doc-credit
UIA Control Type + Other Features
  • Control Type is Text
  • Localized Control Type is 'credit'
ATK/AT-SPI Role

Expose ROLE_SECTION and object attribute xml-roles:doc-credit.

Mac AX API
  • AXRole: AXGroup
  • AXSubrole: AXApplicationGroup
  • AXRoleDescription: 'group'
  • AXCustomContent: {}
doc-credits
doc-credits
MSAA + IAccessible2 Role + Other IAccessible2 Features Expose IAccessible2:
  • IA2_ROLE_LANDMARK
  • Object attribute xml-roles:doc-credits.
UIA Control Type + Other Features
  • Control Type is Text
  • Localized Control Type is 'credits'
  • Landmark Type is Custom
  • Localized Landmark Type is 'credits'
ATK/AT-SPI Role

Expose ROLE_LANDMARK and object attribute xml-roles:doc-credits.

Mac AX API
  • AXRole: AXGroup
  • AXSubrole: AXLandmarkRegion
  • AXRoleDescription: 'region'
  • AXCustomContent: { label: "type", value: "credits" }
doc-dedication
doc-dedication
MSAA + IAccessible2 Role + Other IAccessible2 FeaturesExpose

IA2_ROLE_SECTION

IAccessible2:

Object attribute xml-roles:doc-dedication
UIA Control Type + Other Features
  • Control Type is Text
  • Localized Control Type is 'dedication'
ATK/AT-SPI Role

Expose ROLE_SECTION and object attribute xml-roles:doc-dedication.

Mac AX API
  • AXRole: AXGroup
  • AXSubrole: AXApplicationGroup
  • AXRoleDescription: 'group'
  • AXCustomContent: { label: "type", value: "dedication" }
doc-endnote
doc-endnote
MSAA + IAccessible2 Role + Other IAccessible2 Features Expose

ROLE_SYSTEM_LISTITEM + STATE_SYSTEM_READONLY

IAccessible2:

Object attribute xml-roles:doc-endnote.

UIA Control Type + Other Features
  • Control Type is Text
  • Localized Control Type is 'endnote'
ATK/AT-SPI Role

Expose ROLE_LIST_ITEM and object attribute xml-roles:doc-endnote.

Mac AX API
  • AXRole: AXGroup
  • AXSubrole: <nil>
  • AXRoleDescription: 'group'
  • AXCustomContent: {}
doc-endnotes
doc-endnotes
MSAA + IAccessible2 Role + Other IAccessible2 Features Expose IAccessible2:
  • IA2_ROLE_LANDMARK
  • Object attribute xml-roles:doc-endnotes.
UIA Control Type + Other Features
  • Control Type is Text
  • Localized Control Type is 'endnotes'
  • Landmark Type is Custom
  • Localized Landmark Type is 'endnotes'
ATK/AT-SPI Role

Expose ROLE_LANDMARK and object attribute xml-roles:doc-endnotes.

Mac AX API
  • AXRole: AXGroup
  • AXSubrole: AXLandmarkRegion
  • AXRoleDescription: 'region'
  • AXCustomContent: { label: "type", value: "end notes" }
listitem descendants of doc-endnotes (not descendant of another listitem)
listitem descendants of doc-endnotes (not descendant of another listitem)
MSAA + IAccessible2 Role + Other IAccessible2 Features Expose

ROLE_SYSTEM_LISTITEM + STATE_SYSTEM_READONLY

IAccessible2:

Object attribute xml-roles:doc-endnote.

UIA Control Type + Other Features
  • Control Type is Text
  • Localized Control Type is 'endnote'
ATK/AT-SPI Role

Expose ROLE_LIST_ITEM and object attribute xml-roles:doc-endnote.

Mac AX API
  • AXRole: AXGroup
  • AXSubrole: <nil>
  • AXRoleDescription: 'group'
  • AXCustomContent: {}
doc-epigraph
doc-epigraph
MSAA + IAccessible2 Role + Other IAccessible2 FeaturesExpose

IA2_ROLE_SECTION

IAccessible2:

Object attribute xml-roles:doc-epigraph
UIA Control Type + Other Features
  • Control Type is Text
  • Localized Control Type is 'epigraph'
ATK/AT-SPI Role

Expose ROLE_SECTION and object attribute xml-roles:doc-epigraph.

Mac AX API
  • AXRole: AXGroup
  • AXSubrole: AXApplicationGroup
  • AXRoleDescription: 'group'
  • AXCustomContent: { label: "type", value: "epigraph" }
doc-epilogue
doc-epilogue
MSAA + IAccessible2 Role + Other IAccessible2 Features Expose IAccessible2:
  • IA2_ROLE_LANDMARK
  • Object attribute xml-roles:doc-epilogue.
UIA Control Type + Other Features
  • Control Type is Text
  • Localized Control Type is 'epilogue'
  • Landmark Type is Custom
  • Localized Landmark Type is 'epilogue'
ATK/AT-SPI Role

Expose ROLE_LANDMARK and object attribute xml-roles:doc-epilogue.

Mac AX API
  • AXRole: AXGroup
  • AXSubrole: AXLandmarkRegion
  • AXRoleDescription: 'region'
  • AXCustomContent: { label: "type", value: "epilog" }
doc-errata
doc-errata
MSAA + IAccessible2 Role + Other IAccessible2 Features Expose IAccessible2:
  • IA2_ROLE_LANDMARK
  • Object attribute xml-roles:doc-errata
UIA Control Type + Other Features
  • Control Type is Text
  • Localized Control Type is 'errata'
  • Landmark Type is Custom
  • Localized Landmark Type is 'errata'
ATK/AT-SPI Role

Expose ROLE_LANDMARK and object attribute xml-roles:doc-errata.

Mac AX API
  • AXRole: AXGroup
  • AXSubrole: AXLandmarkRegion
  • AXRoleDescription: 'region'
  • AXCustomContent: { label: "type", value: "errata" }
doc-example
doc-example
MSAA + IAccessible2 Role + Other IAccessible2 FeaturesExpose

IA2_ROLE_SECTION

IAccessible2:

Object attribute xml-roles:doc-example
UIA Control Type + Other Features
  • Control Type is Text
  • Localized Control Type is 'example'
ATK/AT-SPI Role

Expose ROLE_SECTION and object attribute xml-roles:doc-example.

Mac AX API
  • AXRole: AXGroup
  • AXSubrole: AXApplicationGroup
  • AXRoleDescription: 'group'
  • AXCustomContent: { label: "type", value: "example" }
doc-footnote
doc-footnote
MSAA + IAccessible2 Role + Other IAccessible2 Features

Expose IAccessible2:

  • IA2_ROLE_FOOTNOTE
  • Object attribute: xml-roles:doc-footnote
UIA Control Type + Other Features
  • Control Type is Text
  • Localized Control Type is 'footnote'
ATK/AT-SPI Role

Expose ROLE_FOOTNOTE and object attribute xml-roles:doc-footnote.

Mac AX API
  • AXRole: AXGroup
  • AXSubrole: AXApplicationGroup
  • AXRoleDescription: 'group'
  • AXCustomContent: { label: "type", value: "footnote" }
doc-foreword
doc-foreword
MSAA + IAccessible2 Role + Other IAccessible2 Features Expose IAccessible2:
  • IA2_ROLE_LANDMARK
  • Object attribute xml-roles:doc-foreword
UIA Control Type + Other Features
  • Control Type is Text
  • Localized Control Type is 'foreword'
  • Landmark Type is Custom
  • Localized Landmark Type is 'foreword'
ATK/AT-SPI Role

Expose ROLE_LANDMARK and object attribute xml-roles:doc-foreword.

Mac AX API
  • AXRole: AXGroup
  • AXSubrole: AXLandmarkRegion
  • AXRoleDescription: 'region'
  • AXCustomContent: { label: "type", value: "foreword" }
doc-glossary
doc-glossary
MSAA + IAccessible2 Role + Other IAccessible2 Features Expose IAccessible2:
  • IA2_ROLE_LANDMARK
  • Object attribute xml-roles:doc-glossary
UIA Control Type + Other Features
  • Control Type is Text
  • Localized Control Type is 'glossary'
  • Landmark Type is Custom
  • Localized Landmark Type is 'glossary'
ATK/AT-SPI Role

Expose ROLE_LANDMARK and object attribute xml-roles:doc-glossary.

Mac AX API
  • AXRole: AXGroup
  • AXSubrole: AXLandmarkRegion
  • AXRoleDescription: 'region'
  • AXCustomContent: { label: "type", value: "glossary" }
doc-glossref
doc-glossref
MSAA + IAccessible2 Role + Other IAccessible2 Features Expose
  • ROLE_SYSTEM_LINK + STATE_LINKED
  • STATE_LINKED on all descendants

IAccessible2:

  • Object attribute xml-roles:doc-glossref.
  • AccessibleHypertext interface
UIA Control Type + Other Features
  • Control Type is Text
  • Localized Control Type is 'glossref'
ATK/AT-SPI Role

Expose ROLE_LINK and object attribute xml-roles:doc-glossref.

Mac AX API
  • AXRole: AXLink
  • AXSubrole: <nil>
  • AXRoleDescription: 'link'
  • AXCustomContent: { label: "type", value: "glossary" }
doc-index
doc-index
MSAA + IAccessible2 Role + Other IAccessible2 Features Expose IAccessible2:
  • IA2_ROLE_LANDMARK
  • Object attribute xml-roles:doc-index
UIA Control Type + Other Features
  • Control Type is Text
  • Localized Control Type is 'index'
  • Landmark Type is Custom
  • Localized Landmark Type is 'index'
ATK/AT-SPI Role

Expose ROLE_LANDMARK and object attribute xml-roles:doc-index.

Mac AX API
  • AXRole: AXGroup
  • AXSubrole: AXLandmarkNavigation
  • AXRoleDescription: 'navigation'
  • AXCustomContent: { label: "type", value: "index" }
doc-introduction
doc-introduction
MSAA + IAccessible2 Role + Other IAccessible2 Features Expose IAccessible2:
  • IA2_ROLE_LANDMARK
  • Object attribute xml-roles:doc-introduction
UIA Control Type + Other Features
  • Control Type is Text
  • Localized Control Type is 'introduction'
  • Landmark Type is Custom
  • Localized Landmark Type is 'introduction'
ATK/AT-SPI Role

Expose ROLE_LANDMARK and object attribute xml-roles:doc-introduction.

Mac AX API
  • AXRole: AXGroup
  • AXSubrole: AXLandmarkRegion
  • AXRoleDescription: 'region'
  • AXCustomContent: { label: "type", value: "introduction" }
doc-noteref
doc-noteref
MSAA + IAccessible2 Role + Other IAccessible2 Features Expose
  • ROLE_SYSTEM_LINK + STATE_LINKED
  • STATE_LINKED on all descendants

IAccessible2:

  • Object attribute xml-roles:doc-noteref.
  • AccessibleHypertext interface
UIA Control Type + Other Features
  • Control Type is Text
  • Localized Control Type is 'noteref'
ATK/AT-SPI Role

Expose ROLE_LINK and object attribute xml-roles:doc-noteref.

Mac AX API
  • AXRole: AXLink
  • AXSubrole: <nil>
  • AXRoleDescription: 'link'
  • AXCustomContent: { label: "type", value: "note" }
doc-notice
doc-notice
MSAA + IAccessible2 Role + Other IAccessible2 FeaturesExpose

IA2_ROLE_NOTE

IAccessible2:

Object attribute xml-roles:doc-notice.
UIA Control Type + Other Features
  • Control Type is Text
  • Localized Control Type is 'notice'
ATK/AT-SPI Role

Expose ROLE_COMMENT and object attribute xml-roles:doc-notice.

Mac AX API
  • AXRole: AXGroup
  • AXSubrole: AXDocumentNote
  • AXRoleDescription: 'note'
  • AXCustomContent: {}
doc-pagebreak
doc-pagebreak
MSAA + IAccessible2 Role + Other IAccessible2 FeaturesExpose

ROLE_SYSTEM_SEPARATOR

IAccessible2:

Object attribute xml-roles:doc-pagebreak.
UIA Control Type + Other Features
  • Control Type is Text
  • Localized Control Type is 'pagebreak'
ATK/AT-SPI Role

Expose ROLE_SEPARATOR and object attribute xml-roles:doc-pagebreak.

Mac AX API
  • AXRole: AXSplitter
  • AXSubrole: <nil>
  • AXRoleDescription: 'splitter'
  • AXCustomContent: { label: "type", value: "page break" }
doc-pagefooter
doc-pagefooter
MSAA + IAccessible2 Role + Other IAccessible2 Features Expose IAccessible2:
  • IA2_ROLE_FOOTER
  • Object attribute xml-roles:doc-pagefooter
UIA Control Type + Other Features
  • Control Type is Text
  • Control Pattern: Annotation
  • Annotation.AnnotationTypeId: Footer
ATK/AT-SPI RoleExpose

ROLE_FOOTER and object attribute xml-roles:doc-pagefooter.

Mac AX API
  • AXRole: AXGroup
  • AXSubrole: <nil>
  • AXRoleDescription: 'group'
  • AXCustomContent: { label: "type", value: "footer" }
doc-pageheader
doc-pageheader
MSAA + IAccessible2 Role + Other IAccessible2 Features Expose IAccessible2:
  • IA2_ROLE_HEADER
  • Object attribute xml-roles:doc-pageheader
UIA Control Type + Other Features
  • Control Type is Text
  • Control Pattern: Annotation
  • Annotation.AnnotationTypeId: Header
ATK/AT-SPI RoleExpose

ROLE_HEADER and object attribute xml-roles:doc-pageheader.

Mac AX API
  • AXRole: AXGroup
  • AXSubrole: <nil>
  • AXRoleDescription: 'group'
  • AXCustomContent: { label: "type", value: "header" }
doc-pagelist
doc-pagelist
MSAA + IAccessible2 Role + Other IAccessible2 Features Expose IAccessible2:
  • IA2_ROLE_LANDMARK
  • Object attribute xml-roles:doc-pagelist
UIA Control Type + Other Features
  • Control Type is Text
  • Localized Control Type is 'pagelist'
  • Landmark Type is Custom
  • Localized Landmark Type is 'pagelist'
ATK/AT-SPI RoleExpose

ROLE_LANDMARK and object attribute xml-roles:doc-pagelist.

Mac AX API
  • AXRole: AXGroup
  • AXSubrole: AXLandmarkNavigation
  • AXRoleDescription: 'navigation'
  • AXCustomContent: { label: "type", value: "page list" }
doc-part
doc-part
MSAA + IAccessible2 Role + Other IAccessible2 Features Expose IAccessible2:
  • IA2_ROLE_LANDMARK
  • Object attribute xml-roles:doc-part
UIA Control Type + Other Features
  • Control Type is Text
  • Localized Control Type is 'part'
  • Landmark Type is Custom
  • Localized Landmark Type is 'part'
ATK/AT-SPI Role

Expose ROLE_LANDMARK and object attribute xml-roles:doc-part.

Mac AX API
  • AXRole: AXGroup
  • AXSubrole: AXLandmarkRegion
  • AXRoleDescription: 'region'
  • AXCustomContent: { label: "type", value: "part" }
doc-preface
doc-preface
MSAA + IAccessible2 Role + Other IAccessible2 Features Expose IAccessible2:
  • IA2_ROLE_LANDMARKi
  • Object attribute xml-roles:doc-preface
UIA Control Type + Other Features
  • Control Type is Text
  • Localized Control Type is 'preface'
  • Landmark Type is Custom
  • Localized Landmark Type is 'preface'
ATK/AT-SPI Role

Expose ROLE_LANDMARK and object attribute xml-roles:doc-preface.

Mac AX API
  • AXRole: AXGroup
  • AXSubrole: AXLandmarkRegion
  • AXRoleDescription: 'region'
  • AXCustomContent: { label: "type", value: "preface" }
doc-prologue
doc-prologue
MSAA + IAccessible2 Role + Other IAccessible2 Features Expose IAccessible2:
  • IA2_ROLE_LANDMARK
  • Object attribute xml-roles:doc-prologue
UIA Control Type + Other Features
  • Control Type is Text
  • Localized Control Type is 'prologue'
  • Landmark Type is Custom
  • Localized Landmark Type is 'prologue'
ATK/AT-SPI Role

Expose ROLE_LANDMARK and object attribute xml-roles:doc-prologue.

Mac AX API
  • AXRole: AXGroup
  • AXSubrole: AXLandmarkRegion
  • AXRoleDescription: 'region'
  • AXCustomContent: { label: "type", value: "prolog" }
doc-pullquote
doc-pullquote
MSAA + IAccessible2 Role + Other IAccessible2 Features Expose IAccessible2:
  • IA2_ROLE_SECTION
  • Object attribute xml-roles:doc-pullquote
UIA Control Type + Other Features
  • Control Type is Text
  • Localized Control Type is 'pullquote'
ATK/AT-SPI Role

Expose ROLE_SECTION and object attribute xml-roles:doc-pullquote.

Mac AX API
  • AXRole: AXGroup
  • AXSubrole: AXApplicationGroup
  • AXRoleDescription: 'group'
  • AXCustomContent: { label: "type", value: "pull quote" }
doc-qna
doc-qna
MSAA + IAccessible2 Role + Other IAccessible2 FeaturesExpose

IA2_ROLE_SECTION

IAccessible2:

Object attribute xml-roles:doc-qna
UIA Control Type + Other Features
  • Control Type is Text
  • Localized Control Type is 'qna'
ATK/AT-SPI Role

Expose ROLE_SECTION and object attribute xml-roles:doc-qna.

Mac AX API
  • AXRole: AXGroup
  • AXSubrole: AXApplicationGroup
  • AXRoleDescription: 'group'
  • AXCustomContent: { label: "type", value: "Q&A" }
doc-subtitle
doc-subtitle
MSAA + IAccessible2 Role + Other IAccessible2 FeaturesExpose IAccessible2:
  • IA2_ROLE_HEADING
  • Object attribute xml-roles:doc-subtitle
UIA Control Type + Other Features
  • Control Type is Text
  • Localized Control Type is 'subtitle'
ATK/AT-SPI Role

Expose ROLE_HEADING and object attribute xml-roles:doc-subtitle.

Mac AX API
  • AXRole: AXHeading
  • AXSubrole: AXSubtitle
  • AXRoleDescription: 'subtitle'
  • AXCustomContent: {}
doc-tip
doc-tip
MSAA + IAccessible2 Role + Other IAccessible2 Features Expose

IA2_ROLE_NOTE

IAccessible2:

Object attribute xml-roles:doc-tip
UIA Control Type + Other Features
  • Control Type is Text
  • Localized Control Type is 'tip'
ATK/AT-SPI Role

Expose ROLE_COMMENT and object attribute xml-roles:doc-tip.

Mac AX API
  • AXRole: AXGroup
  • AXSubrole: AXDocumentNote
  • AXRoleDescription: 'note'
  • AXCustomContent: { label: "type", value: "tip" }
doc-toc
doc-toc
MSAA + IAccessible2 Role + Other IAccessible2 Features Expose IAccessible2:
  • IA2_ROLE_LANDMARK
  • Object attribute xml-roles:doc-toc
UIA Control Type + Other Features
  • Control Type is Text
  • Localized Control Type is 'toc'
  • Landmark Type is Custom
  • Localized Landmark Type is 'toc'
ATK/AT-SPI Role

Expose ROLE_LANDMARK and object attribute xml-roles:doc-toc.

Mac AX API
  • AXRole: AXGroup
  • AXSubrole: AXLandmarkNavigation
  • AXRoleDescription: 'navigation'
  • AXCustomContent: { label: "type", value: "table of contents" }

8. Translatable Values

The HTML specification states that other specifications can define translatable attributes [html]. The language and directionality of each attribute value is the same as the language and directionality of the element [html].

To be understandable by assistive technology users, the following role mapping values intended for human consumption should be translated when a page is localized:

9. State and Property Mapping

This section describes how to expose WAI-ARIA states and object properties. User agents MUST conform to the State and Property Mapping accessibility API computational requirements in [CORE-AAM-1.1].

10. Special Processing Requiring Additional Computation

10.1 Name and Description

When computing an accessible name or accessible description, user agents MUST conform to the section titled Text Alternative Computation of the [ACCNAME-1.2] specification.

10.2 Relations

User agents MUST conform to the Relation accessibility API computational requirements in [CORE-AAM-1.1].

10.3 Group Position

User agents MUST conform to the Group Position accessibility API computational requirements in [CORE-AAM-1.1].

11. Actions

User agents MUST conform to the Actions accessibility API computational requirements in [CORE-AAM-1.1].

12. Events

user agents fire events for user actions, WAI-ARIA state changes, changes to document content or node visibility, changes in selection, and operation of menus. Conforming user agents MUST support the [CORE-AAM-1.1] Events mappings.

13. Privacy and Security Considerations

This section is non-normative.

This specification introduces no new security considerations.

In accordance with Web Platform Design Principles, this specification provides no programatic interface to determine if information is being used by assistive technologies. However, this specification does allow an author to present different information to users of assistive technologies from the information available to users who do not use assistive technologies. This is possible using many features of the DPUB-ARIA specification, just as this is possible using many other parts of the web technology stack. This content disparity could be abused to perform active fingerprinting of users of assistive technologies.

A. Appendices

A.1 Change Log

A.1.1 Substantive changes since the First Public Working Draft

  • 10-Jan-2023: Added section on translatable values.
  • 04-Jan-2023: Fixed incorrect doc-pagebreak role mentioned in ATK/AT-SPI mapping for doc-preface.
  • 04-Jan-2023: Updated Mac AX API mappings to add AXCustomContent fields.

A.1.2 Other substantive changes since Digital Publishing Accessibility API Mappings 1.0

  • 20-Sep-2021: Added mappings for doc-pageheader and doc-pagefooter roles.

A.2 Acknowledgments

This section is non-normative.

The following people contributed to the development of this document.

A.2.1 Participants active in the DPUB-ARIA task force at the time of publication

  • Michael Cooper (W3C Staff)
  • Joanmarie Diggs (Igalia, S.L.)
  • Matt Garrish (DAISY Consortium)
  • James Nurthen (Adobe)
  • Tzviya Siegman (Wiley)

A.2.2 Enabling funders

This publication has been funded in part with U.S. Federal funds from the Department of Education, National Institute on Disability, Independent Living, and Rehabilitation Research (NIDILRR), initially under contract number ED-OSE-10-C-0067, then under contract number HHSP23301500054C, and now under HHS75P00120P00168. The content of this publication does not necessarily reflect the views or policies of the U.S. Department of Education, nor does mention of trade names, commercial products, or organizations imply endorsement by the U.S. Government.

B. References

B.1 Normative references

[ACCNAME-1.2]
Accessible Name and Description Computation 1.2. Bryan Garaventa; Joanmarie Diggs; Michael Cooper. W3C. 11 July 2019. W3C Working Draft. URL: https://www.w3.org/TR/accname-1.2/
[CORE-AAM-1.1]
Core Accessibility API Mappings 1.1. Joanmarie Diggs; Joseph Scheuhammer; Richard Schwerdtfeger; Michael Cooper; Andi Snow-Weaver; Aaron Leventhal. W3C. 14 December 2017. W3C Recommendation. URL: https://www.w3.org/TR/core-aam-1.1/
[dpub-aria-1.1]
Digital Publishing WAI-ARIA Module 1.1. Matt Garrish; Tzviya Siegman. W3C. 20 June 2023. W3C Working Draft. URL: https://www.w3.org/TR/dpub-aria-1.1/
[html]
HTML Standard. Anne van Kesteren; Domenic Denicola; Ian Hickson; Philip Jägenstedt; Simon Pieters. WHATWG. Living Standard. URL: https://html.spec.whatwg.org/multipage/
[infra]
Infra Standard. Anne van Kesteren; Domenic Denicola. WHATWG. Living Standard. URL: https://infra.spec.whatwg.org/
[RFC2119]
Key words for use in RFCs to Indicate Requirement Levels. S. Bradner. IETF. March 1997. Best Current Practice. URL: https://www.rfc-editor.org/rfc/rfc2119
[RFC8174]
Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words. B. Leiba. IETF. May 2017. Best Current Practice. URL: https://www.rfc-editor.org/rfc/rfc8174

B.2 Informative references

[dom]
DOM Standard. Anne van Kesteren. WHATWG. Living Standard. URL: https://dom.spec.whatwg.org/
[fingerprinting-guidance]
Mitigating Browser Fingerprinting in Web Specifications. Nick Doty. W3C. 28 March 2019. W3C Working Group Note. URL: https://www.w3.org/TR/fingerprinting-guidance/
[wai-aria]
Accessible Rich Internet Applications (WAI-ARIA) 1.0. James Craig; Michael Cooper et al. W3C. 20 March 2014. W3C Recommendation. URL: https://www.w3.org/TR/wai-aria/