You seem to have nearly answered your first question, in that it is semantically not a paragraph, so the use of <p>
is -to me- wrong.
The second question of whether or not to use a <div>
depends on your useage, but I don't see why not, other than the increasingly bulky code, though that'll probably not add much weight to the page.
My own tendency is to nest the <input />
within the <label>
tag, though this is, again, semantically incorrect since the input is not a part of the label, being only its counterpart.
Of course, both ways work and produce much the same visual effect; I've never used an alternative -speech-converter or such- to a GUI browser, so I can't say if it adds weirdness for disabled users.