w3c / browser-specs

A machine-readable list of Web specifications
Other
225 stars 46 forks source link

Is it standards track? #1181

Open foolip opened 9 months ago

foolip commented 9 months ago

Feature request from https://github.com/web-platform-dx/web-features/issues/484.

I would like to answer the question "is it standards track" for every feature in web-features, and @tidoust suggested we might be able to improve the status field here in browser-specs to handle that.

The definition we had in the Interop 2024 proposal template was a good start:

Specification for the feature. The feature must defined by a standards-track specification from one of the following organizations:

In https://github.com/web-platform-tests/interop/issues/589 we also concluded that for WebAssembly, Phase 3+ was a reasonable bar.

Zooming out, I think we want to pick a point in the process for each standards organization that crosses the bar of multi-vendor interest. Most processes aren't defined in those terms, but in practice there is roughly such a point.

tidoust commented 9 months ago

Thanks for the definition. This made me wonder whether there's enough data in browser-specs already to compute the answer, and whether we would need to override the answer manually in some cases.

On top of status, which currently tries to convey what the spec says its status is, browser-specs has the notion of standing, which is broader than what you're looking at here, and which is used to identify discontinued specs, and to distinguish between specs that are merely unofficial at this stage from specs that are "one step further" (adopted by some group, better-defined scope).

There are 602 specs in browser-specs, of which 572 are in good standing.

Converting the definition to a function that can apply to browser-spec entries, I end up with (note I added AOM and FIDO specs):

function isStandardTrack(spec) {
  if (spec.standing !== 'good') {
    // Spec is in a pending state or has been discontinued
    return false;
  }

  if (spec.organization === 'W3C') {
    if (spec.forkOf && spec.shortname.startsWith('wasm-')) {
      // Note: browser-specs only contains phase 3+ WASM specs
      // Note: a bunch of phase 3+ WASM specs are not in browser-specs yet!
      return true;
    }
    else {
      return spec.release && [
          'First Public Working Draft',
          'Working Draft',
          'Candidate Recommendation Draft',
          'Candidate Recommendation Snapshot',
          'Proposed Recommendation',
          'Recommendation',
          'Proposed Edited Recommendation',
          'Draft Registry',
          'Registry'
        ].includes(spec.release.status);
    }
  }
  else if (spec.organization === 'IETF') {
    return [
      'Proposed Standard',
      'Draft Standard',
      'Internet Standard'
    ].includes(spec.nightly.status);
  }
  else if (spec.organization === 'Khronos Group') {
    // Note: all Khronos Group specs have an "Editor's Draft" status for now.
    return true;
  }
  else if (spec.organization === 'WHATWG') {
    return true;
  }
  else if (spec.organization === 'Alliance for Open Media') {
    // Note: status of AOM specs is either "Draft Deliverable" or
    // "Final Deliverable".
    return true;
  }
  else if (spec.organization === 'Ecma International') {
    // Note: browser-specs only contains stage 3+ TC39 specs
    // Note: all TC39 specs have an "Editor's Draft" status for now
    return true;
  }
  else if (spec.organization === 'FIDO Alliance') {
    // Note: just one spec in browser-specs for now
    return true;
  }
  else {
    return false;
  }
}

Applied to the 572 specs in browser-specs that are in good standing, I end up with 406 standard specs and 166 non-standard specs. See lists below. Do they look correct?

A few entries in the non-standard list are perhaps worth highlighting:

  1. Some MSE and WebCodecs registration specs are on the Note track. That's clumsy but that's correct.
  2. requestVideoFrameCallback ships in all browsers save Firefox, and Mozilla's position about the spec is positive. And yet it is "only" a WICG incubation, so not standard track. [Edit: Same thing for the Compression Streams, which ships in all core browsers. There may be other examples.]
  3. Same thing for the Speech API, whereas synthesis part ships across browsers.
  4. Some specs have been adopted by Working Groups, will get published on the standard track, but only exist as Editor's Draft for the time being. New levels of CSS specs such as css-shapes-2 for instance.
List of 406 standard specs - [accelerometer](https://www.w3.org/TR/accelerometer/) - W3C - Candidate Recommendation Draft - [accname-1.2](https://www.w3.org/TR/accname-1.2/) - W3C - First Public Working Draft - [afgs1-spec](https://aomediacodec.github.io/afgs1-spec/) - Alliance for Open Media - Draft Deliverable - [ambient-light](https://www.w3.org/TR/ambient-light/) - W3C - Working Draft - [ANGLE_instanced_arrays](https://registry.khronos.org/webgl/extensions/ANGLE_instanced_arrays/) - Khronos Group - Editor's Draft - [appmanifest](https://www.w3.org/TR/appmanifest/) - W3C - Working Draft - [audio-output](https://www.w3.org/TR/audio-output/) - W3C - Candidate Recommendation Draft - [audiobooks](https://www.w3.org/TR/audiobooks/) - W3C - Recommendation - [autoplay-detection](https://www.w3.org/TR/autoplay-detection/) - W3C - Working Draft - [av1-avif](https://aomediacodec.github.io/av1-avif/) - Alliance for Open Media - Final Deliverable - [av1-hdr10plus](https://aomediacodec.github.io/av1-hdr10plus/) - Alliance for Open Media - Final Deliverable - [av1-isobmff](https://aomediacodec.github.io/av1-isobmff/) - Alliance for Open Media - Draft Deliverable - [av1-mpeg2-ts](https://aomediacodec.github.io/av1-mpeg2-ts/) - Alliance for Open Media - Draft Deliverable - [av1-rtp-spec](https://aomediacodec.github.io/av1-rtp-spec/) - Alliance for Open Media - Draft Deliverable - [av1-spec](https://aomediacodec.github.io/av1-spec/av1-spec.pdf) - Alliance for Open Media - Final Deliverable - [badging](https://www.w3.org/TR/badging/) - W3C - Working Draft - [battery-status](https://www.w3.org/TR/battery-status/) - W3C - Working Draft - [beacon](https://www.w3.org/TR/beacon/) - W3C - Candidate Recommendation Draft - [capture-handle-identity](https://www.w3.org/TR/capture-handle-identity/) - W3C - Working Draft - [change-password-url](https://www.w3.org/TR/change-password-url/) - W3C - First Public Working Draft - [clear-site-data](https://www.w3.org/TR/clear-site-data/) - W3C - Working Draft - [clipboard-apis](https://www.w3.org/TR/clipboard-apis/) - W3C - Working Draft - [compat](https://compat.spec.whatwg.org/) - WHATWG - Living Standard - [compositing-1](https://www.w3.org/TR/compositing-1/) - W3C - Candidate Recommendation Snapshot - [compute-pressure](https://www.w3.org/TR/compute-pressure/) - W3C - Working Draft - [console](https://console.spec.whatwg.org/) - WHATWG - Living Standard - [contact-picker](https://www.w3.org/TR/contact-picker/) - W3C - Working Draft - [core-aam-1.2](https://www.w3.org/TR/core-aam-1.2/) - W3C - Candidate Recommendation Draft - [credential-management-1](https://www.w3.org/TR/credential-management-1/) - W3C - Working Draft - [csp-embedded-enforcement](https://www.w3.org/TR/csp-embedded-enforcement/) - W3C - Working Draft - [CSP3](https://www.w3.org/TR/CSP3/) - W3C - Working Draft - [css-align-3](https://www.w3.org/TR/css-align-3/) - W3C - Working Draft - [css-anchor-position-1](https://www.w3.org/TR/css-anchor-position-1/) - W3C - First Public Working Draft - [css-animation-worklet-1](https://www.w3.org/TR/css-animation-worklet-1/) - W3C - First Public Working Draft - [css-animations-1](https://www.w3.org/TR/css-animations-1/) - W3C - Working Draft - [css-animations-2](https://www.w3.org/TR/css-animations-2/) - W3C - Working Draft - [css-backgrounds-3](https://www.w3.org/TR/css-backgrounds-3/) - W3C - Candidate Recommendation Draft - [css-box-3](https://www.w3.org/TR/css-box-3/) - W3C - Recommendation - [css-box-4](https://www.w3.org/TR/css-box-4/) - W3C - Working Draft - [css-break-3](https://www.w3.org/TR/css-break-3/) - W3C - Candidate Recommendation Snapshot - [css-break-4](https://www.w3.org/TR/css-break-4/) - W3C - First Public Working Draft - [css-cascade-3](https://www.w3.org/TR/css-cascade-3/) - W3C - Recommendation - [css-cascade-4](https://www.w3.org/TR/css-cascade-4/) - W3C - Candidate Recommendation Snapshot - [css-cascade-5](https://www.w3.org/TR/css-cascade-5/) - W3C - Candidate Recommendation Snapshot - [css-cascade-6](https://www.w3.org/TR/css-cascade-6/) - W3C - Working Draft - [css-color-3](https://www.w3.org/TR/css-color-3/) - W3C - Recommendation - [css-color-4](https://www.w3.org/TR/css-color-4/) - W3C - Candidate Recommendation Draft - [css-color-5](https://www.w3.org/TR/css-color-5/) - W3C - Working Draft - [css-color-adjust-1](https://www.w3.org/TR/css-color-adjust-1/) - W3C - Candidate Recommendation Draft - [css-conditional-3](https://www.w3.org/TR/css-conditional-3/) - W3C - Candidate Recommendation Snapshot - [css-conditional-4](https://www.w3.org/TR/css-conditional-4/) - W3C - Candidate Recommendation Snapshot - [css-conditional-5](https://www.w3.org/TR/css-conditional-5/) - W3C - First Public Working Draft - [css-contain-1](https://www.w3.org/TR/css-contain-1/) - W3C - Recommendation - [css-contain-2](https://www.w3.org/TR/css-contain-2/) - W3C - Working Draft - [css-contain-3](https://www.w3.org/TR/css-contain-3/) - W3C - Working Draft - [css-content-3](https://www.w3.org/TR/css-content-3/) - W3C - Working Draft - [css-counter-styles-3](https://www.w3.org/TR/css-counter-styles-3/) - W3C - Candidate Recommendation Snapshot - [css-display-3](https://www.w3.org/TR/css-display-3/) - W3C - Candidate Recommendation Snapshot - [css-easing-1](https://www.w3.org/TR/css-easing-1/) - W3C - Candidate Recommendation Draft - [css-flexbox-1](https://www.w3.org/TR/css-flexbox-1/) - W3C - Candidate Recommendation Snapshot - [css-font-loading-3](https://www.w3.org/TR/css-font-loading-3/) - W3C - Working Draft - [css-fonts-4](https://www.w3.org/TR/css-fonts-4/) - W3C - Working Draft - [css-fonts-5](https://www.w3.org/TR/css-fonts-5/) - W3C - Working Draft - [css-gcpm-3](https://www.w3.org/TR/css-gcpm-3/) - W3C - Working Draft - [css-grid-1](https://www.w3.org/TR/css-grid-1/) - W3C - Candidate Recommendation Draft - [css-grid-2](https://www.w3.org/TR/css-grid-2/) - W3C - Candidate Recommendation Draft - [css-highlight-api-1](https://www.w3.org/TR/css-highlight-api-1/) - W3C - Working Draft - [css-images-3](https://www.w3.org/TR/css-images-3/) - W3C - Candidate Recommendation Draft - [css-images-4](https://www.w3.org/TR/css-images-4/) - W3C - Working Draft - [css-inline-3](https://www.w3.org/TR/css-inline-3/) - W3C - Working Draft - [css-layout-api-1](https://www.w3.org/TR/css-layout-api-1/) - W3C - First Public Working Draft - [css-line-grid-1](https://www.w3.org/TR/css-line-grid-1/) - W3C - Working Draft - [css-lists-3](https://www.w3.org/TR/css-lists-3/) - W3C - Working Draft - [css-logical-1](https://www.w3.org/TR/css-logical-1/) - W3C - Working Draft - [css-masking-1](https://www.w3.org/TR/css-masking-1/) - W3C - Candidate Recommendation Draft - [css-multicol-1](https://www.w3.org/TR/css-multicol-1/) - W3C - Candidate Recommendation Snapshot - [css-namespaces-3](https://www.w3.org/TR/css-namespaces-3/) - W3C - Recommendation - [css-nav-1](https://www.w3.org/TR/css-nav-1/) - W3C - Working Draft - [css-nesting-1](https://www.w3.org/TR/css-nesting-1/) - W3C - Working Draft - [css-overflow-3](https://www.w3.org/TR/css-overflow-3/) - W3C - Working Draft - [css-overflow-4](https://www.w3.org/TR/css-overflow-4/) - W3C - Working Draft - [css-overscroll-1](https://www.w3.org/TR/css-overscroll-1/) - W3C - First Public Working Draft - [css-page-3](https://www.w3.org/TR/css-page-3/) - W3C - Working Draft - [css-page-floats-3](https://www.w3.org/TR/css-page-floats-3/) - W3C - First Public Working Draft - [css-paint-api-1](https://www.w3.org/TR/css-paint-api-1/) - W3C - Candidate Recommendation Draft - [css-position-3](https://www.w3.org/TR/css-position-3/) - W3C - Working Draft - [css-properties-values-api-1](https://www.w3.org/TR/css-properties-values-api-1/) - W3C - Working Draft - [css-pseudo-4](https://www.w3.org/TR/css-pseudo-4/) - W3C - Working Draft - [css-regions-1](https://www.w3.org/TR/css-regions-1/) - W3C - Working Draft - [css-rhythm-1](https://www.w3.org/TR/css-rhythm-1/) - W3C - First Public Working Draft - [css-round-display-1](https://www.w3.org/TR/css-round-display-1/) - W3C - Working Draft - [css-ruby-1](https://www.w3.org/TR/css-ruby-1/) - W3C - Working Draft - [css-scoping-1](https://www.w3.org/TR/css-scoping-1/) - W3C - First Public Working Draft - [css-scroll-anchoring-1](https://www.w3.org/TR/css-scroll-anchoring-1/) - W3C - Working Draft - [css-scroll-snap-1](https://www.w3.org/TR/css-scroll-snap-1/) - W3C - Candidate Recommendation Snapshot - [css-scrollbars-1](https://www.w3.org/TR/css-scrollbars-1/) - W3C - Candidate Recommendation Snapshot - [css-shadow-parts-1](https://www.w3.org/TR/css-shadow-parts-1/) - W3C - First Public Working Draft - [css-shapes-1](https://www.w3.org/TR/css-shapes-1/) - W3C - Candidate Recommendation Draft - [css-sizing-3](https://www.w3.org/TR/css-sizing-3/) - W3C - Working Draft - [css-sizing-4](https://www.w3.org/TR/css-sizing-4/) - W3C - Working Draft - [css-speech-1](https://www.w3.org/TR/css-speech-1/) - W3C - Candidate Recommendation Draft - [css-style-attr](https://www.w3.org/TR/css-style-attr/) - W3C - Recommendation - [css-syntax-3](https://www.w3.org/TR/css-syntax-3/) - W3C - Candidate Recommendation Draft - [css-tables-3](https://www.w3.org/TR/css-tables-3/) - W3C - Working Draft - [css-text-3](https://www.w3.org/TR/css-text-3/) - W3C - Candidate Recommendation Draft - [css-text-4](https://www.w3.org/TR/css-text-4/) - W3C - Working Draft - [css-text-decor-3](https://www.w3.org/TR/css-text-decor-3/) - W3C - Candidate Recommendation Draft - [css-text-decor-4](https://www.w3.org/TR/css-text-decor-4/) - W3C - Working Draft - [css-transforms-1](https://www.w3.org/TR/css-transforms-1/) - W3C - Candidate Recommendation Snapshot - [css-transforms-2](https://www.w3.org/TR/css-transforms-2/) - W3C - Working Draft - [css-transitions-1](https://www.w3.org/TR/css-transitions-1/) - W3C - Working Draft - [css-transitions-2](https://www.w3.org/TR/css-transitions-2/) - W3C - First Public Working Draft - [css-typed-om-1](https://www.w3.org/TR/css-typed-om-1/) - W3C - Working Draft - [css-ui-3](https://www.w3.org/TR/css-ui-3/) - W3C - Recommendation - [css-ui-4](https://www.w3.org/TR/css-ui-4/) - W3C - Working Draft - [css-values-3](https://www.w3.org/TR/css-values-3/) - W3C - Candidate Recommendation Snapshot - [css-values-4](https://www.w3.org/TR/css-values-4/) - W3C - Working Draft - [css-variables-1](https://www.w3.org/TR/css-variables-1/) - W3C - Candidate Recommendation Snapshot - [css-view-transitions-1](https://www.w3.org/TR/css-view-transitions-1/) - W3C - Candidate Recommendation Snapshot - [css-viewport-1](https://www.w3.org/TR/css-viewport-1/) - W3C - First Public Working Draft - [css-will-change-1](https://www.w3.org/TR/css-will-change-1/) - W3C - Candidate Recommendation Draft - [css-writing-modes-3](https://www.w3.org/TR/css-writing-modes-3/) - W3C - Recommendation - [css-writing-modes-4](https://www.w3.org/TR/css-writing-modes-4/) - W3C - Candidate Recommendation Snapshot - [CSS2](https://www.w3.org/TR/CSS21/) - W3C - Recommendation - [CSS22](https://www.w3.org/TR/CSS22/) - W3C - First Public Working Draft - [css3-exclusions](https://www.w3.org/TR/css3-exclusions/) - W3C - Working Draft - [cssom-1](https://www.w3.org/TR/cssom-1/) - W3C - Working Draft - [cssom-view-1](https://www.w3.org/TR/cssom-view-1/) - W3C - Working Draft - [device-memory-1](https://www.w3.org/TR/device-memory-1/) - W3C - Working Draft - [device-posture](https://www.w3.org/TR/device-posture/) - W3C - Working Draft - [dom](https://dom.spec.whatwg.org/) - WHATWG - Living Standard - [DOM-Parsing](https://www.w3.org/TR/DOM-Parsing/) - W3C - Working Draft - [dpub-aam-1.1](https://www.w3.org/TR/dpub-aam-1.1/) - W3C - Working Draft - [dpub-aria-1.1](https://www.w3.org/TR/dpub-aria-1.1/) - W3C - Working Draft - [ecma-402](https://tc39.es/ecma402/) - Ecma International - Editor's Draft - [ecmascript](https://tc39.es/ecma262/multipage/) - Ecma International - Editor's Draft - [edit-context](https://www.w3.org/TR/edit-context/) - W3C - First Public Working Draft - [encoding](https://encoding.spec.whatwg.org/) - WHATWG - Living Standard - [encrypted-media](https://www.w3.org/TR/encrypted-media/) - W3C - Recommendation - [epub-33](https://www.w3.org/TR/epub-33/) - W3C - Recommendation - [epub-rs-33](https://www.w3.org/TR/epub-rs-33/) - W3C - Recommendation - [event-timing](https://www.w3.org/TR/event-timing/) - W3C - Working Draft - [EXT_blend_minmax](https://registry.khronos.org/webgl/extensions/EXT_blend_minmax/) - Khronos Group - Editor's Draft - [EXT_color_buffer_float](https://registry.khronos.org/webgl/extensions/EXT_color_buffer_float/) - Khronos Group - Editor's Draft - [EXT_color_buffer_half_float](https://registry.khronos.org/webgl/extensions/EXT_color_buffer_half_float/) - Khronos Group - Editor's Draft - [EXT_disjoint_timer_query](https://registry.khronos.org/webgl/extensions/EXT_disjoint_timer_query/) - Khronos Group - Editor's Draft - [EXT_disjoint_timer_query_webgl2](https://registry.khronos.org/webgl/extensions/EXT_disjoint_timer_query_webgl2/) - Khronos Group - Editor's Draft - [EXT_float_blend](https://registry.khronos.org/webgl/extensions/EXT_float_blend/) - Khronos Group - Editor's Draft - [EXT_frag_depth](https://registry.khronos.org/webgl/extensions/EXT_frag_depth/) - Khronos Group - Editor's Draft - [EXT_shader_texture_lod](https://registry.khronos.org/webgl/extensions/EXT_shader_texture_lod/) - Khronos Group - Editor's Draft - [EXT_sRGB](https://registry.khronos.org/webgl/extensions/EXT_sRGB/) - Khronos Group - Editor's Draft - [EXT_texture_compression_bptc](https://registry.khronos.org/webgl/extensions/EXT_texture_compression_bptc/) - Khronos Group - Editor's Draft - [EXT_texture_compression_rgtc](https://registry.khronos.org/webgl/extensions/EXT_texture_compression_rgtc/) - Khronos Group - Editor's Draft - [EXT_texture_filter_anisotropic](https://registry.khronos.org/webgl/extensions/EXT_texture_filter_anisotropic/) - Khronos Group - Editor's Draft - [EXT_texture_norm16](https://registry.khronos.org/webgl/extensions/EXT_texture_norm16/) - Khronos Group - Editor's Draft - [fetch](https://fetch.spec.whatwg.org/) - WHATWG - Living Standard - [fetch-metadata](https://www.w3.org/TR/fetch-metadata/) - W3C - Working Draft - [fido-v2.1](https://fidoalliance.org/specs/fido-v2.1-ps-20210615/fido-client-to-authenticator-protocol-v2.1-ps-errata-20220621.html) - FIDO Alliance - Editor's Draft - [FileAPI](https://www.w3.org/TR/FileAPI/) - W3C - Working Draft - [fill-stroke-3](https://www.w3.org/TR/fill-stroke-3/) - W3C - First Public Working Draft - [filter-effects-1](https://www.w3.org/TR/filter-effects-1/) - W3C - Working Draft - [fs](https://fs.spec.whatwg.org/) - WHATWG - Living Standard - [fullscreen](https://fullscreen.spec.whatwg.org/) - WHATWG - Living Standard - [gamepad](https://www.w3.org/TR/gamepad/) - W3C - Working Draft - [generic-sensor](https://www.w3.org/TR/generic-sensor/) - W3C - Candidate Recommendation Draft - [geolocation](https://www.w3.org/TR/geolocation/) - W3C - Recommendation - [geolocation-sensor](https://www.w3.org/TR/geolocation-sensor/) - W3C - Working Draft - [geometry-1](https://www.w3.org/TR/geometry-1/) - W3C - Candidate Recommendation Snapshot - [graphics-aam-1.0](https://www.w3.org/TR/graphics-aam-1.0/) - W3C - Recommendation - [graphics-aria-1.0](https://www.w3.org/TR/graphics-aria-1.0/) - W3C - Recommendation - [gyroscope](https://www.w3.org/TR/gyroscope/) - W3C - Candidate Recommendation Draft - [hr-time-3](https://www.w3.org/TR/hr-time-3/) - W3C - Working Draft - [html](https://html.spec.whatwg.org/multipage/) - WHATWG - Living Standard - [html-aam-1.0](https://www.w3.org/TR/html-aam-1.0/) - W3C - Working Draft - [html-aria](https://www.w3.org/TR/html-aria/) - W3C - Recommendation - [html-media-capture](https://www.w3.org/TR/html-media-capture/) - W3C - Recommendation - [IFT](https://www.w3.org/TR/IFT/) - W3C - Working Draft - [image-capture](https://www.w3.org/TR/image-capture/) - W3C - Working Draft - [image-resource](https://www.w3.org/TR/image-resource/) - W3C - Working Draft - [IndexedDB-3](https://www.w3.org/TR/IndexedDB-3/) - W3C - Working Draft - [infra](https://infra.spec.whatwg.org/) - WHATWG - Living Standard - [input-events-2](https://www.w3.org/TR/input-events-2/) - W3C - Working Draft - [intersection-observer](https://www.w3.org/TR/intersection-observer/) - W3C - Working Draft - [json-ld11](https://www.w3.org/TR/json-ld11/) - W3C - Recommendation - [json-ld11-api](https://www.w3.org/TR/json-ld11-api/) - W3C - Recommendation - [json-ld11-framing](https://www.w3.org/TR/json-ld11-framing/) - W3C - Recommendation - [KHR_parallel_shader_compile](https://registry.khronos.org/webgl/extensions/KHR_parallel_shader_compile/) - Khronos Group - Editor's Draft - [largest-contentful-paint](https://www.w3.org/TR/largest-contentful-paint/) - W3C - Working Draft - [longtasks-1](https://www.w3.org/TR/longtasks-1/) - W3C - Working Draft - [magnetometer](https://www.w3.org/TR/magnetometer/) - W3C - Working Draft - [mathml-core](https://www.w3.org/TR/mathml-core/) - W3C - Working Draft - [mathml4](https://www.w3.org/TR/mathml4/) - W3C - First Public Working Draft - [media-capabilities](https://www.w3.org/TR/media-capabilities/) - W3C - Working Draft - [media-source-2](https://www.w3.org/TR/media-source-2/) - W3C - Working Draft - [mediacapture-fromelement](https://www.w3.org/TR/mediacapture-fromelement/) - W3C - Working Draft - [mediacapture-region](https://www.w3.org/TR/mediacapture-region/) - W3C - Working Draft - [mediacapture-streams](https://www.w3.org/TR/mediacapture-streams/) - W3C - Candidate Recommendation Draft - [mediacapture-transform](https://www.w3.org/TR/mediacapture-transform/) - W3C - Working Draft - [mediacapture-viewport](https://www.w3.org/TR/mediacapture-viewport/) - W3C - Working Draft - [mediaqueries-3](https://www.w3.org/TR/mediaqueries-3/) - W3C - Recommendation - [mediaqueries-4](https://www.w3.org/TR/mediaqueries-4/) - W3C - Candidate Recommendation Draft - [mediaqueries-5](https://www.w3.org/TR/mediaqueries-5/) - W3C - Working Draft - [mediasession](https://www.w3.org/TR/mediasession/) - W3C - Working Draft - [mediastream-recording](https://www.w3.org/TR/mediastream-recording/) - W3C - Working Draft - [mimesniff](https://mimesniff.spec.whatwg.org/) - WHATWG - Living Standard - [miniapp-lifecycle](https://www.w3.org/TR/miniapp-lifecycle/) - W3C - Working Draft - [miniapp-manifest](https://www.w3.org/TR/miniapp-manifest/) - W3C - Working Draft - [miniapp-packaging](https://www.w3.org/TR/miniapp-packaging/) - W3C - Working Draft - [mixed-content](https://www.w3.org/TR/mixed-content/) - W3C - Candidate Recommendation Draft - [motion-1](https://www.w3.org/TR/motion-1/) - W3C - Working Draft - [mst-content-hint](https://www.w3.org/TR/mst-content-hint/) - W3C - Working Draft - [n-quads](https://www.w3.org/TR/n-quads/) - W3C - Recommendation - [navigation-timing-2](https://www.w3.org/TR/navigation-timing-2/) - W3C - Working Draft - [network-error-logging](https://www.w3.org/TR/network-error-logging/) - W3C - Working Draft - [notifications](https://notifications.spec.whatwg.org/) - WHATWG - Living Standard - [OES_draw_buffers_indexed](https://registry.khronos.org/webgl/extensions/OES_draw_buffers_indexed/) - Khronos Group - Editor's Draft - [OES_element_index_uint](https://registry.khronos.org/webgl/extensions/OES_element_index_uint/) - Khronos Group - Editor's Draft - [OES_fbo_render_mipmap](https://registry.khronos.org/webgl/extensions/OES_fbo_render_mipmap/) - Khronos Group - Editor's Draft - [OES_standard_derivatives](https://registry.khronos.org/webgl/extensions/OES_standard_derivatives/) - Khronos Group - Editor's Draft - [OES_texture_float](https://registry.khronos.org/webgl/extensions/OES_texture_float/) - Khronos Group - Editor's Draft - [OES_texture_float_linear](https://registry.khronos.org/webgl/extensions/OES_texture_float_linear/) - Khronos Group - Editor's Draft - [OES_texture_half_float](https://registry.khronos.org/webgl/extensions/OES_texture_half_float/) - Khronos Group - Editor's Draft - [OES_texture_half_float_linear](https://registry.khronos.org/webgl/extensions/OES_texture_half_float_linear/) - Khronos Group - Editor's Draft - [OES_vertex_array_object](https://registry.khronos.org/webgl/extensions/OES_vertex_array_object/) - Khronos Group - Editor's Draft - [openscreenprotocol](https://www.w3.org/TR/openscreenprotocol/) - W3C - Working Draft - [orientation-event](https://www.w3.org/TR/orientation-event/) - W3C - Working Draft - [orientation-sensor](https://www.w3.org/TR/orientation-sensor/) - W3C - Working Draft - [OVR_multiview2](https://registry.khronos.org/webgl/extensions/OVR_multiview2/) - Khronos Group - Editor's Draft - [paint-timing](https://www.w3.org/TR/paint-timing/) - W3C - Working Draft - [payment-handler](https://www.w3.org/TR/payment-handler/) - W3C - Working Draft - [payment-method-id](https://www.w3.org/TR/payment-method-id/) - W3C - Recommendation - [payment-method-manifest](https://www.w3.org/TR/payment-method-manifest/) - W3C - First Public Working Draft - [payment-request-1.1](https://www.w3.org/TR/payment-request-1.1/) - W3C - Working Draft - [performance-timeline](https://www.w3.org/TR/performance-timeline/) - W3C - Candidate Recommendation Snapshot - [permissions](https://www.w3.org/TR/permissions/) - W3C - Working Draft - [permissions-policy-1](https://www.w3.org/TR/permissions-policy-1/) - W3C - Working Draft - [picture-in-picture](https://www.w3.org/TR/picture-in-picture/) - W3C - Working Draft - [pointerevents3](https://www.w3.org/TR/pointerevents3/) - W3C - Working Draft - [pointerlock-2](https://www.w3.org/TR/pointerlock-2/) - W3C - Working Draft - [presentation-api](https://www.w3.org/TR/presentation-api/) - W3C - Candidate Recommendation Draft - [proximity](https://www.w3.org/TR/proximity/) - W3C - Working Draft - [pub-manifest](https://www.w3.org/TR/pub-manifest/) - W3C - Recommendation - [push-api](https://www.w3.org/TR/push-api/) - W3C - Working Draft - [quirks](https://quirks.spec.whatwg.org/) - WHATWG - Living Standard - [rdf-canon](https://www.w3.org/TR/rdf-canon/) - W3C - Candidate Recommendation Draft - [rdf12-concepts](https://www.w3.org/TR/rdf12-concepts/) - W3C - Working Draft - [rdf12-n-quads](https://www.w3.org/TR/rdf12-n-quads/) - W3C - Working Draft - [rdf12-n-triples](https://www.w3.org/TR/rdf12-n-triples/) - W3C - Working Draft - [rdf12-schema](https://www.w3.org/TR/rdf12-schema/) - W3C - Working Draft - [rdf12-semantics](https://www.w3.org/TR/rdf12-semantics/) - W3C - Working Draft - [rdf12-trig](https://www.w3.org/TR/rdf12-trig/) - W3C - Working Draft - [rdf12-turtle](https://www.w3.org/TR/rdf12-turtle/) - W3C - Working Draft - [rdf12-xml](https://www.w3.org/TR/rdf12-xml/) - W3C - Working Draft - [referrer-policy](https://www.w3.org/TR/referrer-policy/) - W3C - Candidate Recommendation Snapshot - [remote-playback](https://www.w3.org/TR/remote-playback/) - W3C - Candidate Recommendation Draft - [reporting-1](https://www.w3.org/TR/reporting-1/) - W3C - Working Draft - [requestidlecallback](https://www.w3.org/TR/requestidlecallback/) - W3C - Working Draft - [resize-observer-1](https://www.w3.org/TR/resize-observer-1/) - W3C - First Public Working Draft - [resource-timing](https://www.w3.org/TR/resource-timing/) - W3C - Candidate Recommendation Draft - [rfc2397](https://www.rfc-editor.org/rfc/rfc2397) - IETF - Proposed Standard - [rfc4120](https://www.rfc-editor.org/rfc/rfc4120) - IETF - Proposed Standard - [rfc6265](https://www.rfc-editor.org/rfc/rfc6265) - IETF - Proposed Standard - [rfc6266](https://www.rfc-editor.org/rfc/rfc6266) - IETF - Proposed Standard - [rfc6454](https://www.rfc-editor.org/rfc/rfc6454) - IETF - Proposed Standard - [rfc6797](https://www.rfc-editor.org/rfc/rfc6797) - IETF - Proposed Standard - [rfc7239](https://www.rfc-editor.org/rfc/rfc7239) - IETF - Proposed Standard - [rfc7469](https://www.rfc-editor.org/rfc/rfc7469) - IETF - Proposed Standard - [rfc7578](https://www.rfc-editor.org/rfc/rfc7578) - IETF - Proposed Standard - [rfc7616](https://www.rfc-editor.org/rfc/rfc7616) - IETF - Proposed Standard - [rfc7617](https://www.rfc-editor.org/rfc/rfc7617) - IETF - Proposed Standard - [rfc7725](https://www.rfc-editor.org/rfc/rfc7725) - IETF - Proposed Standard - [rfc7838](https://www.rfc-editor.org/rfc/rfc7838) - IETF - Proposed Standard - [rfc8246](https://www.rfc-editor.org/rfc/rfc8246) - IETF - Proposed Standard - [rfc8288](https://www.rfc-editor.org/rfc/rfc8288) - IETF - Proposed Standard - [rfc8470](https://www.rfc-editor.org/rfc/rfc8470) - IETF - Proposed Standard - [rfc9110](https://www.rfc-editor.org/rfc/rfc9110) - IETF - Internet Standard - [rfc9111](https://www.rfc-editor.org/rfc/rfc9111) - IETF - Internet Standard - [rfc9112](https://www.rfc-editor.org/rfc/rfc9112) - IETF - Internet Standard - [rfc9113](https://www.rfc-editor.org/rfc/rfc9113) - IETF - Proposed Standard - [rfc9114](https://www.rfc-editor.org/rfc/rfc9114) - IETF - Proposed Standard - [screen-capture](https://www.w3.org/TR/screen-capture/) - W3C - Working Draft - [screen-orientation](https://www.w3.org/TR/screen-orientation/) - W3C - Working Draft - [screen-wake-lock](https://www.w3.org/TR/screen-wake-lock/) - W3C - Working Draft - [scroll-animations-1](https://www.w3.org/TR/scroll-animations-1/) - W3C - Working Draft - [secure-contexts](https://www.w3.org/TR/secure-contexts/) - W3C - Candidate Recommendation Draft - [secure-payment-confirmation](https://www.w3.org/TR/secure-payment-confirmation/) - W3C - Candidate Recommendation Draft - [selection-api](https://www.w3.org/TR/selection-api/) - W3C - Working Draft - [selectors-3](https://www.w3.org/TR/selectors-3/) - W3C - Recommendation - [selectors-4](https://www.w3.org/TR/selectors-4/) - W3C - Working Draft - [server-timing](https://www.w3.org/TR/server-timing/) - W3C - Working Draft - [service-workers](https://www.w3.org/TR/service-workers/) - W3C - Candidate Recommendation Draft - [sourcemap](https://tc39.es/source-map-spec/) - Ecma International - Editor's Draft - [sparql12-entailment](https://www.w3.org/TR/sparql12-entailment/) - W3C - Working Draft - [sparql12-federated-query](https://www.w3.org/TR/sparql12-federated-query/) - W3C - Working Draft - [sparql12-graph-store-protocol](https://www.w3.org/TR/sparql12-graph-store-protocol/) - W3C - Working Draft - [sparql12-protocol](https://www.w3.org/TR/sparql12-protocol/) - W3C - Working Draft - [sparql12-query](https://www.w3.org/TR/sparql12-query/) - W3C - Working Draft - [sparql12-results-csv-tsv](https://www.w3.org/TR/sparql12-results-csv-tsv/) - W3C - Working Draft - [sparql12-results-json](https://www.w3.org/TR/sparql12-results-json/) - W3C - Working Draft - [sparql12-results-xml](https://www.w3.org/TR/sparql12-results-xml/) - W3C - Working Draft - [sparql12-service-description](https://www.w3.org/TR/sparql12-service-description/) - W3C - Working Draft - [sparql12-update](https://www.w3.org/TR/sparql12-update/) - W3C - Working Draft - [SRI](https://www.w3.org/TR/SRI/) - W3C - Recommendation - [storage](https://storage.spec.whatwg.org/) - WHATWG - Living Standard - [streams](https://streams.spec.whatwg.org/) - WHATWG - Living Standard - [svg-aam-1.0](https://www.w3.org/TR/svg-aam-1.0/) - W3C - Working Draft - [svg-integration](https://www.w3.org/TR/svg-integration/) - W3C - First Public Working Draft - [svg-strokes](https://www.w3.org/TR/svg-strokes/) - W3C - First Public Working Draft - [SVG11](https://www.w3.org/TR/SVG11/) - W3C - Recommendation - [SVG2](https://www.w3.org/TR/SVG2/) - W3C - Candidate Recommendation Snapshot - [tc39-array-from-async](https://tc39.es/proposal-array-from-async/) - Ecma International - Editor's Draft - [tc39-array-grouping](https://tc39.es/proposal-array-grouping/) - Ecma International - Editor's Draft - [tc39-arraybuffer-transfer](https://tc39.es/proposal-arraybuffer-transfer/) - Ecma International - Editor's Draft - [tc39-async-explicit-resource-management](https://tc39.es/proposal-async-explicit-resource-management/) - Ecma International - Editor's Draft - [tc39-decorators](https://tc39.es/proposal-decorators/) - Ecma International - Editor's Draft - [tc39-explicit-resource-management](https://tc39.es/proposal-explicit-resource-management/) - Ecma International - Editor's Draft - [tc39-float16array](https://tc39.es/proposal-float16array/) - Ecma International - Editor's Draft - [tc39-import-attributes](https://tc39.es/proposal-import-attributes/) - Ecma International - Editor's Draft - [tc39-intl-duration-format](https://tc39.es/proposal-intl-duration-format/) - Ecma International - Editor's Draft - [tc39-intl-locale-info](https://tc39.es/proposal-intl-locale-info/) - Ecma International - Editor's Draft - [tc39-iterator-helpers](https://tc39.es/proposal-iterator-helpers/) - Ecma International - Editor's Draft - [tc39-json-modules](https://tc39.es/proposal-json-modules/) - Ecma International - Editor's Draft - [tc39-json-parse-with-source](https://tc39.es/proposal-json-parse-with-source/) - Ecma International - Editor's Draft - [tc39-promise-with-resolvers](https://tc39.es/proposal-promise-with-resolvers/) - Ecma International - Editor's Draft - [tc39-regexp-modifiers](https://tc39.es/proposal-regexp-modifiers/) - Ecma International - Editor's Draft - [tc39-set-methods](https://tc39.es/proposal-set-methods/) - Ecma International - Editor's Draft - [tc39-shadowrealm](https://tc39.es/proposal-shadowrealm/) - Ecma International - Editor's Draft - [tc39-source-phase-imports](https://tc39.es/proposal-source-phase-imports/) - Ecma International - Editor's Draft - [tc39-temporal](https://tc39.es/proposal-temporal/) - Ecma International - Editor's Draft - [testutils](https://testutils.spec.whatwg.org/) - WHATWG - Living Standard - [timing-entrytypes-registry](https://www.w3.org/TR/timing-entrytypes-registry/) - W3C - First Public Working Draft - [touch-events](https://www.w3.org/TR/touch-events/) - W3C - Recommendation - [trusted-types](https://www.w3.org/TR/trusted-types/) - W3C - First Public Working Draft - [uievents](https://www.w3.org/TR/uievents/) - W3C - Working Draft - [uievents-code](https://www.w3.org/TR/uievents-code/) - W3C - Candidate Recommendation Snapshot - [uievents-key](https://www.w3.org/TR/uievents-key/) - W3C - Candidate Recommendation Snapshot - [upgrade-insecure-requests](https://www.w3.org/TR/upgrade-insecure-requests/) - W3C - Candidate Recommendation Snapshot - [url](https://url.spec.whatwg.org/) - WHATWG - Living Standard - [urlpattern](https://urlpattern.spec.whatwg.org/) - WHATWG - Living Standard - [user-timing](https://www.w3.org/TR/user-timing/) - W3C - Candidate Recommendation Snapshot - [vibration](https://www.w3.org/TR/vibration/) - W3C - Recommendation - [virtual-keyboard](https://www.w3.org/TR/virtual-keyboard/) - W3C - Working Draft - [wai-aria-1.2](https://www.w3.org/TR/wai-aria-1.2/) - W3C - Recommendation - [wai-aria-1.3](https://www.w3.org/TR/wai-aria-1.3/) - W3C - First Public Working Draft - [wasm-core-1](https://www.w3.org/TR/wasm-core-1/) - W3C - Recommendation - [wasm-core-1-fork-gc](https://webassembly.github.io/gc/core/bikeshed/) - W3C - Editor's Draft - [wasm-js-api-2](https://www.w3.org/TR/wasm-js-api-2/) - W3C - First Public Working Draft - [wasm-js-api-2-fork-exception-handling](https://webassembly.github.io/exception-handling/js-api/) - W3C - Editor's Draft - [wasm-web-api-2](https://www.w3.org/TR/wasm-web-api-2/) - W3C - First Public Working Draft - [web-animations-1](https://www.w3.org/TR/web-animations-1/) - W3C - Working Draft - [web-animations-2](https://www.w3.org/TR/web-animations-2/) - W3C - First Public Working Draft - [web-locks](https://www.w3.org/TR/web-locks/) - W3C - First Public Working Draft - [web-share](https://www.w3.org/TR/web-share/) - W3C - Recommendation - [webaudio](https://www.w3.org/TR/webaudio/) - W3C - Recommendation - [webauthn-3](https://www.w3.org/TR/webauthn-3/) - W3C - Working Draft - [webcodecs](https://www.w3.org/TR/webcodecs/) - W3C - Working Draft - [webcodecs-codec-registry](https://www.w3.org/TR/webcodecs-codec-registry/) - W3C - Draft Registry - [WebCryptoAPI](https://www.w3.org/TR/WebCryptoAPI/) - W3C - Recommendation - [webdriver2](https://www.w3.org/TR/webdriver2/) - W3C - Working Draft - [WEBGL_blend_equation_advanced_coherent](https://registry.khronos.org/webgl/extensions/WEBGL_blend_equation_advanced_coherent/) - Khronos Group - Editor's Draft - [WEBGL_clip_cull_distance](https://registry.khronos.org/webgl/extensions/WEBGL_clip_cull_distance/) - Khronos Group - Editor's Draft - [WEBGL_color_buffer_float](https://registry.khronos.org/webgl/extensions/WEBGL_color_buffer_float/) - Khronos Group - Editor's Draft - [WEBGL_compressed_texture_astc](https://registry.khronos.org/webgl/extensions/WEBGL_compressed_texture_astc/) - Khronos Group - Editor's Draft - [WEBGL_compressed_texture_etc](https://registry.khronos.org/webgl/extensions/WEBGL_compressed_texture_etc/) - Khronos Group - Editor's Draft - [WEBGL_compressed_texture_etc1](https://registry.khronos.org/webgl/extensions/WEBGL_compressed_texture_etc1/) - Khronos Group - Editor's Draft - [WEBGL_compressed_texture_pvrtc](https://registry.khronos.org/webgl/extensions/WEBGL_compressed_texture_pvrtc/) - Khronos Group - Editor's Draft - [WEBGL_compressed_texture_s3tc](https://registry.khronos.org/webgl/extensions/WEBGL_compressed_texture_s3tc/) - Khronos Group - Editor's Draft - [WEBGL_compressed_texture_s3tc_srgb](https://registry.khronos.org/webgl/extensions/WEBGL_compressed_texture_s3tc_srgb/) - Khronos Group - Editor's Draft - [WEBGL_debug_renderer_info](https://registry.khronos.org/webgl/extensions/WEBGL_debug_renderer_info/) - Khronos Group - Editor's Draft - [WEBGL_debug_shaders](https://registry.khronos.org/webgl/extensions/WEBGL_debug_shaders/) - Khronos Group - Editor's Draft - [WEBGL_depth_texture](https://registry.khronos.org/webgl/extensions/WEBGL_depth_texture/) - Khronos Group - Editor's Draft - [WEBGL_draw_buffers](https://registry.khronos.org/webgl/extensions/WEBGL_draw_buffers/) - Khronos Group - Editor's Draft - [WEBGL_draw_instanced_base_vertex_base_instance](https://registry.khronos.org/webgl/extensions/WEBGL_draw_instanced_base_vertex_base_instance/) - Khronos Group - Editor's Draft - [WEBGL_lose_context](https://registry.khronos.org/webgl/extensions/WEBGL_lose_context/) - Khronos Group - Editor's Draft - [WEBGL_multi_draw](https://registry.khronos.org/webgl/extensions/WEBGL_multi_draw/) - Khronos Group - Editor's Draft - [WEBGL_multi_draw_instanced_base_vertex_base_instance](https://registry.khronos.org/webgl/extensions/WEBGL_multi_draw_instanced_base_vertex_base_instance/) - Khronos Group - Editor's Draft - [WEBGL_provoking_vertex](https://registry.khronos.org/webgl/extensions/WEBGL_provoking_vertex/) - Khronos Group - Editor's Draft - [webgl1](https://registry.khronos.org/webgl/specs/latest/1.0/) - Khronos Group - Editor's Draft - [webgl2](https://registry.khronos.org/webgl/specs/latest/2.0/) - Khronos Group - Editor's Draft - [webgpu](https://www.w3.org/TR/webgpu/) - W3C - Working Draft - [webidl](https://webidl.spec.whatwg.org/) - WHATWG - Living Standard - [webmidi](https://www.w3.org/TR/webmidi/) - W3C - Working Draft - [webnn](https://www.w3.org/TR/webnn/) - W3C - Candidate Recommendation Draft - [webrtc](https://www.w3.org/TR/webrtc/) - W3C - Recommendation - [webrtc-encoded-transform](https://www.w3.org/TR/webrtc-encoded-transform/) - W3C - Working Draft - [webrtc-identity](https://www.w3.org/TR/webrtc-identity/) - W3C - Candidate Recommendation Snapshot - [webrtc-priority](https://www.w3.org/TR/webrtc-priority/) - W3C - Candidate Recommendation Snapshot - [webrtc-stats](https://www.w3.org/TR/webrtc-stats/) - W3C - Candidate Recommendation Draft - [webrtc-svc](https://www.w3.org/TR/webrtc-svc/) - W3C - Working Draft - [websockets](https://websockets.spec.whatwg.org/) - WHATWG - Living Standard - [webtransport](https://www.w3.org/TR/webtransport/) - W3C - Working Draft - [webvtt1](https://www.w3.org/TR/webvtt1/) - W3C - Candidate Recommendation Snapshot - [webxr](https://www.w3.org/TR/webxr/) - W3C - Candidate Recommendation Draft - [webxr-ar-module-1](https://www.w3.org/TR/webxr-ar-module-1/) - W3C - Candidate Recommendation Draft - [webxr-depth-sensing-1](https://www.w3.org/TR/webxr-depth-sensing-1/) - W3C - Working Draft - [webxr-dom-overlays-1](https://www.w3.org/TR/webxr-dom-overlays-1/) - W3C - Working Draft - [webxr-gamepads-module-1](https://www.w3.org/TR/webxr-gamepads-module-1/) - W3C - Working Draft - [webxr-hand-input-1](https://www.w3.org/TR/webxr-hand-input-1/) - W3C - Working Draft - [webxr-hit-test-1](https://www.w3.org/TR/webxr-hit-test-1/) - W3C - Working Draft - [webxr-lighting-estimation-1](https://www.w3.org/TR/webxr-lighting-estimation-1/) - W3C - Working Draft - [webxrlayers-1](https://www.w3.org/TR/webxrlayers-1/) - W3C - Working Draft - [WGSL](https://www.w3.org/TR/WGSL/) - W3C - Working Draft - [window-management](https://www.w3.org/TR/window-management/) - W3C - Working Draft - [WOFF](https://www.w3.org/TR/WOFF/) - W3C - Recommendation - [WOFF2](https://www.w3.org/TR/WOFF2/) - W3C - Recommendation - [xhr](https://xhr.spec.whatwg.org/) - WHATWG - Living Standard
List of 166 non standard specs - [anchors](https://immersive-web.github.io/anchors/) - W3C - Editor's Draft - [anonymous-iframe](https://wicg.github.io/anonymous-iframe/) - W3C - Draft Community Group Report - [attribution-reporting-api](https://wicg.github.io/attribution-reporting-api/) - W3C - Draft Community Group Report - [audio-session](https://w3c.github.io/audio-session/) - W3C - Editor's Draft - [background-fetch](https://wicg.github.io/background-fetch/) - W3C - Draft Community Group Report - [background-sync](https://wicg.github.io/background-sync/spec/) - W3C - Draft Community Group Report - [capability-delegation](https://wicg.github.io/capability-delegation/spec.html) - W3C - Draft Community Group Report - [captured-mouse-events](https://screen-share.github.io/captured-mouse-events/) - W3C - Draft Community Group Report - [client-hint-reliability](https://datatracker.ietf.org/doc/html/draft-davidben-http-client-hint-reliability) - IETF - Editor's Draft - [client-hints-infrastructure](https://wicg.github.io/client-hints-infrastructure/) - W3C - Draft Community Group Report - [compositing-2](https://drafts.fxtf.org/compositing-2/) - W3C - Editor's Draft - [compression](https://wicg.github.io/compression/) - W3C - Draft Community Group Report - [content-index](https://wicg.github.io/content-index/spec/) - W3C - Editor's Draft - [contentEditable](https://w3c.github.io/contentEditable/) - W3C - Editor's Draft - [cookie-store](https://wicg.github.io/cookie-store/) - W3C - Draft Community Group Report - [crash-reporting](https://wicg.github.io/crash-reporting/) - W3C - Draft Community Group Report - [csp-next](https://wicg.github.io/csp-next/scripting-policy.html) - W3C - Editor's Draft - [css-2022](https://www.w3.org/TR/css-2022/) - W3C - Draft Note - [css-2023](https://www.w3.org/TR/css-2023/) - W3C - Note - [css-backgrounds-4](https://drafts.csswg.org/css-backgrounds-4/) - W3C - Editor's Draft - [css-borders-4](https://drafts.csswg.org/css-borders-4/) - W3C - Editor's Draft - [css-color-6](https://drafts.csswg.org/css-color-6/) - W3C - Editor's Draft - [css-color-hdr](https://drafts.csswg.org/css-color-hdr/) - W3C - Editor's Draft - [css-display-4](https://drafts.csswg.org/css-display-4/) - W3C - Editor's Draft - [css-easing-2](https://drafts.csswg.org/css-easing-2/) - W3C - Editor's Draft - [css-env-1](https://drafts.csswg.org/css-env-1/) - W3C - Editor's Draft - [css-extensions-1](https://drafts.csswg.org/css-extensions-1/) - W3C - Editor's Draft - [css-gcpm-4](https://drafts.csswg.org/css-gcpm-4/) - W3C - Editor's Draft - [css-grid-3](https://drafts.csswg.org/css-grid-3/) - W3C - Editor's Draft - [css-images-5](https://drafts.csswg.org/css-images-5/) - W3C - Editor's Draft - [css-link-params-1](https://drafts.csswg.org/css-link-params-1/) - W3C - Editor's Draft - [css-multicol-2](https://drafts.csswg.org/css-multicol-2/) - W3C - Editor's Draft - [css-parser-api](https://wicg.github.io/css-parser-api/) - W3C - Draft Community Group Report - [css-position-4](https://drafts.csswg.org/css-position-4/) - W3C - Editor's Draft - [css-scroll-snap-2](https://drafts.csswg.org/css-scroll-snap-2/) - W3C - Editor's Draft - [css-shapes-2](https://drafts.csswg.org/css-shapes-2/) - W3C - Editor's Draft - [css-size-adjust-1](https://drafts.csswg.org/css-size-adjust-1/) - W3C - Editor's Draft - [css-values-5](https://drafts.csswg.org/css-values-5/) - W3C - Editor's Draft - [css-variables-2](https://drafts.csswg.org/css-variables-2/) - W3C - Editor's Draft - [css-view-transitions-2](https://drafts.csswg.org/css-view-transitions-2/) - W3C - Editor's Draft - [custom-state-pseudo-class](https://wicg.github.io/custom-state-pseudo-class/) - W3C - Draft Community Group Report - [datacue](https://wicg.github.io/datacue/) - W3C - Draft Community Group Report - [deprecation-reporting](https://wicg.github.io/deprecation-reporting/) - W3C - Draft Community Group Report - [digest-headers](https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-digest-headers) - IETF - Editor's Draft - [digital-goods](https://wicg.github.io/digital-goods/) - W3C - Draft Community Group Report - [document-picture-in-picture](https://wicg.github.io/document-picture-in-picture/) - W3C - Draft Community Group Report - [document-policy](https://wicg.github.io/document-policy/) - W3C - Draft Community Group Report - [element-capture](https://screen-share.github.io/element-capture/) - W3C - Draft Community Group Report - [element-timing](https://wicg.github.io/element-timing/) - W3C - Draft Community Group Report - [entries-api](https://wicg.github.io/entries-api/) - W3C - Draft Community Group Report - [eyedropper-api](https://wicg.github.io/eyedropper-api/) - W3C - Draft Community Group Report - [FedCM](https://fedidcg.github.io/FedCM/) - W3C - Draft Community Group Report - [fenced-frame](https://wicg.github.io/fenced-frame/) - W3C - Draft Community Group Report - [file-system-access](https://wicg.github.io/file-system-access/) - W3C - Draft Community Group Report - [filter-effects-2](https://drafts.fxtf.org/filter-effects-2/) - W3C - Editor's Draft - [fingerprinting-guidance](https://www.w3.org/TR/fingerprinting-guidance/) - W3C - Note - [first-party-sets](https://wicg.github.io/first-party-sets/) - W3C - Draft Community Group Report - [font-metrics-api-1](https://drafts.css-houdini.org/font-metrics-api-1/) - W3C - A Collection of Interesting Ideas - [gamepad-extensions](https://w3c.github.io/gamepad/extensions.html) - W3C - Editor's Draft - [get-installed-related-apps](https://wicg.github.io/get-installed-related-apps/spec/) - W3C - Draft Community Group Report - [i18n-glossary](https://www.w3.org/TR/i18n-glossary/) - W3C - Draft Note - [idle-detection](https://wicg.github.io/idle-detection/) - W3C - Draft Community Group Report - [ink-enhancement](https://wicg.github.io/ink-enhancement/) - W3C - Draft Community Group Report - [input-device-capabilities](https://wicg.github.io/input-device-capabilities/) - W3C - Draft Community Group Report - [intervention-reporting](https://wicg.github.io/intervention-reporting/) - W3C - Draft Community Group Report - [is-input-pending](https://wicg.github.io/is-input-pending/) - W3C - Editor's Draft - [js-self-profiling](https://wicg.github.io/js-self-profiling/) - W3C - Draft Community Group Report - [keyboard-lock](https://wicg.github.io/keyboard-lock/) - W3C - Draft Community Group Report - [keyboard-map](https://wicg.github.io/keyboard-map/) - W3C - Draft Community Group Report - [layout-instability](https://wicg.github.io/layout-instability/) - W3C - Draft Community Group Report - [local-font-access](https://wicg.github.io/local-font-access/) - W3C - Draft Community Group Report - [managed-configuration](https://wicg.github.io/WebApiDevice/managed_config/) - W3C - Draft Community Group Report - [manifest-app-info](https://www.w3.org/TR/manifest-app-info/) - W3C - Note - [manifest-incubations](https://wicg.github.io/manifest-incubations/) - W3C - Draft Community Group Report - [mathml-aam](https://w3c.github.io/mathml-aam/) - W3C - Editor's Draft - [media-feeds](https://wicg.github.io/media-feeds/) - W3C - Editor's Draft - [media-playback-quality](https://w3c.github.io/media-playback-quality/) - W3C - Editor's Draft - [mediacapture-automation](https://w3c.github.io/mediacapture-automation/) - W3C - Editor's Draft - [mediacapture-handle-actions](https://w3c.github.io/mediacapture-handle/actions/) - W3C - Editor's Draft - [model-element](https://immersive-web.github.io/model-element/) - W3C - Draft Community Group Report - [mse-byte-stream-format-isobmff](https://www.w3.org/TR/mse-byte-stream-format-isobmff/) - W3C - Note - [mse-byte-stream-format-mp2t](https://www.w3.org/TR/mse-byte-stream-format-mp2t/) - W3C - Note - [mse-byte-stream-format-mpeg-audio](https://www.w3.org/TR/mse-byte-stream-format-mpeg-audio/) - W3C - Note - [mse-byte-stream-format-registry](https://www.w3.org/TR/mse-byte-stream-format-registry/) - W3C - Note - [mse-byte-stream-format-webm](https://www.w3.org/TR/mse-byte-stream-format-webm/) - W3C - Note - [nav-tracking-mitigations](https://privacycg.github.io/nav-tracking-mitigations/) - W3C - Editor's Draft - [netinfo](https://wicg.github.io/netinfo/) - W3C - Draft Community Group Report - [network-reporting](https://w3c.github.io/reporting/network-reporting.html) - W3C - Editor's Draft - [no-vary-search](https://wicg.github.io/nav-speculation/no-vary-search.html) - W3C - Draft Community Group Report - [overscroll-scrollend-events](https://wicg.github.io/overscroll-scrollend-events/) - W3C - Draft Community Group Report - [page-lifecycle](https://wicg.github.io/page-lifecycle/) - W3C - Draft Community Group Report - [partitioned-cookies](https://datatracker.ietf.org/doc/html/draft-cutler-httpbis-partitioned-cookies) - IETF - Editor's Draft - [performance-measure-memory](https://wicg.github.io/performance-measure-memory/) - W3C - Draft Community Group Report - [periodic-background-sync](https://wicg.github.io/periodic-background-sync/) - W3C - Draft Community Group Report - [permissions-registry](https://w3c.github.io/permissions-registry/) - W3C - Draft Registry - [permissions-request](https://wicg.github.io/permissions-request/) - W3C - Draft Community Group Report - [permissions-revoke](https://wicg.github.io/permissions-revoke/) - W3C - Draft Community Group Report - [PNG-spec](https://w3c.github.io/PNG-spec/) - W3C - Editor's Draft - [portals](https://wicg.github.io/portals/) - W3C - Draft Community Group Report - [prefer-current-tab](https://wicg.github.io/prefer-current-tab/) - W3C - Draft Community Group Report - [prefetch](https://wicg.github.io/nav-speculation/prefetch.html) - W3C - Draft Community Group Report - [prerendering-revamped](https://wicg.github.io/nav-speculation/prerendering.html) - W3C - Draft Community Group Report - [private-click-measurement](https://privacycg.github.io/private-click-measurement/) - W3C - Editor's Draft - [private-network-access](https://wicg.github.io/private-network-access/) - W3C - Draft Community Group Report - [promises-guide](https://www.w3.org/2001/tag/doc/promises-guide) - W3C - TAG Finding - [raw-camera-access](https://immersive-web.github.io/raw-camera-access/) - W3C - Draft Community Group Report - [real-world-meshing](https://immersive-web.github.io/real-world-meshing/) - W3C - Draft Community Group Report - [requestStorageAccessFor](https://privacycg.github.io/requestStorageAccessFor/) - W3C - Editor's Draft - [responsive-image-client-hints](https://wicg.github.io/responsive-image-client-hints/) - W3C - Draft Community Group Report - [rfc6265bis](https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis) - IETF - Editor's Draft - [rfc6386](https://www.rfc-editor.org/rfc/rfc6386) - IETF - Informational - [rfc7034](https://www.rfc-editor.org/rfc/rfc7034) - IETF - Informational - [rfc8297](https://www.rfc-editor.org/rfc/rfc8297) - IETF - Experimental - [rfc8942](https://www.rfc-editor.org/rfc/rfc8942) - IETF - Experimental - [rfc9163](https://www.rfc-editor.org/rfc/rfc9163) - IETF - Experimental - [sanitizer-api](https://wicg.github.io/sanitizer-api/) - W3C - Draft Community Group Report - [savedata](https://wicg.github.io/savedata/) - W3C - Editor's Draft - [scheduling-apis](https://wicg.github.io/scheduling-apis/) - W3C - Draft Community Group Report - [scroll-to-text-fragment](https://wicg.github.io/scroll-to-text-fragment/) - W3C - Draft Community Group Report - [serial](https://wicg.github.io/serial/) - W3C - Editor's Draft - [shape-detection-api](https://wicg.github.io/shape-detection-api/) - W3C - Draft Community Group Report - [shared-storage](https://wicg.github.io/shared-storage/) - W3C - Draft Community Group Report - [sms-one-time-codes](https://wicg.github.io/sms-one-time-codes/) - W3C - Draft Community Group Report - [sparql12-concepts](https://w3c.github.io/sparql-concepts/spec/) - W3C - Editor's Draft - [speculation-rules](https://wicg.github.io/nav-speculation/speculation-rules.html) - W3C - Draft Community Group Report - [speech-api](https://wicg.github.io/speech-api/) - W3C - Draft Community Group Report - [storage-access](https://privacycg.github.io/storage-access/) - W3C - Editor's Draft - [storage-buckets](https://wicg.github.io/storage-buckets/) - W3C - Draft Community Group Report - [svg-animations](https://svgwg.org/specs/animations/) - W3C - Editor's Draft - [test-methodology](https://www.w3.org/TR/test-methodology/) - W3C - Note - [text-detection-api](https://wicg.github.io/shape-detection-api/text.html) - W3C - Draft Community Group Report - [trust-token-api](https://wicg.github.io/trust-token-api/) - W3C - Draft Community Group Report - [turtledove](https://wicg.github.io/turtledove/) - W3C - Draft Community Group Report - [ua-client-hints](https://wicg.github.io/ua-client-hints/) - W3C - Draft Community Group Report - [user-preference-media-features-headers](https://wicg.github.io/user-preference-media-features-headers/) - W3C - Draft Community Group Report - [video-rvfc](https://wicg.github.io/video-rvfc/) - W3C - Draft Community Group Report - [w3c-patent-policy](https://www.w3.org/Consortium/Patent-Policy/) - W3C - Editor's Draft - [w3c-process](https://www.w3.org/Consortium/Process/) - W3C - Editor's Draft - [web-app-launch](https://wicg.github.io/web-app-launch/) - W3C - Draft Community Group Report - [web-bluetooth](https://webbluetoothcg.github.io/web-bluetooth/) - W3C - Draft Community Group Report - [web-bluetooth-scanning](https://webbluetoothcg.github.io/web-bluetooth/scanning.html) - W3C - Draft Community Group Report - [web-nfc](https://w3c.github.io/web-nfc/) - W3C - Editor's Draft - [web-otp](https://wicg.github.io/web-otp/) - W3C - Draft Community Group Report - [web-share-target](https://w3c.github.io/web-share-target/) - W3C - Editor's Draft - [webcodecs-aac-codec-registration](https://www.w3.org/TR/webcodecs-aac-codec-registration/) - W3C - Draft Note - [webcodecs-alaw-codec-registration](https://www.w3.org/TR/webcodecs-alaw-codec-registration/) - W3C - Draft Note - [webcodecs-av1-codec-registration](https://www.w3.org/TR/webcodecs-av1-codec-registration/) - W3C - Draft Note - [webcodecs-avc-codec-registration](https://www.w3.org/TR/webcodecs-avc-codec-registration/) - W3C - Draft Note - [webcodecs-flac-codec-registration](https://www.w3.org/TR/webcodecs-flac-codec-registration/) - W3C - Draft Note - [webcodecs-hevc-codec-registration](https://www.w3.org/TR/webcodecs-hevc-codec-registration/) - W3C - Draft Note - [webcodecs-mp3-codec-registration](https://www.w3.org/TR/webcodecs-mp3-codec-registration/) - W3C - Draft Note - [webcodecs-opus-codec-registration](https://www.w3.org/TR/webcodecs-opus-codec-registration/) - W3C - Draft Note - [webcodecs-pcm-codec-registration](https://www.w3.org/TR/webcodecs-pcm-codec-registration/) - W3C - Draft Note - [webcodecs-ulaw-codec-registration](https://www.w3.org/TR/webcodecs-ulaw-codec-registration/) - W3C - Draft Note - [webcodecs-vorbis-codec-registration](https://www.w3.org/TR/webcodecs-vorbis-codec-registration/) - W3C - Draft Note - [webcodecs-vp8-codec-registration](https://www.w3.org/TR/webcodecs-vp8-codec-registration/) - W3C - Draft Note - [webcodecs-vp9-codec-registration](https://www.w3.org/TR/webcodecs-vp9-codec-registration/) - W3C - Draft Note - [webcrypto-secure-curves](https://wicg.github.io/webcrypto-secure-curves/) - W3C - Draft Community Group Report - [webdriver-bidi](https://w3c.github.io/webdriver-bidi/) - W3C - Editor's Draft - [webhid](https://wicg.github.io/webhid/) - W3C - Draft Community Group Report - [webp](https://datatracker.ietf.org/doc/html/draft-zern-webp/) - IETF - Editor's Draft - [webpackage](https://wicg.github.io/webpackage/loading.html) - W3C - Draft Community Group Report - [webrtc-ice](https://w3c.github.io/webrtc-ice/) - W3C - Editor's Draft - [webusb](https://wicg.github.io/webusb/) - W3C - Draft Community Group Report - [webxr-plane-detection](https://immersive-web.github.io/real-world-geometry/plane-detection.html) - W3C - Draft Community Group Report - [window-controls-overlay](https://wicg.github.io/window-controls-overlay/) - W3C - Draft Community Group Report
dontcallmedom commented 9 months ago

a quick note that in my mind, the fact that `rFVC' and the speech API are indeed bug in our incubation process (not bug in the data) - my gut feeling is that we may need a manual override for these situations, but that override shouldn't pretend that it has gone through a proper multi-vendor standardization process either (i.e. it should probably use a different state).

tidoust commented 9 months ago

Yes. Looking at the definition and data, I'd say the status key is definitely not the right place to answer the question. I initially thought it could be useful to converge on a more restricted set of values for that key that wouldn't depend on the organization, but it seems good to have a key that tracks the advertised status of the spec (and it's mostly orthogonal to the question raised here).

We could perhaps rather reuse the roughly defined standing key to avoid introducing another roughly defined key for a similar concept. I'm thinking that the "good" value of the standing key could perhaps be split into "good" and "standard-track" in particular.

That may not work for your "shouldn't pretend" clause for cases when we need to override the value. At a minimum, we may want to come up with another name. All names that come to mind so far such as "widely reviewed", "wide support", "consensual", "stable" have overloaded meaning, but I'm sure we'll find something ;)

tidoust commented 9 months ago

@Elchi3 Would you be able to shed some light on the standard_track and experimental flags in BCD by any chance? Is there a more precise definition than "part of an active specification or specification process" for standard_track for example?

We're considering implementing the definition at the top of this issue, and wondering whether we might need more nuances, perhaps taking ongoing discussions on specs and possible standard positions into account.

Taking one concrete example, the definition would mean that Background Fetch would be listed as "not standard", since it is a WICG incubation for now. I see that BCD has both flags set to true for interfaces of that spec, e.g., BackgroundFetchManager. Is there a rationale that we could perhaps try to reproduce in browser-specs so that BCD could get that information from there when possible?

Perhaps something like "has a spec, implemented in one browser engine, and no known negative standard positions"?

tidoust commented 9 months ago

Perhaps something like "has a spec, implemented in one browser engine, and no known negative standard positions"?

Well, I note that wouldn't work well for something like Web Bluetooth, which also has both flags set in BCD, and that Mozilla and Webkit flag with a negative position.

foolip commented 9 months ago

Thanks for taking a look at this @tidoust and @dontcallmedom! I quite like the idea of using standing for something like this, and perhaps more than two states make sense.

Thanks for writing that code @tidoust, I'll look over the resulting categorization when I'm back at work.

Elchi3 commented 9 months ago

@Elchi3 Would you be able to shed some light on the standard_track and experimental flags in BCD by any chance? Is there a more precise definition than "part of an active specification or specification process" for standard_track for example?

Sure! This touches on the oldest issue still unresolved today in the BCD repo :) https://github.com/mdn/browser-compat-data/issues/1531. Basically, BCD sets standards_track to true if we have a spec_url and BCD would actually like to remove the standards_track property because it doesn't have any additional meaning.

Given BCD's standards_track is mostly based on the fact if we can provide a spec_url property, BCD's rules for valid spec URLs are probably interesting to you as well:

See the BCD linter file: https://github.com/mdn/browser-compat-data/blob/main/test/linter/test-spec-urls.ts

Taking one concrete example, the definition would mean that Background Fetch would be listed as "not standard", since it is a WICG incubation for now. I see that BCD has both flags set to true for interfaces of that spec, e.g., BackgroundFetchManager. Is there a rationale that we could perhaps try to reproduce in browser-specs so that BCD could get that information from there when possible?

We discussed changing standards_track from boolean yes/no to a much more nuanced property that could maybe indicate where a spec stands in terms of standardization. For example an enum with the values "incubation", "w3c" etc. but some people were not a fan of this, if I remember correctly. See https://github.com/mdn/browser-compat-data/issues/6103 for the whole discussion. In that issue I also thought if it would be good to derive standards track status from the URL where the spec ist hosted and use that as some sort of indication how to categorize a spec. See my analysis in https://github.com/mdn/browser-compat-data/issues/6103#issuecomment-863873486.

I think in the long-term I would love for BCD to move forward with the removal plans of the standards_track property and let web-specs do any specification classifications.

Standards position data might be related to this classification, too. But here again, I think I would love to see web-specs record that data, if possible. IMO standards positions have more to do with specification data than with compat data (even though the positions itself impact compat data).

tidoust commented 9 months ago

Thanks, @Elchi3! So standard_track: true in BCD is essentially the equivalent of standing: "good" in browser-specs, that's good!

What about experimental? I get it that the flag may be set at a fine-grained feature level, e.g., when a feature is added to an otherwise stable spec. I'm more wondering about guidelines for setting the flag at the spec level.

Do you look into standards positions? Do you check whether the spec is at an incubation or standardization phase (a typical example in W3C would be a WICG spec vs. a Working Group spec)?