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 3.0x45 | Public beta |
(b) | CSIRO SVG Toolkit | 2001.01.23 | Internal only (as of 2001.01.26) |
(c) | Batik | 1.1rc3 | 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 5. | Publically available preview. |
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 | Y | Y | Y | Mostly (d) | Mostly (e) | Mostly (f) | (d) Svg images rendered, but incorrectly. PNG and JPEG images
are fine (e) not SVG images (f) SVG image rendered, but scaled incorrectly |
structure-switch-BE-07 | Y | N (b) | Y | N (d) | N | Y | Issue raised with use of org.w3c.svg.static (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. |
structure-lang-BE-08 | Y | N (b) | Y | Mostly (d) | Mostly (e) | N | (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 | Y | N (b) | Y | Y | Mostly (e) | Y | Issue raised with use of org.w3c.svg.static (b) CSIRO doesn't support 'switch'. (e) default case not taken |
structure-extRef-BE-10 | N (a) | N (b) | Y | Mostly (d) | N | N (f) | (a) Adobe doesn't
support external references. (b) CSIRO doesn't support external references. (f) external reference not displayed |
structure-imggamma-BE-11 | Y | N | Y | 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) ex 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 | Y | (d) all percent to user conversion tests failed |
coords-unitsProc-BE-05 | Y | Y (b) | Y | Mostly | N | N | |
path-lines-BE-01 | Y | Y | Y | Y | Y | Y | |
path-curves-BE-02 | Y | Y | Y | Y | Y | Most (f) | (f) MCZ test fails |
path-curves-BE-03 | Y | Y | Y | Y | Y | Y | |
path-curves-BE-04 | Y | Y | Y | N (d) | Mostly (e) | Y | (d) elliptical arcs
incorrect. (e) MAZ and MAAA wrong |
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) | Y | (b) CSIRO hasn't
implemented tspan yet. (e) spacing of last character on line slightly odd. (f) xml:space not honored |
text-textOnPath-BE-03 | Y | N (b) | Y | 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 | Y | (b) CSIRO hasn't implemented tref yet. |
text-textAnchor-BE-05 | Y | some (b) | Y | N | N | N | (b) CSIRO doesn't support textPath |
text-whiteSpace-BE-06 | Y | Y | Y | Y | Y | Some | |
text-altGlyph-BE-07 | Y | N | Y | N | N | N | |
text-i18n-BE-09 | Y | some (b) | Y | some (d) | N | N | (b) CSIRO does Polish,
Russion and Greek correctly. (d) some spacing problems, no tofu for vertical. check number of tofu for Japanese |
text-alignment-BE-10 | Y | some (b) | Y | N | some (e) | N | (b) CSIRO hasn't implemented tspan or baseline-shift (e) text-anchor OK |
text-alignment-BE-11 | Y | N (b) | Y | N | N | N | (b) CSIRO doesn't handle vertical text yet. |
text-decoration-BE-12 | Y | N | Y | Y | Mostly (e) | N | (e) no blue underline on last subtest |
text-selection-BE-13 | Y | N | Y | N (d) | N (e) | Y (f) | (d) no text
selection implemented (e) no text selection implemented (f) WebDraw is an editor, conformant text selection done through a DOM-view GUI |
text-spacing-BE-14 | Y | N (b) | Y | 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) | Y | N | Nearly (e) | N | (b) CSIRO doesn't handle
font-weights correctly, it also has problems with the style
elem. (e) Jackaroo only fails on the lighter CSS value |
text-textLength-BE-17 | N | Y | Y | N | N | N | |
text-extTref-BE-18 | N | N | Y | N | N | Y | |
paint-fill-BE-01 | Y | Y (b) | Y | 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 | Y | Y | Y | 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 | Y | Y | Y | N (d) | N | N (f) | (d) Draws two out
of three markers (start and end of line, not other points); other
defects as previous test. (f) incorrect inheritence of properties onto markers |
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 | Y | N | Y | Mostly (d) | N | Mostly (f) | (d) Ionic only supports currentColor on 'fill' and
'stroke' (f) gradient incorrect |
color-colorProf-BE-03 | Y (a) | Y | Y | N | N | N | (a) with optional ICC support also enabled |
gradPatt-linearGr-BE-01 | Y | Y | Y | Y | Y | Y | |
gradPatt-linearGr-BE-02 | Y | Y | Y | Mostly | Mostly | Y | |
gradPatt-linearGr-BE-03 | Y | Y | Y | Y | Y | Mostly (f) | (f) pad incorrect |
gradPatt-radialGr-BE-04 | Y | Y | Y | Y | Y | Y | |
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 | Y | |
gradPatt-pattern-BE-07 | Y | almost (b) | Y | Y | N | Some (f) | (b) CSIRO has to update
to latest pattern spec (f) pattern definitions rendered, fill pattern incorrect |
gradPatt-referenc-BE-08 | Y | Y | Y | Mostly (d) | N | N | |
gradPatt-transfrm-BE-09 | Y | Y | Y | N | N | Some (f) | (f) pattern transforms not implemented; pattern definition rendered |
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) | Y | 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) | Y | N | N | N | (b) CSIRO clipping
leaves the clip edges jaggy. Spec states that clipping acts as if a
1-bit mask? |
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 | Y | |
filters-colorMtrx-BE-03 | Y | N | Y | N | N | Y | |
filters-transfer-BE-04 | Y | N | Y | N | N | Y | |
filters-composite-BE-05 | Y | N | Y | N | N | Y | |
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 | Mostly (f) | (f) not identical to reference |
filters-blur-BE-12 | Y | N | Y | N | N | Y | |
filters-feImage-BE-13 | Y | N | Y | N | N | Some (f) | (f) image incorrect size |
filters-feTile-BE-14 | Y | N | Y | N | N | N | |
filters-fldMrgOff-BE-15 | Y | N | Y | N | N | Most (f) | (f) incorrect flood color |
filters-dispMap-BE-16 | Y | N | Y | N | N | Y | |
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 | Y | N | N | N | |
linking-view-BE-04 | N | Y | Y | N | N | N | |
linking-view-BE-05 | N | Y | Y | 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 | Some (b) | (b) CSIRO hasn't
implemented animateMotion yet. (d) rotate not done on text, animation should freeze not repeat (f) text does not animate |
animation-href-BE-02 | Y | N | N | Some (d) | N | N (f) | (d) repeats, no
interactivity so should not trigger (f) event-based animations can't be tested in the editor |
animation-targetElt-BE-03 | Y | Y | N | N | N | Y | |
animation-targetAtt-BE-04 | Y | Y | N | Mostly (d) | N | Y | (d) repeats forever rather than freezing; other than that, correct |
animation-timing-BE-05 | Y | N | N | N | N | N (f) | (f) all numbers treated as times |
animation-values-BE-06 | Y | Some (b) | N | N | N | Some (f) | (b) CSIRO hasn't
implemented animateMotion or spline calcMode , for discrete and
linear calcModes CSIRO requires a keyTimes attribute. (f) subtests 1,2 and 4 correct |
animation-values-BE-07 | Y | Some | N | N | N | Mostly (f) | (f) animations are correct, but subtests 2 and 3 have incorrect post-animation behavior |
animation-values-BE-08 | Y | Some | N | N | N | Some (f) | (f) linear animations mostly ok, but incorrect animation fill |
animation-add-BE-09 | Y | N | N | Some (d) | N | N (f) | (d) does some
repeats then stops, bars don't come to right place (f) bars move, but additive and accumulate not implemented |
animation-inherit-BE-10 | Y | N | N | Mostly (d) | N | N (f) | (d) repeats forever
rather than freezing; other than that, correct animated properties not inherited |
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 | Y | N | N | N | |
metadata-sample-BE-01 | Y | N (b) | Y | 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 | N | 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 |