-
Notifications
You must be signed in to change notification settings - Fork 223
Description
It seems like it might be useful to have some consistent guidelines for linking to specifications.
With CSS specs, there are several variations to consider. First, the publishing status:
- Editor's Draft URLs start with
drafts.csswg.org/…, and represent the latest thinking of the spec editors. However, these are drafts. While they're publicly visible, they are not necessarily stable, or agreed-on, and are not considered to be 'published' for public use. - Published specification URLs all start with
www.w3.org/TR/…. While Working Drafts may still change, publishing those changes requires group consensus. At this point, even as the status moves from WD to Candidate Recommendation or beyond, the URL will remain more reliable.
I think we should always use TR links when they are available for a feature. Hopefully it's rare that browsers ship a feature before it reaches any published consensus. When looking at an Editor's Draft, there is always a link at the top to the Latest published version of that spec.
Which leads us to the fact that CSS specs are versioned. For every 'module' (eg css-cascade) there are several layers of link specificity:
- Per-publication 'dated', e.g. https://www.w3.org/TR/2021/WD-css-cascade-4-20211015/
- Per-level 'versioned', e.g. https://www.w3.org/TR/css-cascade-4/
- Per-module 'current' level, e.g. https://www.w3.org/TR/css-cascade/
I'm not exactly sure how the 'current' level is determined. For css-cascade that is currently pointing to css-cascade-4, even though levels 5 & 6 are well established (defining layers and scope). I imagine the 'current' spec is the lowest level that still has a Working Draft status?
I expect it's best to optimize for long-term accuracy. Years after a feature has shipped, the 'current' link should still give a relatively accurate and up-to-date definition of the feature.
My proposal:
When linking to a CSS specification:
- Prefer the 'current' TR link, without any level version number.
- If the feature does not yet appear in the 'current' level, prefer the versioned TR link where that feature is defined (e.g.
css-cascade-5for layers, andcss-cascade-6for scope) - If no published specification includes the feature, then link the Editor's Draft
Ideally, non-current links get updated over time. I don't know if that's something that can be automated?
I don't think this issue exists in the HTML specification, unless we want to specify linking to the single-page vs multi-page version? It's a massive page all together, so might be best pointing people to the multi-page URL? But I'm not sure if one is more stable than the other.
I have no experience with TC39.