MathML Accessibility API Mappings 1.0

MathML Accessibility API Mappings 1.0

W3C Editor's Draft

More details about this document
This version:
https://w3c.github.io/mathml-aam/
Latest published version:
https://www.w3.org/TR/mathml-aam-1.0/
Latest editor's draft:
https://w3c.github.io/mathml-aam/
History:
Commit history
Editors:
James Nurthen (Adobe)
Neil Soiffer (Invited Expert)
Former editors:
Joanmarie Diggs (Igalia, S.L.) (Editor until August 2023)
Alexander Surkov (Igalia, S.L.) (Editor until August 2023)
Michael Cooper (W3C) (Editor until August 2023)
Feedback:
GitHub w3c/mathml-aam (pull requests, new issue, open issues)

Abstract

The MathML Accessibility API Mappings (MathML-AAM) specification defines how user agents map Mathematical Markup Language (MathML) [MathML3] to platform accessibility APIs. It extends the Core Accessibility API Mappings (CORE-AAM) specification [CORE-AAM-1.2].

This specification is intended for user agent developers responsible for MathML accessibility in their product. The goal of this specification is to maximize the accessibility of MathML content by ensuring each assistive technology receives MathML content with the roles, states, and properties it expects.

At the present time, this specification contains mappings for the subset of MathML contained in the MathML Core specification [MathML-Core]. The reason why is that this subset contains the elements and attributes from MathML which are exposed to assistive technologies via platform accessibility APIs.

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

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/.

This document is a work in progress.

To provide feedback, please create or comment on an issue in the W3C MathML Accessibility API Mappings GitHub repository. If this is not feasible, send email to public-aria@w3.org.

This document was published by the Accessible Rich Internet Applications Working Group as an Editor's Draft.

Publication as an Editor's 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 03 November 2023 W3C Process Document.

1. Introduction

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.

The classification of a section as normative or non-normative applies to the entire section and all sub-sections of that section.

Normative sections provide requirements that authors and user agents, and assistive technologies MUST follow for an implementation to conform to this specification.

Non-normative 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.1 Deprecated

There are currently no deprecated requirements.

3. Mapping MathML to Accessibility APIs

3.1 General rules for exposing WAI-ARIA semantics

User agents MUST conform to General rules for exposing WAI-ARIA semantics in [CORE-AAM-1.2].

3.2 Conflicts between native semantics and WAI-ARIA

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

3.3 Exposing features that do not directly map to accessibility API

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

3.4 MathML Element Mappings

3.4.1 annotation

MathML Specification annotation
[wai-aria-1.1] No corresponding role
MSAA + IAccessible2 TBD
UIA TBD
ATK Role: ATK_ROLE_STATIC
Object Attribute: tag:annotation
AX API AXRole: NSAccessibilityGroupRole
AXSubrole: TBD

3.4.2 annotation-xml

MathML Specification annotation-xml
[wai-aria-1.1] No corresponding role
MSAA + IAccessible2 TBD
UIA TBD
ATK Role: ATK_ROLE_SECTION
Object Attribute: tag:annotation-xml
AX API AXRole: NSAccessibilityGroupRole
AXSubrole: TBD

3.4.3 maction

MathML Specification maction
[wai-aria-1.1] No corresponding role
MSAA + IAccessible2 TBD
UIA TBD
ATK Role: ATK_ROLE_SECTION
Object Attribute: tag:maction
AX API AXRole: NSAccessibilityGroupRole
AXSubrole: TBD

3.4.4 math

MathML Specification math
[wai-aria-1.1] math role
MSAA + IAccessible2
Use WAI-ARIA mapping
UIA
Use WAI-ARIA mapping
ATK
Use WAI-ARIA mapping
AX API
Use WAI-ARIA mapping

3.4.5 merror

MathML Specification merror
[wai-aria-1.1] No corresponding role
MSAA + IAccessible2 TBD
UIA TBD
ATK Role: ATK_ROLE_SECTION
Object Attribute: tag:merror
AX API AXRole: NSAccessibilityGroupRole
AXSubrole: AXMathRow

3.4.6 mfrac

MathML Specification mfrac
[wai-aria-1.1] No corresponding role
MSAA + IAccessible2 TBD
UIA TBD
ATK Role: ATK_ROLE_MATH_FRACTION
Object Attribute: tag:mfrac
AX API AXRole: NSAccessibilityGroupRole
AXSubrole: AXMathFraction
AXAttributes: AXMathFractionNumerator pointing to the first in-flow child
AXMathFractionDenominator pointing to the second in-flow child

3.4.7 mi

MathML Specification mi
[wai-aria-1.1] No corresponding role
MSAA + IAccessible2 TBD
UIA TBD
ATK Role: ATK_ROLE_STATIC
Object Attribute: tag:mi
AX API AXRole: NSAccessibilityGroupRole
AXSubrole: AXMathIdentifier

3.4.8 mmultiscripts

MathML Specification mmultiscripts
[wai-aria-1.1] No corresponding role
MSAA + IAccessible2 TBD
UIA TBD
ATK Role: ATK_ROLE_SECTION
Object Attribute: tag:mmultiscripts
AX API AXRole: NSAccessibilityGroupRole
AXSubrole: AXMathMultiscript
AXAttributes:
  • AXMathPostscripts is an array of dictionaries of AXMathSubscript and AXMathSupscript pointing to postsubscript and postsupscript elements , i.e. N and N + 1 in-flow children starting from the second in-flow child and preceeding mprescripts element if any;
  • AXMathPrescripts is an array of dictionaries of AXMathSubscript and AXMathSupscript pointing to presubscript and presupscript elements, i.e. N and N + 1 in-flow children starting after mprescripts element if any or from index 1.

3.4.9 mn

MathML Specification mn
[wai-aria-1.1] No corresponding role
MSAA + IAccessible2 TBD
UIA TBD
ATK Role: ATK_ROLE_STATIC
Object Attribute: tag:ms
AX API AXRole: NSAccessibilityGroupRole
AXSubrole: AXMathNumber

3.4.10 mo

MathML Specification mo
[wai-aria-1.1] No corresponding role
MSAA + IAccessible2 TBD
UIA TBD
ATK Role: ATK_ROLE_STATIC
Object Attribute: tag:mo
AX API AXRole: NSAccessibilityGroupRole
AXSubrole: AXMathOperator

3.4.11 mover

MathML Specification mover
[wai-aria-1.1] No corresponding role
MSAA + IAccessible2 TBD
UIA TBD
ATK Role: ATK_ROLE_SECTION
Object Attribute: tag:mover
AX API AXRole: NSAccessibilityGroupRole
AXSubrole: AXMathUnderOver
AXAttributes: AXMathBase pointing to the first in-flow child AXMathOver pointing to the second in-flow child

3.4.12 mpadded

MathML Specification mpadded
[wai-aria-1.1] No corresponding role
MSAA + IAccessible2 TBD
UIA TBD
ATK Role: ATK_ROLE_SECTION
Object Attribute: tag:mpadded
AX API AXRole: NSAccessibilityGroupRole
AXSubrole: TBD

3.4.13 mphantom

MathML Specification mphantom
[wai-aria-1.1] No corresponding role
MSAA + IAccessible2 TBD
UIA TBD
ATK Role: ATK_ROLE_SECTION
Object Attribute: tag:mphantom
AX API AXRole: NSAccessibilityGroupRole
AXSubrole: AXMathRow

3.4.14 mprescripts

MathML Specification mprescripts
[wai-aria-1.1] No corresponding role
MSAA + IAccessible2 TBD
UIA TBD
ATK Role: ATK_ROLE_SECTION
Object Attribute: tag:mprescripts
AX API Not mapped

3.4.15 mroot

MathML Specification mroot
[wai-aria-1.1] No corresponding role
MSAA + IAccessible2 TBD
UIA TBD
ATK Role: ATK_ROLE_MATH_ROOT
Object Attribute: tag:mroot
AX API AXRole: NSAccessibilityGroupRole
AXSubrole: AXMathRoot
AXAttributes: AXMathRootRadicand is an array containing the first in-flow child as its unique element,
AXMathRootIndex pointing to the second in-flow child

3.4.16 mrow

MathML Specification mrow
[wai-aria-1.1] No corresponding role
MSAA + IAccessible2 TBD
UIA TBD
ATK Role: ATK_ROLE_SECTION
Object Attribute: tag:mrow
AX API AXRole: NSAccessibilityGroupRole
AXSubrole: AXMathRow

3.4.17 ms

MathML Specification ms
[wai-aria-1.1] No corresponding role
MSAA + IAccessible2 TBD
UIA TBD
ATK Role: ATK_ROLE_STATIC
Object Attribute: tag:ms
AX API AXRole: NSAccessibilityGroupRole
AXSubrole: nil

3.4.18 mspace

MathML Specification mspace
[wai-aria-1.1] No corresponding role
MSAA + IAccessible2 TBD
UIA TBD
ATK Not mapped
AX API Not mapped

3.4.19 msqrt

MathML Specification msqrt
[wai-aria-1.1] No corresponding role
MSAA + IAccessible2 TBD
UIA TBD
ATK Role: ATK_ROLE_MATH_ROOT
Object Attribute: tag:mroot
AX API AXRole: NSAccessibilityGroupRole
AXSubrole: AXMathSquareRoot
AXAttributes: AXMathRootRadicand is an array containing the in-flow children

3.4.20 mstyle

MathML Specification mstyle
[wai-aria-1.1] No corresponding role
MSAA + IAccessible2 TBD
UIA TBD
ATK Role: ATK_ROLE_SECTION
Object Attribute: tag:mstyle
AX API AXRole: NSAccessibilityGroupRole
AXSubrole: AXMathRow

3.4.21 msub

MathML Specification msub
[wai-aria-1.1] No corresponding role
MSAA + IAccessible2 TBD
UIA TBD
ATK Role: ATK_ROLE_SECTION
Object Attribute: tag:msub
AX API AXRole: NSAccessibilityGroupRole
AXSubrole: AXMathSubscriptSuperscript
AXAttributes: AXMathBase pointing to the first in-flow child
AXMathSubscript pointing to the second in-flow child

3.4.22 msubsup

MathML Specification msubsup
[wai-aria-1.1] No corresponding role
MSAA + IAccessible2 TBD
UIA TBD
ATK Role: ATK_ROLE_SECTION
Object Attribute: tag:msubsup
AX API AXRole: NSAccessibilityGroupRole
AXSubrole: AXMathSubscriptSuperscript
AXAttributes: AXMathBase pointing to the first in-flow child AXMathSubscript pointing to the second in-flow child
AXMathSuperscript pointing to the third in-flow child

3.4.23 msup

MathML Specification msup
[wai-aria-1.1] No corresponding role
MSAA + IAccessible2 TBD
UIA TBD
ATK Role: ATK_ROLE_SECTION
Object Attribute: tag:msup
AX API AXRole: NSAccessibilityGroupRole
AXSubrole: AXMathSubscriptSuperscript
AXAttributes: AXMathBase pointing to the first in-flow child
AXMathSuperscript pointing to the second in-flow child

3.4.24 mtable

MathML Specification mtable
[wai-aria-1.1] No corresponding role
MSAA + IAccessible2 TBD
UIA TBD
ATK Role: ATK_ROLE_TABLE
Object Attribute: tag:mtable
Interface(s): AtkTable
AX API AXRole: NSAccessibilityGroupRole
AXSubrole: AXMathTable

3.4.25 mtd

MathML Specification mtd
[wai-aria-1.1] No corresponding role
MSAA + IAccessible2 TBD
UIA TBD
ATK Role: ATK_ROLE_TABLE_CELL
Object Attribute: tag:mtd
Interface(s): AtkTableCell
AX API AXRole: NSAccessibilityGroupRole
AXSubrole: AXMathTableCell

3.4.26 mtext

MathML Specification mtext
[wai-aria-1.1] No corresponding role
MSAA + IAccessible2 TBD
UIA TBD
ATK Role: ATK_ROLE_STATIC
Object Attribute: tag:mtext
AX API AXRole: NSAccessibilityGroupRole
AXSubrole: AXMathText

3.4.27 mtr

MathML Specification mtr
[wai-aria-1.1] No corresponding role
MSAA + IAccessible2 TBD
UIA TBD
ATK Role: ATK_ROLE_TABLE_ROW
Object Attribute: tag:mtr
AX API AXRole: NSAccessibilityGroupRole
AXSubrole: AXMathTableRow

3.4.28 munder

MathML Specification munder
[wai-aria-1.1] No corresponding role
MSAA + IAccessible2 TBD
UIA TBD
ATK Role: ATK_ROLE_SECTION
Object Attribute: tag:munder
AX API AXRole: NSAccessibilityGroupRole
AXSubrole: AXMathUnderOver
AXAttributes: AXMathBase pointing to the first in-flow child
AXMathUnder pointing to the second in-flow child

3.4.29 munderover

MathML Specification munderover
[wai-aria-1.1] No corresponding role
MSAA + IAccessible2 TBD
UIA TBD
ATK Role: ATK_ROLE_SECTION
Object Attribute: tag:munderover
AX API AXRole: NSAccessibilityGroupRole
AXSubrole: AXMathUnderOver
AXAttributes: AXMathBase pointing to the first in-flow child
AXMathUnder pointing to the second in-flow child
AXMathOver pointing to the third in-flow child

3.4.30 none

MathML Specification none
[wai-aria-1.1] No corresponding role
MSAA + IAccessible2 TBD
UIA TBD
ATK Role: ATK_ROLE_SECTION
Object Attribute: tag:none
AX API AXRole: TBD
AXSubrole: TBD

3.4.31 semantics

MathML Specification semantics
[wai-aria-1.1] No corresponding role
MSAA + IAccessible2 TBD
UIA TBD
ATK Role: ATK_ROLE_SECTION
Object Attribute: tag:semantics
AX API AXRole: NSAccessibilityGroupRole
AXSubrole: TBD

A. Change Log

A.1 Substantive changes since the last public working draft

A.2 Substantive changes since the creation of this specification

B. Acknowledgments

This section is non-normative.

The following people contributed to the development of this document.

B.1 Participants active in the ARIA WG at the time of publication

B.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.

C. References

C.1 Normative references

[CORE-AAM-1.2]
Core Accessibility API Mappings 1.2. Valerie Young; Alexander Surkov; Michael Cooper. W3C. 2 November 2023. W3C Candidate Recommendation. URL: https://www.w3.org/TR/core-aam-1.2/
[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/
[MathML3]
Mathematical Markup Language (MathML) Version 3.0 2nd Edition. David Carlisle; Patrick D F Ion; Robert R Miner. W3C. 10 April 2014. W3C Recommendation. URL: https://www.w3.org/TR/MathML3/
[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
[wai-aria-1.1]
Accessible Rich Internet Applications (WAI-ARIA) 1.1. Joanmarie Diggs; Shane McCarron; Michael Cooper; Richard Schwerdtfeger; James Craig. W3C. 14 December 2017. W3C Recommendation. URL: https://www.w3.org/TR/wai-aria-1.1/

C.2 Informative references

[dom]
DOM Standard. Anne van Kesteren. WHATWG. Living Standard. URL: https://dom.spec.whatwg.org/
[infra]
Infra Standard. Anne van Kesteren; Domenic Denicola. WHATWG. Living Standard. URL: https://infra.spec.whatwg.org/
[MathML-Core]
MathML Core. David Carlisle; Frédéric Wang. URL: https://mathml-refresh.github.io/mathml-core/
[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/