Skip to content

Commit

Permalink
chore(build): bumping to version 1.3.0
Browse files Browse the repository at this point in the history
  • Loading branch information
rodneyrehm committed Sep 17, 2016
1 parent 63cfb17 commit d846a68
Show file tree
Hide file tree
Showing 13 changed files with 113 additions and 33 deletions.
122 changes: 101 additions & 21 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,26 +1,85 @@
# ally.js change log

## master
## 1.3.0 - Return Of The Focus

* Reducing minified size from 116K to 75K (27K to 22K gzipped) by running [rollupify](https://github.com/nolanlawson/rollupify/).
*September 17th 2016*. We're continuing our journey to *make accessibility simpler*. Version 1.3.0 comes 6 months after the last feature release. We pushed [about 90 commits](https://github.com/medialize/ally.js/compare/1.1.0...1.3.0) in an effort to reduce the bundle's file size, improve startup performance, convert test suites to BDD and add DOM focus utilities.

---

### The highlights of v1.3.0

* Smaller bundle file size
* Removed all polyfills modifying DOM prototypes
* Added utilities for convenient and safe `.focus()`, `.blur()`, and obtaining the active element
* Test suites converted to BDD style


### The numbers of v1.3.0

* ☻ Test coverage remained at ~99%
* ☻ The library shrunk from ~28KB to ~22KB gzipped (~126KB to ~73KB minified) - *yes, we dropped 43%* by losing the DOMTokenList shim in v1.2.0 and introducing [rollupify](https://github.com/nolanlawson/rollupify/)


### The changes of v1.3.0

The following lists show the changes to the library grouped by domain.

#### Focus management in v1.3.0

* adding [`ally.get.activeElement`][ally/get/active-element] - [issue #119](https://github.com/medialize/ally.js/issues/119)
* adding [`ally.element.blur`][ally/element/blur] - [issue #120](https://github.com/medialize/ally.js/issues/120)
* adding [`ally.element.focus`][ally/element/focus] - [issue #121](https://github.com/medialize/ally.js/issues/121)
* removing `svgelement.prototype.focus` as this should be covered more elegantly by [`ally.element.focus`][ally/element/focus]

#### Keyboard support in v1.3.0

* fixing [`ally.maintain.tabFocus`][ally/maintain|tab-focus] to also work with <kbd>Option Tab</kbd> in Safari for macOS - [issue #146](https://github.com/medialize/ally.js/issues/146)

#### Various in v1.3.0

* fixing [`ally.element.disabled`][ally/element/disabled] to remove SVG links from the document's tabbing order in Firefox
* [build] switching to [lint-staged](https://github.com/okonet/lint-staged) for faster linting during git pre-commit
* running all [supports][ally/supports] tests in a batch to limit number of reflows - [issue #142](https://github.com/medialize/ally.js/issues/142)
* [build] adding [rollupify](https://github.com/nolanlawson/rollupify/) to reduce package overhead in build bundle
* [build] replacing broken [metalsmith-packagejson](https://www.npmjs.com/package/metalsmith-packagejson) plugin - [issue #149](https://github.com/medialize/ally.js/issues/149)
* improving [`ally.style.focusSource`][ally/style/focus-source] by adding `.unlock()` - [issue #151](https://github.com/medialize/ally.js/issues/151)
* fixing [`ally.is.tabbable`][ally/is/tabbable] to respect `except.scrollable`
* improving [`ally.style.focusSource`][ally/style/focus-source] by adding `.unlock()` - [issue #151](https://github.com/medialize/ally.js/issues/151)
* refactoring [`ally.when.visibleArea`][ally/when/visible-area] to always [execute the callback asynchronously](http://blog.izs.me/post/59142742143/designing-apis-for-asynchrony)
* refactoring all unit and functional tests to use [BDD interface](https://theintern.github.io/intern/#interface-tdd) to improve clarity of a test's intent
* fixing [`ally.maintain.tabFocus`][ally/maintain|tab-focus] to also work with <kbd>Option Tab</kbd> in Safari for macOS - [issue #146](https://github.com/medialize/ally.js/issues/146)

#### Internals in v1.3.0

* running all [supports][ally/supports] tests in a batch to limit number of reflows - [issue #142](https://github.com/medialize/ally.js/issues/142)
* removing `svgelement.prototype.focus` as this should be covered more elegantly by [`ally.element.focus`][ally/element/focus]
* refactoring `element.prototype.matches` to `util/matches-element`
* adding [`ally.get.activeElement`][ally/get/active-element] - [issue #119](https://github.com/medialize/ally.js/issues/119)

#### Build in v1.3.0

* adding [rollupify](https://github.com/nolanlawson/rollupify/) to reduce package overhead in build bundle
* switching to [lint-staged](https://github.com/okonet/lint-staged) for faster linting during git pre-commit
* replacing broken [metalsmith-packagejson](https://www.npmjs.com/package/metalsmith-packagejson) plugin - [issue #149](https://github.com/medialize/ally.js/issues/149)
* refactoring all unit and functional tests to use [BDD interface](https://theintern.github.io/intern/#interface-tdd) to improve clarity of a test's intent
* simplify running local tests in a non-WebDriver browser

#### Documentation in v1.3.0

* added [Hiding DOM elements](http://allyjs.io/tutorials/hiding-elements.html)
* added [Managing focus in animated UI](http://allyjs.io/tutorials/focusing-in-animated-ui.html)

### Testing of 1.3.0

Intern unit and functional tests have been run for the following browsers, covering 99% of the library's code:

* Internet Explorer 9, 10, 11
* Edge 13
* Safari 6.2, 7.1, 8, 9
* Chrome 47
* Firefox 42, 42 with ShadowDOM enabled

### Missing in 1.3.0

In order to avoid shipping any more *temporary* code than we already do in the focusable detection code, we'll provide a separate release once we've *properly* investigated the following behavioral changes:

* Firefox 51 and Edge 14 ship *some sort of* support for the tabindex attribute on SVG elements
* Chrome 55 seems to have changed keyboard focusability of SVG content within `<object>` elements
* SVG `<use>` elements *may* be focusable depending on the content they reference
* MathML elements *may* be focusable


---

## 1.2.0 - Adios DOMTokenList

Expand All @@ -31,6 +90,8 @@
* replacing [domtokenlist-shim](https://github.com/jwilsson/domtokenlist) by [`ally.util.toggleClass`][ally/util] - [issue #147](https://github.com/medialize/ally.js/issues/147)


---

## 1.1.1 - Augmented Reality

*August 6th 2016.* We're releasing a few fixes that have been hanging in the master branch as a bugfix release to 1.1, because waiting for 1.2 to come together is not an option for everyone.
Expand All @@ -43,6 +104,8 @@
* fixing [`ally.event.shadowFocus`][ally/event/shadow-focus] to not access `document.body` before it's available - [issue #144](https://github.com/medialize/ally.js/pull/144)


---

## 1.1.0 - Reality Strikes Back

*March 18th 2016.* We're continuing our journey to *make accessibility simpler*. Version 1.1.0 - the first major update follows 4 months after making ally.js public in November 2015. In this time we've released [5 beta versions](https://github.com/medialize/ally.js/releases) and pushed [about 330 commits](https://github.com/medialize/ally.js/compare/1.0.1...1.1.0) in an effort to increase browser support and fix the myriad of bugs typically encountered in version one of any software.
Expand Down Expand Up @@ -79,7 +142,7 @@ A few numbers explaining the increased file size:

The following lists show the changes to the library grouped by domain.

#### Browsers
#### Browsers in v1.1.0

* Adding full support for Internet Explorer 9 - [issue #71](https://github.com/medialize/ally.js/issues/71)
* Adding full support for Microsoft Edge 12, 13
Expand All @@ -88,18 +151,18 @@ The following lists show the changes to the library grouped by domain.
* Dropping manual focusable tests for Safari on iOS 8, keeping Safari on iOS 9
* Dropping manual focusable tests for Mobile Chrome on Android 4.4, keeping Mobile Chrome on Android 5.1

#### Dependencies
#### Dependencies in v1.1.0

* upgrading [css.escape](https://github.com/mathiasbynens/CSS.escape) to version 1.5.0 to work around [WebKit 149175](https://bugs.webkit.org/show_bug.cgi?id=149175)
* upgrading [platform.js](https://github.com/bestiejs/platform.js) to version 1.3.1
* adding [domtokenlist-shim](https://github.com/jwilsson/domtokenlist) for IE9 DOM `classList` and SVG `classList` in IE11

#### Browser Behavior
#### Browser Behavior in v1.1.0

* fixing [`ally.fix.pointerFocusChildren`][ally/fix/pointer-focus-children] to use focus identity exceptions - [issue #103](https://github.com/medialize/ally.js/issues/103)
* fixing [`ally.fix.pointerFocusInput`][ally/fix/pointer-focus-input] to properly target nested content of `<button>` and `<label>` elements

#### Focusable detection
#### Focusable detection in v1.1.0

* adding [`ally.get.focusRedirectTarget`][ally/get/focus-redirect-target] to identify elements focus is forwarded to
* adding [`ally.is.activeElement`][ally/is/active-element] to identify if an element is the activeElement within its context
Expand All @@ -125,13 +188,13 @@ The following lists show the changes to the library grouped by domain.
* fixing [`ally.query.tabsequence`][ally/query/tabsequence] to return `<area>` elements at the correct position - [issue #5](https://github.com/medialize/ally.js/issues/5)
* fixing [`ally.query.tabsequence`][ally/query/tabsequence] to properly sort within ShadowDOM - [issue #6](https://github.com/medialize/ally.js/issues/6)

#### Keyboard support
#### Keyboard support in v1.1.0

* adding [`ally.maintain.tabFocus`][ally/maintain/tab-focus] to trap <kbd>TAB</kbd> focus in the tabsequence - [issue #63](https://github.com/medialize/ally.js/issues/63)
* changing [`ally.when.key`][ally/when/key] to handle modifier keys and respect `context` and `filter` options - [issue #59](https://github.com/medialize/ally.js/issues/59)
* changing [`ally.map.keycode`][ally/map/keycode] to provide alphanumeric keys and aliasing

#### Various
#### Various in v1.1.0

* adding [`ally.query.shadowHosts`][ally/query/shadow-hosts] to find elements hosting `ShadowRoot`s - [issue #110](https://github.com/medialize/ally.js/issues/110)
* adding [`ally.observe.shadowMutations`][ally/observe/shadow-mutations] to register `MutationObserver`s across nested `ShadowRoot`s - [issue #110](https://github.com/medialize/ally.js/issues/110)
Expand All @@ -142,7 +205,7 @@ The following lists show the changes to the library grouped by domain.
* fixing [`ally.get.parents`][ally/get/parents] to resolve ancestry for `SVGElement` in Internet Explorer
* fixing [`ally.style.focusWithin`][ally/style/focus-within] to support SVG in IE10 and IE11

#### Internals
#### Internals in v1.1.0

* adding `ally/util/get-content-document` to obtain the browsing context of `<object>` and `<iframe>` elements
* adding `ally/util/get-frame-element` to obtain the host element (`<object>` or `<iframe>`) of browsing context elements
Expand All @@ -162,7 +225,7 @@ The following lists show the changes to the library grouped by domain.
* fixing ShadowDOM related unit tests in WebKit
* fixing `SVGElement.prototype.focus` to identify Microsoft Edge 13

#### Testing
#### Testing in v1.1.0

Intern unit and functional tests have been run for the following browsers, covering 99% of the library's code:

Expand All @@ -172,7 +235,7 @@ Intern unit and functional tests have been run for the following browsers, cover
* Chrome 47
* Firefox 42, 42 with ShadowDOM enabled

#### Sources
#### Sources in v1.1.0

* renamed `src/util/sort-elements-by-tabindex.js` to `src/query/tabsequence.sort-tabindex.js`

Expand All @@ -182,6 +245,8 @@ Intern unit and functional tests have been run for the following browsers, cover
* aligning `package.json` in repository and npm artifact for compatibility with cdnjs


---

## 1.0.0 - A New Hope

*November 18th 2015.* We're embarking on a journey to *make accessibility simpler*. Version 1.0.0 - the official release - of ally.js has been 14 months in the making, but it's only the beginning of a long story - or so I hope.
Expand Down Expand Up @@ -261,6 +326,8 @@ Version `1.0.0` is a complete rewrite from the the early `0.0.x` releases, there
* renamed `focus/disable-focus` to `maintain/disabled`


---

## 0.0.7 (July 8th 2015)

* adding `event/shadow-focus` to emit custom event when focus changes within the ShadowDOM - extracted from `focus/within`
Expand All @@ -270,24 +337,32 @@ Version `1.0.0` is a complete rewrite from the the early `0.0.x` releases, there
* deprecating [`focus/trap`](http://allyjs.io/examples/trap-focus.html), use [`focus/disable-focus`](http://allyjs.io/examples/disable-focus.html) instead


---

## 0.0.6 (June 17th 2015)

* fixing [`dom/visible-quotient`](http://allyjs.io/examples/visible-quotient.html) to subtract scrollbars from visible space


---

## 0.0.5 (June 15th 2015)

* adding [`dom/when-visible`](http://allyjs.io/examples/focus-when-visible.html) to execute callback when an element becomes visible
* improving [`dom/when-visible`](http://allyjs.io/examples/focus-when-visible.html) to also wait until an element becomes focusable


---

## 0.0.4 (February 3rd 2015)

* adding [`dom/visible-quotient`](http://allyjs.io/examples/visible-quotient.html)
* adding [`focus/when-visible`](http://allyjs.io/examples/focus-when-visible.html)
* fixing [`fix-browser/pointer-focus-children`](http://allyjs.io/examples/fix-pointer-focus-children.html) to temporarily disable transitions


---

## 0.0.3 (January 7th 2015)

* adding [`fix-browser/pointer-focus-children`](http://allyjs.io/examples/fix-pointer-focus-children.html)
Expand All @@ -297,6 +372,8 @@ Version `1.0.0` is a complete rewrite from the the early `0.0.x` releases, there
* fixing `dom/is-visible` to look at computed styles, not the element's styles (duh!)


---

## 0.0.2 (January 5th 2015)

* adding [`fix-browser/pointer-focus-input`](http://allyjs.io/examples/fix-pointer-focus-input.html)
Expand All @@ -314,11 +391,14 @@ Version `1.0.0` is a complete rewrite from the the early `0.0.x` releases, there
* fixing linting errors


---

## 0.0.1 (December 25th 2014)

* initial release "focus"


[ally/element/blur]: http://allyjs.io/api/element/blur.html
[ally/element/disabled]: http://allyjs.io/api/element/disabled.html
[ally/element/focus]: http://allyjs.io/api/element/focus.html
[ally/event/active-element]: http://allyjs.io/api/event/active-element.html
Expand Down
2 changes: 1 addition & 1 deletion docs/api/element/blur.md
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ var result = ally.element.blur(element);

## Changes

* Added in `v#master`.
* Added in `v1.3.0`.


## Notes
Expand Down
2 changes: 1 addition & 1 deletion docs/api/element/disabled.md
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ var isDisabled = ally.element.disabled(element);

## Changes

* As of `v#master` `<a xlink:href="…">` is demoted to `<a>` in order to remove the element from the document's tabbing order in Firefox.
* As of `v1.3.0` `<a xlink:href="…">` is demoted to `<a>` in order to remove the element from the document's tabbing order in Firefox.


## Notes
Expand Down
2 changes: 1 addition & 1 deletion docs/api/element/focus.md
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ var result = ally.element.focus(element);

## Changes

* Added in `v#master`.
* Added in `v1.3.0`.


## Notes
Expand Down
2 changes: 1 addition & 1 deletion docs/api/fix/pointer-focus-input.md
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ A [`<service>`](../concepts.md#Service) interface, providing the `handle.disenga
## Changes

* Since `v1.1.0` nested elements of `<button>` and `<label>` are targeted properly.
* In `v#master` the `element.prototype.matches` was replaced by `util/element-matches`.
* In `v1.3.0` the `element.prototype.matches` was replaced by `util/element-matches`.


## Notes
Expand Down
2 changes: 1 addition & 1 deletion docs/api/get/active-element.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ var iframeElement = ally.get.activeElement({

## Changes

* Added in `v#master`.
* Added in `v1.3.0`.


## Notes
Expand Down
2 changes: 1 addition & 1 deletion docs/api/is/focus-relevant.md
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ Boolean, `true` if the element is focus relevant.
* Since `v1.1.0` every element that is either focusable, keyboard focusable, only tabbable or redirects focus is considered focus-relevant.
* Since `v1.1.0` exceptions can be passed to `ally.is.focusRelevant.rules(options)`.
* Since `v1.1.0` IE9 properly resolves SVG links (`<a xlink:href="…">`).
* In `v#master` the `element.prototype.matches` was replaced by `util/element-matches`.
* In `v1.3.0` the `element.prototype.matches` was replaced by `util/element-matches`.


## Notes
Expand Down
2 changes: 1 addition & 1 deletion docs/api/is/tabbable.md
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ Boolean, `true` if the element is tabbable.
* Since `v1.1.0` all `<iframe>` elements are considered focusable, not tabbable - except for IE9.
* Since `v1.1.0` exceptions can be passed to `ally.is.tabbable.rules(options)`.
* Since `v1.1.0` the state of the `<iframe>` or `<object>` element in which the currently examined element is hosted in is considered.
* Since `v#master` the `except.scrollable` properly filters elements with CSS property `overflow` in Firefox.
* Since `v1.3.0` the `except.scrollable` properly filters elements with CSS property `overflow` in Firefox.

## Notes

Expand Down
2 changes: 1 addition & 1 deletion docs/api/maintain/tab-focus.md
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ A [`<service>`](../concepts.md#Service) interface, providing the `handle.disenga
## Changes

* Added in `v1.1.0`.
* As of `v#master` it also works with <kbd>Option Tab</kbd> in Safari for macOS - [#146](https://github.com/medialize/ally.js/issues/146).
* As of `v1.3.0` it also works with <kbd>Option Tab</kbd> in Safari for macOS - [#146](https://github.com/medialize/ally.js/issues/146).


## Notes
Expand Down
2 changes: 1 addition & 1 deletion docs/api/style/focus-source.md
Original file line number Diff line number Diff line change
Expand Up @@ -141,7 +141,7 @@ The `handle.unlock()` method releases the focus-source lock.

## Changes

* In `v#master` the method `handle.unlock()` was added to supersede `handle.lock(false)`, which is still available, but removed from documentation.
* In `v1.3.0` the method `handle.unlock()` was added to supersede `handle.lock(false)`, which is still available, but removed from documentation.


## Notes
Expand Down
2 changes: 1 addition & 1 deletion docs/api/supports.md
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ For the tests to run properly, the document needs to have focus during execution

## Changes

* As of `v#master` *all* tests are run at once and within an iframe to limit layout thrashing.
* As of `v1.3.0` *all* tests are run at once and within an iframe to limit layout thrashing.


## Contributing
Expand Down
2 changes: 1 addition & 1 deletion docs/api/when/visible-area.md
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ The callback is invoked with one argument, the `HTMLElement` identified by `cont

## Changes

* As of `v#master` the callback is [always executed asynchronously](http://blog.izs.me/post/59142742143/designing-apis-for-asynchrony).
* As of `v1.3.0` the callback is [always executed asynchronously](http://blog.izs.me/post/59142742143/designing-apis-for-asynchrony).


## Notes
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "ally.js",
"version": "1.2.0",
"version": "1.3.0",
"description": "JavaScript library to help web applications with accessibility concerns",
"main": "ally.min.js",
"npmName": "ally.js",
Expand Down

0 comments on commit d846a68

Please sign in to comment.