MathML <mo> 标签换行小数点
MathML <mo> tag wrapping a decimal point
我在使用我们的学习管理系统 (LMS) 中内置的 MathML 编辑器时发现了一些奇怪的东西。当我输入浮点数时,它用 <mo>
标记包裹小数点。
例如,我希望 1.2
输出为:
<mn>1.2</mn>
然而,编辑器输出:
<mn>1</mn>
<mo>.</mo>
<mn>2</mn>
我很好奇是否有人可以确认这两个输出是否相等,以便我知道是否请求修复。
由于 <mo>
标记是表示 MathML,我敢说这两种表示法是等价的。此外,任何编辑都可能很难决定像 3.5、3·5、3'5 这样的表达式是十进制数还是其他与用户的文化和意图无关的东西。
我认为有几个方面。
它们在视觉上呈现相同吗?
没有。 大多数渲染器会在句点周围添加 space,因为 MathML operator dictionary 指定 .
作为中缀运算符。
在 MathML 中写 1.2
的首选方式是什么。
是。<mn>1.2</mn>
。参见 the mn
examples in the spec。
它们在语义上是否相同?
这可能是一个见仁见智的问题。我会争辩说他们不是。使用最小的上下文(例如,lang=en
某处),很清楚 <mn>1.2</mn>
的意思,而 <mn>1</mn><mo>.</mo><mn>2</mn>
更通用(特别是,因为它违背了规范的建议)。
AT 会为非视觉用户呈现相同的效果吗?
No. 例如 MathPlayer(JAWS、NVDA、Dolphin 使用的)会将 <mn>1.2</mn>
发声为 "one point two",将 <mn>1</mn><mo>.</mo><mn>2</mn>
发声为 "one dot two"。 ChromeVox 会将后者发音为 "one period two"。
我在使用我们的学习管理系统 (LMS) 中内置的 MathML 编辑器时发现了一些奇怪的东西。当我输入浮点数时,它用 <mo>
标记包裹小数点。
例如,我希望 1.2
输出为:
<mn>1.2</mn>
然而,编辑器输出:
<mn>1</mn>
<mo>.</mo>
<mn>2</mn>
我很好奇是否有人可以确认这两个输出是否相等,以便我知道是否请求修复。
由于 <mo>
标记是表示 MathML,我敢说这两种表示法是等价的。此外,任何编辑都可能很难决定像 3.5、3·5、3'5 这样的表达式是十进制数还是其他与用户的文化和意图无关的东西。
我认为有几个方面。
它们在视觉上呈现相同吗?
没有。 大多数渲染器会在句点周围添加 space,因为 MathML operator dictionary 指定 .
作为中缀运算符。
在 MathML 中写 1.2
的首选方式是什么。
是。<mn>1.2</mn>
。参见 the mn
examples in the spec。
它们在语义上是否相同?
这可能是一个见仁见智的问题。我会争辩说他们不是。使用最小的上下文(例如,lang=en
某处),很清楚 <mn>1.2</mn>
的意思,而 <mn>1</mn><mo>.</mo><mn>2</mn>
更通用(特别是,因为它违背了规范的建议)。
AT 会为非视觉用户呈现相同的效果吗?
No. 例如 MathPlayer(JAWS、NVDA、Dolphin 使用的)会将 <mn>1.2</mn>
发声为 "one point two",将 <mn>1</mn><mo>.</mo><mn>2</mn>
发声为 "one dot two"。 ChromeVox 会将后者发音为 "one period two"。