W3C can say (?) what an ID means to CSS4, in the fast profile context

I will try to summarize...
Facts when rendering XML or HTML documents with CSS:

* Designers have the option to use CLASS and ID attributes, and the ID
option is to express the uniqueness.

* W3C need to listen to the design community, and statistics speak
for them:
   there are a lot of ugly documents with non-unique IDs... we must to
tolerate non-unique IDs.

in view of the facts ... There are two kinds of  "W3C workarounds", for
tolerate non-unique IDs:

*1) use the first*. The DOM's tradition, with the
*getElementById(elementId)* method, that
    "must return the first element, in tree order", http://www.w3.org/TR/dom

*2) ignore uniqueness of IDs*. Is not an explicit W3C workaround,
    but it is the (worst) practice in the CSS-parsing of all popular render
engines (like Blink, Gecko or Webkit);
    and, the W3C's "nothing to declare" is near to an agreement.
    This practice say to designers "ID=CLASS" and
    created a culture of "invalid IDs" in the content production.


But now, with the CSS4's *fast profile* proposal, since 2013,
http://www.w3.org/TR/selectors4/#fast-profile
we can change this culture of "worst practices"...


*PROPOSAL* (? is possible):  let's drop "repeated ID support" in the *fast
profile* definition of CSS4.
       http://dev.w3.org/csswg/selectors-4/#profiles
   To do it explicitally, the CSS4 must express uniqueness as an
extra-constraint for the *fast profile*.

... would be a gift, a W3C's bounty for designers and template-engines that
produce non-ugly documents (docs with real IDs),
and an incentive for render-engines really use distinct algorithms for each
profile,
looking for effective optimizations in the *fast profile*.


PPKrauss


PS1: there are many old discussions about ID in XML/HTML/CSS... Here an
example as reference,
   http://programmers.stackexchange.com/q/127178/84349

PS2: about render engines, they work with "ignore uniqueness of IDs"
strategy in the sense that
  not use something like getElementById(), the CSS-render algorithms see ID
attribute as see CLASS attribute.

Received on Tuesday, 7 April 2015 19:46:03 UTC