- 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