Ray Toal Ray Toal - 12 days ago 6
CSS Question

How to find replacements of CSS 2.1 properties missing in CSS 3?

The W3C maintains an excellent list of all CSS properties, both current and proposed. Of the 115 properties marked as CSS 2.1, sixteen of these are not part of any CSS module (for level 3 and above). These are:


azimuth,
elevation,
line-height,
page-break-after,
page-break-before,
page-break-inside,
pitch,
pitch-range,
play-during,
richness,
speak-header,
speak-numeral,
speak-punctuation,
speech-rate,
stress,
volume


Now I'm aware of the W3C statement, from CSS Snapshot 2015 that states "Each module adds functionality and/or replaces part of the CSS2.1 specification. The CSS Working Group intends that the new CSS modules will not contradict the CSS2.1 specification: only that they will add functionality and refine definitions." However there seems to be no upgrade path or list of deprecated properties.

I'm pretty sure modern browsers, will, for backward-compatibility reasons, choose to honor the well-defined and stable CSS 2.1 properties. But someone (perhaps the folks in charge of a particular module) decided that the CSS 2.1 properties were clunky, hacks, or otherwise did not fit into the clean world of CSS 3 modules.

For example, I searched the CSS Speech Module looking to see whether
speak-numeral
(one of the missing 16) was mentioned. It wasn't, but I found
speak-as
which appears to capture the same functionality.

So the programming and programming-related questions here are:


  1. Why are these 16 properties not marked deprecated?

  2. Is there an "upgrading to CSS3" guide somewhere?

  3. What is the appropriate strategy for new web applications? Do we continue to use these old properties until the module makes Recommendation status and/or they get better browser support? Is it a good idea to use both properties (old and new) in a style sheet?


Answer

Let's take one example, I suspect by far the most commonly used of those listed, line-height.

The CSS Inline Layout Module Level 3, Section 2. Line Heights and Baseline Alignment says

This section is being rewritten. Refer to section 10.8 of [CSS2] for the normative CSS definition or the 2002 Working Draft if you want pretty pictures. (But ignore the old text, half of it’s wrong. We’re not specifying which half, that’s to be determined.) The CSS2 specification should be used as the guideline for implementation.

So it's not deprecated, it's just that the description from level 2.2 holds until such time that a level 3 definition can be written. Level 3 is huge, and work has to be prioritized. Line-height obviously works well enough for that priority to be low. No doubt, it will be addressed eventually.

The others are probably similar. Their level 2 definitions have simply not yet been superseded.

Comments