# Protocol Handlers for External Applications to Process MathML

Skip to end of metadata
Go to start of metadata

Current support for MathML rendering and access via assistive technologies is limited.  For many years Design Science has provided a solution via its free MathPlayer plugin for Internet Explorer (IE).  Unfortunately, recently Microsoft has restricted the capabilities of plugins, which has created challenges for Design Science.  As of date, IE 11 does not support the MathPlayer plugin due to changes in the IE security model that affects plugins.  Furthermore IE has lost marketshare, which means the existing plugin solutions serve fewer users with their browsers of choice.  This document proposes an alternative approach to browser plugins that is more agonistic to the browser technology used.

Web browsers have long supported protocol handlers other than http:// in the href property of anchor (<a>) elements and potentially in longdesc properties for <img> elements.  Protocol handlers enable external applications to handle hyperlinks or parameters in the href property.  For example, the mailto: protocol tells the browser to launch any email applications that have been associated with that protocol handler.  Other commonly used protocol handlers are the itms: protocol hander to launch iTunes and the geo: protocol handler to launching mapping or address book applications ﻿[2].

As an alternative to waiting for browsers or mainstream assistive technologies, such as screen readers, to provide MathML accessibility, protocol handers could be used to enable external applications to provide functionality specific to the rendering, reading, navigation and manipulation of mathematical expressions in MathML.  In the example HTML markup below, we have an image of an mathematical formula that is hyperlinked with a proposed math: protocol handler that passes the application handling the protocol a URL to a web service or web page that contains the representative MathML markup:

<a href='mathproc://mathmlcloud.org/m/someuniqueformulaidorhash'><img role='math' alt='a equals x squared' src='imageofformula'></a>


In the example above, the anchor tag is enclosing an image element, because images are a broadly supported and common fallback to the display of mathematics on the web.  However, the anchor tag could enclose MathML markup that is or is not combined with the MathJax polyfill JavaScript library to provide visual rendering.

Because we can't assume the user will have the standalone application that handles the protocol, this protocol handler may best exist not on the source material, but on intermediary pages rendered by MathML Cloud or some other content platform, such as WeBWork.  These intermediary pages could have links to where users could purchase and/or download the standalone math applications.

For people that install the standalone applications, we could also simplify the user experience by offering to install lightweight browser extensions[1] that rewrite hyperlinks that go to MathML Cloud or have the role=math use the mathproc: protocol.  Given the MathJax polyfill's wide adoption, it should also be enhanced to automatically add mathproc: protocol handlers.

Modern browsers also support web applications to register themselves as protocol handlers.  For example, using JavaScript, a web application, such as Gmail, can request permission to be a protocol handler for mailto.

The standalone applications could also offer Nemeth Braille support and support multiple types of rule sets for describing mathematics, which will enable customized experiences for students with different disabilities and grade levels.  In general, use of the math: protocol handler will be an innovation bridge for existing applications, such as MATLAB, Mathematica [3] and IPython Notebook, or new applications that can benefit not only students with disabilities, but all students who wish to more interactively explore and utilize mathematics on the web.

I created a short YouTube video to demonstrate why a protocol handler with a mathproc: URI scheme can provide an alternative and simple user experience for a blind or vision impaired user for exploring mathematical expressions.  In the video, 1) we turn on VoiceOver (the OS X screen reader / assistive technology), 2) we navigate a page that contains text and a mathematical expression, 3) we decide that we want to use another application other than Safari to explore and understand the math expression and click on the math expression which has an anchor tag around it (e.g., <a href="mathproc://mathmlcloud.org/equation1">), 4) the operating system launches the application registered to handle mathproc: protocol requests, 5) the application provides tools for exploring the math, 6) after using the application, the user quits the application and seamlessly returns back to the web browser where they left off. http://www.youtube.com/watch?v=UDX_a_U0j8U

Please provide us your thoughts below.  Because, we don't require registration, we ask that you leave your name and organization in the comments.

###### Notes:

[1] Below are some example of browser extensions/add-ons that modify the DOM to add prototcol handler links:

Enter labels to add to this page:

Looking for a label? Just start typing.

## Comments (1)

1. Jul 26, 2014

The youtube link is broken

The youtube link is broken