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

SVG 1.1 and 2.0 #214

Closed
ydaniv opened this issue Oct 13, 2022 · 4 comments
Closed

SVG 1.1 and 2.0 #214

ydaniv opened this issue Oct 13, 2022 · 4 comments
Labels
investigation-effort-proposal Investigation Effort Proposal

Comments

@ydaniv
Copy link

ydaniv commented Oct 13, 2022

Description

SVG is an indispensable tool for developers, from UI, through design elements, creating charts and visualizations, to creating special visual effects, and much more.

Current implementation is the SVG 1.1 with outstanding compat issues - missing features and bugs - and some parts, in varying levels, from the SVG 2 spec.

There are endless posts on the web on using SVG for developers and designers alike.
Many widely used libraries render to SVG, like D3, Three, and Lottie.

There are many tools and companies that have been built over it, like: Canva, SVGator, and LottieFiles.

Rationale

Since the proposal for adding SVG as a focus area proposal for Interop 23 didn't seem to move forward in #147, I propose we investigate a way of whether we can put SVG dev back on track, so that it can, perhaps, become a focus for Interop 24.

WPT for SVG 1.1

Old tests (in obsolete format) are located in the import directory (not visible on the site) with notes in the README:

The import directory contains tests imported from the SVG 1.1 Second Edition test suite, with tests renamed to contain -manual in their name. These tests need review to verify that they are still correct for the latest version of SVG (which at the time of writing is SVG 2) and then need to be converted to reftests or testharness.js-based tests.
...

And further instructions on how to handle those.

WPT for SVG 2

All of the tests at wpt.fyi/results/svg are for SVG 2

Browser bugs

A quick search shows these:

Investigation Roadmap

  • Initiate a discussion on:
    • to resolve whether implementors can/will commit to continue work on SVG to a level of reasonable web compatibility/interoperability
    • What should be the way forward for WPT for SVG 1.1 (convert old tests/write new tests/delete old tests and write new ones against existing open issues/other)?
    • What should be the way forward for SVG 2? Can/will there be an agreed level of an interoperable implementation?
    • Do we need extra input from the community (surveys/other)?
  • Given there's a substantial intent, resolve on action for WPTs for SVG 1.1 and 2
  • Review existing bugs and map highly requested/critical ones against WPTs

In my most naïve stance I suppose these could pave a way for considering focus on SVG at Interop 24.

@ydaniv ydaniv added the investigation-effort-proposal Investigation Effort Proposal label Oct 13, 2022
@foolip foolip moved this to Proposed in Interop 2023 Oct 13, 2022
@foolip
Copy link
Member

foolip commented Nov 11, 2022

In the State of CSS 2022 question about browser incompatibilities, SVG was mentioned in ~1% of responses, see #248.

Quoting the responses giving some amount of detail here:

  • SVG attributes as CSS properties in Firefox
  • Styling SVGs consistently in Safari
  • mask HTML w/ SVG
  • svg styling
  • SVG blur filter in embedded SVGs (inconsistent in Safari)
  • svg layouting esp. combined with grids (safari, firefox)
  • SVG glitches in safari
  • SVG transforms
  • clip path from svg
  • When i try to use scale animation for SVG in Safari - SVG pixelating like it's not a vector image
  • Transforms on SVGs because of safari.
  • Safari on MacOS vector-effect="non-scaling-stroke"
  • For some reason background-color has been giving me an extra bar on the left on Safari for SVGs, pushing me to make some fixes for Safari only.
  • SVG Favicons
  • Safari SVG + dynamic styling with CSS support is bad
  • svg props support on safari (filter, blur, etc)
  • svg animations
  • d: path()
  • SVG color changing
  • mix blend mode with SVGs
  • Animations with SVGs. Especially with the transform-box: fill-box property.

While SVG doesn't seem to be at the very top of developer pain points, these results do suggest that there's a cluster of issues, and importantly I think a lot of the above isn't a known and solved problem. So I'd consider these survey results at least a medium strength signal for the importance of this.

@ydaniv
Copy link
Author

ydaniv commented Nov 13, 2022

@foolip I know that @nikolaszimmermann is working on rewriting the WebKit SVG engine, which I believe is still ongoing.
I suppose this is a good timing for investigating a possible interop for SVG, which is what this thread is all about.

@nikolaszimmermann
Copy link

Indeed @ydaniv LBSE upstreaming/development is actively ongoing.

@nairnandu
Copy link
Contributor

Thank you for proposing SVG 1.1 and 2.0 for inclusion in Interop 2023.

We wanted to let you know that this proposal was not selected to be part of Interop this year. We believe this proposal is too broad, and that Interop 2023 is not the right venue to do this investigation. We encourage you to start a conversation with the relevant working groups to get any issues resolved.

For an overview of our process, see the proposal selection summary. Thank you again for contributing to Interop 2023!

Posted on behalf of the Interop team.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
investigation-effort-proposal Investigation Effort Proposal
Projects
No open projects
Status: Proposed
Development

No branches or pull requests

4 participants