% !Mode:: "TeX:DE:UTF-8:Main"
\documentclass{article}
\usepackage{amsmath}
\usepackage[ngerman]{babel}
\usepackage{tagpdf,listings}
\makeatletter
%\def\lst@outputspace{\pdffakespace\ } %not so good
% this here works fine with luatex, if the font has a space glyph:
\def\lst@visiblespace{\lst@ttfamily{\char32}{\char32}}
% with pdftex this could work
%\def\lst@visiblespace{\lst@ttfamily{\pdffakespace\ }{\pdffakespace\ }}
\tagpdfsetup{activate-all,uncompress,interwordspace=on,show-spaces,log=v}
\begin{document}\pagestyle{empty}
\tagstructbegin{tag=Document}
\tagmcbegin{tag=P}
\begin{lstlisting}[showspaces]
aaa aaa    xxxx
\end{lstlisting}
\tagmcend
\tagstructend
\end{document}