Dojo 1.11 Release Notes

User Agent Support

The following user agents have been tested and are supported in this release. If a user agent version is not listed as supported, it still may work, especially on browsers with rapid release cycles (Chrome, Firefox). Future minor releases of Dojo might include fixes to support future releases of these browsers, but it is not guaranteed.


  • Edge 12
  • Firefox 3.6-45
  • Safari 6-9
  • Chrome 13-50
  • IE 8-11
  • Opera 10.50-12 (Dojo core only). Blink-based versions of Opera should work like Chrome, but are not officially tested or supported for this release.

Mobile (dojox/mobile)

  • iOS (Mobile Safari), 6.x, 7.x, 8.x, and 9.x (including all Dijit widgets except Editor)
  • Android (Android Browser and Chrome) 2.3, 4.0-4.4, 5.0-5.1, and 6.0 (Platform browser and Chrome browser) (including all Dijit widgets for Android 4.0-4.4 except Editor)
  • BlackBerry 6-7 & 10 (Platform browser)
  • Windows Phone 8 (IE10)
  • Mobile compatibility on desktop browsers: Edge 12, IE 8-11, Firefox 4-43, Chrome 13-47

Server-Side User Agents

  • Node 0.10.X, 0.12.x, 4.x, 5.x


  • The dojo, dijit, dojox, util, and themes packages now have a bower.json file
  • The dojo, dijit, dojox, and themes packages will exclude node_modules installed within these packages. This is to prevent breaking the build when installing development tools such as Intern or Stylus within a package.

Dojo Core


A feature test, 'has("csp-restrictions")' was added for non-csp compliant code. Please set this feature test to true in order to run code that must be csp compliant.


Added 'has("console-as-object")' for IE9 console quirks.


Added 'has("dom-contains")'. Browsers that natively support 'DOMNode.contains()' will now use this directly.


Previously, if a number is passed as the second argument to the dojo/html.set method, it resulted in a "Failed to execute 'appendChild' on 'Node': parameter 1 is not of type 'Node'" error. In this situation, numbers should be synonymous with strings for setting content in nodes, so we have fixed this to allow the content to be numeric.


Added selectorTarget property from on.selector as property of event object,


System Message: WARNING/2 (/, line 84)

Title underline too short.


Added feature tests for Edge, 'has("edge")', and modern Opera, 'has("opr")'. Note also that 'has("ie")' is false for IE11 as it was replaced with 'has("trident")' per request from Microsoft . Usage of browser sniffing is strongly discourated. Whenever possible, you should not use sniffing and should instead use feature detection.


null queries with JsonRest that provide parameters after ? will no longer include the string null in the query.


You can now escape $ in expessions, making it possible to specify a queryExpr: '${0}' inside a template without having to modify the caller or widget (for example, within a FilteringSelect Dijit


keep class id if is empty string in create(),



  • Enable looping over objects with {% for key, value in object %}, . This will break existing templates that treats objects as array of values (ie discarding keys).


  • BusyButton, BusyDropDownButton, and BusyComboButton refactored so they can be loaded over AMD.


  • Fixed dojox/layout/GridContainerLite to work in apps using more than one instance or version of Dojo.


  • Fixed to work in apps using more than one instance or version of Dojo.


  • A new dojox/store/OData store has been added.
  • A new dojox/store/DynamoDB store has been added.
  • New tests for dojox/store now use Intern.


Migration Notes

  • If using dojox/dtl, the change to looping may impact you.
  • BusyDropDownButton and BusyComboButton were split into separate files, so they need to be required explicitly,

System Message: WARNING/2 (/, line 154)

Bullet list ends without a blank line; unexpected unindent.

rather than just loading dojox/form/BusyButton.