Commons:Commons SVG Checker

From Wikimedia Commons, the free media repository
Jump to navigation Jump to search
Commons SVG Checker is a JavaScript tool. Wait a few seconds. If nothing happens, you do not have JavaScript enabled.

Files to be checked can be loaded from Wikimedia Commons or uploaded from local file system. For details see Documentation and use talk page for feedback.

Checks[edit]

The checks are described in the JavaScript source file, which is found at MediaWiki:CommonsSvgChecker.js. As of July 2018, Wikimedia servers are using librsvg-2.40.16.

The checks include those for the following bugs:

Other problems exist but are not checked.

  • Text ignores alignment-baseline attribute. File:SVG Test TextAlign.svg
  • GNOME #249; Text with direction="rtl" mishandles text-anchor. For example, RTL text with an anchor of start should begin at the specified location and develop to the left. File:SVG Test TextAlign.svg
  • Text with tspan and differing text-anchor attributes must have absolution position change required by SVG 1.1. (The SVG 1.1 layout rules say an absolute position change creates a new text chunk for layout; text-anchor is done within a text chunk. A relative position change does not create a new text chunk, so a text-anchor change would be ignored.)
  • Text uses wrong baseline for Arabic. The Arabic baseline (e.g., ليالي العرب) is higher than the Latin baseline.
  • Phab:T25643; SVG specifies font file (e.g., font-family="Helvetica-Bold") rather than separate family and weight (e.g., font-family="Helvetica" font-weight="bold"). Checker will flag the font file as an unknown font.
  • Phab:T36947; There is a small font size quantization issue. File:StrekenProvincieUtrecht1.svg
  • Phab:T43423; CSS child selectors are not supported by librsvg.
  • Phab:T68551; CSS classes on text elements are not inherited by child tspan elements. If you want this, you need to add a separate class for tspan as well, or use simply groups (but not in the text element as it Scour unfortunately does).
  • Phab:T64987, Phab:T184369, Gnome #95; font-family="'font name'" (internally quoted font family name) does not work (File:Mathematical_implication_diagram-alt.svg, File:T184369.svg)
  • Phab:T194192; viewBox must not use commas; if not width and height specified, the correct rendered image will be deformed to quadratic shape (File:Librsvg-svgfont-test.svg, File:WikiImplementationBug_T194192.svg)
  • fonts such as "Sans" are not generating warnings despite being in a list:
    var gFontSubstitution2 = [ "sans", "Sans", "Serif" ];
    Try, for example, File:MenstrualCycle ca.svg: check
  • xlink:href attribute; may not reference external resources in most elements. For example, an external resource may be referenced in a elements, but not in use elements. https://www.w3.org/TR/SVG11/linking.html#IRIReference
  • <use transform="matrix(-1 0 0 -1 0 0)" xlink:href="#a"/> does not work if it is mirrored two times (-1): File:Labanotation2.svg
  • <feGaussianBlur> seems to be a bit different from browsers: (f.e. File:Oxygen480-status-weather-clear-night.svg, File:Mahuri.svg, File:Pittsburgh_newspaper_consolidation_timeline.svg)
  • Librsvg_bugs#Pattern on small scales (f.e. File:Pong.svg, File:Languages-Europe_edit.svg)
  • tref is in SVG 1.1, but it is not supported by most user agents (including librsvg) and is removed in an SVG 2.0 candidate recommendation.[1]
  • Phab:T88833, Gnome #108 (fixed in 2.42.3); librsvg does not do the CSS 2.1 style font-size: smaller (relative size change)
  • librsvg does not do the CSS 2.1 style text-transform: uppercase (uppercase/lowercase/capitalize string)
  • SVG 1.1(2nd) font-variant="small-caps" not supported. File:SVG Test TextAlign.svg
  • GNOME #131, GNOME #256; systemLanguage errs with hyphenated languages
  • Chrome and Firefox mishandle systemLanguage: they do case sensitive comparisons instead of insensitive comparisons. Additionally, Chrome does not follow the specification and wants a space-separated list rather than a comma-separated list. Edge only looks at the first langtag and ignores the rest.
  • GNOME #88; textLength not supported. File:SVG Test TextAlign.svg
  • Phab:T60920 Semantics of lang parameter are confused.
  • Phab:T200443 A text element with a text-anchor of "middle" or "end" may not work if there is a tspan element with x or y attributes followed by a #text node.
  • librsvg does not render a element children of text element.
  • MW blocks upload of a elements with href attribute (SVG 2.0);[2] MW permits upload of a elements with xlink:href attribute (SVG 1.1).

Disclaimer[edit]

The Commons SVG Checker relies on third party services. By executing a check your browser sends the usual informations attached to HTTP-requests (IP-address, User Agent, Timestamp) to a web service located at https://tools.wmflabs.org/convert/. The service is maintained by Rillke, the server by the Wikimedia Foundation. Rillke does not track these requests but they may show up (anonymized) in the error logs.

References[edit]

  1. SVG 2.0, W3C Candidate Recommendation 15 September 2016, "Appendix L: Changes from SVG 1.1", https://www.w3.org/TR/SVG2/changes.html
  2. https://www.w3.org/Graphics/SVG/WG/wiki/Href