Skip to content

OWD project: Grouping web platform features (with W3C WebDX CG) #169

@Elchi3

Description

@Elchi3

Problem statement

There is currently no consistent way to talk about web platform features as groups of features making it impossible to name a combination of features as a web platform capability.

BCD records compatibility at quite a granular level. It provides data for each individual API, CSS property or HTTP header etc. and often also contains sub features describing more detailed facets of a feature. However, BCD has no concept of groups of features; they stand on their own.

MDN does some grouping but it does so incoherently. One mechanism is https://github.com/mdn/content/blob/main/files/jsondata/GroupData.json which is used by sidebars. It is largely based on how specifications group web platform features.

caniuse.com allows varying granularity. You can record compatibility about a specific feature ("WebP image format"), or an about a group of features ("CSS Grid"). chromestatus.com is similar; its granularity varies a lot, too.

As web developer, depending on where you look for compatibility information, this can lead to confusion. Chromestatus, caniuse and MDN might be talking about the same things, but aren't really. What's included in a group? And what is the support thereof? You might get different answers depending on where you look and this can prevent you from making a decision whether or not to use a web platform capability.

Proposed solutions

The W3C WebDX Community Group has started to define feature-sets, see https://github.com/web-platform-dx/web-features

By creating a common nomenclature for web platform features, feature-set intends to support communication between web developers, browser vendors, standardization bodies, and other ecosystem participants. From Array to Cascade Layers to Offscreen Canvas, feature-set identifies, defines, and categorizes capabilities of the web platform that web developers care about.

We should work with the WebDX group to define feature-sets. Right now, a few group definition have been created on the repo, see e.g. https://github.com/web-platform-dx/feature-features/blob/main/feature-group-definitions/grid.yml for css-grid.

Instead of maintaining lists of features in the web-platform-dx/feature-set repo separately, we could add to the BCD json schema and "tag" features belonging to a group(s). That way, the BCD community can help efficiently to map web platform features at large scale.

Task list

  • Establish regular meetings with the WebDX group to define grouping of web platform features
  • Design an update to BCD's JSON data schema to add the ability to group features (or to "tag" them).
  • Catalog a large percentage of BCD's data into groups
  • Define how new groups can be added and who monitors them for accuracy and relevance (avoid 1000s of groups like we had with uncontrolled tagging in the MDN wiki era).
  • Define different kind of groups and their lifecycle. (an "ES6" group is probably dated by now)
  • Figure out how WebDX/BCD groups can replace MDN's group data and how sidebars and MDN overview pages could benefit from the notion of groups.
  • (...more tasks will be identified after kickoff with WebDX group)

Priority assessment

  • Effort: Large. Lots of coordination and design work needed. Then cataloguing of 10k BCD entries. Guestimating 4-6 months.
  • Dependencies: Design work with WebDX group.
  • Community enablement: Once the data design is ready, we can crowd-source the cataloging work.
  • Momentum: WebDX group needs this for "Baseline" and more. There is a lot momentum on better communication of web platform compatibility. This project is likely foundational work and the group data will be very useful for follow-up projects in 2024.
  • Enabling learners: Easier to understand and more consistent communication about browser compatibility of web capabilities.
  • Enabling professionals: same as for learners.
  • Underrepresented topics / Ethical web: n/a
  • Operational necessities: Required for more compat projects that build upon grouping.
  • Addressing needs of the web industry: Pretty much. The WebDX group is formed to address these needs and we should help with our expertise around BCD and MDN as much as we can.

More information

Open Web Docs (OWD) is a non-profit collective funded by corporate and individual donations.

In order for this project to happen, please consider donating to OWD on https://opencollective.com/open-web-docs.
For more information on sponsorship and membership tiers, see https://openwebdocs.org/membership/

More information is available at https://openwebdocs.org/.
For questions, please reach out to florian@openwebdocs.org.

Metadata

Metadata

Assignees

No one assigned

    Labels

    H1 2024Projects for the first half of 2024H2 2023Projects for July-December 2023

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions