project icon indicating copy to clipboard operation
project copied to clipboard

OWD BCD project: 2020+ accuracy for HTML and SVG

Open queengooborg opened this issue 2 years ago • 6 comments

Problem statement

BCD data is not guaranteed to be accurate for HTML and SVG features. The collector has found data that is likely incorrect in BCD right now.

Proposed solutions

The collector now has support for HTML and SVG elements and attributes, and MathML testing is planned to be added soon. Following #85, we should work to resolve all conflicts between the collector's results and BCD and update BCD or the collector's test code as needed

Task list

  • [ ] Resolve the discrepancies between the mdn-bcd-collector results and BCD (in the collector repo, run npm run update-bcd -- -p html && npm run update-bcd -- -p svg)

Priority assessment

  • Effort: 4-12 weeks?
  • Dependencies: none
  • Community enablement:
  • Momentum:
  • Enabling learners:
  • Enabling professionals:
  • Underrepresented topics / Ethical web:
  • Operational necessities:
  • Addressing needs of the web industry:

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 [email protected].

queengooborg avatar Jun 23 '23 08:06 queengooborg

Here's what the collector v10.6.4 proposes against BCD v5.5.0. Once these are sorted, we can call this project done.

 html/elements/a.json                  |  41 ++++++++++++----------
 html/elements/area.json               |  15 +++------
 html/elements/body.json               |  92 ++++++++++++++++++++++++++++++++++----------------
 html/elements/button.json             |   6 ++--
 html/elements/col.json                |  54 +++++++++++++++++++----------
 html/elements/colgroup.json           |  54 +++++++++++++++++++----------
 html/elements/dd.json                 |  22 ++++++++----
 html/elements/fencedframe.json        |   6 ++--
 html/elements/form.json               |  22 ++++++++----
 html/elements/head.json               |  20 +++++++----
 html/elements/html.json               |  36 ++++++++++++++------
 html/elements/iframe.json             |   4 ++-
 html/elements/image.json              |  23 +++++++++----
 html/elements/link.json               |  10 ++++--
 html/elements/meta.json               |  22 ++++++++----
 html/elements/meter.json              |  32 +++++++++++-------
 html/elements/object.json             |  22 ++++++++----
 html/elements/pre.json                |  20 +++++++----
 html/elements/script.json             |  22 ++++++++----
 html/elements/select.json             |  10 ++++--
 html/elements/tbody.json              |  38 ++++++++++++++-------
 html/elements/td.json                 |  16 ++++++---
 html/elements/template.json           |   2 +-
 html/elements/tfoot.json              |  38 ++++++++++++++-------
 html/elements/th.json                 |  16 ++++++---
 html/elements/thead.json              |  38 ++++++++++++++-------
 html/elements/tr.json                 |  48 +++++++++++++++++---------
 html/elements/video.json              |  12 +++++--
 svg/elements/a.json                   | 101 ++++++++++++++++++++++++++++++++++---------------------
 svg/elements/animate.json             | 110 +++++++++++++++++++++++++++++++++++++++++-------------------
 svg/elements/animateMotion.json       | 110 +++++++++++++++++++++++++++++++++++++++++-------------------
 svg/elements/animateTransform.json    |  88 ++++++++++++++++++++++++++++++++----------------
 svg/elements/cursor.json              |  82 ++++++++++++++++++++++++++++++--------------
 svg/elements/feBlend.json             |  22 ++++++++----
 svg/elements/feColorMatrix.json       |  22 ++++++++----
 svg/elements/feComponentTransfer.json |  22 ++++++++----
 svg/elements/feComposite.json         |  20 +++++++----
 svg/elements/feConvolveMatrix.json    |  66 ++++++++++++++++++++++++------------
 svg/elements/feDiffuseLighting.json   |  44 ++++++++++++++++--------
 svg/elements/feDisplacementMap.json   |  22 ++++++++----
 svg/elements/feDropShadow.json        |  44 ++++++++++++++++--------
 svg/elements/feFlood.json             |  44 ++++++++++++++++--------
 svg/elements/feGaussianBlur.json      |  44 ++++++++++++++++--------
 svg/elements/feImage.json             |  29 +++++++++++-----
 svg/elements/feMergeNode.json         |  22 ++++++++----
 svg/elements/feMorphology.json        |  44 ++++++++++++++++--------
 svg/elements/feOffset.json            |  22 ++++++++----
 svg/elements/feSpecularLighting.json  |  42 ++++++++++++++++-------
 svg/elements/feTile.json              |  22 ++++++++----
 svg/elements/feTurbulence.json        |  22 ++++++++----
 svg/elements/filter.json              |  46 ++++++++++++++++---------
 svg/elements/image.json               |  30 +++++++++++------
 svg/elements/linearGradient.json      |  22 ++++++++----
 svg/elements/marker.json              |  20 +++++++----
 svg/elements/mpath.json               |  22 ++++++++----
 svg/elements/path.json                |  20 +++++++----
 svg/elements/pattern.json             |  22 ++++++++----
 svg/elements/radialGradient.json      |  22 ++++++++----
 svg/elements/script.json              |  22 ++++++++----
 svg/elements/set.json                 |  22 ++++++++----
 svg/elements/stop.json                |  40 ++++++++++++++--------
 svg/elements/svg.json                 |  44 ++++++++++++++++--------
 svg/elements/textPath.json            |  34 +++++++++++++------
 svg/elements/use.json                 |  22 ++++++++----
 64 files changed, 1467 insertions(+), 706 deletions(-)

I'm looking into the SVG part. Some tests need to be updated in the collector, for example those for xlink attributes (https://github.com/openwebdocs/mdn-bcd-collector/pull/990), but there are also real issues in the compat data to fix. I've sent some PRs to BCD already.

Elchi3 avatar Dec 19 '23 13:12 Elchi3

A report for the progress of this project:

  • Most of the changes to the HTML folder have pending pull requests or the tests have been removed from the collector (due to difficulty/impossibility with testing the attributes)
  • The SVG folder will probably take more time to tackle, as the SVG attribute testing doesn't seem to be accurate.

I believe that we should split this project into two parts (HTML and SVG) and defer the SVG updates to a later time.

queengooborg avatar Jan 12 '24 12:01 queengooborg

I was able to make a lot of progress on this project. From 64 files down to 35 files in need of updates. See git diff --stat with BCD v5.5.6 and the OWD BCD Collector v10.7.0:

 html/elements/body.json            |  8 ++++----
 html/elements/button.json          |  2 +-
 html/elements/col.json             |  6 +++---
 html/elements/colgroup.json        |  6 +++---
 html/elements/dd.json              |  2 +-
 html/elements/fencedframe.json     |  2 +-
 html/elements/head.json            |  4 ++--
 html/elements/html.json            |  3 ++-
 html/elements/image.json           |  2 +-
 html/elements/meta.json            |  2 +-
 html/elements/meter.json           |  2 +-
 html/elements/object.json          |  2 +-
 html/elements/script.json          |  2 +-
 html/elements/tbody.json           |  4 ++--
 html/elements/td.json              |  2 +-
 html/elements/tfoot.json           |  4 ++--
 html/elements/th.json              |  2 +-
 html/elements/thead.json           |  4 ++--
 html/elements/tr.json              |  4 ++--
 svg/elements/animate.json          | 30 +++++++++++++++---------------
 svg/elements/animateMotion.json    | 30 +++++++++++++++---------------
 svg/elements/animateTransform.json | 24 ++++++++++++------------
 svg/elements/cursor.json           |  2 +-
 svg/elements/feFlood.json          | 12 ++++++------
 svg/elements/feMergeNode.json      |  4 ++--
 svg/elements/font-face-uri.json    |  2 +-
 svg/elements/glyphRef.json         |  2 +-
 svg/elements/image.json            |  7 ++++---
 svg/elements/marker.json           |  4 ++--
 svg/elements/path.json             |  6 +++---
 svg/elements/set.json              |  6 +++---
 svg/elements/stop.json             | 12 ++++++------
 svg/elements/svg.json              | 12 ++++++------
 svg/elements/textPath.json         |  4 ++--
 svg/elements/tref.json             |  4 ++--
 35 files changed, 113 insertions(+), 111 deletions(-)

Elchi3 avatar Jan 15 '24 11:01 Elchi3

  • Most of the changes to the HTML folder have pending pull requests

I will take a look at your PRs.

Elchi3 avatar Jan 15 '24 11:01 Elchi3

The baseline project has benefitted enormously from all of Open Web Docs' work to provide accurate compat data for all BCD features going back to 2020. I talked to Daniel Beck last week and only 283 out 14,366 features are marked as unresolved (i.e. Baseline cannot be calculated). This is already very fantastic, but I think we should attempt and fully complete this project by getting the last few missing HTML and SVG feature versions in.

See https://docs.google.com/spreadsheets/d/1RVgaq4ruHYeJvLCky-h2VAreRP5j_CKifaBvwYEhsL0/edit#gid=1279455993&fvid=1437656086 for a list. (There is also missing data for HTTP within the 283 features, but we can look at these in a separate project)

Elchi3 avatar Mar 18 '24 15:03 Elchi3

https://github.com/openwebdocs/mdn-bcd-collector/pull/1474 is probably relevant here, too.

Elchi3 avatar May 31 '24 14:05 Elchi3

We updated all the remaining compat data to have a (range) version number prior to 2020. https://github.com/mdn/browser-compat-data/issues/23991 is about enforcing the 2020 cutoff in the BCD linter.

Elchi3 avatar Aug 19 '24 08:08 Elchi3