Skip to content

Validate spec_urls based on webref ids#23958

Draft
Elchi3 wants to merge 57 commits into
mdn:mainfrom
Elchi3:spec-url-validator
Draft

Validate spec_urls based on webref ids#23958
Elchi3 wants to merge 57 commits into
mdn:mainfrom
Elchi3:spec-url-validator

Conversation

@Elchi3

@Elchi3 Elchi3 commented Jul 26, 2024

Copy link
Copy Markdown
Member

Draft testing PR for @tidoust :)

Based on w3c/webref#1198 (comment), I wrote a quick test to see if webref ids could be used to (deeply) validate BCD's spec_urls. (that is, we want to check if the fragment ids are valid as well, not just the spec hosts).

It spits out a lot of errors and I would be interested to hear if BCD should be using different fragment ids, or if webref is missing these fragment ids, or if something else is going on. Please see the CI failure for the results.

(This is a draft PR that removes our dependency on web-specs and instead fetches raw webref JSON files, we might not want to fetch the data this way, so consider this PR just a test for now)

Fixes #29065.

@github-actions github-actions Bot added infra Infrastructure issues (npm, GitHub Actions, releases) of this project linter Issues or pull requests regarding the tests / linter of the JSON files. labels Jul 26, 2024
@tidoust

tidoust commented Jul 26, 2024

Copy link
Copy Markdown
Contributor

It spits out a lot of errors and I would be interested to hear if BCD should be using different fragment ids, or if webref is missing these fragment ids, or if something else is going on. Please see the CI failure for the results.

I'd say that the good news is that, in most cases, it seems that "something else is going on" ;)

Main categories of errors I see:

  1. Fragments in ids extracts are percent-encoded. That does not seem to be the case for URLs used in BCD. If percent-encoding seems wrong, we could perhaps change that (I'm always confused as to when that is needed, or good practice). Otherwise, for comparison purpose, some preprocessing is going to be required, see inline.
  2. The URL used in BCD may have the filename, e.g., index.html in https://webassembly.github.io/spec/js-api/index.html#dom-globaldescriptor-mutable. URLs in the ids extracts don't have the filename (except for multipage specs!). The index.json file in Webref contains a nightly.filename property for each spec that could be used to create the URL variants with the filename if needed. Alternatively, it could perhaps be a good idea to drop that filename in BCD data?
  3. Many URLs in BCD use the series URL, whereas ids extracts in Webref are per specification. For example, you'll have https://drafts.csswg.org/css-logical/#position-properties in BCD, while you'll find https://drafts.csswg.org/css-logical-1/#position-properties in Webref. To find the right level in Webref, you'll need to look at entries in index.json in Webref with the same series.nightlyUrl as the URL (without fragment) used in BCD, then select the entry whose shortname is equal to series.currentSpecification.
  4. The code does not handle the case where a spec does not define any ID. That does happen for some WebGL extensions referenced by BCD, such as WebGL EXT_disjoint_timer_query
  5. For IETF RFCs produced by the HTTP WG, Webref prefers the httpwg.org URL because its rendering is slightly more user-friendly, whereas BCD seems to use www.rfc-editor.org URLs. The latter URL appears as the canonical url in Webref, so it should be relatively easy to find what you want if BCD wants to keep using that origin.

And then there are actual broken links in BCD, such as https://tc39.es/proposal-temporal/#sec-get-temporal.zoneddatetime.prototype.timezone. There are also "outdated" URLs, such as https://tc39.es/ecma262/multipage/additional-ecmascript-features-for-web-browsers.html#sec-object.prototype.__defineGetter__, which redirects to https://tc39.es/ecma262/multipage/fundamental-objects.html#sec-object.prototype.__defineGetter__ that appears in Webref.

There may be a few other error cases to dig into.

Comment thread lint/linter/test-spec-urls.ts Outdated
@Elchi3

Elchi3 commented Jul 27, 2024

Copy link
Copy Markdown
Member Author

Fantastique François!! 🎉
Thanks for the very useful review comment! I've updated the script :) Now we're down to just 269 problems found! :)

What I see now:

  • We should change rfc-editor urls to httpwg urls
  • Filenames should be omitted
  • Quite a few legit broken fragment links that need to be fixed in BCD (yay, these are the ones I want to chase with this exercise)

Something I would like for you to take a look:

  • There are about 22 links to HTML multipage fragments and upon spot checking they work. Maybe these are missing in webref or what am I missing?

@tidoust

tidoust commented Jul 27, 2024

Copy link
Copy Markdown
Contributor

There are about 22 links to HTML multipage fragments and upon spot checking they work. Maybe these are missing in webref or what am I missing?

As far as I can tell, all of them are examples of what I called outdated links: they work, but that's because the HTML spec has logic in place to redirect past fragments to their new page. Each time, the content referenced by the link moved to another page of the HTML spec and would better be targeted using the new fragment to avoid a redirect.

For example, clicking on https://html.spec.whatwg.org/multipage/browsing-the-web.html#dom-beforeunloadevent-returnvalue makes you load the browsing-the-web.html page, which includes some JavaScript that detects the fragment, knows it no longer exists in that page, and redirects you to the nav-history-apis.html page where the content was moved. The final URL is https://html.spec.whatwg.org/multipage/nav-history-apis.html#dom-beforeunloadevent-returnvalue. That final URL appears in Webref. Ideally, BCD would always use such final URLs to avoid redirects that consume a bit of time, bandwidth and energy.

This was referenced Jul 31, 2024
@github-actions github-actions Bot added the size:m [PR only] 25-100 LoC changed label Dec 10, 2024
tidoust added a commit to w3c/webref that referenced this pull request May 21, 2026
Via mdn/browser-compat-data#23958 (comment)

Any specific lookup rule requires shipping web-specs within the package, which
is what this update does. To make sure that the list matches the data, the list
of specs is rather built from the crawl index.

The `lookup()` function may now take an optional object with lookup options as
second argument. The following options are supported:

- `standing`: only keep results from specs that have the specific standing.
Standing should be `"good"`, `"pending"` or `"discontinued"` (most discontinued
specs aren't crawled, but some still are for historical reasons).
- `version`: only keep results from the nightly or release version of the
specs. Must be `"nightly"` or `"release"`.
- `series`: accept series URLs. Internally, the URL will only match if the
fragment exists in the spec that is known to be the current spec in the series.

@tidoust tidoust left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Testing locally with newly released v1.2.0 and suggested inline update (and re-including CSS specs), I end up with 253 errors. They seem to fall into different buckets:

  • URLs that indeed need fixing.
  • URLs that use "old" IDs that the spec still has (typically, in an empty span) but that are not captured in Webref. Transitioning away from old IDs would seem a good thing to do from a BCD perspective though
  • A few SVG URLs for terms due to the fact that the spec does not yet follow the appropriate conventions
  • A few URLs that target value definitions in CSS that are also references to a construct defined in yet another CSS spec. Webref does not record them on purpose to avoid creating duplicate definitions in the xref database. I can understand why BCD might still want to link to them though.
  • A few RFC URLs because there are new redirects in place on www.rfc-editor.org since... yesterday, apparently.

Comment thread lint/linter/test-spec-urls.js Outdated
Comment thread lint/linter/test-spec-urls.js
@github-actions github-actions Bot added merge conflicts 🚧 This PR needs to merge latest "main" branch to resolve a merge conflict or other issue. and removed merge conflicts 🚧 This PR needs to merge latest "main" branch to resolve a merge conflict or other issue. labels Jun 1, 2026
@github-actions

github-actions Bot commented Jun 2, 2026

Copy link
Copy Markdown
Contributor

This pull request has merge conflicts that must be resolved before it can be merged.

@github-actions github-actions Bot removed the merge conflicts 🚧 This PR needs to merge latest "main" branch to resolve a merge conflict or other issue. label Jun 2, 2026
@Elchi3 Elchi3 mentioned this pull request Jun 5, 2026
@github-actions github-actions Bot added size:l [PR only] 101-1000 LoC changed and removed size:m [PR only] 25-100 LoC changed labels Jun 8, 2026
@Elchi3 Elchi3 force-pushed the spec-url-validator branch from a8f927d to 5261425 Compare June 8, 2026 12:50
@github-actions github-actions Bot added size:m [PR only] 25-100 LoC changed and removed size:l [PR only] 101-1000 LoC changed labels Jun 8, 2026
@Elchi3

Elchi3 commented Jun 8, 2026

Copy link
Copy Markdown
Member Author

With #29809 applied, I'm down to 76 issues. Lots of CSS specs that I still need to look into. Plus some missing dfns/headings from RFCs (mostly rfc9842).

Spec URLs - 76 problems (76 errors, 0 warnings, 0 infos):
  ✖ css.at-rules.import.layer - Error → Invalid specification URL found: https://drafts.csswg.org/css-cascade-5/#ref-for-typedef-layer-name
  ✖ css.at-rules.media.any-hover - Error → Invalid specification URL found: https://drafts.csswg.org/mediaqueries/#any-input
  ✖ css.at-rules.media.any-pointer - Error → Invalid specification URL found: https://drafts.csswg.org/mediaqueries/#any-input
  ✖ css.at-rules.media.calc - Error → Invalid specification URL found: https://drafts.csswg.org/css-values/#calc-notation
  ✖ css.properties.clip-path.path - Error → Invalid specification URL found: https://drafts.csswg.org/css-masking/#ref-for-typedef-basic-shape%E2%91%A0
  ✖ css.properties.column-gap - Error → Invalid specification URL found: https://drafts.csswg.org/css-align/#column-row-gap
  ✖ css.properties.column-gap.flex_context - Error → Invalid specification URL found: https://drafts.csswg.org/css-align/#column-row-gap
  ✖ css.properties.column-gap.grid_context - Error → Invalid specification URL found: https://drafts.csswg.org/css-align/#column-row-gap
  ✖ css.properties.column-gap.multicol_context - Error → Invalid specification URL found: https://drafts.csswg.org/css-align/#column-row-gap
  ✖ css.properties.column-gap.normal - Error → Invalid specification URL found: https://drafts.csswg.org/css-align/#valdef-row-gap-normal
  ✖ css.properties.font-width.percentage - Error → Invalid specification URL found: https://drafts.csswg.org/css-fonts/#valdef-font-width-percentage-0
  ✖ css.properties.gap - Error → Invalid specification URL found: https://drafts.csswg.org/css-align/#gap-shorthand
  ✖ css.properties.gap.flex_context - Error → Invalid specification URL found: https://drafts.csswg.org/css-align/#gap-shorthand
  ✖ css.properties.gap.grid_context - Error → Invalid specification URL found: https://drafts.csswg.org/css-align/#gap-shorthand
  ✖ css.properties.gap.multicol_context - Error → Invalid specification URL found: https://drafts.csswg.org/css-align/#gap-shorthand
  ✖ css.properties.gap.normal - Error → Invalid specification URL found: https://drafts.csswg.org/css-align/#valdef-row-gap-normal
  ✖ css.properties.grid-template-columns.masonry - Error → Invalid specification URL found: https://drafts.csswg.org/css-grid-3/#masonry-layout
  ✖ css.properties.grid-template-rows.masonry - Error → Invalid specification URL found: https://drafts.csswg.org/css-grid-3/#masonry-layout
  ✖ css.properties.hyphens - Error → Invalid specification URL found: https://drafts.csswg.org/css-text/#hyphens-property
  ✖ css.properties.offset-anchor.bottom - Error → Invalid specification URL found: https://drafts.csswg.org/motion/#valdef-offset-anchor-position
  ✖ css.properties.offset-anchor.center - Error → Invalid specification URL found: https://drafts.csswg.org/motion/#valdef-offset-anchor-position
  ✖ css.properties.offset-anchor.left - Error → Invalid specification URL found: https://drafts.csswg.org/motion/#valdef-offset-anchor-position
  ✖ css.properties.offset-anchor.right - Error → Invalid specification URL found: https://drafts.csswg.org/motion/#valdef-offset-anchor-position
  ✖ css.properties.offset-anchor.top - Error → Invalid specification URL found: https://drafts.csswg.org/motion/#valdef-offset-anchor-position
  ✖ css.properties.offset-path.basic_shape - Error → Invalid specification URL found: https://drafts.csswg.org/motion/#valdef-offset-path-basic-shape
  ✖ css.properties.offset-path.url - Error → Invalid specification URL found: https://drafts.csswg.org/motion/#valdef-offset-path-url
  ✖ css.properties.offset-position.bottom - Error → Invalid specification URL found: https://drafts.csswg.org/motion/#valdef-offset-position-position
  ✖ css.properties.offset-position.center - Error → Invalid specification URL found: https://drafts.csswg.org/motion/#valdef-offset-position-position
  ✖ css.properties.offset-position.left - Error → Invalid specification URL found: https://drafts.csswg.org/motion/#valdef-offset-position-position
  ✖ css.properties.offset-position.right - Error → Invalid specification URL found: https://drafts.csswg.org/motion/#valdef-offset-position-position
  ✖ css.properties.offset-position.top - Error → Invalid specification URL found: https://drafts.csswg.org/motion/#valdef-offset-position-position
  ✖ css.properties.outline.thick - Error → Invalid specification URL found: https://drafts.csswg.org/css-borders-4/#valdef-line-style-thick
  ✖ css.properties.outline.thin - Error → Invalid specification URL found: https://drafts.csswg.org/css-borders-4/#valdef-line-style-thin
  ✖ css.properties.overflow-clip-margin.border-box - Error → Invalid specification URL found: https://drafts.csswg.org/css-overflow/#valdef-overflow-clip-margin-visual-box
  ✖ css.properties.overflow-clip-margin.content-box - Error → Invalid specification URL found: https://drafts.csswg.org/css-overflow/#valdef-overflow-clip-margin-visual-box
  ✖ css.properties.overflow-clip-margin.padding-box - Error → Invalid specification URL found: https://drafts.csswg.org/css-overflow/#valdef-overflow-clip-margin-visual-box
  ✖ css.properties.position-visibility.anchors-valid - Error → Invalid specification URL found: https://drafts.csswg.org/css-anchor-position-1/#valdef-position-visibility-anchors-valid
  ✖ css.properties.position-visibility.anchors-visible - Error → Invalid specification URL found: https://drafts.csswg.org/css-anchor-position-1/#valdef-position-visibility-anchors-visible
  ✖ css.properties.row-gap - Error → Invalid specification URL found: https://drafts.csswg.org/css-align/#column-row-gap
  ✖ css.properties.row-gap.flex_context - Error → Invalid specification URL found: https://drafts.csswg.org/css-align/#column-row-gap
  ✖ css.properties.row-gap.grid_context - Error → Invalid specification URL found: https://drafts.csswg.org/css-align/#column-row-gap
  ✖ css.properties.row-gap.normal - Error → Invalid specification URL found: https://drafts.csswg.org/css-align/#valdef-row-gap-normal
  ✖ css.properties.text-align-last.match-parent - Error → Invalid specification URL found: https://drafts.csswg.org/css-text/#valdef-text-match-parent
  ✖ css.properties.text-emphasis.open - Error → Invalid specification URL found: https://drafts.csswg.org/css-text-decor/#valdef-text-emphasis-style-open
  ✖ css.properties.text-underline-offset.percentage - Error → Invalid specification URL found: https://drafts.csswg.org/css-text-decor-4/#valdef-text-underline-offset-percentage
  ✖ css.properties.vertical-align.middle - Error → Invalid specification URL found: https://drafts.csswg.org/css-inline/#valdef-alignment-baseline-middle
  ✖ css.properties.vertical-align.text-bottom - Error → Invalid specification URL found: https://drafts.csswg.org/css-inline/#valdef-alignment-baseline-text-bottom
  ✖ css.properties.vertical-align.text-top - Error → Invalid specification URL found: https://drafts.csswg.org/css-inline/#valdef-alignment-baseline-text-top
  ✖ css.selectors.future - Error → Invalid specification URL found: https://drafts.csswg.org/selectors/#the-future-pseudo
  ✖ css.selectors.interest-source - Error → Invalid specification URL found: https://drafts.csswg.org/selectors/#selectordef-interest-source
  ✖ css.selectors.interest-target - Error → Invalid specification URL found: https://drafts.csswg.org/selectors/#selectordef-interest-target
  ✖ css.selectors.past - Error → Invalid specification URL found: https://drafts.csswg.org/selectors/#the-past-pseudo
  ✖ css.selectors.target-current - Error → Invalid specification URL found: https://drafts.csswg.org/css-overflow-5/#active-scroll-marker
  ✖ css.selectors.view-transition-group-children - Error → Invalid specification URL found: https://drafts.csswg.org/css-view-transitions-2/#view-transition-group-children-pseudo
  ✖ css.types.anchor-size.inset_margin - Error → Invalid specification URL found: https://www.w3.org/TR/css-logical-1/#inset-properties,https://www.w3.org/TR/css-box-4/#margin-properties
  ✖ css.types.attr.declaration-value - Error → Invalid specification URL found: https://drafts.csswg.org/css-values-5/#ref-for-typedef-declaration-value%E2%91%A1%E2%91%A3
  ✖ css.types.attr.fallback - Error → Invalid specification URL found: https://drafts.csswg.org/css-values-5/#ref-for-typedef-declaration-value②⑥
  ✖ css.types.max - Error → Invalid specification URL found: https://drafts.csswg.org/css-values/#calc-notation
  ✖ css.types.min - Error → Invalid specification URL found: https://drafts.csswg.org/css-values/#calc-notation
  ✖ css.types.random.dashed-ident - Error → Invalid specification URL found: https://drafts.csswg.org/css-values-5/#valdef-random-dashed-ident
  ✖ css.types.random.element-shared - Error → Invalid specification URL found: https://drafts.csswg.org/css-values-5/#valdef-random-element-shared
  ✖ css.types.random.step - Error → Invalid specification URL found: https://drafts.csswg.org/css-values-5/#ref-for-typedef-calc-sum①⑧
  ✖ html.elements.link.rel.compression-dictionary - Error → Invalid specification URL found: https://www.rfc-editor.org/info/rfc9842/#name-link-relation-registration
  ✖ http.headers.Accept-CH - Error → Invalid specification URL found: https://www.rfc-editor.org/info/rfc8942/#section-3.1
  ✖ http.headers.Accept-Encoding.dcb - Error → Invalid specification URL found: https://www.rfc-editor.org/info/rfc9842/#name-dictionary-compressed-brotl
  ✖ http.headers.Accept-Encoding.dcz - Error → Invalid specification URL found: https://www.rfc-editor.org/info/rfc9842/#name-dictionary-compressed-zstan
  ✖ http.headers.Available-Dictionary - Error → Invalid specification URL found: https://www.rfc-editor.org/info/rfc9842/#name-available-dictionary
  ✖ http.headers.Content-Encoding.dcb - Error → Invalid specification URL found: https://www.rfc-editor.org/info/rfc9842/#name-dictionary-compressed-brotl
  ✖ http.headers.Content-Encoding.dcz - Error → Invalid specification URL found: https://www.rfc-editor.org/info/rfc9842/#name-dictionary-compressed-zstan
  ✖ http.headers.Dictionary-ID - Error → Invalid specification URL found: https://www.rfc-editor.org/info/rfc9842/#name-dictionary-id
  ✖ http.headers.Idempotency-Key - Error → Invalid specification URL found: https://datatracker.ietf.org/doc/html/draft-ietf-httpapi-idempotency-key-header/#name-the-idempotency-key-http-re
  ✖ http.headers.Set-Cookie.SameSite.none_requires_secure - Error → Invalid specification URL found: https://httpwg.org/http-extensions/draft-ietf-httpbis-rfc6265bis.html#section-5.7-3.19
  ✖ http.headers.Signature-Input - Error → Invalid specification URL found: https://datatracker.ietf.org/doc/html/rfc9421#name-the-signature-input-http-fi
  ✖ http.headers.Signature - Error → Invalid specification URL found: https://datatracker.ietf.org/doc/html/rfc9421#section-4.2
  ✖ http.headers.Unencoded-Digest - Error → Invalid specification URL found: https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-unencoded-digest#name-the-unencoded-digest-field
  ✖ http.headers.Use-As-Dictionary - Error → Invalid specification URL found: https://www.rfc-editor.org/info/rfc9842/#name-use-as-dictionary

@tidoust

tidoust commented Jun 8, 2026

Copy link
Copy Markdown
Contributor

mostly rfc9842

Quick note that, for this one, browser-specs continues to prefer the httpwg.org URL instead of the rfc-editor.org one. In other words, it's not that the headings are missing from Webref, it's more that Webref uses another URL for the spec (and note the heading IDs are different in the two renditions of the spec...)

@github-actions github-actions Bot added the merge conflicts 🚧 This PR needs to merge latest "main" branch to resolve a merge conflict or other issue. label Jun 11, 2026
@github-actions

Copy link
Copy Markdown
Contributor

This pull request has merge conflicts that must be resolved before it can be merged.

@github-actions github-actions Bot removed the merge conflicts 🚧 This PR needs to merge latest "main" branch to resolve a merge conflict or other issue. label Jun 11, 2026
@Elchi3 Elchi3 force-pushed the spec-url-validator branch from 1d3fc19 to 9aa29d9 Compare June 11, 2026 14:11
@Elchi3

Elchi3 commented Jun 11, 2026

Copy link
Copy Markdown
Member Author

30 more to go.

  • The WebTransport ones are being talked about in WebTransport deprecates out/ingoingHighWaterMark properties #29810
  • Most CSS ones are valdefs where I'm actually not quite sure why these aren't dfns.
  • Not sure what changed with CSS random, looks like some things were renamed?
  • Drafty RFC specs, maybe I'll need to add these to our exception list
Spec URLs - 30 problems (30 errors, 0 warnings, 0 infos):
  ✖ api.WebTransportDatagramDuplexStream.incomingHighWaterMark - Error → Invalid specification URL found: https://w3c.github.io/webtransport/#dom-webtransportdatagramduplexstream-incominghighwatermark
  ✖ api.WebTransportDatagramDuplexStream.outgoingHighWaterMark - Error → Invalid specification URL found: https://w3c.github.io/webtransport/#dom-webtransportdatagramduplexstream-outgoinghighwatermark
  ✖ css.properties.clip-path.path - Error → Invalid specification URL found: https://drafts.csswg.org/css-masking/#ref-for-typedef-basic-shape%E2%91%A0
  ✖ css.properties.font-width.percentage - Error → Invalid specification URL found: https://drafts.csswg.org/css-fonts/#valdef-font-width-percentage-0
  ✖ css.properties.offset-anchor.bottom - Error → Invalid specification URL found: https://drafts.csswg.org/motion/#valdef-offset-anchor-position
  ✖ css.properties.offset-anchor.center - Error → Invalid specification URL found: https://drafts.csswg.org/motion/#valdef-offset-anchor-position
  ✖ css.properties.offset-anchor.left - Error → Invalid specification URL found: https://drafts.csswg.org/motion/#valdef-offset-anchor-position
  ✖ css.properties.offset-anchor.right - Error → Invalid specification URL found: https://drafts.csswg.org/motion/#valdef-offset-anchor-position
  ✖ css.properties.offset-anchor.top - Error → Invalid specification URL found: https://drafts.csswg.org/motion/#valdef-offset-anchor-position
  ✖ css.properties.offset-path.basic_shape - Error → Invalid specification URL found: https://drafts.csswg.org/motion/#valdef-offset-path-basic-shape
  ✖ css.properties.offset-path.url - Error → Invalid specification URL found: https://drafts.csswg.org/motion/#valdef-offset-path-url
  ✖ css.properties.offset-position.bottom - Error → Invalid specification URL found: https://drafts.csswg.org/motion/#valdef-offset-position-position
  ✖ css.properties.offset-position.center - Error → Invalid specification URL found: https://drafts.csswg.org/motion/#valdef-offset-position-position
  ✖ css.properties.offset-position.left - Error → Invalid specification URL found: https://drafts.csswg.org/motion/#valdef-offset-position-position
  ✖ css.properties.offset-position.right - Error → Invalid specification URL found: https://drafts.csswg.org/motion/#valdef-offset-position-position
  ✖ css.properties.offset-position.top - Error → Invalid specification URL found: https://drafts.csswg.org/motion/#valdef-offset-position-position
  ✖ css.properties.overflow-clip-margin.border-box - Error → Invalid specification URL found: https://drafts.csswg.org/css-overflow/#valdef-overflow-clip-margin-visual-box
  ✖ css.properties.overflow-clip-margin.content-box - Error → Invalid specification URL found: https://drafts.csswg.org/css-overflow/#valdef-overflow-clip-margin-visual-box
  ✖ css.properties.overflow-clip-margin.padding-box - Error → Invalid specification URL found: https://drafts.csswg.org/css-overflow/#valdef-overflow-clip-margin-visual-box
  ✖ css.properties.position-visibility.anchors-valid - Error → Invalid specification URL found: https://drafts.csswg.org/css-anchor-position-1/#valdef-position-visibility-anchors-valid
  ✖ css.properties.position-visibility.anchors-visible - Error → Invalid specification URL found: https://drafts.csswg.org/css-anchor-position-1/#valdef-position-visibility-anchors-visible
  ✖ css.properties.text-fit - Error → Invalid specification URL found: https://drafts.csswg.org/css-text-5/#text-fit-property
  ✖ css.properties.text-fit.grow - Error → Invalid specification URL found: https://drafts.csswg.org/css-text-5/#valdef-text-fit-grow
  ✖ css.properties.text-fit.none - Error → Invalid specification URL found: https://drafts.csswg.org/css-text-5/#valdef-text-fit-none
  ✖ css.properties.text-fit.shrink - Error → Invalid specification URL found: https://drafts.csswg.org/css-text-5/#valdef-text-fit-shrink
  ✖ css.types.random.element-shared - Error → Invalid specification URL found: https://drafts.csswg.org/css-values-5/#valdef-random-element-shared
  ✖ css.types.random.step - Error → Invalid specification URL found: https://drafts.csswg.org/css-values-5/#ref-for-typedef-calc-sum①⑧
  ✖ http.headers.Idempotency-Key - Error → Invalid specification URL found: https://datatracker.ietf.org/doc/html/draft-ietf-httpapi-idempotency-key-header/#name-the-idempotency-key-http-re
  ✖ http.headers.Set-Cookie.SameSite.none_requires_secure - Error → Invalid specification URL found: https://httpwg.org/http-extensions/draft-ietf-httpbis-rfc6265bis.html#section-5.7-3.19
  ✖ http.headers.Unencoded-Digest - Error → Invalid specification URL found: https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-unencoded-digest#name-the-unencoded-digest-field

@Elchi3

Elchi3 commented Jun 15, 2026

Copy link
Copy Markdown
Member Author

OK, I think we're almost at a stage where this PR will pass tests. Final steps:

@github-actions github-actions Bot added the merge conflicts 🚧 This PR needs to merge latest "main" branch to resolve a merge conflict or other issue. label Jun 19, 2026
@github-actions

Copy link
Copy Markdown
Contributor

This pull request has merge conflicts that must be resolved before it can be merged.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency package or file. infra Infrastructure issues (npm, GitHub Actions, releases) of this project linter Issues or pull requests regarding the tests / linter of the JSON files. merge conflicts 🚧 This PR needs to merge latest "main" branch to resolve a merge conflict or other issue. size:m [PR only] 25-100 LoC changed

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Validate spec URLs

5 participants