%% ===========================================================================
%% Accessible UC Berkeley Thesis Template (wcagthesis class)
%%
%% Created by Chrystal Chern (UCB PhD '24) and Claudio M. Perez (UCB PhD '26).
%%
%% Adapted, with gratitude, from the UC Berkeley thesis template maintained by
%% Paul Vojta (the ucbthesis class, built on the memoir document class).
%%
%% Compile with a recent LaTeX (TeX Live 2025 or newer) using LuaLaTeX and
%% Biber, e.g.:
%% lualatex main
%% biber main
%% lualatex main
%% lualatex main
%%
%% The PDF tagging configuration lives in setup.tex at the \DocumentMetadata
%% block.
%% ===========================================================================
\input{setup}
% Make \paragraph a bold run-in heading.
\let\oldparagraph\paragraph
\renewcommand{\paragraph}[1]{\textbf{#1}}
% Locally-defined symbols used by the demonstration equations.
\newcommand{\TwistBimoment}{W}
\newcommand{\TwistBishear}{V}
% PDF metadata (title, author, language): required for an accessible tagged
% PDF, set in the preamble so hyperref writes it correctly.
\hypersetup{%
pdftitle={Accessible Thesis Template},%
pdfauthor={Bear, Oski},%
pdfsubject={Accessible UC Berkeley Thesis Template},%
pdfkeywords={University, Theses, {University of California, Berkeley}, accessibility, ADA, WCAG},%
pdflang=en-US%
}
\begin{document}
% --- Front-matter declarations; replace with your own. ---
\title{Accessible UC Berkeley Thesis Template}
\author{Oski Bear}
\degreesemester{Spring}
\degreeyear{2026}
\degree{Doctor of Philosophy}
% For two co-chairs of equal standing (do not use \chair with this one)
\cochairs{Professor Ludwig von Sather}{Professor Golden C. Bear}
\othermembers{Professor Josephine Doe-Bancroft \\
Professor Sproul B. Strawberry}
% For a single or senior chair
% \chair{Professor Richard Francis Sony}
% For a co-chair who is subordinate to the \chair listed above
% \cochair{Professor Benedict Francis Pope}
\numberofmembers{4}
\field{Structural Engineering}
\maketitle
\copyrightpage
\include{Front/abstract}
\begin{frontmatter}
\input{Front/dedication}
\input{Front/contents}
\input{Front/acknowledgements}
\end{frontmatter}
%% ===========================================================================
\chapter{About This Template}
%% ===========================================================================
\section{Purpose and Origin}
This is a template for writing a University of California, Berkeley thesis or dissertation in \LaTeX{} and compiling it to a \emph{tagged} PDF based on the WCAG~2.1~AA accessibility standard.
As of April 27, 2027, a new UCOP (UC Office of the President) accessibility policy will come into effect stating that digital content produced by the University must conform to the Web Content Accessibility Guidelines, version~2.1, at conformance level~AA. Guidance is documented online:
\begin{itemize}
\item UCOP guidance on the UC IT Accessibility Policy (ITAP) at \url{https://digitalaccessibility.ucop.edu/} \citep{ucop_guidance}
\item UCOP Electronic Accessibility policy overview page at \url{https://www.ucop.edu/electronic-accessibility/initiative/policy.html} \citep{ucop_policy}
% Only viewable by members of UC Berkeley: Cal Messages announcement of 2027 compliance deadline extension: https://groups.google.com/a/lists.berkeley.edu/g/calmessagesarchive/c/tqE9S9Ke5-E/m/JLG_GWnXAQAJ?pli=1
% No longer up-to-date because it lists the old April 2026 deadline:
% \item UC Berkeley's announcement of its updated policy at \url{https://technology.berkeley.edu/news/updated-digital-accessibility-policy-requirements} \citep{berkeley_da_policy}
\item UC Berkeley Digital Accessibility Program summary and guide at \url{https://dap.berkeley.edu/websites/what-digital-accessibility} \citep{berkeley_dap_what}
\item UC Berkeley guidance on Accessibility in Teaching and Learning at \url{https://rtl.berkeley.edu/resources/accessibility-teaching-learning}
\item World Wide Web Consortium guidelines at \url{https://www.w3.org/WAI/standards-guidelines/wcag/} \citep{w3c_wcag}
\item Overleaf blog post regarding accessible PDFs at \url{https://www.overleaf.com/blog/accessible-pdfs-with-latex} \citep{overleaf_blog}
\item Overleaf guide to creating accessible PDFs in \LaTeX{} at \url{https://docs.overleaf.com/writing-and-editing/creating-accessible-pdfs} \citep{overleaf_docs}
\item Adobe's guide to creating and verifying PDF accessibility in Acrobat Pro at \url{https://helpx.adobe.com/acrobat/using/create-verify-pdf-accessibility.html} \citep{adobe_pdf_accessibility}
\end{itemize}
A major conformance criterion for a PDF is that the file is \emph{tagged}: it carries a logical structure tree (headings, paragraphs, lists, tables, figures with alternative text, reading order) that assistive technology can navigate. Tagging capabilities have been developed as part of a major effort called the \LaTeX{} Tagged PDF Project \citep{latex_tagging_project}.
Since its creation circa 2014, \href{https://www.overleaf.com/latex/templates/uc-berkeley-thesis-template/mfzmtxfqvtxx}{Paul Vojta's UC Berkeley Thesis Template} has been used widely for doctoral dissertations written in \LaTeX{}. Vojta's template is built on the \texttt{ucbthesis} class, which uses the \texttt{memoir} document class \citep{vojta_ucbthesis}. The \texttt{memoir} class does not support \LaTeX{}'s PDF-tagging code. This template therefore uses a new class, \texttt{wcagthesis}, that is built on the standard \texttt{report} class\footnote{To toggle built-in stylistic options, authors are referred to the \LaTeX{} Project's documentation on the \texttt{report} document class \url{https://mirror.clarkson.edu/ctan/macros/latex/base/classes.pdf}.}. It reproduces the Graduate Division's required layout and formatting from \texttt{ucbthesis}, while remaining compatible with tagging.
\paragraph{Note on \LaTeX{}'s evolving PDF-tagging code.}
\LaTeX{}'s PDF-tagging code is under active development, and its behavior changes from release to release. There are several known limitations of the current code that are being fixed by the \LaTeX{} Tagged PDF Project (see \url{https://github.com/latex3/tagging-project/issues}).
Relatedly, in this template there are a few manual patches in \texttt{Style/Tagging.tex} that make certain components such as figures and tables pass Adobe Acrobat's accessibility checker. Because \LaTeX{}'s PDF-tagging code changes so rapidly, these patches are version-sensitive: a future \LaTeX{} release may make them unnecessary or require them to be updated.
This template was developed for the WCAG 2.1 AA guidelines, current as of August 21, 2026, and for TeX Live 2026 / LaTeX 2026-06-01.
Reasonable effort was made to comply with these guidelines, and the template was verified to pass the accessibility checks in Adobe Acrobat Pro.
However, the authors cannot guarantee that the template meets future guidelines, that document components not represented in the template will be
tagged correctly for accessibility, or that its tagging commands remain compatible with future versions of LaTeX.
\section{Template Files}
\subsection{\texorpdfstring{\texttt{main.tex}}{main.tex}}\label{sec:main.tex}
The file \texttt{main.tex} is the main file that is passed to the \LaTeX{} compiler.
It includes all the other \texttt{.tex} files that comprise the final document.
% \texttt{pdftitle},\texttt{pdfauthor}, \texttt{pdflang}
\subsection{\texorpdfstring{\texttt{setup.tex}}{setup.tex}}
The file \texttt{setup.tex} exposes macros that set up the document.
\paragraph{Disable Tagging.}
Tagging can be disabled by changing the command \texttt{\textbackslash{}Taggingtrue} to \texttt{\textbackslash{}Taggingfalse} at the top of \texttt{setup.tex}.
This is useful for drafting, since compiling will take significantly longer with \texttt{\textbackslash{}Taggingtrue}.
However, \textbf{the final submitted document must be compiled with \texttt{\textbackslash{}Taggingtrue}}.
\subsection{\texorpdfstring{\texttt{wcagthesis.cls}}{wcagthesis.cls}}
The file \texttt{wcagthesis.cls} implements the \texttt{wcagthesis} document class. Authors will not generally need to modify this file.
%% ===========================================================================
\chapter{Producing a Tagged, Accessible PDF}
%% ===========================================================================
\section{Configuring \LaTeX{}'s PDF-tagging code}
All PDF tagging in modern \LaTeX{} is switched on by a single command,
\verb|\DocumentMetadata|, which \emph{must} appear before
\verb|\documentclass|. In this template it lives at the top of
\texttt{setup.tex}, inside the \texttt{\textbackslash ifTagging} branch:
\begin{quote}
\begin{verbatim}
\DocumentMetadata{
lang = en-US,
pdfstandard = ua-2,
pdfstandard = a-4,
tagging-setup = {
modules = {phase-III, title, table, firstaid, names, toc, sec},
table/tagging = presentation,
table/header-rows = {1},
}
}
\end{verbatim}
\end{quote}
Setting \verb|\DocumentMetadata| with a \texttt{tagging-setup} key loads and activates \LaTeX{}'s PDF-tagging code (\texttt{tagpdf}) automatically; you do not load any package yourself. The \texttt{lang} key sets the document language, and the \texttt{pdfstandard} keys declare conformance with PDF/UA-2 and PDF/A-4. Compile the document with \textbf{Lua\LaTeX{}} on TeX~Live~2025 or newer.
Once tagging is active, the PDF-tagging code handles most structure for you: headings and paragraphs, the table of contents, cross-references and citations, lists, tables (with the header row declared above), and mathematics.
\section{What you must still do by hand}
Four things require author action:
\begin{enumerate}
\item \textbf{Document metadata.} Set the title, author, and language in the
\verb|\hypersetup| block of \texttt{main.tex} (\cref{sec:main.tex}). A tagged PDF must declare a title
and a language.
\item \textbf{Alternative text on every figure.} Give each
\verb|\includegraphics| (and each \texttt{tikzpicture}) an \texttt{alt=}
option describing the image for a screen reader; see
\cref{sec:alt-artifact}.
\item \textbf{Artifacts for decorative content.} Mark purely decorative or
duplicative graphics so assistive technology skips them; see
\cref{sec:alt-artifact}.
\item \textbf{Remediation in Acrobat.} Compile, then verify and repair the tag
structure in Adobe Acrobat; see \cref{sec:acrobat}.
\end{enumerate}
Beyond these, consult the \LaTeX{} Tagging Project website \citep{latex_tagging_project}, in particular its \href{https://latex3.github.io/tagging-project/documentation/}{documentation} and the \href{https://latex3.github.io/tagging-project/documentation/usage-instructions}{\emph{Using \LaTeX{} to Produce Accessible PDF}} guide, for current best practices. Those pages are updated often and should be treated as the authoritative, up-to-date guidance, which may supersede the recommendations in this template.
\section{Alternative text and artifacts}
\label{sec:alt-artifact}
Text alternatives must be provided for any non-text content.
\paragraph{Alt text.} Add the \texttt{alt=} key directly in the options of
\verb|\includegraphics|:
\begin{quote}
\begin{verbatim}
\includegraphics[width=0.85\linewidth,
alt={Deformed shape of the enhanced beam model, shown as a warped
tubular mesh.}]{Figures/veux-frame.png}
\end{verbatim}
\end{quote}
For an image that is really rendered text (a scanned equation, say), use
\texttt{actualtext=} instead, so the text is exposed verbatim.
\paragraph{Artifacts.} A graphic that carries no information (e.g. a background flourish or a box whose content is already stated in the running
text) should be an \emph{artifact} so it is not announced by a screen
reader. This template provides an \texttt{Artifact} environment that suspends tagging around its contents:
\begin{quote}
\begin{verbatim}
\begin{Artifact}
... decorative material ...
\end{Artifact}
\end{verbatim}
\end{quote}
\section{Checking and fixing accessibility in Adobe Acrobat}
\label{sec:acrobat}
\LaTeX{} produces a relatively well-tagged file, but you should \textbf{verify and repair the compiled result early and often in Adobe Acrobat Pro}. This will help you resolve WCAG compliance issues well before the filing deadline.
Open the compiled PDF in Acrobat and open the \emph{Prepare for accessibility} tool from the \emph{All tools} list (\cref{fig:acrobat-prepare}).
From that tool, choose \emph{Check for accessibility} (\cref{fig:acrobat-check}).
\begin{figure}[htbp]
\centering
\begin{subfigure}[b]{0.45\textwidth}
\centering
\includegraphics[height=0.37\textheight,
alt={Adobe Acrobat's All tools list, with Prepare for accessibility
highlighted at the top.}]{Figures/1_Prepare_for_accessibility.png}
\caption{The All tools list.}
\label{fig:acrobat-prepare}
\end{subfigure}
\begin{subfigure}[b]{0.45\textwidth}
\centering
\includegraphics[height=0.37\textheight,
alt={Adobe Acrobat's Prepare for accessibility tool panel, listing actions
including Automatically tag PDF, Check for accessibility, Add alternate
text, and Fix reading order.}]{Figures/2_Check_for_accessibility.png}
\caption{The Prepare for accessibility panel.}
\label{fig:acrobat-check}
\end{subfigure}
\caption{The Adobe Acrobat \emph{Prepare for accessibility} tool and its
\emph{Check for accessibility} action.}
\label{fig:acrobat-open}
\end{figure}
The checker reports each rule as passed, failed, or needing manual review in the \emph{Accessibility Checker} panel (\cref{fig:acrobat-checker}); right-click a failed item to fix it or to jump to the offending content. Right-clicking an item and choosing \emph{Explain} opens the relevant page of Adobe's accessibility guide \citep{adobe_pdf_accessibility}. Use the \emph{Tags} panel (\cref{fig:acrobat-tags}) to confirm the reading order, retag an element, add or edit alt text on a \texttt{<Figure>} tag, or mark stray content as an artifact. Typical findings for a \LaTeX{} PDF are a missing document title, a figure without alt text, or a table missing a header row.
\begin{figure}[htbp]
\centering
\begin{subfigure}[b]{0.45\textwidth}
\centering
\includegraphics[height=0.37\textheight,
alt={Adobe Acrobat Accessibility Checker panel showing results grouped by
category: Document, Page Content, Forms, Alternate Text, Tables, Lists,
and Headings, several flagged with issue counts.}]{Figures/3_Accessibility_Checker.png}
\caption{The Accessibility Checker results panel.}
\label{fig:acrobat-checker}
\end{subfigure}
\hfill
\begin{subfigure}[b]{0.45\textwidth}
\centering
\includegraphics[height=0.37\textheight,
alt={Adobe Acrobat Tags panel showing the document's structure tree: a
Document tag containing nested Part and Sect tags.}]{Figures/4_Accessibility_tags.png}
\caption{The Tags panel (logical structure tree).}
\label{fig:acrobat-tags}
\end{subfigure}
\caption{Reviewing results and structure: the Accessibility Checker and the
Tags panel.}
\label{fig:acrobat-panels}
\end{figure}
%% ===========================================================================
\chapter{Example Document Elements}
%% ===========================================================================
Common elements are collected here so that their tagged output can be examined in Acrobat. The content is illustrative only and is adapted from \textcite{perez2026thesis}.
\section{Figures}
Every figure declares alt text on its \verb|\includegraphics| call.
\Cref{fig:deformed} shows an example.
\begin{figure}[htbp]
\centering
\includegraphics[width=0.8\linewidth,
alt={Deformed three-dimensional shape of an enhanced beam finite element
model, shown as a warped channel mesh.}]{Figures/veux-frame.png}
\caption{Deformed shape of an enhanced beam model.}
\label{fig:deformed}
\end{figure}
\section{Tables}
The header row of \cref{tab:trace-consts} is declared to \LaTeX{}'s PDF-tagging
code through \texttt{table/header-rows=\{1\}} in \texttt{setup.tex}, so it is tagged
as a real table header (\texttt{<TH>}) rather than hidden as an artifact.
\begin{table}[htbp]
\centering
\caption{Parameters identifying a trace in the Saint~Venant class.}
\label{tab:trace-consts}
\renewcommand{\arraystretch}{1.3}
\begin{tabular}{clll}
\toprule
Block & Size & Units & Description \\
\midrule
$\TraceShearRigidity$ & $\mathbb{R}^{2\times2}$ & \Length{2} & Trace-consistent shear rigidity \\
$\ShiftA$ & $\mathbb{R}^{2\times2}$ & \Length{1} & Curvature--flexure coupling \\
$\TraceShearOrigin$ & $\mathbb{R}^2$ & L & Shear--torsion coupling \\
$\TraceTwistOrigin$ & $\mathbb{R}^2$ & L & Twist--flexure coupling \\
$\ShiftF$ & $\mathbb{R}^2$ & $\sim$ & Curvature--torsion coupling \\
$\ShiftN$ & $\mathbb{R}^2$ & $\sim$ & Axial--flexure coupling \\
\bottomrule
\end{tabular}
\end{table}
\section{Equations}
The following is an example of aligned equations with sequential equation numbers (refer to \cref{apx:supplement} for an example of a standalone equation):
\begin{align}
\vartheta(\reflenx)
&=
\frac{T_0}{\TwistRigidity}\,\reflenx
+\frac{c_1}{\lambda}\sinh(\lambda \reflenx)
+\frac{c_2}{\lambda}\cosh(\lambda \reflenx)
+c_3 . \label{eq:theta-general-solution}\\
\TwistBimoment(\reflenx)
&=
\EJw\left(1+\frac{\TwistRigidity\,\Ja}{\EJw^2}\right)\lambda
\left[c_1\sinh(\lambda \reflenx)+c_2\cosh(\lambda \reflenx)\right],
\label{eq:bimoment-general-solution}\\
\TwistBishear(\reflenx)
&=
-\TwistRigidity
\left[c_1\cosh(\lambda \reflenx)+c_2\sinh(\lambda \reflenx)\right].
\label{eq:bishear-general-solution}
\end{align}
\section{Propositions, Theorems, Remarks}
Theorem-like environments are tagged as ordinary structured text.
\begin{proposition}[Equilibrium compatibility]
\label{prop:equilibrium-compatibility}
Let $\mathcal T$ be a Class~I trace, let $\mathbf C_T\coloneq \TraceStiffNM$,
and assume that $\bar{\mathbf C}_T$ is prismatic. Then the section equilibrium
relation holds for every Saint~Venant solution if and only if
\begin{equation}
[\bar{\mathbf G},\mathbb J]=\mathbf 0,
\qquad
\bar{\mathbf G}\coloneq \bar{\mathbf C}_T\mathbf C_T^{-1}.
\label{eq:commutator-condition}
\end{equation}
\end{proposition}
\begin{proof}
\ldots
\end{proof}
\begin{remark}
The hockling problem arises from practical considerations for the design of propeller shafts in large ships \citep{oreilly2017modeling}.
\end{remark}
\section{Algorithms}
\begin{algorithm}[htbp]
\caption{\enskip Fiber discretization $\mathcal{F}(b,d)$.}\label{alg:fibers}
\begin{algorithmic}
\small
\Function{$\mathcal{F}$}{$b,\,d,\,n_x,\,n_y$}
\Comment{\textit{Stage 1: quadrilateral mesh over $[-b/2,b/2]\times[-d/2,d/2]$}}
\State build node coordinates $\mathbf{x}$ and connectivity $\mathbf{C}$
\Comment{$\ldots$}
\BlankLine
\Comment{\textit{Stage 2: Gauss integration}}
\State $\mathcal{Q} \gets$ tensor-product Gauss points and weights
\Comment{$\ldots$}
\State $\mathcal{S} \gets \varnothing$
\ForAll{$e \in \mathbf{C}$}
\State map each quadrature point to a fiber $(y_k, z_k)$ of area $A_k$
\Comment{$\ldots$}
\State $\mathcal{S} \gets \mathcal{S} \cup \{(y_k,\, z_k,\, A_k)\}$
\EndFor
\State \Return $\mathcal{S} = \bigl\{(y_k,\, z_k,\, A_k)\bigr\}_{k=1}^{N}$
\EndFunction
\end{algorithmic}
\end{algorithm}
\section{Boxes}
Box~\ref{box:exact} summarizes the governing equations of a Cosserat rod with warping \citep{simo1991geometricallyexact}.
The box is wrapped in the \texttt{Artifact} environment, since it merely restates equations that also appear in the tagged text.
\begin{Artifact}
\begin{ambox}[Geometrically Exact Frame Model]{box:exact}
\textbf{Equilibrium}
\begin{equation*}
\left\{\begin{array}{r}
(\FrameRotation \bm{n})^{\prime}+{\bm{f}}_n=\mathbf{0} \\
(\FrameRotation \bm{m})^{\prime}+\bm{x}^{\prime} \times (\FrameRotation \bm{n}) +{\bm{f}}_m=\mathbf{0} \\
\bm{w}^{\prime}-\bm{v} + \bm{f}_{\rm w} = \mathbf{0}
\end{array}\right.
\end{equation*}
\textbf{Kinematics}
\begin{equation*}
\ShearStrain = \FrameRotation^{\top}\bm{x}^\prime - \FrameBasis
\qquad\text{ and }\qquad
\CurveStrain = \left(\FrameRotation^{\top}\FrameRotation^\prime\right)^{\vee}
\end{equation*}
\end{ambox}
\end{Artifact}
%% ===========================================================================
\chapter{References}\label{sec:references}
%% ===========================================================================
% Force certain works that are not cited in the body to appear with \nocite.
\nocite{mccallen2025open-access}
\begin{refcontext}[sorting=apa]
\printbibliography[heading=none]
\end{refcontext}
%% ===========================================================================
\begin{appendices}
%% ===========================================================================
\chapter{Supplementary Material}
\label{apx:supplement}
\cref{eq:phase-angle-rotation} is an example of a standalone equation that serves as a complement to the aligned equations in the main text (\cref{eq:theta-general-solution,eq:bimoment-general-solution,eq:bishear-general-solution}). It describes the retrieval of a real-valued mode shape from an identified complex-valued mode $\bm{\varphi}_1$ and its corresponding eigenvalue $\lambda_1 = a_1 + i b_1$ \citep{chern2026complex}.
\begin{equation}
e^{i \phi_1} \bm{\varphi}_1 =
\begin{bmatrix}
0 \\ \frac{\mbox{sgn}\left( a_1 \right)}{\Delta} \sqrt{a^2_1 + b^2_1}
\end{bmatrix},
\, \, \mbox{where} \,\, \phi_1 = \mbox{arctan}\left( \frac{b_1}{a_1} \right).
\label{eq:phase-angle-rotation}
\end{equation}
\end{appendices}
\end{document}