1.3.0 - Return Of The Focus
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 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 ~40% by losing the DOMTokenList shim in v1.2.0 and introducing 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
- issue #119 - adding
ally.element.blur
- issue #120 - adding
ally.element.focus
- issue #121
Keyboard support in v1.3.0
- fixing
ally.maintain.tabFocus
to also work with Option Tab in Safari for macOS - issue #146
Various in v1.3.0
- fixing
ally.element.disabled
to remove SVG links from the document's tabbing order in Firefox - fixing
ally.is.tabbable
to respectexcept.scrollable
- improving
ally.style.focusSource
by adding.unlock()
- issue #151 - refactoring
ally.when.visibleArea
to always execute the callback asynchronously
Internals in v1.3.0
- running all supports tests in a batch to limit number of reflows - issue #142
- removing
svgelement.prototype.focus
as this should be covered more elegantly byally.element.focus
- refactoring
element.prototype.matches
toutil/matches-element
Build in v1.3.0
- adding rollupify to reduce package overhead in build bundle
- switching to lint-staged for faster linting during git pre-commit
- replacing broken metalsmith-packagejson plugin - issue #149
- refactoring all unit and functional tests to use BDD interface 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
- added Managing focus in animated UI
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