data-*

The data-* MathML attributes are called custom data attributes. They let MathML markup and its resulting DOM share information that standard attributes can't, usually for scripting purposes. Their custom data are available via the MathMLElement interface of the element the attributes belong to, with the MathMLElement.dataset property.

The * can be replaced by any characters allowed in XML's rules for names, with the following restrictions:

  • Can't start with xml.
  • No semicolons (;, U+003A).
  • No capital A to Z letters.

Note: The MathMLElement.dataset property is a DOMStringMap that provides the attribute data-test-value via MathMLElement.dataset.testValue. Hyphen characters (-, U+002D) are removed and the next letter is capitalized, resulting in the camel case format.

You can use this attribute with any MathML element.

Example

html
<math>
  <msup data-formula="euler" data-value="-1">
    <mi>e</mi>
    <mrow><mi>i</mi> <mi>π</mi></mrow>
  </msup>
  <mo>+</mo>
  <mn>1</mn>
  <mo>=</mo>
  <mn>0</mn>
</math>
js
const msupElement = document.querySelector("msup");
console.log(msupElement.dataset.formula); // "euler"
console.log(msupElement.dataset.value); // "-1"

Specifications

This feature does not appear to be defined in any specification.

Browser compatibility

See also