Document Accessibility

Document Accessibility
The Simple Cases

Volker Sorge

University of Birmingham, UK University of Birmingham Crest

MathJax Consortium MathJax Logo

Progressive Accessiblity Solutions Progressive Access Logo


Summary of Findings

Example site

Note that not all tools will find all problems!

Triaging the Problems

Triaging: Usability vs Accessibility



Triaging: Content vs Structure

Triaging: Syntactic vs Semantic

Let's have a closer look at Syntax vs Semantics


Even for simple documents

Analogy to Typesetting

Separation of Concerns: Different Axes

Natural (and formal) languages:

Different Axes for Typesetting

Output nearly always PDF of fixed size for print, so semantics is mostly discarded.

The Axes on the Web

We are interested in getting documents into flexible markup

But there is also much more and semantics can be continuously useful.

Semantics: How to get it

Getting semantics into documents

Examples: Good, Bad, Ugly

Source: MDN Webx Docs

Authoring vs Conversion

Authoring for the web

What we are really interested in is converting content

Let's have a look at some conversion techniques

Simple workflow

Conversion towards web formats

Preserving Structure 1

Preserving Structure 2

For Our Examples

We will work with two systems:

Please install either (or both) during the break.



pandoc basic commands

Download tex example or word example. Simply use:

pandoc input.docx -t html -o output.html --standalone

Note, that -t can often be omitted if the output format is clear.

pandoc input.tex -o output.html --standalone

tex4ht/make4ht basic commands

tex4ht and make4ht are part of standard TeX distributions

Work for LaTeX documents only.

htlatex input.tex "xhtml,html5,charset=utf-8" " -cmozhtf -utf8"

Equivalent and simpler:

make4ht input.tex

Inspecting the Output

Output is best inspected when served in your browser

Serve via http protocol, not file. Here are some ways to run a simple server in your directory

python -m SimpleHTTPServer 8000
python3 -m http.server 8000 --bind 
npx http-server

Observation Summary