Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Removal/Deprecation of <mfenced> #2

Closed
fred-wang opened this issue Feb 14, 2019 · 13 comments
Closed

Removal/Deprecation of <mfenced> #2

fred-wang opened this issue Feb 14, 2019 · 13 comments
Labels
compatibility Issues affecting backward compatibility MathML Core Issues affecting the MathML Core specification MathML 4 Issues affecting the MathML 4 specification need specification update Issues requiring specification changes

Comments

@fred-wang
Copy link

This proposal is to remove the <mfenced> element or at least deprecate it.

From the Math WG: https://lists.w3.org/Archives/Public/www-math/2016Jul/0004.html
From the original "MathML in HTML5" appendix: "The element is just a “convenient form in which to express common constructs involving fences” but is strictly equivalent to an expanded form with and elements and has many exceptions to handle. It is thus not actually necessary and just requires more code for implementers and may lead to rendering inconsistencies with the expanded form. It requires web rendering engines to create many “anonymous” rendering frames (or similar) and keep them up-to-date which may lead to rendering, performance or security issues. Because the text of fences and separators is included in attributes and not in MathML elements then by default it may not be possible to search, select, copy it. It may also not be exposed to assitive technologies without further effort. In this document support for mfenced is not required. Authors are encouraged to use the expanded form and we recommend that the element is dropped from future version of the MathML specification. "

@fred-wang fred-wang added the MathML 4 Issues affecting the MathML 4 specification label Feb 22, 2019
@fred-wang
Copy link
Author

mfenced is currently not defined in MathML Core, so this is just for mathml4

@dani31415
Copy link

There is a precedent of content in an attribute that is selectable and exposed to the AT: the value attribute of the input HTML tag.

@physikerwelt
Copy link
Member

discussed in the telco on 2019-02-25:

  • no consensus. Murray points out the semantics advantages of mfenced.

@fred-wang
Copy link
Author

Polyfill has been moved to:
https://mathml-refresh.github.io/mathml-polyfills/mfenced/
https://github.com/mathml-refresh/mathml-polyfills/tree/master/mfenced

@fred-wang fred-wang added the compatibility Issues affecting backward compatibility label Mar 20, 2019
@NSoiffer
Copy link
Contributor

Based on the stats we have, mfenced is not used by converters. NAG uses it extensively, but the MathML spec defines its equivalence and so it doesn't add functionality. Given it's use, it would be wrong to deprecate from the full spec, but given it's equivalence, I don't see a need to keep it in core.

@fred-wang
Copy link
Author

Resolution:
Notes are not published yet but we agree to remove from core and keep in full?

Specification:
MathML Full probably needs update.

Implementation:
Need to remove from WebKit and Firefox.
No plan to implement it in Chromium.

Polyfill:
We have polyfills with manual tests at https://github.com/mathml-refresh/mathml-polyfills/tree/master/mfenced
As @bkardell pointed out we probably need to decide how we want our polyfill to look like to remain compatible with the rest of the web platform. Also we might other things like nodejs converters that can be embedded in MathML generators' pipeline. Anyway, probably a separate discussion.
I'm keeping "need polyfill" for the record.

Tests:

  • Check that mfenced is not supported.

@fred-wang fred-wang added need resolution Issues needing resolution at MathML Refresh CG meeting need specification update Issues requiring specification changes need implementation update need polyfill Issues requiring implementation changes need tests Issues related to writing WPT tests labels May 16, 2019
@fred-wang
Copy link
Author

(I added need resolution, until the notes are published and someone link them from here)

@fred-wang
Copy link
Author

Consensus: remove from core and keep in full

@fred-wang fred-wang removed the need resolution Issues needing resolution at MathML Refresh CG meeting label Jun 3, 2019
fred-wang added a commit to w3c/mathml-core that referenced this issue Jun 3, 2019
@fred-wang
Copy link
Author

@davidcarlisle I removed the mention of mfenced from the intro (also checked it's not in the relaxng schema). I'm leaving the "spec update" label set until you review what has to be done for full.

@fred-wang
Copy link
Author

Before writing a test for that, we would need to know how to handle unknown MathML elements. See #139

@fred-wang
Copy link
Author

The alternative would be to do like maction ( #26 ) and keep it in core as mrow-like.

@fred-wang fred-wang added MathML Core Issues affecting the MathML Core specification need specification update Issues requiring specification changes labels Sep 16, 2019
fred-wang added a commit to web-platform-tests/wpt that referenced this issue Oct 1, 2019
fred-wang added a commit to web-platform-tests/wpt that referenced this issue Oct 1, 2019
@fred-wang fred-wang removed the need tests Issues related to writing WPT tests label Oct 1, 2019
@fred-wang
Copy link
Author

Test added so closing.

moz-v2v-gh pushed a commit to mozilla/gecko-dev that referenced this issue Oct 14, 2019
…ght remove from Core / unship…, a=testonly

Automatic update from web-platform-tests
Add tests for MathML features that we might remove from Core / unship from browsers (#19450)

w3c/mathml#27
w3c/mathml#29
w3c/mathml#2

--

wpt-commits: d9e0e15247ca5269b4e2c9060f38416c2068997b
wpt-pr: 19450
xeonchen pushed a commit to xeonchen/gecko that referenced this issue Oct 14, 2019
…ght remove from Core / unship…, a=testonly

Automatic update from web-platform-tests
Add tests for MathML features that we might remove from Core / unship from browsers (#19450)

w3c/mathml#27
w3c/mathml#29
w3c/mathml#2

--

wpt-commits: d9e0e15247ca5269b4e2c9060f38416c2068997b
wpt-pr: 19450
gecko-dev-updater pushed a commit to marco-c/gecko-dev-comments-removed that referenced this issue Oct 16, 2019
…ght remove from Core / unship…, a=testonly

Automatic update from web-platform-tests
Add tests for MathML features that we might remove from Core / unship from browsers (#19450)

w3c/mathml#27
w3c/mathml#29
w3c/mathml#2

--

wpt-commits: d9e0e15247ca5269b4e2c9060f38416c2068997b
wpt-pr: 19450

UltraBlame original commit: f3f6dad0dad824e643e833dfd3bcc0ebdec1f28e
gecko-dev-updater pushed a commit to marco-c/gecko-dev-wordified-and-comments-removed that referenced this issue Oct 16, 2019
…ght remove from Core / unship…, a=testonly

Automatic update from web-platform-tests
Add tests for MathML features that we might remove from Core / unship from browsers (#19450)

w3c/mathml#27
w3c/mathml#29
w3c/mathml#2

--

wpt-commits: d9e0e15247ca5269b4e2c9060f38416c2068997b
wpt-pr: 19450

UltraBlame original commit: f3f6dad0dad824e643e833dfd3bcc0ebdec1f28e
gecko-dev-updater pushed a commit to marco-c/gecko-dev-wordified that referenced this issue Oct 16, 2019
…ght remove from Core / unship…, a=testonly

Automatic update from web-platform-tests
Add tests for MathML features that we might remove from Core / unship from browsers (#19450)

w3c/mathml#27
w3c/mathml#29
w3c/mathml#2

--

wpt-commits: d9e0e15247ca5269b4e2c9060f38416c2068997b
wpt-pr: 19450

UltraBlame original commit: f3f6dad0dad824e643e833dfd3bcc0ebdec1f28e
doersino added a commit to doersino/UnicodeMathML that referenced this issue Jan 11, 2020
@fred-wang fred-wang removed the need polyfill Issues requiring implementation changes label May 19, 2020
@Yaffle
Copy link

Yaffle commented May 11, 2021

Because the text of fences and separators is included in attributes and not in MathML elements then by default it may not be possible to search, select, copy it

Hello!
By the way, the same is true for the surd of <msqrt> and <mroot> today.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
compatibility Issues affecting backward compatibility MathML Core Issues affecting the MathML Core specification MathML 4 Issues affecting the MathML 4 specification need specification update Issues requiring specification changes
Projects
None yet
Development

No branches or pull requests

5 participants