[css3-lists] Too many list styles and a proposal to simplify them

While it is not unreasonable that people would like to use
 a list style that is appropriate to the conventions of their
language or intended field of use, there are already far too
many list styles and more continue to be proposed.
However, there are several noticeable patterns that many
of the proposed additions use.  What I am about to
propose is a method for eliminating many, but not all
of the suggested additions while keeping the desired functionality.

It involves adding four new keywords each of which would
be followed by a strings of characters that would then be used
to construct the list markers.  The following is true for all
four values:

1) They have the form <ident> <string> <string>?
2) The optional second string is appended to the marker
generated by the list style.
3) If the UA is unable to represent all of the characters in either
string then the list style is to be represented as "decimal".

numeric <string> <string>?
The first string consists of k characters that would be treated
as digits 0 to k-1 for a base k numbering system.   If the number
is negative, the character U+002D would be prefixed to the
string of digits of the absolute value..

There are 22 +2 numeric 'list-style-types'  in the CSS 3 Lists WD.
(24 keywords, but only 22 distinct list styles.)
The CSS 2.1 'list-style-type' of "decimal" would be equivalent to:
   numeric "0123456789" "."
but should  be retained for compatibility with CSS 2.1.
The CSS 2.1 'list-style-type' of "decimal-leading-zero" cannot
be represented using this system.
The 20 proposed new numeric  'list-style-type's from the WD
can all be represented by this system.

repeating <string> <string>?
The first string consists of k characters that would be treated
as the values 1 to k.  the value k+1 would be shown by doubling
the first character, k+2 by doubling the second character, etc..
Values of 0 and less would be represented as if the
'list-style-type' were "decimal".

There are 27 + 16 alphabetic 'list-style-types' in the CSS 3
Lists WD. (43 keywords, but only 27 distinct list styles.)
The CSS 2.1 'list-style-type's of "lower-alpha", "lower-greek",
"lower-latin", "upper-alpha" and "upper-latin" could be
represented by this system.and should be retained for
compatibility with CSS 2.1  (Note: CSS 2.1 indicates
that it is unclear whether these five are repeating or
non-repeating, but the CSS 3 WD indicates that they are
repeating.)  There are four repeating styles defined
in CSS 2 but not part of CSS 2.1  These four should
be considered for retention in CSS 3 as predefined
versions of this style.  The remaining 20 alphabetic
styles in the draft can be represented using this system
without any need to include them is CSS 3.

non-repeating <string> <string>?
The first string consists of k characters that would be treated
as the values 1 to k.  Values of 0 and less and of k+1 or more
would be represented as if the 'list-style-type' were "decimal".

There are 8 non-repeating 'list-style-types' in the CSS 3
Lists WD, none of which appear in CSS 2.1  these styles
can be represented using this system.

cjkv-ideographic <string> <string>?
This is a generalized version of the "cjk-ideographic"
'list-style-style'. The 'v' got added both because CJKV
is a more inclusive term than CJK and so that UA's that 
wish to implement the draft types can still do even if they
end up not being in the final draft. 

The first string would be required to contain 16 characters,
if it did not, then the list style would be treated as if it were
"decimal".   The sixteen characters would be in this order:
Digit 0
Digit 1
Digit 2
Digit 3
Digit 4
Digit 5
Digit 6
Digit 7
Digit 8
Digit 9
Second Digit Marker
Third Digit Marker
Fourth Digit Marker
Second Group Marker
Third Group Marker
Fourth Group Marker

The range of values that could be represented is from
1 to 9,999,999,999,999,999. Values outside that range
would be treated as if the list style were decimal

There are 6+1 algorithmic list styles in the CSS 3 Lists WD
that can be replaced by this value. (7 keywords, but only
6 distinct list styles.)  These styles are "cjk-ideographic",
"japanese-formal", "japanese-informal", "simp-chinese-formal",
"simp-chinese-informal", "trad-chinese-formal", and
"trad-chinese-informal".  The keyword "cjk-ideographic" was
given in CSS 2, but is not a part of CSS 2.1 and was not rigorously
defined in CSS 2.  Still, that keyword should probably be retained
in CSS 3.

(Note: I considered trying to generalize this even further so as
to fit additional algorithmic types within it, but I decided not to.
The only one I could make fit  easily was "tamil" and since
Unicode is adding a Tamil Digit 0 (In the pipeline for
Unicode 4.1) that type might need to be revised to allow to
that and in such a manner as to make it incompatible with
this method.)

SUMMARY

The net result is 49 fewer list styles and 76 fewer keywords,
plus an additional 5 styles and keywords that could be dropped
if the styles that are part of CSS 2 but not CSS 2.1 are dropped.
In addition there would be no need for additional keywords
for styles that meet the definition of one of these four values.

(Note: altho the recent Persian proposal stimulated this, neither
of the two newly proposed list style types, "persian-abjad"
nor "persian-alphabet" would fall under the types given here
because they use multiple characters for some positions.
The U+0647 U+200D sequence could be replaced with
the Arabic Presentation form  U+FEEB, but unless the near
impossible occurred and Unicode was convinced to add
another Arabic ligature, the sequence U+0627 U+0634 U+0641,
this method wouldn't be able to work with these styles.
On the other hand, if it could be shown that this three letter
combination is actually used as part of the Farsi list
sequences, I wouldn't say that it would be impossible,
just extremely unlikely that Unicode would add another
ligature, there certainly is room for more ligatures in Arabic
Presentation Forms- A, but they were added for compatibility
with pre-Unicode legacy code sets.

Received on Friday, 12 March 2004 20:01:12 UTC