- From: Andrew Fedoniouk <news@terrainformatica.com>
- Date: Wed, 05 Nov 2008 17:25:22 -0800
- To: fantasai <fantasai.lists@inkedblade.net>
- CC: Boris Zbarsky <bzbarsky@MIT.EDU>, Lachlan Hunt <lachlan.hunt@lachy.id.au>, www-style <www-style@w3.org>
fantasai wrote: > > Boris Zbarsky wrote: >> >> fantasai wrote: >>> Well, the Selectors spec is fixable. Daniel and I are actively >>> editing it now. However I don't think I agree that :enabled/:disabled >>> should not apply to type="hidden". The distinction does exist for >>> hidden controls as well, does it not? >> >> Indeed. Disabled hidden inputs do not submit. >> >> If that's the sort of distinction we want for :enabled/:disabled, >> that's also fine by me; the spec text just needs to be adjusted to >> handle that, then. > > Goals for rewording: > - Allow HTML5 to easily define what elements are :enabled or :disabled > - Make sure definition of :enabled/:disabled depends not on CSS but on > the semantics of the markup and object model. > - Make sure <input style="display: none"> matches :enabled > - Make sure <a href=""> does not match :enabled > > Here's a proposal: > http://dev.w3.org/csswg/selectors3/#UIstates > > Change > # The :enabled pseudo-class allows authors to customize the look of > # user interface elements that are enabled — which the user can > # select or activate in some fashion (e.g. clicking on a button > # with a mouse) > to > | The :enabled pseudo-class represents user interface elements that > | are in an enabled state — e.g. elements that the user can alter or > | activate in some fashion, but that could be disabled in a different > | context. > > Change > # Similar to :enabled, :disabled allows the author to specify > # precisely how a disabled or inactive user interface element should > # look. > to > | The :disabled pseudo-class represents user interface elements > | that are in a disabled state — e.g. elements that could be enabled > | but cannot currently be altered or activated by the user due to > | its semantics. > > Remove > | An element is enabled if the user can either activate it or transfer > | the focus to it. An element is disabled if it could be enabled, but > | the user cannot presently activate it or transfer focus to it. > > Comments? Suggestions for improvement? > > It is not clear what :enabled means exactly. :disabled is a state of focusable element - the DOM element that has some active behavior (controller) assigned to it. That element could be :disabled, otherwise it will accept focus. For example <input type=text> is focusable element as its behavior knows about and will handle setFocus() request. Passive elements like <p> and <div> are normally non-focusable. To make such elements focusable we someone should define <p tabindex=1 > for example. So are my questions: 1) is :enabled is a sort of :focusable element? 2) Is any passive DOM element like <p> has :disabled state flag by default? Or it has neither :disabled nor :enabled? 3) Usually <p tabindex=1 > is a focusable element so presumably it should get :enabled (or better :focusable) state flag and <p tabindex="-1" > should have :disabled flag. Is this how it supposed to work? I believe (and propose) that CSS should have just :focusable pseudo-class. Thus all passive elements will have not this flag set and active input elements (including those that have @tabindex >= 0 defined) will get the :focusable state. Active input elements that are disabled by e.g. using @disabled (and so will not accept focus) are not :focusable. Otherwise we need to specify clearly of what :disabled, :enabled, :not(:disabled) and :not(:enabled) mean. -- Andrew Fedoniouk. http://terrainformatica.com
Received on Thursday, 6 November 2008 01:26:10 UTC