Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Sort out SVG's mixin-like interfaces #7752

Closed
foolip opened this issue Dec 14, 2020 · 7 comments
Closed

Sort out SVG's mixin-like interfaces #7752

foolip opened this issue Dec 14, 2020 · 7 comments
Labels
data:api 🐇 Compat data for Web APIs. https://developer.mozilla.org/docs/Web/API

Comments

@foolip
Copy link
Collaborator

foolip commented Dec 14, 2020

SVG 1.1 defined some interfaces which were a lot like mixins, with wording like this:

Interface SVGTests defines an interface which applies to all elements which have attributes ‘requiredFeatures’, ‘requiredExtensions’ and ‘systemLanguage’.

or:

Interface SVGTransformable contains properties and methods that apply to all elements which have attribute ‘transform’.

However, these predated Web IDL mixins, and some of them were implemented in a way which exposed the interface object for them.

A number of interfaces like this are in BCD/MDN:

This list might not be complete.

We should probably delete all of these pages and their BCD entries, but in the process we should also make sure that the members are instead of the other correct interfaces.

Note that https://developer.mozilla.org/en-US/docs/Web/API/SVGUnitTypes is not to be removed, because https://svgwg.org/svg2-draft/types.html#InterfaceSVGUnitTypes defines it as a plain interface, because there are constants on it that are accessed through the interface object.

@foolip
Copy link
Collaborator Author

foolip commented Dec 14, 2020

I noticed this while reviewing @vinyldarkscratch's PRs, and only after a merged a few PRs making changes to these entries: #7716 + #7720 + #7733

There are additional open PRs with this issue, and I'll link those to this issue instead of merging them.

@queengooborg queengooborg added the data:api 🐇 Compat data for Web APIs. https://developer.mozilla.org/docs/Web/API label Dec 14, 2020
@foolip
Copy link
Collaborator Author

foolip commented Dec 14, 2020

https://developer.mozilla.org/en-US/docs/Web/API/SVGZoomAndPan is also not in this category, since it also has constants on it.

@foolip
Copy link
Collaborator Author

foolip commented Dec 16, 2020

Oops, #7718 is another case already merged.

@ddbeck
Copy link
Collaborator

ddbeck commented Jan 22, 2021

some of them were implemented in a way which exposed the interface object for them

Can we get an example of a case like this (documented on MDN or not)? I want to get a sense of what this looks like in an actual browser. My inclination is this: if it's a concrete interface that's actually exposed to web developers, then we should track it (even if that interface, alone, isn't particularly useful). If it's a fiction for specification authors, then we shouldn't.

@ddbeck
Copy link
Collaborator

ddbeck commented Mar 3, 2021

Also noting here that thanks to the demixing work in #8929 the following interfaces are hopefully going to get dealt with:

  • SVGAnimatedPoints
  • SVGFilterPrimitiveStandardAttributes
  • SVGTests
  • SVGURIReference

@foolip
Copy link
Collaborator Author

foolip commented Mar 8, 2021

some of them were implemented in a way which exposed the interface object for them

Can we get an example of a case like this (documented on MDN or not)? I want to get a sense of what this looks like in an actual browser. My inclination is this: if it's a concrete interface that's actually exposed to web developers, then we should track it (even if that interface, alone, isn't particularly useful). If it's a fiction for specification authors, then we shouldn't.

I've taken another look at what interfaces are exposed in current Chrome, Firefox and Safari, and nothing which is a mixin in the SVG spec has an exposed interface in any browser. So I think things are actually fine here, if we just demix mixins this should be resolved.

foolip added a commit to foolip/browser-compat-data that referenced this issue May 19, 2021
This is a mixin in SVG 2:
https://svgwg.org/svg2-draft/types.html#InterfaceSVGURIReference

However, the href member isn't represented in BCD, so this entry doesn't
really convey anything at all.

Part of mdn#7752.
Elchi3 pushed a commit that referenced this issue May 19, 2021
This is a mixin in SVG 2:
https://svgwg.org/svg2-draft/types.html#InterfaceSVGURIReference

However, the href member isn't represented in BCD, so this entry doesn't
really convey anything at all.

Part of #7752.
foolip added a commit to foolip/browser-compat-data that referenced this issue May 20, 2021
This was a mixin-like interface in SVG 1.1:
https://www.w3.org/TR/SVG11/types.html#InterfaceSVGStylable

However, it was never exposed as an interface in itself, and this entry
without any subfeatures doesn't map to anything real for web developers.

MDN cleanup: mdn/content#5140

Part of mdn#7752.
sideshowbarker pushed a commit that referenced this issue May 20, 2021
This was a mixin-like interface in SVG 1.1:
https://www.w3.org/TR/SVG11/types.html#InterfaceSVGStylable

However, it was never exposed as an interface in itself, and this entry
without any subfeatures doesn't map to anything real for web developers.

MDN cleanup: mdn/content#5140

Part of #7752.
@foolip
Copy link
Collaborator Author

foolip commented Jun 1, 2021

Closing this in favor of #8929 which tracks what remains.

@foolip foolip closed this as completed Jun 1, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
data:api 🐇 Compat data for Web APIs. https://developer.mozilla.org/docs/Web/API
Projects
None yet
Development

No branches or pull requests

3 participants