For these reasons, efficiency in access, and ease of editing, the MathML language for each object should be able to be part of a single HTML page, rather than linked in from separate documents. However, linking must still be allowed. Normally, the rendering of a MathML object will be on a transparent background allowing the document background to show between glyphs. The coordinate system used to specify placement of individual characters, thickness of fraction bars, etc. must be more precise than screen resolution. To render properly a MathML object needs to be able to query its containing context as to the current font, its size, the available page width, and text color.
Mathematical expressions contain many special characters.
Ideally, the MathML objects on a page should be able to communicate their font and character set requirements to the browser so that it can display the appropriate error message when those requirements cannot be met. This will avoid the possible misinterpretation of the material by the user. Although MathML rendering obviously depends on character display, other shapes need to be drawn, such as fraction bars, radical signs, etc. These may be made using several overlapping characters, but this requires a high level of font dependence and rendering accuracy that, in an environment where the user has control of fonts, may be hard to achieve. Also, font engines now support anti-aliasing for fonts, using colors for edge pixels that fall between those of the character and its background.