openwebdocs / project

project documentation, policies & meeting minutes
http://openwebdocs.org
Creative Commons Zero v1.0 Universal
359 stars 42 forks source link

OWD BCD project: 2020+ accuracy for HTML and SVG #160

Closed queengooborg closed 2 months ago

queengooborg commented 1 year ago

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

Priority assessment

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.

Elchi3 commented 11 months ago

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.

queengooborg commented 10 months ago

A report for the progress of this project:

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

Elchi3 commented 10 months ago

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 --statwith 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 commented 10 months ago
  • Most of the changes to the HTML folder have pending pull requests

I will take a look at your PRs.

Elchi3 commented 8 months ago

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 commented 5 months ago

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

Elchi3 commented 2 months ago

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.