Comparison of layout engines (Scalable Vector Graphics)
Scalable Vector Graphics | |
---|---|
The following tables compare SVG compatibility and support for a number of layout engines. Please see the individual products' articles for further information. Unless otherwise specified in footnotes, comparisons are based on the stable versions without any add-ons, extensions or external programs.
Explanation of the tables
Engine nomenclature
Rather than the names of web browsers and HTML to PDF converters, the names of the underlying engines are used. Some of the software and online converters that use the various engines are listed below.
Layout engine | Release version | Preview version | Used by | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Amaya | 11.4.7[1] | N/A | No longer developed; Amaya | ||||||||
Blink | 537.36 | source code[note 1] | Chromium/Chrome (28+), Opera (15+), Sleipnir, Vivaldi, Yandex, Liebao and Samsung Browser | ||||||||
EdgeHTML | 14.14393[2] | N/A | Microsoft Edge, Universal Windows Platform (UWP) JavaScript apps | ||||||||
Gecko |
|
|
All Mozilla software, including Firefox; SeaMonkey and Galeon; Camino; K-Meleon; Flock (up to 2.x); Debian IceWeasel; GNU IceCat (formerly GNU IceWeasel); Cyberfox; Icedove, Iceape and Iceowl; Firefox for Android ("Fennec"). Also used by the Maple platform in 2010 and 2011 Samsung "SmartTV" devices which are based on the build used in Firefox 2.5. The Nokia Asha platform also uses Gecko for web apps rendering. | ||||||||
Goanna | 27.4.1 (August 3, 2017[9]) [±] | Pale Moon and FossaMail | |||||||||
KHTML | 4.12.3[10] | N/A | Konqueror[note 2] | ||||||||
Martha | ? | ? | PDFreactor, Nimbudocs Editor and edit-on NG. Uses the Apache Batik library for SVG rendering. | ||||||||
Presto | 2.12.388 | N/A | No longer developed; Opera and Opera Mobile use Blink now; Nintendo DS & DSi Browser; Internet Channel | ||||||||
Prince | 11 | N/A | HTML to PDF converters: Prince (previously called PrinceXML), DocRaptor. The information in the Prince columns is also true of Prince for Books, a related layout engine. | ||||||||
Tasman | (IE 5.2.3 for Mac) | N/A | No longer developed (aborted in 2003); Internet Explorer 5+ for Mac OS X | ||||||||
Trident | 7.0 (IE 11) | N/A | Internet Explorer and other Internet Explorer shells like Maxthon (Microsoft Windows operating systems only), Windows Phone 8 | ||||||||
WebKit | 534.20 | nightly build[note 3] | Tizen (both OS and browser), Safari (both desktop and mobile), Google Chrome (before 28), Maxthon 3, Shiira, iCab 4, OmniWeb 5.5+, Web, Adobe AIR, Midori, surf, Adobe Dreamweaver CS4 and CS5, Android browser, Palm webOS browser, Symbian S60 browser, OWB, Steam, Rekonq, Arora, Flock (version 3+), RockMelt, Dolphin Browser, Konqueror[note 2]. Used by the LG Smart TV platform to enable web content on TVs. HTML to PDF converters: wkhtmltopdf, PhantomJS, Pdfcrowd[11], http://www.online-convert.com/[12]. |
- ↑ "chromium / chromium/blink". chromium.googlesource.com. Google. Retrieved 2014-05-27.
- 1 2 In Konqueror, the user can switch the used layout engine.
- ↑ "WebKit Nightly Builds". webkit.org. Retrieved 2014-05-27.
Adobe SVG Viewer, Batik, eSVG and Renesis are SVG-Plugins.
Values
Values indicate the level of support in the most recent version of the layout engine, or (if a version number is given) in the specified version. Version numbers without any other value indicate the version at which the layout engine first fully supported the feature.
Value | Meaning |
---|---|
Yes | Indicates that the layout engine fully supports this property/element when valid values are used. |
No | Indicates that the property/element is completely ignored. |
Partial | Indicates that the property/element is understood, but that not all values are supported. Supported values are implemented correctly. |
Incorrect | Indicates that the property/element is understood, but that it is not implemented correctly in all cases. |
Experimental | Indicates that the property/element is understood, but supported under an alternate name. May be incomplete or buggy. |
Dropped | Indicates that the property/element is no longer supported. |
Nightly build | Indicates that the property/element is supported to some extent in an experimental/nightly build. Future support is expected. |
Depends | Indicates that the property/element is supported only on certain platforms, or if certain settings are configured. |
SVG version support
Trident | Gecko | WebKit | Blink | Presto | KHTML | Prince XML | Amaya | Batik | Renesis | LeonLabs | |||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
SVG | 1.1 | Tiny (SVGT) | 5.0[t 1] | Partial[g 1] | Partial | Partial | 1.0 | Partial[note 1] | Partial | Partial | Mostly | Partial | Partial |
Basic (SVGB) | Mostly | ||||||||||||
Full | |||||||||||||
1.2 | Tiny | No | No | No | No | 2.1 | No | ? | ? | Partial | Partial | Partial | |
Full | No | No | No | No | No | No | |||||||
sXBL | Yes | ||||||||||||
XBL 2.0 | No | ||||||||||||
Embedding
This table shows support status of different ways of embedding SVG into HTML, for different layout engines.
Trident | Gecko | WebKit | Blink | Presto | KSVG | Amaya | |
---|---|---|---|---|---|---|---|
<img> |
5.0[t 1] | 2.0[g 2] | Yes[w 1] | ? | 2.1 | No | 5.1 |
<embed> |
1.8 | Yes[w 2] | Partial[note 2] | Partial[note 3] | 5.2 | ||
<object> |
Yes | 5.1 | |||||
CSS background-image |
2.0[g 3] | No | 2.1 | No | ? | ||
CSS list-style-image |
Partial[note 4] | ? | |||||
as Favicon | No | 41[g 4] | No | 2.1.1 | ? | ||
in data URIs | 5.0 | Yes | Yes | No | ? | ? | |
SVG 1.1 support
Comparison of various Scalable Vector Graphics element support.
Profile | Element | Trident | Gecko | WebKit[w 3] | Blink | Presto | KSVG | Prince XML | Amaya | Adobe SVG Viewer | Batik | Renesis | LeonLabs |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Structure Module | |||||||||||||
Tiny | svg |
5.0[t 2] | 1.8 | 522 | ? | 1.0 | Yes | Yes | Yes | 1.0 | Yes | Yes | 1.0 |
g |
2.0 | 1.0 | |||||||||||
defs |
6.0 | ? | |||||||||||
desc |
No | No | ? | ||||||||||
title |
? | 3.0 | |||||||||||
metadata |
? | ? | 2.0 | ||||||||||
use |
Yes[w 4] | No | 6.0 | Yes | 1.0 | 0.6 | |||||||
Basic | symbol |
522 | ? | ||||||||||
Conditional Processing Module | |||||||||||||
Tiny | switch |
Yes | 1.8 | 522 | ? | 2.0 | ? | No | ? | 2.0 | Yes | No | 1.0 |
Image Module | |||||||||||||
Tiny | image |
5.0[t 2] | 2.0[g 5] | 522 | ? | 2.0 | No | 5.1 | 4.0 | 1.0 | Yes | 0.5 | 1.0 |
Style Module | |||||||||||||
Tiny | style |
5.0[t 1] | 1.8 | 522 | ? | 2.0 | ? | Yes | Yes | 1.0 | Yes | 0.6 | 1.0 |
Shape Module | |||||||||||||
Tiny | circle |
5.0[t 2] | 1.8 | 522 | ? | 2.0 | Yes | Yes | 4.0 | 1.0 | Yes | 1.0 | 1.0 |
ellipse | |||||||||||||
line | |||||||||||||
path | |||||||||||||
polygon | |||||||||||||
polyline | |||||||||||||
rect |
0.6 | ||||||||||||
Text Module | |||||||||||||
Tiny | text |
5.0[t 1] | 1.8 | 522 | ? | 2.0 | Yes | 5.1 | 4.0 | 1.0 | Yes | 0.7 | 1.0 |
Basic | tspan |
Yes | |||||||||||
tref |
No[g 6] | No | 6.3 | 0.6 | |||||||||
textPath |
1.8.1 | 4.0 | No | ||||||||||
Full | altGlyph |
Partial[g 7][g 8] | Partial | 2.2 | ? | 2.0 | |||||||
altGlyphDef |
No | No | ? | ||||||||||
altGlyphItem |
? | ? | No | ||||||||||
glyphRef |
2.2 | ? | 2.0 | ||||||||||
Profile | Element | Trident | Gecko | WebKit | Blink | Presto | KSVG | Prince XML | Amaya | Adobe SVG Viewer | Batik | Renesis | LeonLabs |
Marker Module | |||||||||||||
Full | marker |
5.0[t 1] | 1.8 | 522 | ? | 2.0 | ? | 6.0 | ? | 3.0 | Yes | 1.0 | 1.0 |
Color Profile Module | |||||||||||||
Full | color-profile |
No | No[g 9] | No[w 5] | ? | No | No | No | ? | 3.0 | Yes | No | 1.0 |
Gradient Module | |||||||||||||
Basic | linearGradient |
5.0[t 1] | 1.8 | 522 | ? | 1.0 | Yes | 6.0 | ? | 1.0 | Yes | 0.5 | 1.0 |
radialGradient |
2.0 | ? | |||||||||||
stop |
1.0 | ? | ? | ||||||||||
Pattern Module | |||||||||||||
Basic | pattern |
5.0[t 1] | 1.9 | 522 | ? | 2.0 | Yes | ? | ? | 2.0 | Yes | 0.5 | 1.0ttt |
Clip Module | |||||||||||||
Basic | clipPath |
5.0[t 1] | 1.8 | Mostly[w 6] | ? | 2.0 | ? | ? | ? | 1.0 | Yes | 0.6 | 1.0 |
Mask Module | |||||||||||||
Basic | mask |
5.0[t 1] | 1.9 | 522 | ? | 2.0 | ? | ? | ? | 1.0 | Yes | No | 1.0 |
Filter Module | |||||||||||||
Basic | feBlend |
6.0[t 3] | 1.9 | Nightly build[w 7] | ? | 2.0 | ? | No | ? | 1.0 | Yes | No | |
feColorMatrix |
? | ? | 1.0 | ||||||||||
feComponentTransfer |
? | ? | |||||||||||
feComposite |
? | ? | |||||||||||
feFlood |
? | ? | |||||||||||
feGaussianBlur |
? | ? | 1.0 | ||||||||||
feImage |
? | ? | 1.0 | ||||||||||
feMerge |
? | ? | |||||||||||
feOffset |
? | ? | 1.0 | ||||||||||
feTile |
? | ? | |||||||||||
Full | filter |
Nightly build[w 7] | ? | ? | |||||||||
feConvolveMatrix |
Nightly build[w 8] | ? | ? | ||||||||||
feDiffuseLighting |
Nightly build[w 9] | ? | ? | ||||||||||
feDisplacementMap |
Nightly build[w 7] | ? | ? | ||||||||||
feMergeNode |
? | ? | |||||||||||
feMorphology |
? | ? | |||||||||||
feSpecularLighting |
Nightly build[w 10] | ? | ? | ||||||||||
feTurbulence |
Nightly build[w 11] | ? | ? | ||||||||||
feDistantLight |
No | ? | ? | ||||||||||
fePointLight |
? | ? | |||||||||||
feSpotLight |
? | ? | |||||||||||
feFuncR |
Nightly build[w 7] | ? | ? | ||||||||||
feFuncG |
? | ? | |||||||||||
feFuncB |
? | ? | |||||||||||
feFuncA |
? | ? | |||||||||||
Profile | Element | Trident | Gecko | WebKit | Blink | Presto | KSVG | Prince XML | Amaya | Adobe SVG Viewer | Batik | Renesis | LeonLabs |
Cursor Module | |||||||||||||
Full | cursor |
No[t 4] | No[g 10] | Partial | ? | No | ? | ? | ? | No | Yes | 0.6 | |
Hyperlinking Module | |||||||||||||
Tiny | a |
Yes | 1.8 | 522 | ? | 1.0 | Yes | 5.1 | 8.2 | 1.0 | Yes | 0.6 | 1.0 |
View Module | |||||||||||||
Basic | view |
No | 15.0[g 11] | Partial | ? | 2.0 | ? | ? | ? | 3.0 | Yes | No | 1.0 |
Scripting Module | |||||||||||||
Tiny | script |
Yes | 1.8 | 522 | ? | 2.0 | ? | ? | ? | 1.0 | Yes | 0.5 | |
Animation Module | |||||||||||||
Tiny | animate |
No | 2.0[g 12] | No | ? | 2.0 | Yes | No | Yes | 1.0 | Yes | No | 1.0 |
set |
Partial | ||||||||||||
animateMotion |
2.0[g 13] | No | 1.0 | ||||||||||
animateTransform |
2.0[g 12] | 1.0 | |||||||||||
animateColor (deprecated) |
No[g 14] | Yes | |||||||||||
mpath |
2.0[g 13] | 522 | ? | ? | 2.0 | ||||||||
Font Module | |||||||||||||
Tiny | font |
No | No[g 15] | Yes | ? | 2.0 | ? | ? | ? | 2.0 | Yes | 1.0 | 1.0 |
font-face |
1.0 | ? | ? | ? | Dropped[note 5] | ||||||||
glyph |
? | ? | ? | 1.0 | |||||||||
missing-glyph |
? | ? | ? | ||||||||||
Full | hkern |
Nightly build[w 12] | 2.0 | ? | ? | ? | No | ||||||
vkern |
Nightly build[w 13] | ? | ? | ? | |||||||||
font-face-src |
Yes | No | ? | ? | ? | No | |||||||
font-face-uri |
2.0 | ? | ? | ? | |||||||||
font-face-format |
No | ? | ? | ? | No | ||||||||
font-face-name |
? | ? | ? | Yes | |||||||||
Extensibility Module | |||||||||||||
Full | foreignObject |
No | 1.9 | 522 | ? | 2.0 | ? | No | 7.2 | No | No | No | No |
Profile | Element | Trident | Gecko | WebKit | Blink | Presto | KSVG | Prince XML | Amaya | Adobe SVG Viewer | Batik | Renesis | LeonLabs |
Notes
- ↑ KHTML does not have any native image support. This is by design: in Konqueror, multimedia files are handled by KParts. The KDE project also developed an SVG plugin for Konqueror, known as KSVG.[o 1]
- ↑
<embed>
— Presto does not scale the image properly if its size is given in relative units. - ↑
<embed>
,<object>
— KSVG does not scale the image properly if its size is given in relative units. - ↑
list-style-image
— WebKit does render the image if its size is given in relative units.[w 1] - ↑ Renesis 0.7 supports that feature, but because of the rewrite of the plugin Renesis 1.0 doesn't support this any longer.[o 2]
References
- "SVG 1.1 Conformance Suite Implementation Status".
- "W3C SVG Test Suite Results — Summary results of W3C test suite on multiple browsers, different versions and browser plugins. Last updated 2011-03-24.". Retrieved 2012-10-02.
- "When can I use... SVG support tables in desktop and mobile browsers". Retrieved October 2, 2012.
- ↑ Amaya Binary Releases, Most recent download link in stable
- ↑ Introducing EdgeHTML 14 with the Windows 10 Anniversary Update
- ↑ "Firefox — Notes (55.0.1) — Mozilla". mozilla.org. Mozilla Foundation. 10 August 2017.
- ↑ "Firefox Extended Support Release — Notes (52.3.0) — Mozilla". mozilla.org. Mozilla Foundation. 8 August 2017.
- ↑ "Firefox — Beta Notes (56.0beta) — Mozilla". 2017-08-08. Retrieved 2017-08-10.
- ↑ "Mozilla Firefox Web Browser — Download Firefox Beta in your language — Mozilla". Retrieved 2016-08-10.
- ↑ "Firefox - Notes (57.0a1) — Mozilla". 2017-08-02. Retrieved 2017-08-02.
- ↑ "Mozilla Firefox Web Browser — Download Firefox Nightly in your language — Mozilla". Retrieved 2017-08-02.
- ↑ "Pale Moon Release Notes". Pale Moon. 2017-08-03. Retrieved 2017-08-03.
- ↑ Download for kdelibs, Most recent download link in stable
- ↑ Pdfcrowd FAQ, “Pdfcrowd is built around Webkit.”
- ↑ ‘Producer’ metadata in the resulting pdf., https://www.coolutils.com/Online/HTML-Converter/ Free Online HTML Converter around Webkit
Trident references
- 1 2 3 4 5 6 7 8 9 Yu, Jennifer (2010-03-18), SVG in IE9 Roadmap, Microsoft
- 1 2 3 Internet Explorer 9 Preview Builds, Microsoft
- ↑ Internet Explorer 10 Guide, Microsoft
- ↑ 2.1.20 [SVG11] Section 16.12, Cursor Module, Microsoft
Gecko references
- "SVG in Firefox". Retrieved June 11, 2009.
- ↑ Bug 512501 - (svg11tests) We should pass all the W3C SVG 1.1 Full tests, Mozilla
- ↑ Bug 276431 - external SVG not loaded from img tag, Mozilla
- ↑ Bug 231179 - SVG images in CSS, Mozilla
- ↑ Bug 366324 - SVG site icons (favicons, shortcut icons) support, Mozilla
- ↑ Bug 272288 - Allow SVG source for <svg:image>, Mozilla
- ↑ Bug 273171 - Text 'tref' not supported, Mozilla
- ↑ Bug 456286 - should altGlyph elements fall back to behaving like tspan?, Mozilla
- ↑ "Bug 571808 - Implement altglyph". Mozilla. 13 June 2010. Retrieved 21 February 2014.
- ↑ Bug 427713 - embedded color profiles in svg are ignored, Mozilla
- ↑ Bug 177193 - Implement the 'cursor' element and the 'cursor' attribute, Mozilla
- ↑ Bug 512525 - Implement the <view> element, Mozilla
- 1 2 Bug 482402 - (enablesmil) Enable "svg.smil.enabled" pref by default, Mozilla
- 1 2 Bug 436418 - SVG SMIL: Implement "animateMotion", Mozilla
- ↑ Bug 436296 - SVG SMIL: implement "animateColor", Mozilla
- ↑ Bug 119490 - Implement SVG fonts, Mozilla
WebKit references
- "WebKit SVG Status". Retrieved June 17, 2007.
- "WebKit's W3C test suite results".
- 1 2 Bug 16167 - SVGs with width and height 100% fail to render when used as <img> or CSS image, WebKit
- ↑ Bug 12095 - Image (and thus SVGImage and PDFDocumentImage) need size-negotiation, WebKit
- ↑ "The WebKit Open Source Project - SVG (Scalable Vector Graphics)". Retrieved 24 February 2014.
- ↑ Bug 12499 - External <use> xlink:href references do not work, WebKit
- ↑ Bug 6037 - WebKit+SVG does not support <color-profile> element, WebKit
- ↑ Bug 55361 - transform attribute for ClipPath not implemented, WebKit
- 1 2 3 4 Bug 32224 - Turn on (SVG) Filters support, by default., WebKit
- ↑ Bug 5861 - feConvolveMatrix filter is not implemented, WebKit
- ↑ Bug 32197 - feDiffuseLighting filter is not implemented, WebKit
- ↑ Bug 32199 - feSpecularLighting is not implemented, WebKit
- ↑ Bug 5864 - feTurbulence is not implemented, WebKit
- ↑ Bug 38407 - SVG hkern implementation incomplete, WebKit
- ↑ Bug 38663 - SVGFont's VKern implementation missing, WebKit
Blink references
Other references
- "Batik Implementation Status". Retrieved January 11, 2008.
- "Renesis 1.1 SVG support" (PDF). Examotion GmbH. Retrieved 2008-08-04.
- SVG support in Presto: Elements, Attributes, CSS Properties, DOM Interfaces.
- ↑ See "KSVG Homepage". Archived from the original on 2011-04-22. KSVG seems to be inactive as of 2012.
- ↑ Renesis support notes (PDF), Examotion GmbH, retrieved 2008-08-04
External links
- W3C SVG Test Cases for SVG Full
- "Viewer matrix — A Comparison of the SVG-able layout engines and Plugins". wiki.svg.org. Archived from the original on 2010-03-25.