Gradient meshes and hatching to be removed from SVG 2.0


Life doesn’t go easy on the SVG file format. While development of this W3C standard continues, some features are to be axed from SVG 2.0. They remain in the nascent SVG 2.1 specification, but there is no guarantee work will continue on SVG 2.1 after SVG 2.0 is finished.

This article was triggered by a new post from Tavmjong Bah, Inkscape developer and participant in the SVG Working group. We talked to Tavmjong a little more about that, and here is our recap of the situation.

Why features get removed from SVG 2.0

First of all, this isn’t exactly news. Removing features such as gradient meshes from SVG 2.0 was discussed back in 2016, when we published an interview with Tavmjong.

To reiterate, the standardization process requires two implementations of a feature for it to be considered bullet-proof. But some new features such as gradient meshes and hatches are only available in Inkscape. All other stakeholders play it safely:

  • Browsers stick to whatever is used in already available content on the Web.
  • Even more, Mozilla and Google stopped contributing to the spec and barely patch their respective renderers for new features support.
  • However, they didn’t stop making decisions about which features go in the spec and which won’t make it.
  • Adobe is interested in new features, but they want at least one browser supporting those.

So what we have here is a classic vicious circle: no content without new SVG features in authoring software, no browser support without content, no new SVG features in the spec and in the authoring software without browser support.

It gets even weirder than that, if you summarize the situation like this:

Essentially, we have arrived to the point where development of a major vector graphics file format for the Web is shaped by inactivity of Mozilla and Google, while Microsoft and W3C do the real work, a developer of one design tool contributes a lot, but has no say in what goes into the standard, and a vendor of another design tool is taking a wait-and-see stance.

Who could’ve predicted it’d come to this?

Why else features don’t make it to specifications

Some features, however, just need more time to be completed, such as much anticipated user-defined stroke positioning. Tavmjong Bah explained (and illustrated) the complexity of implementing this feature in a blog post from 2015. The respective Strokes section of the CSS Fill and Stroke Module Level 3 spec currently lists 35 unresolved issues.

Note that over the last several years, there have been multiple cases of SVG features being moved from SVG over to CSS.

What’s next

The working group hasn’t yet decided how far they go in removing features from SVG 2.0. What is known is that hatches and gradient meshes will definitely be removed and then re-inserted to the v2.1 draft “as-is”, without guarantee of keeping them for the final v2.1 spec.

We talked to Igor Novikov of sK1 project, if he would be interested in adding support for SVG 2.x features to UniConvertor and the editor itself. Here is what he replied:

Our project currently focuses on SVG 1.1, but eventually will support SVG 2.x features, as I do see demand for them coming from our user base.

Before you get excited, there are three things to consider here.

  1. New major update of sK1 is at its final development stage, no new big stuff will be added.
  2. Once the final release is out, Igor has a long list of feature requests to choose from. And that’s on top of a lot of bugfixing that’s only to be expected.
  3. While technically this will count as the second implementation (whenever that happens) and demonstrate to the working group that these features are important, it still won’t secure the fate of features that are to be axed from SVG 2.0.

In the aforementioned interview from 2016, Tavmjong states:

Now with just a handful of renderers in browsers it becomes harder to find two implementations, and even if there are two, it does not guarantee something staying in the spec. If one browser comes out adamantly against something, then it gets removed (e.g. SVG fonts, etc.).

We can talk all we like about gut feelings, the balance of power, and suchlike. But the truth is that no one really knows how things are going to play out for SVG in the future. So far it looks like the progress will be glacial. At any rate, the current working group is scheduled to be disbanded again end of June.