Link to the main entry page of the Tagged PDF project: https://latex3.github.io/tagging-project/
Accessibility requires a number of settings in the PDF. Some of them are rather easy to implement (e.g. that a title and the language should be set) other are more difficult. The most difficult part is the requirement that the PDF should be "tagged", this means that it contains structure informationsinformation.
The current state ofmain entry page to the project is that paragraphs and links can be tagged automatically. This requires a current LaTeX, a current pdfmanagement-testphase and the current version of the experimental research package tagpdf (and currently still lualatex):
%this is outdated code! See below for a newer version \RequirePackage{pdfmanagement-testphase} \DeclareDocumentMetadata{uncompress,pdfversion=2.0} \documentclass{book} \usepackage{tagpdf} \tagpdfsetup{activate,paratagging,interwordspace} \usepackage{hyperref,lipsum} \begin{document} Tagged project: \url{https://www.latex-project.org/news/2020/11/30/tagged-pdf-FS-study/} \lipsum[1-4] \end{document} The structure of the PDF (compile twice) can be inspected at https://ngpdf.com.
Other structure elements can be tagged too, but this has to be done manually (or by patching commands)https://latex3.github.io/tagging-project/. The next task will be to add automatic tagging to basic structures like sections There is also a prototype example and lists.
The coming TUG conference will have a few talks about the progress of the project https://www.tug.org/tug2021/index.html
Update April 2023
with the latest latex-dev release more tagging related test code has been released https://www.latex-project.org/news/2023/03/13/latex-dev-1/. So now this here can be tagged
\DocumentMetadata{testphase=phase-III,testphase=math} \documentclass{article} \begin{document} \tableofcontents \section{section} \subsection{Subsection}% some text with a \footnote{a footnote} \begin{enumerate} \item a list \begin{itemize} \item more list \end{itemize} \end{enumerate} \begin{verbatim} some verbatim some verbatim \end{verbatim} inline math $a=b$ display math \begin{equation} x=y \end{equation} \end{document} The tagginglist of graphics is under development (there is already branch in the github),compatible packages and floats are handled soon too. With the june release it should be possible to tag most standard commandsclasses.
Update February 2024
With the newest LaTeX release in june and november 2023 support for graphics, floats and support for basic tables has been added. The newestIn a current LaTeX-dev in february 2024 corrected various issues and added support for marginpar (thatas time of writing/editing this is loaded automatically in phase2025-III), for \maketitle (this must currently be loaded explicitly as title module). The math module has been reworked and extended and now contains code to attach semi06-automatically mathml representations of equations. It now also handles the amsmath \text command (but some other commands which internally use \mathchoice are still open and can led to faulty structures). Some examples that has been tagged with the new code are at https://github.com/latex3/tagging-project/discussions/56.
In summary that means that (with the exception of the tabbing environment01) almost everything described in the Leslie Lamport manual can now be tagged.
Documentations about the various modules can be found with texdoc -l latex-lab. They describe options but also restrictions and open problems.
We created a special repository for issues, discussions and feedback: https://github.com/latex3/tagging-project
Update August 2025
Now nearly allmost standard document elements are tagged automatically. For For math it is recommended to use lualatex and unicode-math.
For online testing you can use
- https://texlive.net/ngpdf. It allows to open the result in https://ngpdf.com.
- https://texlive.net/showtags. It displays the structure as XML and uses a Relax NG schema to validate.