Re: [css-counter-styles] OM model for @counter-style rules

On Wed, Sep 5, 2012 at 3:23 PM, John Daggett <jdaggett@mozilla.com> wrote:

>
> The section of css-counter-styles now includes snippets of an OM interface
> [1]:
>
> > The CSSCounterStyleRule interface represents a ‘@counter-style’ rule.
> >
> > interface CSSCounterStyleRule : CSSRule {
> >   readonly attribute CSSStyleDeclaration style;
> > }
> > style of type CSSStyleDeclaration, readonly
> >
> > The style attribute must return a CSSStyleDeclaration block that
> > contains the descriptors specified within the @counter-style rule.
>
> I think if we're just looking for a generic getter/setter interface
> for descriptors on @-rules we should define that.  This is duping the
> unfortunate interface from CSSFontFaceRule and I don't think that's a
> good pattern to repeat.  The list of descriptors on a @counter-style
> rule really has nothing to do with style rules.
>

There are two separate issues here:

(1) whether to require every flavor of CSSRule to use its own concrete
sub-interface of the CSSRule interface, i.e., for every distinct (defined)
value of CSSRule.type there is a distinct sub-interface;

my opinion here is that it should be possible to share single sub-interface
type among different values of CSSRule.type;

(2)  whether to overload the CSSStyleDeclaration interface with use cases
that are not style declarations but happen to consist of a collection of
named items, e.g., font descriptors (CSSFontFaceRule), font feature values
descriptors (CSSFontFeatureValuesRule), counter style descriptors
(CSSCounterStyleRule), etc.;

my opinion here is that we should not overload CSSStyleDeclaration any more
than already is required for legacy compatibility support;

the only question in my mind is whether we should consider CSSFontFaceRule
sufficiently entrenched to continue the misuse of CSSStyleDeclaration in
this *one* case or not;

for CSSCountStyleRule I think we should avoid use of CSSStyleDeclaration,
and *also* should not use the word "style" in apposition with "counter";
i.e., use @counter, not @counter-style; use CSSCounterRule, not
CSSCounterStyleRule; and define CSSCounterRule to have only the following
DOMString? members:

   - additiveSymbols
   - counterName
   - counterType
   - fallback
   - negative
   - prefix
   - range
   - suffix
   - symbols

Received on Thursday, 6 September 2012 06:20:20 UTC