# Why don't \TextField and \ChoiceMenu begin at the start of the line?

Even if the \TextField and \ChoiceMenu are the first objects in a line with \noindent, they don't begin and the start of the line, there is a little gap. Why?

\documentclass{article}
\usepackage{hyperref}
\usepackage{showframe}

\begin{document}
\begin{Form}[action=mailto:my_email@gmail.com?subject={The submitted form},encoding=html, method=post]
\noindent Why doesn't the following field begin at the start of the line?
\vspace{1ex}

\noindent\TextField[name=a,width=5cm,charsize=8pt, height=.5cm]{}
\vspace{4ex}

\noindent Adding \texttt{bordersep=0pt} doesn't help:
\vspace{1ex}

\noindent\TextField[bordersep=0pt,name=b,width=5cm, height=.5cm]{}
\vspace{4ex}

\noindent The same with a choice menu:
\vspace{1ex}

\noindent\ChoiceMenu[combo, name=choice, width=5cm]{}{Choice 1, Choice 2}
\end{Form}
\end{document}


• if you add \showoutput then you see ....\glue(\lineskip) 1.0 ....\hbox(14.22636+0.0)x345.0, glue set 196.06956fil .....\glue 3.33333 plus 1.66666 minus 1.11111 That 3.33333 glue setting is the standard tex code for "call egreg" – David Carlisle May 5 '19 at 10:24

The space comes from

\def\LayoutTextField#1#2{% label, field
#1 #2%
}


If you make that #1#2 it goes, but unlike a "space from missing %" It was clearly added intentionally so I'm not sure if this is a bug or by design, it is one of a group of similar definitions

\def\LayoutTextField#1#2{% label, field
#1 #2%
}
\def\LayoutChoiceField#1#2{% label, field
#1 #2%
}
\def\LayoutCheckField#1#2{% label, field
#1 #2%
}

• perhaps it should only add the space if #1 is non empty.... – David Carlisle May 5 '19 at 10:45