- From: Reece Dunn <msclrhd@googlemail.com>
- Date: Thu, 15 May 2014 10:24:40 +0100
- To: Xidorn Quan <quanxunzhen@gmail.com>
- Cc: James Craig <jcraig@apple.com>, www-style list <www-style@w3.org>, "Tab Atkins Jr." <jackalmage@gmail.com>
On 15 May 2014 09:47, Xidorn Quan <quanxunzhen@gmail.com> wrote: > > On Thu, May 15, 2014 at 11:36 AM, James Craig <jcraig@apple.com> wrote: >> >> Speak-as may account for some simple cases (like the numeric example >> below), but does not allow authors to designate alternative text for the >> symbol-based markers. If you just want numeric markers, there's no reason to >> use "symbols" at all. >> >> The following example is admittedly contrived, but is a better >> illustration of what cannot be accomplished with the "speak-as" property. >> >> symbols: ◰ ◳ ◲ ◱; >> alt: 'foo' 'bar' 'baz' 'bop'; >> >> "speak-as" provides pretty good coverage of CSS 2's "list-style-type" >> property, but AFAICT it doesn't provide sufficient coverage of CSS3's >> "symbols" property. > > > Actually, it can do what you want it to do. Consider this: > > @counter-style a { > system: fixed; > symbols: ◰ ◳ ◲ ◱; > speak-as: b; > } > > @counter-style b { > system: fixed; > symbols: foo bar baz bop; > speak-as: alphabetic; > } > > The spec seems to be ambiguous by saying alphabetic is "spell it out > letter-by-letter", but in my current implementation for Firefox, this should > give you exactly what you want. The spell out "letter-by-letter" note is for e.g. lower-alpha that will generate things like "aa", "ab", ..., "bq", "aaaabvg". Speaking these as words will result in nonsensical pronunciations. However, I do see a case for words like you have written above (as per this case). So maybe there needs to be a "speak-as: words;" to cover this case. You could also have: @counter-style box-corner-spoken { system: fixed; symbols: "top left", "top right", "bottom right", "bottom left"; speak-as: words; } Given a modification of the original example: @counter-style box-corner { system: fixed; symbols: ◰ ◳ ◲ ◱; suffix: ':'; speak-as: alphabetic; /* force reading the Unicode characters */ } I would expect the screen reader to use an appropriate pronunciation of those symbols (this is a quality of implementation issue). For number-like symbols (fractions, roman numerals, counting rod numerals, etc.), a screen reader could interpret this as numbers (e.g. "roman numeral 145" or "counting rod 67"). The alphabetic speak-as form specifies that the codepoints are read in the document's language. An issue with using "speak-as: words;" is that the language may be different. Therefore, you should be able to use the language specifier, e.g.: @counter-style box-corner-spoken:lang(de) { system: fixed; symbols: "oben links", "oben rechts", "unten rechts", "unten links"; speak-as: words; } I am not sure if this is valid in the current spec (:lang() can be used on element selectors (e.g. `p:lang(gd)`), but I am not sure if they can be used on at-rules). Thanks, - Reece H. Dunn [http://reecedunn.co.uk]
Received on Thursday, 15 May 2014 09:25:07 UTC