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

Decide how to handle unknown MathML elements #71

Closed
fred-wang opened this issue Sep 16, 2019 · 11 comments
Closed

Decide how to handle unknown MathML elements #71

fred-wang opened this issue Sep 16, 2019 · 11 comments
Assignees
Labels

Comments

@fred-wang
Copy link
Contributor

cc @bkardell

The MathML Core specification defines the following MathML Core elements:
https://mathml-refresh.github.io/mathml-core/#dfn-mathml-core-elements

How should we handle elements that are in the MathML namespace but not in this list?

@fred-wang fred-wang changed the title Decide how to handle unknown MathML Decide how to handle unknown MathML elements Sep 16, 2019
@fred-wang
Copy link
Contributor Author

I just updated the spec to clarify that unknown mathml elements have display: math by default and in that case just behave like an mrow. The question about whether they should specialize to MathMLUnknownElement is still open.

@fred-wang
Copy link
Contributor Author

fred-wang commented Nov 6, 2019

For the record, SVGUnknownElement has been removed in w3c/svgwg@738f1e8#diff-eb0a191797624dd3a48fa681d3061212

( see also w3c/svgwg#122 )

@fred-wang
Copy link
Contributor Author

Custom element discussion is WICG/webcomponents#634

fred-wang referenced this issue in web-platform-tests/wpt Jan 20, 2020
See https://github.com/mathml-refresh/mathml/issues/139

This also fixes wrong mpadded@notation attribute and repeats spacing tests
for other mrow-like elements.
fred-wang referenced this issue in web-platform-tests/wpt Jan 20, 2020
…#21257)

See https://github.com/mathml-refresh/mathml/issues/139

This also fixes wrong mpadded@notation attribute and repeats spacing tests
for other mrow-like elements.
xeonchen referenced this issue in xeonchen/gecko Jan 23, 2020
… spacing in unknown elements., a=testonly

Automatic update from web-platform-tests
Add tests for baseline, stretchiness and spacing in unknown elements. (#21257)

See https://github.com/mathml-refresh/mathml/issues/139

This also fixes wrong mpadded@notation attribute and repeats spacing tests
for other mrow-like elements.
--

wpt-commits: 87646d626a9a84941e790da383f140df6b37279d
wpt-pr: 21257
moz-v2v-gh referenced this issue in mozilla/gecko-dev Jan 23, 2020
… spacing in unknown elements., a=testonly

Automatic update from web-platform-tests
Add tests for baseline, stretchiness and spacing in unknown elements. (#21257)

See https://github.com/mathml-refresh/mathml/issues/139

This also fixes wrong mpadded@notation attribute and repeats spacing tests
for other mrow-like elements.
--

wpt-commits: 87646d626a9a84941e790da383f140df6b37279d
wpt-pr: 21257
gecko-dev-updater referenced this issue in marco-c/gecko-dev-comments-removed Jan 28, 2020
… spacing in unknown elements., a=testonly

Automatic update from web-platform-tests
Add tests for baseline, stretchiness and spacing in unknown elements. (#21257)

See https://github.com/mathml-refresh/mathml/issues/139

This also fixes wrong mpaddednotation attribute and repeats spacing tests
for other mrow-like elements.
--

wpt-commits: 87646d626a9a84941e790da383f140df6b37279d
wpt-pr: 21257

UltraBlame original commit: 3a5ca745a2b258b0d6682ed347be800d9490885c
gecko-dev-updater referenced this issue in marco-c/gecko-dev-wordified Jan 28, 2020
… spacing in unknown elements., a=testonly

Automatic update from web-platform-tests
Add tests for baseline, stretchiness and spacing in unknown elements. (#21257)

See https://github.com/mathml-refresh/mathml/issues/139

This also fixes wrong mpaddednotation attribute and repeats spacing tests
for other mrow-like elements.
--

wpt-commits: 87646d626a9a84941e790da383f140df6b37279d
wpt-pr: 21257

UltraBlame original commit: 3a5ca745a2b258b0d6682ed347be800d9490885c
pull bot referenced this issue in FreddyZeng/chromium Jan 31, 2020
The MathML CG decided that unknown elements in the MathML namespace with
a math display should behave like an <mrow> element [1] [2]. This CL
ensures that a MathMLRowElement is created for unknown MathML elements
in order to make that possible. It does not seem necessary to create a
specific MathMLUnknownElement C++ class at that point. Whether a
specific MathMLUnknownElement IDL is needed is still open [1][3].

[1] https://github.com/mathml-refresh/mathml/issues/139
[2] https://mathml-refresh.github.io/mathml-core/#new-display-math-value
[3] https://bugs.chromium.org/p/chromium/issues/detail?id=1021837

Bug: 6606
Change-Id: Ia493392ee8bfe9a7073e2ea6f1ce65927ec7fcae
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2007738
Commit-Queue: Frédéric Wang <fwang@igalia.com>
Reviewed-by: Ian Kilpatrick <ikilpatrick@chromium.org>
Reviewed-by: Mason Freed <masonfreed@chromium.org>
Cr-Commit-Position: refs/heads/master@{#737263}
@fred-wang
Copy link
Contributor Author

consensus from June 1: we decided to keep that (IDL for unknown) in core level 1 ; we need to update the spec and write tests for these

@fred-wang
Copy link
Contributor Author

@bkardell what's the status of this? Can you please propose some spec change & test for what you wanted to do with a MathMLUnknownElement IDL?

@bkardell
Copy link
Collaborator

@fred-wang in the call today we discussed punting this to level 2 and the group seemed ok with it based on the fact that we have a number of other things and the result will be that the shape of the element, except for the constructor, will be the same either way at this point.

@NSoiffer
Copy link
Contributor

At the core meeting today, consensus was to move to Level 2 and coordinate with SVG group with unified approach to unknown element IDL. For the time being, any element in the MathML namespace will be treated as a MathML element.

fred-wang referenced this issue Sep 15, 2020
- https://github.com/mathml-refresh/mathml/issues/139 is moved to level 2
- MathMLElement includes ElementCSSInlineStyle should be reported to CSSWG
@NSoiffer
Copy link
Contributor

Removed "needs spec update" label as that seems to have been done.

Also removed "Core" label as this is level 2 (which implies core in the future)

@NSoiffer NSoiffer transferred this issue from w3c/mathml Jun 29, 2021
@NSoiffer
Copy link
Contributor

We had some discussion at the MathML general meeting today about how to write about the relationship between full and core.

One specific question is whether a web platform implementation that extends core by adding support for things in full is an invalid implementation. On the one hand, it is important to define what happens with unknown elements so that all renders handle them the same. SVG does a similar thing.

On the other hand, this means that an implementation that wants to experiment with implementation by adding support for "new" elements such as the elementary math ones (or support attributes like "bevelled" for mfrac) would potentially fail tests. Perhaps the answer is to just make sure any negative test picks names that would never be part of a spec.

@dginev
Copy link

dginev commented Feb 25, 2022

A thought that I had while discussing this in my after-meeting with @brucemiller is that one could imagine tests specific for Full to provide two behaviors:

  • expected behavior when the feature is implemented
  • expected fallback when interpreted only by MathML Core

If a feature makes its way to Core at some point, developers simply need to remove the expected fallback - as the expectation would switch to always implemented.

So, as long as the fallbacks for full reside in a separate test suite/directory/space from the core tests, one could imagine a world without mutual contradictions. Core tests always pass, fallback tests pass when a feature is missing, and full tests pass when full is implemented.

bevelled_fallback and bevelled_full could be two example names of such tests.

@NSoiffer
Copy link
Contributor

This was discussed at the core meeting. There was no general consensus at the meeting other than people should think about the future when writing tests. One example is that the unknown element test should pick an obviously never going to be used name rather than a name like mfenced, which although not part of core, might be part of another implementation that implements some of MathML full also.

From the minutes:

NS: As we move towards level two, new features will come in, what should the tests do about new things? Tests should not decide that new things are failures. Firefox may experiment with new things.

BK: Our tests should declare new things as unknown elements, and these unknowns would not be test failures.

DC: We do not want everyone to define their own subsets of the full spec.

dc: "mfence" was made illegal and caused DC some problems.

NS: Tests should see if implementations conform to core.

NS: should mfence be tested to be illegal?

DG: Yes.

OB: We have tentative tests as well as core test suites. The tentative suite may allow new things to exist.

BK: Anyone can add tentative tests. Not everyone has to agree with those tests.

DG: said that this issue was not a big problem in reality.

NS: Should we close this issue without doing anything?

BK: We have no specific advice for how to handle undefined attributes for now.

BM: When someone is writing tests they should have the future in mind.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

4 participants