Global attributes
=================

**Global attributes** are attributes common to all MathML elements; they can be used on all elements, though they may have no effect on some elements.

Global attributes may be specified on all MathML elements, *even those not specified in the standard*. That means that any non-standard elements must still permit these attributes, even though using those elements means that the document is no longer MathML-compliant.

In addition to the basic MathML global attributes, the following global attributes also exist:

* The event handler attributes such as **`onclick`**, **`onfocus`**, etc.
* The `href` attribute for making MathML element a hyperlink.
List of global attributes
-------------------------

`class`

A space-separated list of the classes of the element. Classes allow CSS and JavaScript to select and access specific elements via the class selectors or functions like the method `Document.getElementsByClassName()`.

`data-*`

Forms a class of attributes, called custom data attributes, that allow proprietary information to be exchanged between the MathML and its DOM representation that may be used by scripts. All such custom data are available via the `MathMLElement` interface of the element the attribute is set on. The `HTMLElement.dataset` property gives access to them.

`dir`

An enumerated attribute indicating the directionality of the MathML element. It can have the following values:

* `ltr`, which means *left to right* and is used to render mathematical expressions from the left to the right (e.g. English or Moroccan style);
* `rtl`, which means *right to left* and is used to render mathematical expressions from the right to the left (e.g. Maghreb or Machrek style);

`displaystyle`:

a boolean setting the math-style for the element.

* `true`, which means `normal`.
* `false`, which means `compact`.

`id`

Defines a unique identifier (ID) which must be unique in the whole document. Its purpose is to identify the element when linking (using a fragment identifier), scripting, or styling (with CSS).

`mathbackground`

A background-color for the element.

`mathcolor`

A color for the element.

`mathsize`

A `<length-percentage>` used as a font-size for the element.

`nonce`

A cryptographic nonce ("number used once") which can be used by Content Security Policy to determine whether a given fetch will be allowed to proceed.

`scriptlevel`

Specifies a math-depth for the element. See the scriptlevel page for accepted values and mapping.

`style`

Contains CSS styling declarations to be applied to the element. Note that it is recommended for styles to be defined in a separate file or files. This attribute and the `<style>` element have mainly the purpose of allowing for quick styling, for example for testing purposes.

`tabindex`

An integer attribute indicating if the element can take input focus (is *focusable*), if it should participate to sequential keyboard navigation, and if so, at what position. It can take several values:

* a *negative value* means that the element should be focusable, but should not be reachable via sequential keyboard navigation;
* `0` means that the element should be focusable and reachable via sequential keyboard navigation, but its relative order is defined by the platform convention;
* a *positive value* means that the element should be focusable and reachable via sequential keyboard navigation; the order in which the elements are focused is the increasing value of the **tabindex**. If several elements share the same tabindex, their relative order follows their relative positions in the document.

Specifications
--------------

| Specification |
| --- |
| MathML Core # dfn-dir |
| MathML Core # dfn-displaystyle |
| MathML Core # dfn-mathbackground |
| MathML Core # dfn-mathcolor |
| MathML Core # dfn-mathsize |
| MathML Core # dfn-scriptlevel |

Browser compatibility
---------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

See also
--------

* `Element` interface that allows querying most global attributes.