What is digital accessibility?
Digital accessibility is about making the digital world accessible to everyone – this includes websites, digital documents, mobile apps and any online tool. This means, in an educational setting, all resources (notes, tutorial sheets etc) should be accessible.
Our disability services team have help available to staff, find out more on their Sharepoint site; they have general advice regarding accessible documents here. The LTA also has general advice on accessibility; their document can be found here.
An overview of digital accessibility in mathematics based subjects is given here by Emma Cliffe (University of Bath).
The problem with LaTeX
Creating accessible resources for a highly symbolic subject, such as mathematics, is difficult since equations pose a problem for many assistive technologies unless they are rendered using MathJax in formats such as Word, EPub3 or html.
Traditionally LaTeX is used to typeset notes and produce a pdf document which is not digitally accessible.
The pdf documents produced from LaTeX cannot be read by text-to-speech screen-readers which are used by some visually impaired students. Additionally, they can be difficult to zoom, create contrast and do not allow the final user to choose font style/size.
What are the alternatives?
This is a non-exhaustive list of alternative methods of producing accessible mathematics. No one method will suit everyone, as the choice of typesetting will be a matter of personal preference (and each has pros/cons). Since many notes/resources will already be in LaTeX we also list methods to convert from LaTeX to html (with MathJax).
Finally, we present a quick ‘how-to’ guide showing one method to convert your current LaTeX documents to an accessible html format.
Methods
Typesetting
Each method has advantages and disadvantages.
- Word – using the appropriate headings, sub-headings etc to structure the text, using equation editor to insert any mathematics and giving alt-text descriptions to figures will ensure an accessible document. There is an inbuilt accessibility checker and LaTeX-like commands can now be used in the equation editor.
- LaTeX – It is possible to use LaTeX to produce accessible documents with some changes e.g. with \usepackage{axessibility}, compiled as html and with the addition of MathJax to the resulting html file. (There are other packages available too.)
- RMarkdown/bookdown – Integrated with the RStudio IDE, uses LaTeX commands for equations etc, has choice of outputs so, for example, once can still produce a pdf while producing accessible html. RMarkdown documentation and Bookdown documentation.
- TeXmacs – This is a wysiwyg editor which can produce mathematics in html format with MathJax enabled. Documentation here.
- Canvas – Typing mathematics into a Canvas page directly using the in-built equation editor will result in mathematics with MathJax enabled.
Conversion from LaTeX
All conversion methods will have issues, in part due to the highly customisable nature of LaTeX. Some of these issues include cross-referencing, footnotes, some personalised commands and most methods do not work at all on Beamer presentations.
- Pandoc – A versatile document convertor can convert LaTeX into html with MathJax. There are many alternative conversions available; it is well documented and easy to use from the command line. Find it here.
- Chirun – previously named ‘Coursebuilder’, created by the e-learning team at Newcastle university. Runs as a Python package (see the Github documentation) or can be used in the Public content builder available here.
- TeXmacs – can also be used to convert as it will read-in LaTeX sources.
One method to convert LaTeX to accessible html
This is a very short guide which outlines the steps used to take a LaTeX document and produce accessible html (with MathsJax).
Since I do not wish to convert LaTeX (and fix the issues) every time I make changes to notes, I have decided to use Bookdown going forward as I found it fairly easy to learn and the option to output the final document in different formats (pdf and html) is convenient.
I followed the guidance given on this site ‘Making Lecture Notes with Bookdown’. More details on bookdown, including how to install and getting started, can be found on the main documentation website where there is also a simple demo/template to follow.
A summary of the main steps I used is given below:
- Using Pandoc, convert the LaTeX file(s), input.tex, to Markdown, output.Rmd using the command line:
pandoc -f latex -t markdown input.tex -o output.Rmd
- Open the Rmd file(s) using bookdown in Rstudio and tidy up. During the conversion some aspects of the LaTeX will not always convert correctly or may just look a little different to how you wish. Here are my tips (non-exhaustive list of little things I have found useful so far for tidying up).
- Using the demo template (or otherwise), order your document and save as an RProject. Apart from the Rmd files (which house the content), you will need the following files (full descriptions given in the main documentation):
- _bookdown.yml – Basic info about the project eg name of the book, how to name chapters…
- _output.yml – Info about the output formats including which css file to use for html and any LaTeX files for pdf output.
- style.css – You can specify final html style in this css file.
- preamble.tex – LaTeX preamble needed for the pdf output (if required)
- Export the document to the desired format, by ‘Build book’.
An example of my final accessible format can be seen here: Complex Numbers.
This work was supported by the LTA mini-projects which allowed two summer students (Luka Vrecar and Domenic Petzinna) to investigate a few different methods; this page is a very short summary of what we found.
A short note on graphs
Any figure, including graphs, should have a suitable alt-text included to describe the image. For interactive graphing I have started investigating the use of Desmos which has a range of accessibility features available for interactive graphs.
An example is given below of the tangent to a parabola – the interactive features can be accessed by clicking on the bottom right corner of the graph, or by following this link.