On 06/18/2010 01:04 PM, Ashley Sheridan wrote: > On Fri, 2010-06-18 at 11:35 +0200, Mounir Lamouri wrote: >> Hi, >> >> I'm wondering why select element do not have a required attribute. It >> seems to be perfectly suitable. With the required attribute, select >> element would be able to suffer from being missing and the :required >> pseudo-class could apply. >> >> Is there a reason why the select element has no required attribute or >> it's only an omission? >> >> Related bug: >> http://www.w3.org/Bugs/Public/show_bug.cgi?id=9625 >> >> Thanks, >> -- >> Mounir > > Required as in it should always have a value sent? If so, then it always > does. The default value for a select element is not an empty string as > an <option> is always there (unless someone has been stupid enough to > create an empty select list.) > > As such, some sort of value will always be sent.
I'm getting back to this subject because the answers I got were not really convincing. Nor the answers from the previous thread [1]. I see three reasons to have @required for <select>: 1. A typical use case of <select> is to have <option value=''>Choose an option</option> as a default value. Having @required would prevent authors to write any js check when they are using <select> like that. 2. For <select multiple>, it is possible to not select any option. The required attribute can be really helpful here too. 3. Having @required for <select> will be consistent and semantically better. As I see it, with HTML5 Forms, I should be able to do :not(:required) { display: none; } and still be able to submit the form (I should not hide submit controls actually ;)). So, even for the simple <select>'s with a non-null default, knowing it is required would be good for everyone. Feedbacks are welcome :) [1] http://lists.whatwg.org/pipermail/whatwg-whatwg.org/2006-October/007331.html Thanks, -- Mounir