title |
---|
literal and common core properties: details |
{:.no_toc}
- toc {:toc}
The :literal
and :common
core properties establish a set of defaults for speaking every MathML element that MathML intent generators can assume and that AT should implement. That does not mean that the exact words are specified, only that AT chooses words that convey the default meaning. For example: msup
is spoken as "super" or "superscript" or some similar words if that element or some ancestor includes the :literal
property. The exact words may depend upon both the audience and the children of node. In particular, for someone who is blind, it may be important to indicate the start and end of fractions, roots, etc.
The default meanings and special cases for all the MathML elements are:
- leaf tags speak their contents. Exceptions are:
-
ms
speaks its open/close deliminators in addition to its contents. -
mglyph
speaks the alt text -
mspace
,malginmark
,maligngroup
, andnone
are either silent or generate pauses -
msline
, indicates that it is a line - trig function names might be expanded
-
-
mrow
-- speaks the children -
mfrac
-- arg1 "over" arg2 -
msqrt
-- "root" arg -
mroot
-- "root with" index "and contents" contents -
merror
-- indicates there is an error and speaks the contents -
mfenced
-- should speak the same as the equivalentmrow
notation -
menclose
-- should indicate the notation attributes along with the contents. For example, "box around arg" or "line under arg" -
msup
-- arg1 "superscript" arg2. The exceptions are when the superscript is a pseudo-script character, in which case "superscript" is not spoken (e.g,$x^\prime$ is spoken "x prime"). See below for a list of pseudo-script characters. -
msub
-- arg1 "subscript" arg2. -
msubsup
-- arg1 "subscript" arg2"superscript" arg3. As withmsup
, exceptions are made when the superscript is a pseudo-script character. -
mover
-- arg1 "with" arg2 "above". When arg2 is bar, hat, caret, tilde, dot (1-4 of them), acute, or grave, the speech is abbreviated to arg1 arg2 as in "x bar". -
munder
-- arg1 "with" arg2 "below". When arg2 is bar, the speech is abbreviated to arg1 arg2 as in "x underbar" -
munderover
-- arg1 "with" arg2 "below and" arg3 "above. When arg3 is one of the special cases formover
, then the speech is abbreviated to arg1 arg3 "with" arg2 "below" as in "x bar with cup below" -
mmultiscripts
-- indicates the scripts and their position in some way. E.g., "start-scripted ... pre-subscript ... pre-superscript ... base ... post-subscript ... post-superscript ... end-scripted" -
mtable
/mtr
/mlabeledtr
/mtd
-- say something appropriate for tables (no recognition of determinants, matrices, vectors, etc) - elementary math elements (
mstack
/mlongdiv
/msgroup
/msrow
/mscarries
/mscarry
) -- say something about the layout, but not that it is addition, long division, repeated decimals, etc. -
maction
-- speaks the selected child with maybe some indication of the action -
semantics
-- speaks the presentation child
The default meanings and special cases for all the MathML elements are:
- leaf tags speak their contents. Exceptions are:
-
ms
speaks its open/close deliminators in addition to its contents. -
mglyph
speaks the alt text -
mspace
,malginmark
,maligngroup
, andnone
are either silent or generate pauses -
msline
, indicates that it is a line - "gcd" and "lcm" should be spelled out
- trig function names might be expanded
-
-
mrow
-- speaks the children- the mrow consists of parens, brackets around an mtable -- speak as a matrix
- the mrow consists of vertical bars around an mtable -- speak as a determinant
-
mfrac
-- indicates it is division, but might have a number of special case rules depending on the arguments. For example "three quarters", "x over y", "a over b all over c" -
msqrt
-- indicates it is a square root -
mroot
-- indicates it is a root with an index. There should be special cases for at least '2' and '3' as the index -
merror
-- indicates there is an error and speaks the contents -
mfenced
-- should speak the same as the equivalentmrow
notation -
menclose
-- should indicate the notation attributes along with the contents. Special case speech might be appropriate when menclose looks like a similar notation that has special cases (e.g,notation="top"
looks the same asmover
with a "_" (or equivalent) second child). -
msup
-- should assume that the notation is a power with the following special cases- the power is '2' or '3'
- the power is '-1' and this is a trig function or log function
- the power is one of the pseudo-script character, in which case the superscript is not spoken (e.g,
$x^\prime$ is spoken "x prime") - the base is one of the named sets
-
msub
-- indicates a subscript. Special cases:- the base is "log" or "lg"
- the base is one of the named sets
- the base is a large operator (either because it is an
mo
that has an explicit or default largeop attribute or because it has the:largeop
intent property)
-
msubsup
-- indicates a subscripted variable raised a power with the same special cases asmsup
andmsubsup
. This includes (read the same as for munderover)- the base is a large operator
-
mover
-- indicates that the second argument is over the first. Special cases:- bar, hat, caret, tilde, dot (1-4 of them), acute, or grave
- the base is a large operator
-
munder
-- indicates that the second argument is under the first. Special cases:- the base is a large operator
- the base is "lim", "limit", "liminf", or "limsup"
-
munderover
-- indicates there is content above and below the base. Special case:- those listed for mover
- the base is a large operator (speak using "from" and "to" -- see below)
-
mmultiscripts
-- indicates the scripts -
mtable
/mtr
/mlabeledtr
/mtd
-- say something appropriate for tables, making it clear which row and column each entry is in. Special cases:-
$1 \times n$ and$n \times 1$ tables might have specialized speech - small tables with simple entries might have specialized speech
-
- elementary math elements (
mstack
/mlongdiv
/msgroup
/msrow
/mscarries
/mscarry
) -- say something appropriate. This might be something like "math stack 323 plus 61 horizontal line 384" -
maction
-- speaks the selected child with maybe some indication of the action -
semantics
-- speaks the presentation child
The following is a minimum list of trig functions that should be recognized and spoken appropriately: "cos", "cosec", "cosech", "cosh", "cot", "cotan", "cotanh", "coth", "csc", "csch", "sec", "sech", "sin", "sinh", "tan", "tang", "tanh", "tg", "ln", "log", "lg". Other languages may add localized versions to this list.
If these names are encountered, they typically are expanded to their full name: "csc" would be "co-secant" in English; "sinh" would be "hyperbolic sine", etc.
As noted above, a trig function raised to a "-1" power should have special speech. For example,
These are spoken in a special way, although maybe that is just the default way to speak those Unicode characters.
However, adding subscripts and superscripts of various types (e.g.,