This is an archived snapshot of W3C's public bugzilla bug tracker, decommissioned in April 2019. Please see the home page for more details.

Bug 10047 - HTML5 parser possible compat problem with pages that use MathML elements in <mi>, <mo>, etc
Summary: HTML5 parser possible compat problem with pages that use MathML elements in <...
Status: RESOLVED WONTFIX
Alias: None
Product: HTML WG
Classification: Unclassified
Component: pre-LC1 HTML5 spec (editor: Ian Hickson) (show other bugs)
Version: unspecified
Hardware: PC All
: P2 normal
Target Milestone: ---
Assignee: Ian 'Hixie' Hickson
QA Contact: HTML WG Bugzilla archive list
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-06-29 14:42 UTC by Simon Pieters
Modified: 2010-10-04 14:29 UTC (History)
5 users (show)

See Also:


Attachments

Description Simon Pieters 2010-06-29 14:42:53 UTC
The HTML5 parser "in foreign content" has:

↪A start tag whose tag name is neither "mglyph" nor "malignmark", if the current node is an mi 
element in the MathML namespace.
↪A start tag whose tag name is neither "mglyph" nor "malignmark", if the current node is an mo 
element in the MathML namespace.
↪A start tag whose tag name is neither "mglyph" nor "malignmark", if the current node is an mn 
element in the MathML namespace.
↪A start tag whose tag name is neither "mglyph" nor "malignmark", if the current node is an ms 
element in the MathML namespace.
↪A start tag whose tag name is neither "mglyph" nor "malignmark", if the current node is an mtext 
element in the MathML namespace.
...
Process the token using the rules for the secondary insertion mode.

This means that for <mi><mglyph> and <mi><malignmark>, the mglyph and malignmark elements are in the MathML namespace, while for <mi><b> and <mi><foobar> the b and foobar elements are in the HTML namespace.

The following page:

http://www.google.com/codesearch/p?hl=en#KGV8vs9gsGI/content/abacus/content/XNS/docs/BigDecimal.html&q=%3C(%5B%5E%5Cs/%5D%2B:)%3Fmath%20%3C(%5B%5E%5Cs/%5D%2B:)%3Fmo%3E%5B%5E%3C%5D*%3C%5B%5E/%5D&sa=N&cd=25&ct=rc

...has <mi><msub> and <mo><mrow>. msub and mrow and their children end up in the HTML namespace which breaks the rendering of the formula. Compare:

http://canvex.lazyilluminati.com/misc/dom-viewer/x.html?%3Chtml%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxhtml%22%3E%0A%3Cbody%3E%0A%3Cmath%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F1998%2FMath%2FMathML%22%3E%0A%20%20%3Cmi%3EA%3C%2Fmi%3E%0A%20%20%3Cmo%3E%3D%3C%2Fmo%3E%0A%20%20%3Cmrow%3E%0A%20%20%20%20%3Cmo%3E%28%3C%2Fmo%3E%0A%20%20%20%20%3Cmunderover%3E%0A%20%20%20%20%20%20%3Cmo%3E%E2%88%91%3C%2Fmo%3E%0A%20%20%20%20%20%20%3Cmrow%3E%0A%20%20%20%20%20%20%20%20%3Cmi%3Ek%3C%2Fmi%3E%0A%20%20%20%20%20%20%20%20%3Cmo%3E%3D%3C%2Fmo%3E%0A%20%20%20%20%20%20%20%20%3Cmn%3E0%3C%2Fmn%3E%0A%20%20%20%20%20%20%3C%2Fmrow%3E%0A%20%20%20%20%20%20%3Cmo%3E%E2%88%9E%3C%2Fmo%3E%0A%20%20%20%20%3C%2Fmunderover%3E%0A%20%20%20%20%3Cmi%3E%3Cmsub%3E%0A%20%20%20%20%20%20%3Cmi%3Ea%3C%2Fmi%3E%0A%20%20%20%20%20%20%3Cmi%3Ek%3C%2Fmi%3E%0A%20%20%20%20%3C%2Fmsub%3E%0A%20%20%20%20%3C%2Fmi%3E%0A%20%20%20%20%3Cmo%3E%3Cmrow%3E%0A%20%20%20%20%20%20%3Cmrow%3E%0A%20%20%20%20%20%20%20%20*%3C%2Fmrow%3E%0A%20%20%20%20%20%20%3Cmsup%3E%0A%20%20%20%20%20%20%20%20%3Cmn%3E10%3C%2Fmn%3E%0A%20%20%20%20%20%20%20%20%3Cmrow%3E%0A%20%20%20%20%20%20%20%20%20%20%3Cmo%3E-%3C%2Fmo%3E%0A%20%20%20%20%20%20%20%20%20%20%3Cmi%3Ek%3C%2Fmi%3E%0A%20%20%20%20%20%20%20%20%20%20%3Cmo%3E*%3C%2Fmo%3E%0A%20%20%20%20%20%20%20%20%20%20%3Cmi%3Ej%3C%2Fmi%3E%0A%20%20%20%20%20%20%20%20%3C%2Fmrow%3E%0A%20%20%20%20%20%20%3C%2Fmsup%3E%0A%20%20%20%20%3C%2Fmrow%3E%0A%20%20%20%20%3C%2Fmo%3E%0A%20%20%20%20%3Cmo%3E%29%3C%2Fmo%3E%0A%20%20%3C%2Fmrow%3E%0A%3C%2Fmath%3E%0A%3C%2Fbody%3E%0A%3C%2Fhtml%3E

...with:

http://livedom.validator.nu/?%3Chtml%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxhtml%22%3E%0A%3Cbody%3E%0A%3Cmath%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F1998%2FMath%2FMathML%22%3E%0A%20%20%3Cmi%3EA%3C%2Fmi%3E%0A%20%20%3Cmo%3E%3D%3C%2Fmo%3E%0A%20%20%3Cmrow%3E%0A%20%20%20%20%3Cmo%3E%28%3C%2Fmo%3E%0A%20%20%20%20%3Cmunderover%3E%0A%20%20%20%20%20%20%3Cmo%3E%E2%88%91%3C%2Fmo%3E%0A%20%20%20%20%20%20%3Cmrow%3E%0A%20%20%20%20%20%20%20%20%3Cmi%3Ek%3C%2Fmi%3E%0A%20%20%20%20%20%20%20%20%3Cmo%3E%3D%3C%2Fmo%3E%0A%20%20%20%20%20%20%20%20%3Cmn%3E0%3C%2Fmn%3E%0A%20%20%20%20%20%20%3C%2Fmrow%3E%0A%20%20%20%20%20%20%3Cmo%3E%E2%88%9E%3C%2Fmo%3E%0A%20%20%20%20%3C%2Fmunderover%3E%0A%20%20%20%20%3Cmi%3E%3Cmsub%3E%0A%20%20%20%20%20%20%3Cmi%3Ea%3C%2Fmi%3E%0A%20%20%20%20%20%20%3Cmi%3Ek%3C%2Fmi%3E%0A%20%20%20%20%3C%2Fmsub%3E%0A%20%20%20%20%3C%2Fmi%3E%0A%20%20%20%20%3Cmo%3E%3Cmrow%3E%0A%20%20%20%20%20%20%3Cmrow%3E%0A%20%20%20%20%20%20%20%20*%3C%2Fmrow%3E%0A%20%20%20%20%20%20%3Cmsup%3E%0A%20%20%20%20%20%20%20%20%3Cmn%3E10%3C%2Fmn%3E%0A%20%20%20%20%20%20%20%20%3Cmrow%3E%0A%20%20%20%20%20%20%20%20%20%20%3Cmo%3E-%3C%2Fmo%3E%0A%20%20%20%20%20%20%20%20%20%20%3Cmi%3Ek%3C%2Fmi%3E%0A%20%20%20%20%20%20%20%20%20%20%3Cmo%3E*%3C%2Fmo%3E%0A%20%20%20%20%20%20%20%20%20%20%3Cmi%3Ej%3C%2Fmi%3E%0A%20%20%20%20%20%20%20%20%3C%2Fmrow%3E%0A%20%20%20%20%20%20%3C%2Fmsup%3E%0A%20%20%20%20%3C%2Fmrow%3E%0A%20%20%20%20%3C%2Fmo%3E%0A%20%20%20%20%3Cmo%3E%29%3C%2Fmo%3E%0A%20%20%3C%2Fmrow%3E%0A%3C%2Fmath%3E%0A%3C%2Fbody%3E%0A%3C%2Fhtml%3E

How were "mglyph" and "malignmark" chosen as being special-cases? Are there more elements that should be special-cased (the above page expects "mrow" and "msub")?

Mike Smith had come to the conclusion of only allowing HTML in <mtext> in the schema for Validator.nu, after discussion with some MathML people (?). If it doesn't make sense to allow HTML in <mi>, <mn>, <mo> and <ms>, maybe the parser shouldn't expect HTML there either.
Comment 1 David Carlisle 2010-06-29 14:48:59 UTC
...has <mi><msub> and <mo><mrow>. msub and mrow and their children end up in
the HTML namespace which breaks the rendering of the formula.



such input is invalid and the MathML specification will give no guidance as to what to do, whatever error fixup is appropriate in an html context.
Comment 2 Ian 'Hixie' Hickson 2010-08-21 21:42:36 UTC
EDITOR'S RESPONSE: This is an Editor's Response to your comment. If you are satisfied with this response, please change the state of this bug to CLOSED. If you have additional information and would like the editor to reconsider, please reopen this bug. If you would like to escalate the issue to the full HTML Working Group, please add the TrackerRequest keyword to this bug, and suggest title and text for the tracker issue; or you may create a tracker issue yourself, if you are able to do so. For more details, see this document:
   http://dev.w3.org/html5/decision-policy/decision-policy.html

Status: Rejected
Change Description: no spec change
Rationale: I based it on what MathML says -- as David says, using <mrow> there is nonsensical.