A custom counter style can be constructed with a meaning that is obvious visually, but impossible to meaningfully represent via a speech synthesizer or other non-visual means, or possible but nonsensical when naively read out loud. The 'speak-as' descriptor describes how to synthesize the spoken form of a counter formatted with the given counter style.
Update since I2P: The 'spell-out' value is not implemented because it is currently unimplementable (crbug.com/1247764). As the spec requires alphabetic counter styles with 'speak-as: auto' to use the 'spell-out' value, we use 'words' instead. This aligns with what Firefox currently does.
Interoperability risks are very low, as we are implementing a CR feature that Firefox already shipped years ago, and Safari is positive on. Update since I2P: There is a low compatibility risk. Accessible names of a lot of predefined counter styles are changed from the counter text to the counter number. For example, if we have a list marker "IV. " using 'upper-roman' counter style, its accessible name is changed from "IV. " to "4. ". This change matches the spec and aligns with Firefox, but may shave backward compatibility risks.
N/A; it's an extension to an already shipped feature, @counter-style. Note that we don't have DevTools support for @counter-style yet, as the requirement was imposed after @counter-style was shipped.
96
Summary
A custom counter style can be constructed with a meaning that is obvious visually, but impossible to meaningfully represent via a speech synthesizer or other non-visual means, or possible but nonsensical when naively read out loud. The 'speak-as' descriptor describes how to synthesize the spoken form of a counter formatted with the given counter style.
Update since I2P: The 'spell-out' value is not implemented because it is currently unimplementable (crbug.com/1247764). As the spec requires alphabetic counter styles with 'speak-as: auto' to use the 'spell-out' value, we use 'words' instead. This aligns with what Firefox currently does.
On Fri, Sep 17, 2021 at 1:36 PM Mike Taylor <mike...@chromium.org> wrote:
> On Friday, September 17, 2021 at 4:16:26 PM UTC-4 Xiaocheng Hu wrote:
>> Update since I2P: The 'spell-out' value is not implemented because it is currently unimplementable (crbug.com/1247764). As the spec requires alphabetic counter styles with 'speak-as: auto' to use the 'spell-out' value, we use 'words' instead. This aligns with what Firefox currently does.
>
> With 2 engines shipping (as soon as this ships, anyways) speak-as: auto => speak-as: words, have you passed that feedback to the spec editors, as the de-facto interoperable (and implementable) behavior?
This feedback was provided in
<https://github.com/w3c/csswg-drafts/issues/6040#issuecomment-799868468>,
but I answered it in
<https://github.com/w3c/csswg-drafts/issues/6040#issuecomment-840874164>
with what should be an acceptable interim solution. There wasn't a
further reply from Xiaocheng, so I figured my suggestion was
acceptable; I guess that wasn't the case?