I wonder if there is already a package that makes me create a spot the error kind of test like the one below:

This must preferably be in an enumerate environment.
I tried a tikz approach but I could not make it work out.
\documentclass[10pt]{article}
\usepackage{tkz-base}
\usetkzobj{all}
\begin{document}
\begin{enumerate}
\item The principal \tikz [remember picture] \node (said) {}; that \tikz [remember picture] \node (weather) {}; the government \tikz [remember picture] \node (announces) {}; a holiday or not, his school \tikz [remember picture] \node (hold) {}; classes. \tikz [remember picture] \node (error) {};
\end{enumerate}
\begin{tikzpicture}[remember picture]
\def\abovebelow#1#2#3{
\node at (#1) {\underline{#2}};
\node [below=1pt of #1] {#3};
}
\abovebelow{said}{said}{A}
\abovebelow{weather}{weather}{B}
\abovebelow{announces}{announces}{C}
\abovebelow{hold}{will still hold}{D}
\abovebelow{error}{NO ERRROR}{E}
\end{tikzpicture}
\end{document}
Below is the output.

I am looking for a general solution, something that can be used in list environments.


