Initial Development

Agreed about labeling the input, and using a button instead of an input to submit the form.

I actually think we should not wrap things in a fieldset as a default for two reasons; First, a fieldset is supposed to be used to logically group items in a form, and since there is only one "group" in this form, it's not needed in a semantic sense. Second, fieldsets actually have some wonky default styling issues in Firefox and IE, so I think they could potentially cause more CSS frustration than the solve by providing a styling hook. I don't think a form this simple would have many cases where a styling hook was very useful, and modern CSS is pretty powerful anyway. I don't like using the styling hook as a justification for an unnecessary element. If someone does need a styling hook, they can override the template pretty easily.

Regarding the response location; on a longer form, where the page is reloaded and/or the user is sent back to the top and has to review the entire form, I think it makes sense to put errors at the top. On a form this short with an ajax response, I think it makes more sense to put it right next to the submit button so that it's not easily missed when it pops up. It's anecdotal evidence, but I find it pretty frustrating when I fill out a form and an error pops up that I don't see because it's location has been scrolled out of the viewport... maybe there is a way to focus the response message when it's inserted, so that regardless of the location, it's not easy to miss.