- From: Garrett Smith <dhtmlkitchen@gmail.com>
- Date: Wed, 23 Sep 2009 22:25:38 -0700
- To: "Tab Atkins Jr." <jackalmage@gmail.com>
- Cc: www-style list <www-style@w3.org>
On Wed, Sep 23, 2009 at 8:42 AM, Tab Atkins Jr. <jackalmage@gmail.com> wrote:
> I recently opened a bugzilla ticket on the HTML5 tracker[1] asking for
> :invalid and related pseudoclasses to not match until the input was in
> some sense "dirty", that is, until the user had directly interacted
> with the control. Hixie closed the ticket with WONTFIX and provided a
> good reason for doing so - there are many reasons why you *would* want
> immediate validation - as well as providing a suggestion for manually
> implementing 'dirty' detection in a way that would interact with CSS
> appropriately.
>
What does the :dirty pseuodoclass apply to? FORM, FIELDSET, or just
form controls?
form:dirty *:invalid {
border: 1px solid red;
}
fieldset:dirty *:invalid {
font-weight: 800;
}
An associated "dirty" state property would be useful for form change events.
if(FormManager.isFormDirty(form)) {
// re-enable button.
}
var FormManager = {};
FormManager.isFormDirty = function(form) {
var formDirty;
// Native code performance boost!
if(typeof form.dirty == "boolean") {
formDirty = function(form) {
return form.dirty;
}
} else {
// hand-rolled fallback.
formDirty = function(form){
var dirty = false;
// manual check.
return dirty;
}
}
return (FormManager.isFormDirty = formDirty(form));
}
This is more of a DOM related issue than CSS, but somewhat related to
the "dirty" idea.
> This seems silly to have to do manually, though, as most of the time
> you *will* want to delay error messages until the user has interacted
> with the input. As well, it depends on js, which means that users
> without js won't see the validation styling at all (without some
> annoying hacks around the issue).
>
Programmers care about data format. Obviously designers might have a
different opinion on what the user gets presented with.
> I propose a :dirty pseudoclass be added to CSS UI. It would match any
> input that the user has significantly interacted with, in the opinion
> of the UA. In standard browsers it would match as soon as the user
> triggered a change event, but the exact details of when it matches are
> up to the UA.
>
It seems necessary to define "significantly interacted with".
Garrett
Received on Thursday, 24 September 2009 05:31:53 UTC