Description
A few MathML features are marked as deprecated on MDN, but looking at the spec tells me a different story, and I wonder if MDN is incorrect, or if the spec language should be changed on these features.
Let's take the example of the mathbackground
global attribute:
-
The MDN article says:
Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible
-
The spec has a note about the attribute:
The above attributes are implemented for compatibility with full MathML. Authors whose only target is MathML Core are encouraged to use CSS for styling.
Reading this makes me think that using the attribute is an author choice. The spec doens't specifically discourage using it, and certainly doesn't deprecate it as MDN says.
As a comparison point, here's what the UI Events spec has to say about MutationEvent
:
[...] this specification describes mutation events for reference and completeness of legacy behavior, but deprecates the use of the MutationEvent interface.
This language is a lot more definitive and leaves no room for interpretation.
Should the MathML Core spec be more definitive about the elements, attributes, and attributes values it discourages? Or is MDN's language a bit too strong in this case? Or am I misreading these documents?
For context, this came up in web-platform-dx/web-features#2513, which is where the WebDX CG is trying to create a web-features entry for the remaining MathML features that are not part of the main MathML feature.
These remaining MathML features are all marked as deprecated by BCD (the data source that MDN uses for compat tables). Here is the list of these features, listed as BCD "keys":
- mathml.elements.maction
- mathml.elements.maction.actiontype
- mathml.elements.maction.actiontype.toggle
- mathml.elements.maction.selection
- mathml.elements.mfenced
- mathml.elements.mfrac.denomalign
- mathml.elements.mfrac.linethickness.named_spaces
- mathml.elements.mfrac.linethickness.nonzero_unitless_values
- mathml.elements.mfrac.linethickness.thin_medium_thick
- mathml.elements.mfrac.numalign
- mathml.elements.mfrac.numalign
- mathml.elements.mmultiscripts.subscriptshift
- mathml.elements.mmultiscripts.superscriptshift
- mathml.elements.mo.named_spaces
- mathml.elements.mo.nonzero_unitless_values
- mathml.elements.mpadded.named_spaces
- mathml.elements.mpadded.nonzero_unitless_values
- mathml.elements.mpadded.pseudo_units
- mathml.elements.mpadded.scale_factor
- mathml.elements.mspace.named_spaces
- mathml.elements.mstyle.background
- mathml.elements.mstyle.color
- mathml.elements.mstyle.fontsize
- mathml.elements.mstyle.fontstyle
- mathml.elements.mstyle.fontweight
- mathml.elements.msub.subscriptshift
- mathml.elements.msubsup.subscriptshift
- mathml.elements.msubsup.superscriptshift
- mathml.elements.msup.superscriptshift
- mathml.elements.mtable.width.named_spaces
- mathml.elements.semantics.advanced_visible_child_selection
- 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