Skip to content

Mathjax backlog

pkra edited this page May 17, 2013 · 31 revisions

We collect potential features. This is not a discussion area but a presentation area for review.

  • Completing the MathML implementation

    • elementary math elements
    • more mtable attributes (e.g., rowspan, colspan)
    • in-table alignments
    • right-to-left support
    • improve annotation-xml
    • improved ContentMathML support
  • Speed Improvements

    • “tweaked” native MathML output that works around browser implementation deficiencies.
    • “simple” HTML-output (faster but potentially lower quality)
    • collaborating with browser developers to improve MathJax speed
    • Caching APIs for local storage and mobile device storage
    • investigating potentially faster output formats such as canvas, VML
    • server-side preprocessing (TeX to MathML, MathML to SVG etc)
  • Accessibility

    • Add APIs for accessibility tools (AT) to interact with MathJax rendering as if it was native MathML. This includes
      • handing MathML over to AT
      • enable user navigation
      • enable synchronized highlighting
      • embed speech-text generation from AT
      • interact with accessibility preferences coming from AT
      • compatibility with user style sheets
    • speech-text extension.
      • collaborating with other open source solutions from Benetech or Google ChromeVox
    • make MathJax menu accessible
    • embedding alternative source formats of math (TeX, MathML, OpenMath, computer algebra notation)
  • Content Testing

    • server side testing
    • production environment testing
    • enable MathJax outside the DOM
    • enable server-side pre-processing
  • Internal Testing

    • fuzz testing
    • integrating MathJax testing into other testing environments
  • Interface improvements

    • UI on mobile devices
    • copy&paste (share mechanisms, microdata, rdf, shadow dom, web components)
    • discoverability of math on the page
    • menu extensions
    • search menu (enabling math search engines such as symbolab, wolfram alpha, Springer LaTeX search etc)
  • Additional font options

    • Asana webfonts, Neo Euler webfonts, Latin Modern, DejaVu fonts
    • Local support for ubiquitous commercial fonts
      • Lucida Sans, Apple symbol fonts, Arial unicode
    • allow font mixing
    • crowdsource font-metric generation for local fonts
    • allow font mixing
  • Input extensions

    • official third party extension repository
    • integration of existing solutions
      • XyJax (xypic), mathapedia (pstricks), computer algebra (e.g. Sage Cell), chemdoodle, kitware (chemistry)
    • community outreach: TeX-macro extensions
  • Documentation

    • improve community involvement
    • Building a collection of code samples
    • document plugin using MathJax in other systems, e.g., CMS, LMS.
  • Native browser MathML development in Gecko and WebKit

    • Improving Gecko/Firefox to re-enable native MathML output.
    • Engaging in WebKit development
  • Outreach activities

    • MathJax workshop / conference
    • MathJax community meetups
    • Math accessibility workshop (AIM)
    • MathJax in education (web literacy, authoring, annotation)
    • MathJax in authoring tool chains for research and publishing

User stories

Collecting user stories).

Localization

Authors and Readers want to use the MathJax user interface in their native language. MathJax currently uses a number of English language strings in its UI, namely the MathJax Menu and the various messages (processing, error etc). To support global use of MathJax, a full localization of the UI allows MathJax users to flexibly decide on the locale and allows translators to contribute easily and efficiently.

Authors want to specify the UI language depending on the language of their content. Authors want to load translations they supply themselves, just like configuration options in general.

Readers want to be able to set the UI to their language of choice. Readers want to be able to copy&paste math even if they don't understand the surrounding language.

Using MathJax outside the DOM

Developers want to use MathJax outside the DOM for testing. MathJax depends on the DOM and parts of its functionality does not make sense outside the DOM. We want to enable MathJax outside the DOM to the extent possible and provide APIs for servers-side javascript implementations.

Testing speed

Authors want to know how fast MathJax should be. Authors and Developers want to track down performance bottlenecks.

We want to be able to test speed enhancements.

Accessibility

Users want their AT tools to pick up MathJax-generated content just as well as regular MathML.

AT vendors want to use a robust API to seamlessly integrate with MathJax rendering. This currently includes User preference negotiation, Highlighting, Sync-Highlighting and copy & paste.

Open source solutions (like Benetech's prototype or possibly ChromeVox) want to integrate into MathJax to provide math speech text and other data for passive AT on mobile platforms.

TeX input enhancements

Authors want the convenience of TeX packages in MathJax.

Authors want to easily input commutative diagrams.

Authors want easy ways to input diagrams like xypics, pstricks and tikz.

Users want documentation for writing TeX input extensions.

Speed related enhancements

Authors don't want to worry about very large equations locking up the browser while rendering. Simileraly, community driven content can't afford to have a page lock up because of "vandalism" with huge MathML equations. Compare: [#425], [#409]

Clone this wiki locally