- From: r12a via GitHub <sysbot+gh@w3.org>
- Date: Sat, 10 Sep 2016 06:24:47 +0000
- To: www-international@w3.org
r12a has just labeled an issue for https://github.com/w3c/csswg-drafts
as "i18n":
== [css-counter-styles] Language-dependent symbols ==
I’ve been fooling around with
[`@counter-style`](http://www.w3.org/TR/css-counter-styles-3/) lately
(see [repository](https://crissov.github.io/css-counters/), which is
in an early stage of development). Maybe I’m abusing the technology
there, but I think I’ve hit the limitations of the
[`speak-as`](http://www.w3.org/TR/css-counter-styles-3/#counter-style-speak-as)
descriptor.
speak-as: auto | bullets | numbers | words | spell-out |
<counter-style-name>
For instance, `spell-out` makes absolute sense for `element-symbols` …
``` css
@counter-style element-symbols {
system: fixed;
range: 1 118;
speak-as: spell-out;
symbols:
'H'
'He'
'Li' 'Be' 'B' 'C'
'N' 'O' 'F' 'Ne'
'Na' 'Mg' 'Al'
'Si' 'P' 'S' 'Cl' 'Ar'
'K' 'Ca' 'Sc' 'Ti' 'V' 'Cr' 'Mn' 'Fe' 'Co' 'Ni' 'Cu' 'Zn' 'Ga'
'Ge' 'As' 'Se' 'Br' 'Kr'
'Rb' 'Sr' 'Y' 'Zr' 'Nb' 'Mo' 'Tc' 'Ru' 'Rh' 'Pd' 'Ag' 'Cd' 'In'
'Sn' 'Sb' 'Te' 'I' 'Xe'
'Cs' 'Ba' 'La' /*
*/'Ce' 'Pr' 'Nd' 'Pm' 'Sm' 'Eu' 'Gd' 'Tb' 'Dy' 'Ho'
'Er' 'Tm' 'Yb' 'Lu' /*
*/ 'Hf' 'Ta' 'W' 'Re' 'Se' 'Ir' 'Pt' 'Au' 'Hg' 'Tl'
'Pb' 'Bi' 'Po' 'At' 'Rn'
'Fr' 'Ra' 'Ac' /*
*/'Th' 'Pa' 'U' 'Np' 'Pu' 'Am' 'Cm' 'Bk' 'Cf' 'Es'
'Fm' 'Md' 'No' 'Lr' /*
*/ 'Rf' 'Db' 'Sg' 'Bh' 'Hs' 'Mt' 'Ds' 'Rg' 'Cn' 'uut'
'Fl' 'uup' 'Lv' 'uus' 'uuo';
}
```
… although one may be tempted to also provide an `element-names`
counter style, which would be language-dependent. With `planets`,
however, `speak-as: words` would be desired, but the Unicode Names for
Venus and Mars default to ‘Female Symbol’ and ‘Male Symbol’,
respectively, so we would need to define another, language-dependent
style just for speech synthesis, i.e. we‘ll probably never use it:
``` css
@counter-style planets {
system: fixed;
speak-as: planet-names;
symbols: '\263F' '\2640' '\2641' '\2642' '\2643' '\2644' '\2645'
'\2646';
}
@counter-style planets {
system: fixed;
speak-as: words;
symbols: 'Mercury' 'Venus' 'Earth' 'Mars' 'Jupiter' 'Saturn'
'Uranus' 'Neptune' ;
}
```
That’s of course now language dependent. It becomes even more apparent
if we’re using astronomic symbols for the days of the week, where
we’d want to be able to use something like `:lang()`:
``` css
@counter-style week-days {
system: cyclic;
speak-as: week-day-names;
symbols: '\263D' '\2642' '\263F' '\2643' '\2640' '\2644' '\2609';
}
@counter-style week-days { /* default language: English, but
undeclared */
system: cyclic;
speak-as: words;
symbols: 'Monday' 'Tuesday' 'Wednesday' 'Thursday' 'Friday'
'Saturday' 'Sunday';
}
@counter-style week-days:lang(de) /* ← not speced */ {
symbols: 'Montag' 'Dienstag' 'Mittwoch' 'Donnerstag' 'Freitag'
'Samstag' 'Sonntag';
}
```
There are also ideas where we’d want no translation or change of
pronunciation, e.g. international (military)`spelling`:
``` css
@counter-style spelling {
system: alphabetic;
speak-as: lang(EN words); /* ← not speced */
symbols: 'Alfa' 'Beta' 'Charlie' 'Delta' 'Echo' 'Foxtrot'
'Golf' 'Hotel' 'India' 'Juliett' 'Kilo' 'Lima' 'Mike'
'November' 'Oscar' 'Papa' 'Quebec' 'Romeo' 'Sierra'
'Tango' 'Uniform' 'Victor' 'Whiskey' 'X-Ray' 'Yankee'
'Zulu';
}
```
With graphic symbols, whether from Unicode (or emoji) or image files,
you’d almost always want to be able to specify an `alt` text, which
may or may not have a fixed language.
``` css
@counter-style proto-sinaitic-emoji {
system: alphabetic;
speak-as: proto-sinaitic-phonics;
symbols: '\1F42E' '\1F3E0' '\1F64C' '\270B' '\1F30A' '\1F40D'
'\1F441' '\1F5FF' '\2600' '\274C';
suffix: '\FE0F';
}
@counter-style proto-sinaitic-phonics {
system: alphabetic;
speak-as: words;
symbols: 'ʾalp' 'bet' 'hll' 'kaf' 'mayim' 'hahš' 'ʿen' 'roʾš' 'šimš'
'tãw';
}
@counter-style proto-sinaitic-emoji-english {
system: extends proto-sinaitic-emoji;
speak-as: proto-sinaitic-english;
}
@counter-style proto-sinaitic-english {
system: extends: proto-sinaitic-phonics;
symbols: 'ox' 'house' 'jubilation' 'palm of hand' 'water' 'snake'
'eye' 'head' 'sun' 'mark';
}
```
I’m not exactly sure what would be a better solution (e.g. `symbols:
alt(url(image), '\1234', 'literal') …`), but if authors actually
adopted `@counter-style`, which is [currently only
available](http://caniuse.com/#feat=css-at-counter-style) in Mozilla
Firefox and Antenna House Formatter as far as I know, they would
probably want to do even crazier things than I’ve done and then run
into this problem.
See https://github.com/w3c/csswg-drafts/issues/387
Received on Saturday, 10 September 2016 06:24:54 UTC