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

How to handle the remaining MathML BCD keys #2513

Open
captainbrosset opened this issue Jan 9, 2025 · 7 comments
Open

How to handle the remaining MathML BCD keys #2513

captainbrosset opened this issue Jan 9, 2025 · 7 comments
Labels
feature definition Creating or defining new features or groups of features.

Comments

@captainbrosset
Copy link
Contributor

captainbrosset commented Jan 9, 2025

We already have a MathML feature on the repo: https://github.com/web-platform-dx/web-features/blob/main/features/mathml.yml which contains quite a lot of BCD keys.

Looking at the list of remaining unmapped BCD keys, I see there are quite a few still. These are marked as deprecated on BCD.

How do we want to handle them on this repo?

  • maction - Entire element is deprecated

    • mathml.elements.maction
    • mathml.elements.maction.actiontype
    • mathml.elements.maction.actiontype.toggle
    • mathml.elements.maction.selection
  • mfenced - Entire element is deprecated

    • mathml.elements.mfenced
  • mfrac:

    • mathml.elements.mfrac.denomalign - Deprecated attribute
    • mathml.elements.mfrac.numalign - Deprecated attribute
    • mathml.elements.mfrac.linethickness.named_spaces - Deprecated attribute value
    • mathml.elements.mfrac.linethickness.nonzero_unitless_values - Deprecated attribute value
    • mathml.elements.mfrac.linethickness.thin_medium_thick - Deprecated attribute value
    • mathml.elements.mfrac.numalign - Deprecated attribute
  • mmultiscripts

    • mathml.elements.mmultiscripts.subscriptshift - Deprecated attribute
    • mathml.elements.mmultiscripts.superscriptshift - Deprecated attribute
  • mo

    • mathml.elements.mo.named_spaces - Deprecated attribute value
    • mathml.elements.mo.nonzero_unitless_values - Deprecated attribute value
  • mpadded

    • mathml.elements.mpadded.named_spaces - Deprecated attribute value
    • mathml.elements.mpadded.nonzero_unitless_values - Deprecated attribute value
    • mathml.elements.mpadded.pseudo_units - Deprecated attribute value
    • mathml.elements.mpadded.scale_factor - Deprecated attribute value
  • mspace

    • mathml.elements.mspace.named_spaces - Deprecated attribute value
  • mstyle - Entire element is deprecated?

    • mathml.elements.mstyle.background
    • mathml.elements.mstyle.color
    • mathml.elements.mstyle.fontsize
    • mathml.elements.mstyle.fontstyle
    • mathml.elements.mstyle.fontweight
  • msub

    • mathml.elements.msub.subscriptshift - Deprecated attribute
  • msubsup

    • mathml.elements.msubsup.subscriptshift - Deprecated attribute
    • mathml.elements.msubsup.superscriptshift - Deprecated attribute
  • msup

    • mathml.elements.msup.superscriptshift - Deprecated attribute
  • mtable

    • mathml.elements.mtable.width.named_spaces - Deprecated attribute value
  • semantics

    • mathml.elements.semantics.advanced_visible_child_selection - ???
  • Global attributes - Deprecated attributes and attribute values

    • mathml.global_attributes.mathbackground
    • mathml.global_attributes.mathcolor
    • mathml.global_attributes.mathsize
    • mathml.global_attributes.mathsize.named_spaces
    • mathml.global_attributes.mathsize.nonzero_unitless_values
    • mathml.global_attributes.mathsize.small_normal_big
@jamesnw
Copy link
Collaborator

jamesnw commented Jan 9, 2025

This is very similar to #2485, where we documented the deprecated SVG keys. Currently, SVG is a "junk drawer", so we opted to make a single junk drawer of discouraged SVG features. My thought is to make a single discouraged MathML junk drawer to match what we did there, and to not have more discouraged MathML features than non-discouraged MathML features.

@ddbeck
Copy link
Collaborator

ddbeck commented Jan 9, 2025

I agree with, @jamesnw. We can reserve the option to split up the features in the future. But until we can demonstrate there's an audience for those features (in contemporary or historic MathML), I think we shouldn't split them up.

If I were making the MathML discouraged feature, I'd probably do a similar thing as SVG:

name: MathML 3 (discouraged)
description: MathML 3.0 specifies several components that were excluded from MathML core, such as the `<maction>` and `<mfenced> elements.

@captainbrosset
Copy link
Contributor Author

Thanks for the input. I'll take a stab at creating a discouraged feature for these elements and attributes.

@jcscottiii
Copy link

Following this thread because WPT currently uses the mathml ID:

https://github.com/web-platform-tests/wpt/blob/9db3ea22736dfecbf1de4e149e2b5c49d5e0978d/mathml/WEB_FEATURES.yml#L1-L3

@captainbrosset
Copy link
Contributor Author

Short update on this (mostly paraphrasing @bkardell, thanks for your help Brian):

MathML Core isn't a new version of the spec in that it doesn't add new elements. It only describes a subset of existing MathML elements that should work in the browser and integrate nicely into the rest of the platform (i.e, fit with DOM and CSS and events and so on). By doing so, MathML Core is trying to address several factors around the age and size of MathML as a whole (which evolved at the same time as html and css were).

Another aspect to keep in mind is that MathML isn't only used on the web, and that other platforms implement more than MathML Core.

So, while MathML doesn't specifically deprecate anything from other MathML specs, in prose, it effectively does so by limiting itself to a subset of the elements that apply to the web only and work great with it.

It gets more complex though, because Core is drawing a somewhat arbitrary box around what can be tackled in the current version of the spec. Core is trying to define a minimum viable inter-operational subset that can be achieved. So, some elements are left outside of the scope, not forever, but just because they don't currently fit in the list of things that the group can work on now. So there's a chance for a future Core v2 that has more elements.

@captainbrosset
Copy link
Contributor Author

Based on the above comment, one next step would be to categorize the list in the description of this issue into:

  1. Things that will never make their way into Core.
  2. Things that are not in Core yet but might, in the future, be.

@bkardell, would you be able to help me with the above?

@ddbeck ddbeck added the feature definition Creating or defining new features or groups of features. label Jan 29, 2025
@captainbrosset
Copy link
Contributor Author

Talked with Brian, the mathml 4 group has a meeting today to discuss this issue: w3c/mathml-core#279.

It's possible that a warning like the one mentioned in that issue gets added (as a non-conforming section) to the spec, for certain things at least. We could then point to this for our discouraged feature.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature definition Creating or defining new features or groups of features.
Projects
None yet
Development

No branches or pull requests

4 participants