Revised February 16, 2012

JavaScript Frameworks

Our products rely on external JavaScript frameworks to do DOM manipulation, animation and event handling. We try to keep the interface between our library and the javascript framework as small as possible, the adapter classes that serve as a bridge to the JavaScript frameworks are about 10 methods long.

We have built-in support for jQuery and we bundle adapter classes for use with Mootools and Prototype. The strategy we have chosen is to always test the latest versions (possibly with a small delay) and to also include the latest patch on earlier versions. Currently our test-framework runs unit tests for the following versions of javascript libraries:


1.4.3 - 1.10.x for all browsers.
2.0.x for modern browsers.

MooTools 1.2.5 - 1.4.5
Prototype 1.7

Other versions may still work even though they are not tested.

Browser versions

We test our software on many browsers using the latest versions. Knowing that Internet Explorer users have a tendency not to upgrade we also systematically test older versions of that browser. Highcharts runs on the following browser versions:

BrandVersions supported
Internet Explorer 6.0 +
Firefox 2.0 +
Chrome 1.0 +
Safari 4.0 +
Opera 9.0 +
iOS (Safari) 3.0 +
Android Browser 2.0 + *)

*) Android 2.x has limited support, see below.

As with the javascript frameworks, other versions may still work even though they are not tested.

Rendering engines and Performance

Different browsers support different rendering technologies, modern browsers have support for SVG but older versions of Internet Explorer do not, here we use VML to draw the graphs. This table describes the technologies we use in various browsers:

Browser versionRendering technologyRendering performance
Internet Explorer 9 SVG Excellent
Internet Explorer 8 VML Ok
Internet Explorer 7 VML Slow
Internet Explorer 6 VML Slow
Firefox SVG Excellent
Chrome SVG Excellent
Safari SVG Excellent
Opera SVG Excellent
iOS Safari SVG Ok
Android 3+ SVG Ok
Android 2.x Canvas Slow

Android 2.x

Android 2.x doesn't have SVG support built in, so we have created a separate renderer based on the canvg library for this system. This solution has some limitations:

  • Using Highstock on Android 2.x is not recommended as it relies heavily on zooming and mouse interaction
  • Shared tooltip is always enabled.
  • During first render, the canvg renderer + rgbcolor.js + canvg.js (concatenated to one file) will be downloaded from This is configurable with the global.canvasToolsURL option.
  • Chart and series animation is turned off.
  • Show/hide series from the legend is not enabled.
  • Series and point touch events are not enabled.
  • Zooming is not enabled.
  • Using the Renderer API directly to add shapes to the charts is not supported.