Opened 14 years ago
Closed 14 years ago
#14884 closed (wontfix)
Visible form <input>s and <textarea> should use the "required" attribute
Reported by: | paulc | Owned by: | nobody |
---|---|---|---|
Component: | Forms | Version: | dev |
Severity: | Keywords: | ||
Cc: | Triage Stage: | Unreviewed | |
Has patch: | no | Needs documentation: | no |
Needs tests: | no | Patch needs improvement: | no |
Easy pickings: | no | UI/UX: | no |
Description
Per HTML5, as well as to have the ability to style required fields differently, visible form fields should output with the "required" attribute if they are required, e.g.
<input type="text" name="..." id="..." required>
That may just be a matter of changing the default widget_attrs to return "required" by default and add to that in subclasses, e.g.
class Field(object): # ... def widget_attrs(self, widget): return {'required': 'required'}
It would be even better if there was a way to output just "required", but that would require changes to forms.util.flatatt as far as I can tell.
I'm up to submit a patch if this seems like a good direction, etc.
The problem with this--and all other HTML5 markup-related tickets--is that they won't validate. It has been (and currently is) Django's position that we produce valid XHTML 4 output.
In past discussions (#12488 is a good example, and there are numerous threads on the Django Developers mailing list) the consensus has been that Django needs to add support for controlling the doctype and output markup format. This requires a significant refactoring of how form widgets, et. al. work.
This issue, and many others, are part of that larger umbrella and need to be fixed as a whole rather than as one-offs.