Note: This is not the most recent version of this file. Please check the SVG Test Suite Page for the latest link.
This document describes the results of particular SVG implementations tested against the SVG Conformance Test Suite. The goal is to demonstrate that every part of the SVG Candidate Recommendation specification can be implemented, as required by the SVG Candidate Recommendation exit criteria. For this, each BE test must be passed by at least one implementation.
This is not an exhaustive test of all SVG implementations; the implementations listed here are the ones that were readily available at the time of conformance testing. This is also not a formal test, and thus does not rank the implementations. The purpose is purely to show that the SVG specification can be and has been implemented, and to demonstrate a good degree of interoperability between implementations.
The following table lists the implementations that were tested as well as the particular version of each implementation. You are suggested to check the implementation sites for the latest conformance results.
Implementation | Version | Availability | |
---|---|---|---|
(a) | Adobe | Build 2.0x41 (2.0x40 for paint-colIntProp-BE-05) | Internal only (as of 2001.01.26) |
(b) | CSIRO SVG Toolkit | 2001.01.23 | Internal only (as of 2001.01.26) |
(c) | Batik | 1.0beta2rc1 | Development release available via Apache CVS system. |
(d) | Ionic | Unknown | Evaluation version available on request |
(e) | Jackaroo | 2000.06.29 | Discontinued public release (merged into Batik). |
(f) | JASC Web Draw | Preview Release 4. | Publically available. |
Type | Description |
---|---|
Yes | Implementation passes test |
No | Implementation does not pass test |
Maybe? | Implementation passes most of the test, but not enough to give a full pass. |
Unknown | The implementation has not been tested. |
Test Case Name | Adobe (a) | CSIRO (b) | Batik (c) | Ionic (d) | Jackaroo (e) | JASC (f) | Comments |
---|---|---|---|---|---|---|---|
rendering-orderGr-BE-01 | Y | Y | Y | Y | Y | Y | |
rendering-text-BE-02 | Y | Y | Y | Y | Y | Y | |
rendering-shape-BE-03 | Y | Y | Y | Y | Y | Y | |
structure-empty-BE-01 | Y | Y | Y | Y | Y | Y | |
structure-nested-BE-02 | Y | Y | Y | Y | Y | Y | |
structure-basicG-BE-03 | Y | Y | Y | Y | Y | Y | |
structure-defs-BE-04 | Y | Y | Y | Y | Y | Y | |
structure-symbol-BE-05 | Y | Y | Y | Y | N (e) | Y | (e) incorrect symbol placement. |
structure-image-BE-06 | Mostly (a) | Y | Y | Mostly (d) | Mostly (e) | Mostly (f) | (a) Adobe only
fails with 'image' reference to *.svg. (d) Svg images rendered, but incorrectly. PNG and JPEG images are fine (e) not SVG images (f) not SVG images |
structure-switch-BE-07 | N (a) | N (b) | Y | N (d) | N | N (f) | (a) Switch not
implemented (b) CSIRO doesn't support 'switch'. (d) Switch is supported, but seemingly not requiredFeatures, so test fails - seems odd to have systemLanguage test for English on the switch element itself, too. (f)'switch' not supported |
structure-lang-BE-08 | N (a) | N (b) | Y (c) | Mostly (d) | Mostly (e) | N | (a) Switch not
implemented (b) Switch not implemented (c)Correct except for edge case where no user language selected (d) default case (no test) in switch not being triggered (e) Two small flaws:1) if no user language not set, default case not trigered 2) uses old 'system-language' not newer 'systemLanguage'. |
structure-allElem-BE-09 | N (a) | N (b) | Mostly (c) | Y | Mostly (e) | N | (a) Switch not
implemented (b) CSIRO doesn't support 'switch'. (c) default case not taken. (e) default case not taken |
structure-extRef-BE-10 | N (a) | N (b) | Y | Mostly (d) | N | N | (a) Adobe doesn't
support external references. (b) CSIRO doesn't supportsupport external references. (f) external reference displayed, but style handled incorrectly |
structure-imggamma-BE-11 | Y | N | N | Y | N | N | Java 2D does not use PNG gAMA chunk |
style-selector-BE-01 | Y | Y | Y | Y | Y | N | |
style-selector-BE-02 | Y | Y | Y | N (d) | Y | N | (d) id and attr selectors not implemented |
style-selector-BE-03 | Y | Some (b) | Y | N | Y | N | (b) CSIRO supports child but not sibling and first-child selectors |
coords-units-BE-01 | Y | Y | Y | Some (d) | Y | Mostly (f) | (d) em and ex treated as px (f) em and percent incorrect |
coords-transforms-BE-02 | Y | Y | Y | Y | Y | Y | |
coords-viewBox-BE-03 | Y | Y | Y | Y | some (e) | N | (e) no clip with 'slice' |
coords-unitsProc-BE-04 | Y | Y | Y | N (d) | Y | Some (f) | (d) all percent to user conversion tests failed (f) passes subtests 1, 3 and 5 |
coords-unitsProc-BE-05 | Y | Y (b) | Y | Mostly | N | Mostly (f) | |
path-lines-BE-01 | Y | Y | Y | Y | Y | Y | |
path-curves-BE-02 | Y | Y | Y | Y | Y | Y | |
path-curves-BE-03 | Y | Y | Y | Y | Y | Y | |
path-curves-BE-04 | Y | Y | Y | N (d) | Mostly (e) | Some | (d) elliptical arcs
incorrect. (e) MAZ and MAAA wrong (f) 3 of 6 correct |
shapes-rect-BE-01 | Y | Y | Y | Mostly (d) | Y | Y | (d) radius of rounded corners 50% of correct value |
shapes-ellipse-BE-02 | Y | Y | Y | Y | Y | Y | |
shapes-circle-BE-03 | Y | Y | Y | Y | Y | Y | |
shapes-line-BE-04 | Y | Y | Y | Y | Y | Y | |
shapes-polygon-BE-05 | Y | Y | Y | Y | Y | Y | |
shapes-polyline-BE-06 | Y | Y | Y | Y | Y | Y | |
text-text-BE-01 | Y | some (b) | Y | Y | Y | N | (b) CSIRO doesn't do underlines and line-throughs |
text-tspan-BE-02 | Y | N (b) | Y | Mostly (d) | Y (e) | N | (b) CSIRO hasn't
implemented tspan yet. (e) spacing of last character on line slightly odd. |
text-textOnPath-BE-03 | Y | N (b) | N | some (d) | N | N | (b) CSIRO hasn't
implemented textPath yet. (d) text not lined up on path. tspan affecting rest of text element? dx and dy not relative to baseline? |
text-tref-BE-04 | Y | N (b) | Y | N | N | N | (b) CSIRO hasn't implemented tref yet. |
text-textAnchor-BE-05 | Y | some (b) | some (c) | N | N | N | (b) CSIRO doesn't
support textPath (c) Batik does textPath in a different namespace. |
text-whiteSpace-BE-06 | Y | Y | Y | Y | Y | Some | |
text-altGlyph-BE-07 | Y | N | N | N | N | N | |
text-i18n-BE-09 | Y | some (b) | some(c) | some (d) | N | N | (b) CSIRO does Polish,
Russion and Greek correctly. (c) Batik does not do vertical text and unicode bidi override (d) some spacing problems, no tofu for vertical. check number of tofu for Japanese |
text-alignment-BE-10 | Y | some (b) | N | N | some (e) | N | (b) CSIRO hasn't implemented tspan or baseline-shift (e) text-anchor OK |
text-alignment-BE-11 | Y | N (b) | N | N | N | N | (b) CSIRO doesn't handle vertical text yet. |
text-decoration-BE-12 | Y | N | Mostly (c) | Y | Mostly (e) | N | (c) 3/4
correct. (e) no blue underline on last subtest |
text-selection-BE-13 | Y | N | Y | N (d) | N (e) | N (f) | (d) no text
selection implemented (e) no text selection implemented (f) WebDraw is an editor, text selection done through a GUI |
text-spacing-BE-14 | Y | N (b) | N | N | N | N | |
text-font-BE-15 | Y | Y | Y | Mostly (d) | Y | N | (d) not finding a monospaced font from the list, otherwise ok |
text-font-BE-16 | Y | N (b) | Mostly (c) | N | Nearly (e) | N | (b) CSIRO doesn't handle
font-weights correctly, it also has problems with the style
elem. (c) 'bolder' not bolder (e) Jackaroo only fails on the lighter CSS value |
text-textLength-BE-17 | N | Y | N | N | N | N | |
text-extTref-BE-18 | N | N | Y | N | N | N | |
paint-fill-BE-01 | Y | Y (b) | N | Mostly (d) | N | Mostly (f) | (b) CSIRO passes all
that are shown, doens't support icc-color (but gets correct
color for non-ICC) (d) Passes all except ICC, which is black. (f) Passes all except ICC, which is black. |
paint-stroke-BE-02 | Y | Y | Y | Y | Y | Y | |
paint-markers-BE-03 | N | Y | N | Some (d) | N | Y | (d) does not position marker correctly wrt the marker position (uses top left instead of centre) or rotate correctly wrt path direction |
paint-markers-BE-04 | N | Y | N | N (d) | N | Y | (d) Draws two out of three markers (start and end of line, not other points); other defects as previous test. |
paint-colIntProp-BE-05 | Y | N | Y | N (d) | N | Some (f) | (d) nearest neighbor
instead of bilinear or bicubic (f) not linear subtest |
paint-inherit-BE-06 | Y | Y | Y | Y | Y | Y | |
color-datatypes-BE-01 | Y | Y | Y | Y | Y | Y | |
color-property-BE-02 | Mostly (a) | N | Y | Mostly (d) | N | Mostly (f) | (a) Adobe only
supports currentColor on 'fill' and 'stroke' (d) Ionic only supports currentColor on 'fill' and 'stroke' (f) gradient incorrect |
color-colorProf-BE-03 | N (a) | Y | N | N | N | N | (a) Adobe does not yet support 'color-profile' property (added after Aug2 spec) |
gradPatt-linearGr-BE-01 | Y | Y | Y | Y | Y | Some (f) | (f) Not supported on text |
gradPatt-linearGr-BE-02 | Y | Y | Y | Mostly | Mostly | Y | |
gradPatt-linearGr-BE-03 | Y | Y | Y | Y | Y | Y | |
gradPatt-radialGr-BE-04 | Y | Y | Y | Y | Y | Some (f) | (f) Not supported on text |
gradPatt-radialGr-BE-05 | Y | Y | Y | Mostly (d) | Mostly (e) | Y | (d) second test,
should be oval not round (object bounding box is not square) (e) second test is circular not oval |
gradPatt-stop-BE-06 | Y | Y | Y | Mostly (d) | Y | Mostly (f) | (f) angle of gradient incorrect |
gradPatt-pattern-BE-07 | Y | almost (b) | Y | Y | N | Some | (b) CSIRO has to update to latest pattern spec |
gradPatt-referenc-BE-08 | Y | Y | N | Mostly (d) | N | N | |
gradPatt-transfrm-BE-09 | Y | Y | Y | N | N | Mostly | |
gradPatt-stop-BE-10 | Y | Y | Y | N | Y | Mostly (f) | (f) angle of gradient incorrect |
masking-clipPath-BE-01 | Y | Y | Y | Y | N | N | |
masking-clipPath-BE-02 | Y | Y | Y | N (d) | N | N | (d) clips red rect and most annotation text. |
masking-clipRule-BE-03 | Y | Y | Y | Y | N | N | |
masking-groupOpac-BE-04 | Y | Y | Y | some (d) | Y | Y | (d) group opacity seems to be assuming all children fully opaque? |
masking-mask-BE-05 | Y | N | Y | N | N | N | |
masking-mask-BE-06 | Y | N | Y | N | N | N | |
masking-property-BE-07 | Y | N (b) | N | N | N | N | (b) The clip:rect(..) property seems to cause the viewer to go into an infinite loop! CSIRO hasn't implemented the clip property. |
masking-clipPath-BE-08 | Y | Y (b) | Mostly (c) | N | N | N | (b) CSIRO clipping
leaves the clip edges jaggy. Spec states that clipping acts as if a
1-bit mask? (c) Batik does not implement the hidden overflow value |
masking-vportClip-BE-09 | Y | Y | Y | N | N | N | |
filters-many-BE-01 | Y | N (b) | Y | N | N | Y (f) | (b) CSIRO hasn't
implemented filters. (f) geometry incorrect due to nested svg element, not germane to test purpose |
filters-blend-BE-02 | Y | N | Y | N | N | N | |
filters-colorMtrx-BE-03 | Y | N | Y | N | N | Mostly (f) | (f) not saturate test |
filters-transfer-BE-04 | Y | N | Y | N | N | Mostly (f) | . (f) not table test |
filters-composite-BE-05 | Y | N | Y | N | N | N | |
filters-convolve-BE-06 | Y | N | Y | N | N | Y | |
filters-diffuseLt-BE-07 | Y | N | Y | N | N | N | |
filters-specularLt-BE-08 | Y | N | Y | N | N | N | |
filters-lights-BE-09 | Y | N | Y | N | N | N | |
filters-morph-BE-10 | Y | N | Y | N | N | Y | |
filters-turb-BE-11 | Y | N | Y | N | N | Y | |
filters-blur-BE-12 | Y | N | Y | N | N | Mostly (f) | (f) no clipping to object bounding box |
filters-feImage-BE-13 | Y | N | Y | N | N | N | |
filters-feTile-BE-14 | Y | N | Y | N | N | N | |
filters-merge-BE-15 | Y | N | Y | N | N | Some (f) | (f) not aligned with crosshairs, correct color and opacity |
filters-dispMap-BE-16 | Y | N | Y (c) | N | N | Some (f) | (c) Batik displays
PNG with incorrect gamma, but does displacement correctly. (f) geometry incorrect, incorrect gamma |
interact-zoomPan-BE-01 | Y | Y | N | N (d) | N (e) | N (f) | (d) does not
disable zoom/pan (e) n/a - not a dynamic viewer (f) n/a - editor, not a dynamic viewer |
interact-zoomPan-BE-02 | Y | Y | Y | Y | N (e) | Y | (e) n/a - not a dynamic viewer |
interact-bubble-BE-04 | Y | some (b) | N | N | N (e) | N (f) | (b) CSIRO hasn't
implemented tspan, linking works (when target file is renamed), the
onmouseover and onmouseout events don't seem to be working and the
bubbling seems to always occur. (e) n/a - not a dynamic viewer (f) n/a - editor, not a dynamic viewer |
interact-pEvents-BE-05 | Y | N | N | N | N (e) | N (f) | (e) n/a - not a
dynamic viewer (f) n/a - editor, not a dynamic viewer |
interact-pEvents-BE-06 | Y | N | N | N | N (e) | N | (e) n/a - not a dynamic viewer |
interact-onload-BE-07 | Y | N | N | N | N (e) | N | (e) n/a - not a dynamic viewer |
interact-cursor-BE-08 | N | Y | N | N | N | N | |
linking-outBound-BE-01 | Mostly (a) | some (b) | Y | N (d) | some (e) | N | (a) Works except for
link to internal object (b)(e) CSIRO and Jackaroo only support linking to external SVG files. (d) No hyperlinking implemented |
linking-xlinkAttr-BE-02 | Y | Y (b) | Y | N | N | N | (b) CSIRO only uses the xlink:href attribute at the moment, others are ignored. |
linking-inBound-BE-03 | N | Y | N | N | N | N | |
linking-view-BE-04 | N | Y | N | N | N | N | |
linking-view-BE-05 | N | Y | N | N | N | N | |
script-eventDom-BE-01 | Y | Y | N | N (d) | Y | N | (d) Gives 'test passed' without any interaction |
script-uiEvents-BE-02 | Y | Some (b) | N | N | N | N | (b) CSIRO only catches
the onmousedown, onmouseup, onclick and onmousemove events. |
animation-overall-BE-01 | Y | Some (b) | N | Mostly (d) | N | N (f) | (b) CSIRO hasn't
implemented animateMotion yet. (d) rotate not done on text, animation should freeze not repeat (f) No animation editing capability |
animation-href-BE-02 | Y | N | N | Some (d) | N | N | (d) repeats, no interactivity so should not trigger |
animation-targetElt-BE-03 | Y | Y | N | N | N | N | |
animation-targetAtt-BE-04 | Y | Y | N | Mostly (d) | N | N | (d) repeats forever rather than freezing; other than that, correct |
animation-timing-BE-05 | Y | N | N | N | N | N | |
animation-values-BE-06 | Y | Some (b) | N | N | N | N | (b) CSIRO hasn't implemented animateMotion or spline calcMode , for discrete and linear calcModes CSIRO requires a keyTimes attribute. |
animation-values-BE-07 | Y | Some | N | N | N | N | |
animation-values-BE-08 | Y | Some | N | N | N | N | |
animation-add-BE-09 | Y | N | N | Some (d) | N | N | (d) does some repeats then stops, bars don't come to right place |
animation-inherit-BE-10 | Y | N | N | Mostly (d) | N | N | (d) repeats forever rather than freezing; other than that, correct |
animation-motion-BE-11 | Y | Y | N | N | N | N | |
animation-motion-BE-12 | Y | Y | N | N | N | N | |
animation-extRef-BE-13 | N | Y | N | N | N | N | |
fonts-fontElement-BE-01 | Y | Y | N | N | N | N | |
metadata-sample-BE-01 | Y | N (b) | N | Y | N (e) | Y | (b) CSIRO viewer fails
because the SVG doesn't validate (but it isn't supposed to!) (e) fails due to clipPath, not germane to test purpose |
extend-multiNS-BE-01 | Y | N | N | N | N (e) | N | (e) n/a - not a dynamic viewer |
dom-core-BE-01 | Y | Y (b) | N | N | N (e) | N | (b) CSIRO doesn't make
the document object available too easily! (e) n/a - not a dynamic viewer |
dom-svg-BE-02 | Some | Y (b) | N | N | N (e) | N | (b) CSIRO passes this
test using the Java language bindings rather than the ECMAScript
bindings. (e) n/a - not a dynamic viewer |
dom-featureString-BE-03 | Y | Y | N | N | N (e) | N | (e) n/a - not a dynamic viewer |
dom-eventListener-BE-04 | Y | N | N (c) | N | N (e) | N | (c) Batik may pass
if another event was used? (e) n/a - not a dynamic viewer |
Total (Pass/Num.Tests) | 127/127 |