MathPlayer and MathML Technology

MathML is an industry standard way of encoding mathematics using XML developed under the auspices of the W3C (World Wide Web Consortium). A large number of software packages, including browsers, editors, computer algebra programs and publishing software, support MathML to display mathematical notation and to enable copying it between applications and websites. Unlike other ways of putting math in a web page, such as images and PDFs, MathML provides ways to directly encode various interactivity properties of an equation, which makes it an ideal choice for dynamic math on the web. Design Science has played a leading role in developing this important new technology.

The technology that allows MathPlayer to display MathML in IE has been dropped from newer versions of IE. However, IE 11 introduced a way for legacy programs to work in IE. They call this new feature "Enterprise Mode". It forces IE 11 to emulate IE 8, which is a version of IE that supports the technology MathPlayer needs to be able to display math. When MathPlayer displays math in the page, this also means the math is accessible to assistive technology that works with MathPlayer.

When MathPlayer 4 is installed on your computer, it enables you to turn on Enterprise Mode for any page you visit. This setting is remembered, so you need to do this only once per page. To turn on Enterprise Mode for a page, use Internet Explorer's Tools menu and select "Enterprise Mode". This is a toggle, so selecting it again will turn it off for that page. The keyboard shortcut for this is Alt+t, Alt+r, enter.

There are a few things to know about Enterprise Mode:

  • It forces IE 11 to emulate an older version of IE. This means that newer features and standards will not be handled properly. In particular, if a page makes use of newer features of CSS, it may not display well. Large sites such as Wikipedia currently avoid making use of these features so for most sites, there won't be a problem.
  • You can not turn on Enterprise Mode for local Web pages, such as those you might generate from Word via MathType's "Publish to MathPage" feature. Instead, you can directly force it to emulate IE 8 by adding the line:
    <meta http-equiv="X-UA-Compatible" content="IE=EmulateIE8" />

    to the head of the document.

MathPlayer enhances MSHTML, Microsoft's internal HTML engine on which Internet Explorer is based. This means that MathPlayer also displays MathML for any other application that makes use of MSHTML to display formatted content. This includes email clients, alternative web browsers, weblog (RSS) clients, instant messaging clients, help engines, and so on. We encourage anyone interested in this technology to contact us at support@wiris.com. We are also interested in talking with vendors whose products do not use MSHTML.

Equations can be copied to the clipboard as MathML and then pasted into any application that understands MathML or into a web editor. Drag-and-drop works similarly. Among the applications that understand MathML are the popular computer algebra systems, Mathematica and Maple. It is our hope that eventually all mathematical and scientific software applications will eventually support MathML. If your favorite software application or website does not support MathML, you should request it from the vendor and encourage them to work together with Design Science to make it happen.

One of the advantages of embedding math in a web page using MathML is that it makes it possible for the math to be spoken. This was always a goal of the W3C in order to make math easier to understand by the visually impaired. MathPlayer provides the ability to speak the math in a web page. The user can do this by choosing Speak Expression on MathPlayer's right-click menu or, more importantly, via a screen reader application such as NVDA, Window-Eyes or JAWS. This work was partially supported by grants from the National Science Foundation (NSF). Although we see accessibility as the main goal of math-to-speech technology, we have also received interest from educators in teaching normally sighted students how mathematics is spoken.

Embedding math in a web page using MathML also makes it possible for web searches to include the mathematics on pages, not just text. Someday, a population biologist might be able to do a Google search for pages containing partial differential equations similar to ones he believes describe the predator-prey relationship between caribou and wolves in Alberta. One of the hits could be an astrophysicist's paper where she has actually solved the equations. Design Science received an NSF grant to hold a math searching workshop at which interested parties discussed the requirements for math searching technology.

MathML support in web browsers has been spotty, and that's still somewhat true even though MathML is now part of the HTML5 standard. MathPlayer provides good support in Internet Explorer with Enterprise mode, Firefox has pretty good built-in support, and Safari supports some MathML, but it is absent from other popular browsers such as Chrome and Opera.

One of the things that had slowed down implementation of MathML in web browsers is the lack of a proper standard for including MathML within HTML. The HTML5 standard does include MathML and virtually all browser vendors have promised to support it, but have been slow in doing so. HTML5 with MathML will be supported by the latest versions of Internet Explorer (via MathPlayer) and Firefox. Safari and other browsers built using WebKit have HTML5 and some MathML support. Chrome has gone back and forth on the issue. For browsers that do not directly support MathML, such as Edge, Chrome, and those on mobile devices, there is MathJax, a JavaScript engine that displays MathML in all modern browsers.

MathML 3 is the latest version of the MathML recommendation. MathML 3 brings several new big highly requested features to MathML and many smaller ones also. Even though MathML 3 is already a few years old, some math-savvy applications still don't support it.  To find out more about MathML 3 and to see some examples of what MathML 3's new features, see the MathML 3 spec.