MathML Accessibility API Mappings 1.0 (original) (raw)

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 theelements 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 theW3C standards and drafts 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 AccessibilityAPI 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 theW3C Patent Policy.W3C maintains apublic 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 containsEssential Claim(s) must disclose the information in accordance withsection 6 of the W3C Patent Policy.

This document is governed by the03 November 2023 W3C Process Document.

Table of Contents

  1. Abstract
  2. Status of This Document
  3. 1. Introduction
  4. 2. Conformance
    1. 2.1 Deprecated
  5. 3. Mapping MathML to Accessibility APIs
    1. 3.1 General rules for exposing WAI-ARIA semantics
    2. 3.2 Conflicts between native semantics and WAI-ARIA
    3. 3.3 Exposing features that do not directly map to accessibility API
    4. 3.4 MathML Element Mappings
      1. 3.4.1 annotation
      2. 3.4.2 annotation-xml
      3. 3.4.3 maction
      4. 3.4.4 math
      5. 3.4.5 merror
      6. 3.4.6 mfrac
      7. 3.4.7 mi
      8. 3.4.8 mmultiscripts
      9. 3.4.9 mn
      10. 3.4.10 mo
      11. 3.4.11 mover
      12. 3.4.12 mpadded
      13. 3.4.13 mphantom
      14. 3.4.14 mprescripts
      15. 3.4.15 mroot
      16. 3.4.16 mrow
      17. 3.4.17 ms
      18. 3.4.18 mspace
      19. 3.4.19 msqrt
      20. 3.4.20 mstyle
      21. 3.4.21 msub
      22. 3.4.22 msubsup
      23. 3.4.23 msup
      24. 3.4.24 mtable
      25. 3.4.25 mtd
      26. 3.4.26 mtext
      27. 3.4.27 mtr
      28. 3.4.28 munder
      29. 3.4.29 munderover
      30. 3.4.30 none
      31. 3.4.31 semantics
  6. A. Change Log
    1. A.1 Substantive changes since the last public working draft
    2. A.2 Substantive changes since the creation of this specification
  7. B. Acknowledgments
    1. B.1 ARIA WG participants at the time of publication
    2. B.2 Enabling funders
  8. C. References
    1. C.1 Normative references
    2. C.2 Informative references

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

There are currently no deprecated requirements.

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

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

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

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
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
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
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
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
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
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
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 preceedingmprescripts 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 aftermprescripts element if any or from index 1.
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
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
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
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
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
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
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
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
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
MathML Specification mspace
[wai-aria-1.1] No corresponding role
MSAA + IAccessible2 TBD
UIA TBD
ATK Not mapped
AX API Not mapped
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
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
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
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
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
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
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
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
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
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
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
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
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

This section is non-normative.

The following people contributed to the development of this document.

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.

[CORE-AAM-1.2]

Core Accessibility API Mappings 1.2. Valerie Young; Alexander Surkov. W3C. 20 March 2025. CRD. URL: https://www.w3.org/TR/core-aam-1.2/

[html]

HTML Standard. Anne van Kesteren; Domenic Denicola; Dominic Farolino; 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/

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