Donner SVG main
0.8.0 ยท 382bd0190.8.0 main
SVG editor and embeddable C⁠+⁠+⁠20 engine.
Loading...
Searching...
No Matches
Unsupported SVG 1.1 Features

Donner targets SVG 2 conformance. The following SVG 1.1 features are deprecated or removed in SVG 2 and are intentionally not implemented.

Filter Inputs: BackgroundImage and BackgroundAlpha

SVG 1.1 behavior: The enable-background attribute on a container element captured a snapshot of the canvas behind it. Filter primitives could reference this snapshot with in="BackgroundImage" or in="BackgroundAlpha".

SVG 2 status: enable-background is removed. Filter Effects Module Level 1 keeps the BackgroundImage and BackgroundAlpha input names, but defines them as the backdrop accumulated since the nearest isolation group instead of an enable-background snapshot.

Donner behavior: enable-background is ignored, and the Filter Effects isolation-group backdrop is not implemented either. BackgroundImage and BackgroundAlpha are parsed as unresolved named references, producing transparent black (the SVG spec behavior for unresolved filter inputs). No warning is emitted.

Modern alternative: CSS compositing with the mix-blend-mode and isolation properties covers blending with backdrop content.

Affected resvg tests: filters/enable-background/* (category default Params::DeprecatedInSVG2; four cases that already match the reference with SVG 2 semantics compare) and filters/filter/in=BackgroundImage-with-enable-background / in=BackgroundAlpha-with-enable-background (Params::DeprecatedInSVG2). These render without a pixel comparison. filters/filter/in=BackgroundAlpha uses the isolation-group backdrop, so it is a Not impl: skip rather than a removed feature; filters/filter/in=BackgroundImage compares.

SVG Fonts (<font>, <glyph>, <missing-glyph>, etc.)

SVG 1.1 behavior: Defined an inline font format using SVG path data for glyph outlines.

SVG 2 status: Removed entirely. WOFF/WOFF2 and system fonts are the standard mechanisms.

Donner behavior: These elements are not recognized. Donner supports TrueType and OpenType fonts through stb_truetype, WOFF2 through Brotli decompression, and optionally HarfBuzz for complex text shaping.

<cursor> Element

SVG 1.1 behavior: Defined a custom cursor image inline in SVG.

SVG 2 status: Removed. The CSS cursor property is the standard mechanism.

Donner behavior: Not implemented.

<altGlyph>, <altGlyphDef>, <altGlyphItem>, <glyphRef>

SVG 1.1 behavior: Allowed substituting alternate glyph representations.

SVG 2 status: Removed. OpenType font features, selected with font-feature-settings, cover the same cases.

Donner behavior: Not implemented.

<tref> Element

SVG 1.1 behavior: Referenced text content from another element by ID.

SVG 2 status: Removed.

Donner behavior: Not implemented. The resvg text/tref/* and painting/display/none-on-tref cases use Params::DeprecatedInSVG2.

Legacy Glyph Orientation Properties

SVG 1.1 behavior: glyph-orientation-horizontal and glyph-orientation-vertical selected per-glyph rotation in horizontal and vertical text.

SVG 2 status: glyph-orientation-horizontal was removed. glyph-orientation-vertical was obsoleted and replaced by text-orientation; SVG 2 retains only a narrow compatibility alias for auto, 0, and 90 values.

Donner behavior: glyph-orientation-horizontal is recognized as a presentation attribute but has no layout behavior. glyph-orientation-vertical applies the SVG 2 compatibility alias: auto, 0 and 90 (or 0deg and 90deg) set text-orientation to mixed, upright and sideways, and other values are invalid. Modern vertical text should use writing-mode: vertical-rl or vertical-lr together with text-orientation. The resvg text/glyph-orientation-horizontal case uses Params::DeprecatedInSVG2.

The Kerning Property

SVG 1.1 behavior: kerning set an explicit inter-glyph adjustment or auto.

SVG 2 status: Removed in favor of CSS font-kerning.

Donner behavior: Not implemented; font-kerning is supported. The resvg text/kerning/* cases use Params::DeprecatedInSVG2.

ICC Color Paint

SVG 1.1 behavior: A paint could carry an icc-color() suffix after an sRGB fallback.

SVG 2 status: Not part of the SVG 2 paint grammar.

Donner behavior: Not implemented; a declaration with icc-color() is invalid and rejected. The resvg painting/fill/icc-color and valid-FuncIRI-with-a-fallback-ICC-color cases use Params::DeprecatedInSVG2.

The Version Attribute

SVG 1.1 behavior: <svg version="1.1"> selected SVG 1.1 processing, under which geometry properties such as x or width cannot come from the style attribute.

SVG 2 status: The version attribute is removed; geometry properties are presentation attributes and CSS properties.

Donner behavior: Applies SVG 2 rules regardless of version. The resvg structure/style/non-presentational-attribute and structure/style-attribute/non-presentational-attribute cases use Params::DeprecatedInSVG2.

Removed Dominant-Baseline Values

SVG 1.1 behavior: dominant-baseline accepted use-script, no-change and reset-size.

SVG 2 status: Removed; SVG 2 uses the CSS Inline Layout values.

Donner behavior: The values parse for compatibility: use-script and reset-size behave like auto, and no-change takes the parent's value. The resvg text/dominant-baseline/reset-size and use-script cases use Params::DeprecatedInSVG2.

Obsolete SVG 1.1 Writing-Mode Values

SVG 1.1 behavior: Values such as lr, lr-tb, rl, rl-tb, tb, tb-rl, and tb-lr selected horizontal or vertical text flow.

SVG 2 status: The distinct values are obsolete. CSS Writing Modes maps them to horizontal-tb, vertical-rl, or vertical-lr for compatibility.

Donner behavior: The parser immediately maps the obsolete spellings to their modern computed values. There is no separate legacy layout path.

The Clip Property (CSS 2 Clip Rect)

SVG 1.1 behavior: clip: rect(top, right, bottom, left) on <svg>, <symbol>, <image>, <foreignObject>, <pattern>.

SVG 2 status: Deprecated in favor of clip-path.

Donner behavior: Not implemented. Use clip-path with clipPathUnits="userSpaceOnUse" and an inset() shape instead. The resvg masking/clip/simple-case case uses Params::DeprecatedInSVG2.

XML Language and Whitespace Attributes

SVG 2 status: xml:base was removed. xml:lang remains a current XML language attribute, and SVG 2 also defines lang. xml:space was replaced by CSS white-space.

Donner behavior: xml:space is parsed for <text> whitespace handling. xml:base and xml:lang are not implemented. The implemented systemLanguage conditional-processing attribute is a separate feature and does not supply text language or font selection.