18
0

poster_template: add tagged PDF (PDF/UA-2) accessibility

Enables \DocumentMetadata (pdfversion=2.0, pdfstandard=ua-2) and
tagpdf with activate-all. Adds an H1 structure tag around every
frame title via \addtobeamertemplate, wraps the overlay-only tikz
helpers (\marktopleft, \markbottomright, \credit) in artifact tags
so they don't pollute the reading order, and adds alt text to each
\includegraphics. Verified compliant with verapdf's PDF/UA-2 profile.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-04-12 21:13:50 -07:00
parent 2b29f051a6
commit c4a709c22c

View File

@@ -1,7 +1,24 @@
\DocumentMetadata{
pdfversion=2.0,
pdfstandard=ua-2,
lang=en-US,
}
\documentclass[xcolor=dvipsnames, 12pt]{beamer} \documentclass[xcolor=dvipsnames, 12pt]{beamer}
\usepackage[size=custom, width=114, height=80, scale=1.5]{beamerposter} \usepackage[size=custom, width=114, height=80, scale=1.5]{beamerposter}
\usepackage{tagpdf}
\tagpdfsetup{activate-all}
% Tag frame titles as H1 headings for PDF accessibility
\addtobeamertemplate{frametitle}{%
\tagstructbegin{tag=H1}%
\tagmcbegin{tag=H1}%
}{%
\tagmcend%
\tagstructend%
}
\usepackage[absolute,overlay]{textpos} \usepackage[absolute,overlay]{textpos}
% set up the file to create notes in the output PDFs % set up the file to create notes in the output PDFs
@@ -41,10 +58,10 @@
\tikzstyle{every picture}+=[overlay,remember picture] \tikzstyle{every picture}+=[overlay,remember picture]
% add functions to circle parts of slides (e.g., in tables) % add functions to circle parts of slides (e.g., in tables)
\newcommand\marktopleft[1]{\tikz \node (marker-#1-a) at (0,1.5ex) {};} \newcommand\marktopleft[1]{\tagmcbegin{artifact}\tikz \node (marker-#1-a) at (0,1.5ex) {};\tagmcend}
\newcommand\markbottomright[1]{% \newcommand\markbottomright[1]{%
\tikz{\node (marker-#1-b) at (0,0) {};} \tagmcbegin{artifact}\tikz{\node (marker-#1-b) at (0,0) {};}\tagmcend
\tikz[dashed,inner sep=3pt]{\node[violet!75,ultra thick,draw,rounded rectangle,fit=(marker-#1-a.center) (marker-#1-b.center)] {};}} \tagmcbegin{artifact}\tikz[dashed,inner sep=3pt]{\node[violet!75,ultra thick,draw,rounded rectangle,fit=(marker-#1-a.center) (marker-#1-b.center)] {};}\tagmcend}
% DEPRECATED function to build a huge centered dropshadow % DEPRECATED function to build a huge centered dropshadow
\newcommand\dropshadow[3]{% \newcommand\dropshadow[3]{%
@@ -149,7 +166,9 @@
%\useoutertheme{infolines}p %\useoutertheme{infolines}p
%\usepackage[breaklinks]{hyperref} %\usepackage[breaklinks]{hyperref}
\hypersetup{colorlinks=true, linkcolor=Black, citecolor=Black, filecolor=makopurple1, urlcolor=Plum, unicode=true} \hypersetup{colorlinks=true, linkcolor=Black, citecolor=Black, filecolor=makopurple1, urlcolor=Plum, unicode=true,
pdflang={en-US},
pdfdisplaydoctitle=true}
% create a boldface version of the header % create a boldface version of the header
\setbeamerfont{frametitle}{series=\bfseries} \setbeamerfont{frametitle}{series=\bfseries}
@@ -185,7 +204,7 @@
\newcommand{\credit}[1]{% \newcommand{\credit}[1]{%
\tikz[overlay]{\node at (current page.south east) \tikz[overlay]{\node at (current page.south east)
[anchor=south east,yshift=1.3em,xshift=0.35em] [anchor=south east,yshift=1.3em,xshift=0.35em]
{\smaller {[}#1{]}};}} {\tagmcbegin{artifact}\smaller {[}#1{]}\tagmcend};}}
\begin{document} \begin{document}
\begin{frame}[t]{} \begin{frame}[t]{}
@@ -195,7 +214,7 @@
\vspace*{1ex} \vspace*{1ex}
\includegraphics[width=8cm]{figures/uw_logo} \includegraphics[width=8cm,alt={University of Washington logo}]{figures/uw_logo}
\vspace*{1ex} \vspace*{1ex}
\end{textblock} \end{textblock}
@@ -248,7 +267,7 @@
\end{textblock} \end{textblock}
\begin{textblock}{2}(122,0) \begin{textblock}{2}(122,0)
\includegraphics[width=6.5cm]{figures/logo} \includegraphics[width=6.5cm,alt={Community Data Science Collective logo}]{figures/logo}
\vspace*{1ex} \vspace*{1ex}
\end{textblock} \end{textblock}
@@ -279,7 +298,7 @@
\vspace{1em} \vspace{1em}
\begin{figure} \begin{figure}
\centering \centering
\includegraphics[width=0.8\textwidth]{figures/taboo topics hypotheses.jpg} \includegraphics[width=0.8\textwidth,alt={Diagram of project hypotheses}]{figures/taboo topics hypotheses.jpg}
\end{figure} \end{figure}
@@ -301,7 +320,7 @@ With billions of viewers, Wikipedia is one of the top ten most visited sites on
\vspace{0.3em} \vspace{0.3em}
\begin{center} \begin{center}
\begin{figure} \begin{figure}
\includegraphics[width=0.8\textwidth]{figures/viewsBox.pdf} \includegraphics[width=0.8\textwidth,alt={Boxplot of article ranks by popularity}]{figures/viewsBox.pdf}
\caption{Rank of articles in our sample versus all articles with dictionary salience. The most popular article is ranked ``1''.} \caption{Rank of articles in our sample versus all articles with dictionary salience. The most popular article is ranked ``1''.}
\end{figure} \end{figure}
\end{center} \end{center}
@@ -323,7 +342,7 @@ Definitions tagged with euphemistic usages were marked as taboo. We extracted al
\begin{figure} \begin{figure}
\centering \centering
\includegraphics[width=\textwidth]{figures/member.png} \includegraphics[width=\textwidth,alt={Screenshot of the Wiktionary definition of ``member''}]{figures/member.png}
\caption{The Wiktionary definition of ``member''---which has meanings ranging from the organizational to the anatomical.} \caption{The Wiktionary definition of ``member''---which has meanings ranging from the organizational to the anatomical.}
\label{fig:wiktEntry} \label{fig:wiktEntry}
@@ -340,7 +359,7 @@ To develop a comparison sample, we filtered the population of articles to just t
\begin{figure} \begin{figure}
\centering \centering
\includegraphics[width=.9\textwidth]{figures/V2 Taboo Topics Analytical Pipeline.pdf} \includegraphics[width=.9\textwidth,alt={Flowchart of the analytical pipeline}]{figures/V2 Taboo Topics Analytical Pipeline.pdf}
\caption{Our analytical pipeline first extracts n-grams, labeling them taboo if they are drawn from definitions tagged as euphemistic. Our samples are drawn from those articles that match these n-grams.} \label{fig:pipeline} \caption{Our analytical pipeline first extracts n-grams, labeling them taboo if they are drawn from definitions tagged as euphemistic. Our samples are drawn from those articles that match these n-grams.} \label{fig:pipeline}
\end{figure} \end{figure}
\end{block} \end{block}
@@ -352,7 +371,7 @@ To develop a comparison sample, we filtered the population of articles to just t
\vspace{0.3em} \vspace{0.3em}
\begin{figure} \begin{figure}
\centering \centering
\includegraphics[width=0.5\textwidth]{figures/volumeBox.pdf} \includegraphics[width=0.5\textwidth,alt={Boxplot of contribution volume}]{figures/volumeBox.pdf}
\caption{Taboo articles receive more contributions than comparable articles.} \caption{Taboo articles receive more contributions than comparable articles.}
\label{fig:volumeBox} \label{fig:volumeBox}
\end{figure} \end{figure}
@@ -367,7 +386,7 @@ To develop a comparison sample, we filtered the population of articles to just t
\vspace{0.3em} \vspace{0.3em}
\begin{figure} \begin{figure}
\centering \centering
\includegraphics[width=0.5\textwidth]{figures/boxQualitySrc.pdf} \includegraphics[width=0.5\textwidth,alt={Boxplot of article quality}]{figures/boxQualitySrc.pdf}
\caption{Articles about taboo subjects exceed the quality of our comparison set.} \caption{Articles about taboo subjects exceed the quality of our comparison set.}
\label{fig:ageGrowth} \label{fig:ageGrowth}
\end{figure} \end{figure}
@@ -382,7 +401,7 @@ To develop a comparison sample, we filtered the population of articles to just t
\vspace{0.3em} \vspace{0.3em}
\begin{center} \begin{center}
\begin{figure} \begin{figure}
\includegraphics[width=0.5\textwidth]{figures/damageRate.pdf} \includegraphics[width=0.5\textwidth,alt={Plot of damage rates by article category}]{figures/damageRate.pdf}
\caption{The rate of damaging contributions to taboo subjects is higher.} \caption{The rate of damaging contributions to taboo subjects is higher.}
\end{figure} \end{figure}
\end{center} \end{center}
@@ -396,12 +415,12 @@ Editors of taboo subjects are less likely to use an account, have less experienc
\begin{figure} \begin{figure}
%\begin{minipage}{0.45\textwidth} %\begin{minipage}{0.45\textwidth}
\includegraphics[width=.45\textwidth]{figures/mailProp.pdf} \includegraphics[width=.45\textwidth,alt={Proportion of contributors who disclose an email address}]{figures/mailProp.pdf}
\end{figure} \end{figure}
%\end{minipage}\hfill %\end{minipage}\hfill
%\begin{minipage}{0.45\textwidth} %\begin{minipage}{0.45\textwidth}
\begin{figure} \begin{figure}
\includegraphics[width=.45\textwidth]{figures/genderProp.pdf} \includegraphics[width=.45\textwidth,alt={Proportion of contributors who disclose gender}]{figures/genderProp.pdf}
%\end{minipage}\hfill %\end{minipage}\hfill
\end{figure} \end{figure}