YUI 3.16.0 Released

By YUI TeamApril 10, 2014

We are pleased to announce the release of YUI 3.16.0! This release can be found on the Yahoo CDN, through npm, and via a downloadable .zip archive. The YUI Library website has also been updated to reflect the changes in this release.

What's New In This Release

If there were a theme for this release, it's probably one of community involvement. Many of the fixes and update in this release were originated from the YUI community and simply brought in with minimal changes via the committers. Another theme would be around Loader. There were fixes in Loader to improve its speed as well as deal with various edge case issues. As usual, there were also a number of fixes and updates across the board as outlined below.

App Framework Updates

In the App Framework an issue was fixed where Router's hasRoute(url) method did not follow the same semantics as the route dispatching process. Now all registered param handlers will process any named params, giving them a chance to validate and reject a param value. This will make the hasRoute() method an effective way to check whether a router will dispatch to a route handler for a given URL (#1722).

Calendar Updates {calendarupdates3160}

In Calendar, Andrew Nicols fixed an issue where you could not change the month in RTL mode (#1719) and the arrow itself was wrongly displayed (#1724). Community member Marc Lundgren changed the arrow to display using CSS instead of an image (#1361).

CSS Grids Changes

Pure CSS was updated to 0.4.2 and YUI imported the new version in this release. As a result in Grids you can now use non-reduced fraction class names when laying out a grid. This means that we have rules for classes such as .pure-u-12-24 as well as .pure-u-1-2.

CSS Normalize Changes

Also as a result of the Pure CSS update of Base, you can now set a [hidden] attribute to your HTML elements if you want them to be display: none;.

DataTable Updates

In DataTable an issue was fixed by @annumanuel were the table did not render correctly in the print preview for IE 11 (#1708).

DOM Changes

In DOM Ryuichi Okumura optimized dom-style.js, removed an unnecessary anonymous function and unused variables, and changed the code to use "Number()" instead of "new Number()".

Drag and Drop Improvements

In Drag and Drop, Andrew Nicols moved preventDefault to gesturemovestart (#1721) and to invoke that preventDefault after movement has started (#1761). Chema Balsas fixed an issue where dd-proxy would reset radio buttons when cloneNode==true (#1663).

Rich Text Editor Updates

In Rich Text Editor, @alaaibrahim fixed an issue where the yui-cursor selector was used as an id instead of a class (#1648).

Event Updates

In Event, Andrew Nicols added the spacebar key mapping to ensure correct ARIA and WCAG compliance. (#1642)

IO Utility Changes

In IO there was a fix by @goodforenergy to remove the unnecessary src attribute of an iframe which had caused an extra request to be made to the current page URL when the iframe was included on the page. (#1646 ) @customcommander documented the usage of username/password in the Y.io configuration (#1572 ).

Loader Changes

There were quite a few changes in Loader this time around including an optimization of Loader's constructor (#1581) by @caridy. Ezequiel was busy with fixes as well including removing onCSS documentation since it was never implemented , fixing an issue where a module's lang packs were not being included before the module itself, an issue where conditionally loading a module using before did not work, and an issue where a CSS module could not require a js module (all in #1743).

Node Fixes

In Node, there was a fix for the issue where getCell() would throw an error if shift was not a recognized value. When you call instanceof Y.Node it now checks for _node to allow for instances from other sandboxes. Also, @solmsted clarified the Node vs NodeList method docs.

Promise Changes

In Promise, when there is an error inside the promise initialization, the promise is now rejected.

Sortable Utility Fixes

In Sortable, Paul B. fixed an issue where the zIndex of a dragged item would persist at 999 after the drag was complete (#1486).

YUI Test Changes

In YUI Test, test.next now takes an optional argument to change the value of this inside the callback.

Widget Modality Fixes

Two issues were fixed in Widget Modality. The first (#1684) fixed the positioning of the modal mask for stacked models, thanks @moiraine! The second fixed an issue where cloning a modal widget and its mask would result in Widget Modality not functioning correctly (#1175), thanks to @jinty.


An issue was fixed in YQL where yql-jsonp, yql-nodejs, and yql-winjs were missing yql from their requires list.

Additional Information

There were a total of 247 commits by 29 contributors for this release. You can find details about the changes in this release by checking out the Change History Rollup. For every commit made to our source, there are over 9,000 tests run against our target environments. If you discover an issue, please file it in GitHub (you'll need to sign in first). If you would like to contribute tests, documentation, code fixes, or new features, please check out our Contributing to YUI Wiki entry. Also note that we have archived the legacy Forums and old YUI trac tickets on the website. Be sure to check out the yui-support forum for support questions, and use GitHub Issues to file tickets (you must be signed in to file tickets).

Committer Update

Congratulations to Andrew Nicols of Moodle for being added as a committer! As you can see from this release and the previous one, Andrew is actively filing issues as well as his own pull requests, and we are glad to have him join the list of committers to the YUI project!