【问题标题】:MathML <mo> tag wrapping a decimal point包含小数点的 MathML <mo> 标签
【发布时间】:2015-12-10 00:33:52
【问题描述】:

我正在使用我们的学习管理系统 (LMS) 中内置的 MathML 编辑器,并发现了一些奇怪的东西。当我输入浮点数时,它会用&lt;mo&gt; 标签包裹小数点。

例如,我希望1.2 输出为:

<mn>1.2</mn>

但是,编辑器输出:

<mn>1</mn>
<mo>.</mo>
<mn>2</mn>

我很好奇是否有人可以确认这两个输出是否相等,以便我知道是否请求修复。

【问题讨论】:

  • 这可能有助于澄清您对“相等”的含义。显然它们不是同一个标记。你问渲染?某种形式的语义?还有什么?
  • @PeterKrautzberger 纯语义。目的是创建可访问的课程内容。归根结底,问题是这两者在被屏幕阅读软件解析时是否等价。

标签: html mathml


【解决方案1】:

我认为有几个方面。

它们的视觉呈现是否相同?

否。大多数渲染器会在句点周围添加空格,因为MathML operator dictionary. 指定为中缀运算符。

在 MathML 中编写1.2 的首选方式是什么。

是的。 &lt;mn&gt;1.2&lt;/mn&gt;。见the mn examples in the spec

它们在语义上是否相同?

这可能是一个见仁见智的问题。我会争辩说他们不是。使用最少的上下文(例如,lang=en 某处),很明显 &lt;mn&gt;1.2&lt;/mn&gt; 的含义,而 &lt;mn&gt;1&lt;/mn&gt;&lt;mo&gt;.&lt;/mo&gt;&lt;mn&gt;2&lt;/mn&gt; 更通用(尤其是因为它违反了规范的建议)。

AT 会为非视觉用户呈现相同的效果吗?

否。 例如,MathPlayer(JAWS、NVDA、Dolphin 使用)会将&lt;mn&gt;1.2&lt;/mn&gt; 发声为“一点二”,&lt;mn&gt;1&lt;/mn&gt;&lt;mo&gt;.&lt;/mo&gt;&lt;mn&gt;2&lt;/mn&gt; 发声为“一点二”。 ChromeVox 将后者表述为“一期二”。

【讨论】:

  • 感谢您的回答。它完美地解决了我的担忧。我会让我们的 LMS 供应商知道他们的 MathML 编辑器正在生成不准确且可能具有误导性的标记。
  • 正如 Dani 指出的那样,生成好的 M​​athML 对于编辑工具来说可能非常棘手,因此也许更有建设性的反馈会有所帮助。这可能只是改进一些内部启发式的问题。
【解决方案2】:

由于&lt;mo&gt; 标记是表示MathML,我敢说这两种表示法是等价的。此外,任何编辑者都可能很难确定诸如 3.5、3·5、3'5 之类的表达式是十进制数字还是其他什么,而没有任何关于用户文化和意图的粘合剂。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-20
    • 2017-04-06
    • 1970-01-01
    相关资源
    最近更新 更多