Skip to content

Removal/Deprecation of <mfenced> #2

Closed

Description

@fred-wang

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. "

Activity

  1. added
    MathML 4Issues affecting the MathML 4 specification
    on Feb 22, 2019
  2. fred-wang commented on Feb 22, 2019

    @fred-wang
    Author

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

  3. dani31415 commented on Feb 25, 2019

    @dani31415

    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.

  4. physikerwelt commented on Feb 25, 2019

    @physikerwelt
    Member

    discussed in the telco on 2019-02-25:

    • no consensus. Murray points out the semantics advantages of mfenced.
  5. fred-wang commented on Mar 14, 2019

    @fred-wang
    Author
  6. NSoiffer commented on Apr 29, 2019

    @NSoiffer
    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.

  7. fred-wang commented on May 16, 2019

    @fred-wang
    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.
  8. fred-wang commented on May 16, 2019

    @fred-wang
    Author

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

  9. fred-wang commented on Jun 3, 2019

    @fred-wang
    Author

    Consensus: remove from core and keep in full

  10. 9 remaining items

  11. fred-wang commented on Oct 1, 2019

    @fred-wang
    Author

    Test added so closing.

  12. Yaffle commented on May 11, 2021

    @Yaffle

    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

Metadata

Metadata

Assignees

No one assigned

    Labels

    MathML 4Issues affecting the MathML 4 specificationMathML CoreIssues affecting the MathML Core specificationcompatibilityIssues affecting backward compatibilityneed specification updateIssues requiring specification changes

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions