Releases: medialize/ally.js
1.1.0-beta.3
beta.3 release resolves a number of issues regarding browser compatibility concerning focusable state detection. This includes a complete rewrite of the browser focus compatibility test suite and a significant overhaul of the generated data tables.
With beta.3 we shift support from specific browsers to rendering engines, thus treating Opera 34 like Chrome, because they're both based on Blink. This (presumably) increases compatibility for a lot of WebKit based browsers on Android as well.
The only new feature is ally.get.focusRedirectTarget
to resolve focus for elements that forward focus to another element. Everything else is considered a refactoring or bug-fix.
Resources
- Changes (61 commits since 1.1.0-beta.2, 165 commits since 1.0.1)
- Documentation
- Website Preview (Temporary! until 1.1.0 is released officially)
- Milestone
The website - and official documentation - is not published for beta releases.
To install this version run
npm install ally.js@beta
1.1.0-beta.2
beta.2 is concerned with browser compatibility and test automation. This version can be safely loaded - although not executed - in Node.js, which is relevant for "Universal JavaScript".
Resources
- Changes (16 commits since 1.1.0-beta.1, 104 commits since 1.0.1)
- Documentation (for beta releases only available on github)
- Milestone
The website - and official documentation - is not published for beta releases.
To install this version run
npm install ally.js@beta
1.1.0-beta.1
- Changes (88 commits since 1.0.1)
- Documentation (for beta releases only available on github)
- Milestone
The website - and official documentation - is not published for beta releases.
To install this version run
npm install ally.js@beta
1.0.1 (November 20th 2015)
- aligning
package.json
in repository and npm artifact for compatibility with cdnjs
This release has no implication for anyone but 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.
The mission
Making accessibility simpler (for developers) by providing
- providing core functionality (not complete solutions)
- documentation to learn about accessibility requirements
- the basis figure out how specifications need to evolve
- a common ground for the community to collaborate
The plan
I've laid the foundation for collaboration. My goals are laid out. Everything is done on github, in the open. Everything is up for discussion. Anyone can join. See contributing to ally.js for more.
The past
Version 1.0.0
is a complete rewrite from the the early 0.0.x
releases, there are no breaking changes, it is a giant breaking change. More than 400 commits have been made since 0.0.7
, resulting in a few changes:
- moving dependencies from bower to npm (in fact, abandoning bower altogether)
- moving source from AMD to ES6 Module Syntax
- unifying API of all functions, see the API docs
- adding ES6 build infrastructure - issue #1
- adding unit tests - issue #2 (>90% coverage!)
- adding
ally.query.firstTabbable
(replacingfocus/first
) to find the first keyboard focusable element in a sub-tree - adding
strategy: 'strict'
option toally.query.focusable
to find elements by filters unavailable toquerySelectorAll()
- i.e. Shadow DOM without the "Shadow Piercing Descendant Combinator", scrollable containers,-webkit-user-modify: read-write
- issue #17, issue #21 ally.query.focusable
no longer considers<html>
and<body>
focusable - issue #31- adding
ally.is.focusRelevant
to identify technically focusable elements (refactored fromally.is.focusable
) - adding
ally.is.onlyTabbable
to identify elements that cannot be focused by script, but by keyboard - adding
ally.element.disabled
(refactored fromfocus/disabled
) - issue #33 - adding
ally.when.key
to observe simple keyboard input - issue #47 - adding
ally.get.insignificantBranches
to find branches not relevant to a given set of elements - issue #32 - adding
ally.maintain.hidden
to hide everything in the DOM that is not relevant to a given set of elements - issue #46 - fixing
ally.is.visible
by removing dimension constraint - issue #14 - fixing
ally.is.focusable
to also identify "edge-cases" - issue #17, issue #20, issue #21
Breaking changes (compared to 0.0.7)
- ally.js is no longer available through bower, other than by downloading the built archive
src/
was ES5 and AMD, it is now ES6. AMD modules are available indist/amd/
- dropping
focus/first
in favor ofally.query.firstTabbable
- dropping
focus/trap
in favor ofally.maintain.disabled
ally.is.validArea
(dom/is-valid-area
) now returnsfalse
for elements that are not<area>
ally.is.validTabindex
(dom/is-valid-tabindex
) now returnsfalse
for elements withouttabindex
attributeally.style.focusSource
has methods.next()
and.repeat()
removed
Renamed Files
- renamed
dom/active-elements.js
toget/active-elements.js
- renamed
dom/focus-target.js
toget/focus-target.js
- renamed
dom/is-disabled.js
tois/disabled.js
- renamed
dom/is-focusable.js
tois/focusable.js
- renamed
dom/is-shadowed.js
tois/shadowed.js
- renamed
dom/is-tabbable.js
tois/tabbable.js
- renamed
dom/is-valid-area.js
tois/valid-area.js
- renamed
dom/is-valid-tabindex.js
tois/valid-tabindex.js
- renamed
dom/is-visible.js
tois/visible.js
- renamed
dom/node-array.js
toutil/node-array.js
- renamed
dom/path.js
toget/parents.js
- renamed
dom/query-focusable.js
toquery/focusable.js
- renamed
dom/query-tabbable.js
toquery/tabbable.js
- renamed
dom/query-tabsequence.js
toquery/tabsequence.js
- renamed
dom/shadow-host-ancestors.js
toget/shadow-host-parents.js
- renamed
dom/when-visible.js
towhen/visible-area.js
- renamed
dom/shadow-host.js
toget/shadow-host.js
- renamed
dom/sort-tabindex.js
toutil/sort-elements-by-tabindex.js
- renamed
dom/visible-quotient.js
toutil/visible-area.js
- renamed
event/interaction-type-listener.js
toobserve/interaction-type.js
- renamed
focus/source.js
tostyle/focus-source.js
- renamed
focus/when-visible.js
towhen/focusable.js
- renamed
focus/within.js
tostyle/focus-within.js
- renamed
focus/disable-focus
tomaintain/disabled
1.0.0-beta.8
Changes compared to 1.0.0-beta-7
- fixing SourceMaps link in UMD bundle
- reorganizing
dist
directory to simplify CommonJS module usage - Issue #53
Changes compared to 1.0.0-beta-6
style/focus-source
has removed.next()
and.repeat()
methods- added
ally.noConflict()
to UMD bundle - mostly website/docs related changes
Changes compared to 1.0.0-beta-4
- removing
maintain/focus-trapped
as it has been deprecated since 0.0.7 - exposing all internal modules in UMD build as well
Changes compared to 1.0.0-beta-3
- removing
get/parents
from public API (ally.get.parents
) - renaming
ally.when.visible
toally.when.visibleArea
as the docs say
Changes compared to v0.0.7
- moving dependencies from bower to npm
- moving source from AMD to ES6 Module Syntax
- adding ES6 build infrastructure - issue #1
- adding unit tests - issue #2
- adding
query/first-tabbable
(replacingfocus/first
) to find the first keyboard focusable element in a sub-tree - unifying API of all functions, see the API docs
- adding
strategy: 'strict'
option toquery/focusable
to find elements by filters unavailable toquerySelectorAll()
- i.e. Shadow DOM without the "Shadow Piercing Descendant Combinator", scrollable containers,-webkit-user-modify: read-write
- issue #17, issue #21 - refactoring
is/focusable
to also identify "edge-cases" - issue #17, issue #20, issue #21 - adding
is/focus-relevant
to identify technically focusable elements (refactored fromis/focusable
) - adding
is/only-tabbable
to identify elements that cannot be focused by script, but by keyboard - removing "dimension check" from
is/visible
- issue #14 query/focusable
no longer considers<html>
and<body>
focusable - issue #31- adding
element/disabled
(refactored fromfocus/disabled
) - issue #33 - adding
when/key
to observe simple keyboard input - issue #47 - adding
get/insignificant-branches
to find branches not relevant to a given set of elements - issue #32 - adding
maintain/hidden
to hide everything in the DOM that is not relevant to a given set of elements - issue #46
Breaking Changes
src/
was ES5 and AMD, it is now ES6 - AMD components are now available atdist/amd/
- dropping
focus/first
in favor ofquery/first-tabbable
dom/is-valid-area
now returnsfalse
for elements that are not<area>
dom/is-valid-tabindex
now returnsfalse
for elements withouttabindex
attribute- see the API docs for the new function signatures
- renaming files in
src
:dom/active-elements.js
toget/active-elements.js
dom/focus-target.js
toget/focus-target.js
dom/is-disabled.js
tois/disabled.js
dom/is-focusable.js
tois/focusable.js
dom/is-shadowed.js
tois/shadowed.js
dom/is-tabbable.js
tois/tabbable.js
dom/is-valid-area.js
tois/valid-area.js
dom/is-valid-tabindex.js
tois/valid-tabindex.js
dom/is-visible.js
tois/visible.js
dom/node-array.js
toutil/node-array.js
dom/path.js
toget/parents.js
dom/query-focusable.js
toquery/focusable.js
dom/query-tabbable.js
toquery/tabbable.js
dom/query-tabsequence.js
toquery/tabsequence.js
dom/shadow-host-ancestors.js
toget/shadow-host-parents.js
dom/when-visible.js
towhen/visible-area.js
dom/shadow-host.js
toget/shadow-host.js
dom/sort-tabindex.js
toutil/sort-elements-by-tabindex.js
dom/visible-quotient.js
toutil/visible-area.js
event/interaction-type-listener.js
toobserve/interaction-type.js
focus/source.js
tostyle/focus-source.js
focus/when-visible.js
towhen/focusable.js
focus/within.js
tostyle/focus-within.js
focus/disable-focus
tomaintain/disabled
focus/trap
tomaintain/focus-trapped
1.0.0-beta.7
Changes compared to 1.0.0-beta-6
style/focus-source
has removed.next()
and.repeat()
methods- added
ally.noConflict()
to UMD bundle - mostly website/docs related changes
Changes compared to 1.0.0-beta-4
- removing
maintain/focus-trapped
as it has been deprecated since 0.0.7 - exposing all internal modules in UMD build as well
Changes compared to 1.0.0-beta-3
- removing
get/parents
from public API (ally.get.parents
) - renaming
ally.when.visible
toally.when.visibleArea
as the docs say
Changes compared to v0.0.7
- moving dependencies from bower to npm
- moving source from AMD to ES6 Module Syntax
- adding ES6 build infrastructure - issue #1
- adding unit tests - issue #2
- adding
query/first-tabbable
(replacingfocus/first
) to find the first keyboard focusable element in a sub-tree - unifying API of all functions, see the API docs
- adding
strategy: 'strict'
option toquery/focusable
to find elements by filters unavailable toquerySelectorAll()
- i.e. Shadow DOM without the "Shadow Piercing Descendant Combinator", scrollable containers,-webkit-user-modify: read-write
- issue #17, issue #21 - refactoring
is/focusable
to also identify "edge-cases" - issue #17, issue #20, issue #21 - adding
is/focus-relevant
to identify technically focusable elements (refactored fromis/focusable
) - adding
is/only-tabbable
to identify elements that cannot be focused by script, but by keyboard - removing "dimension check" from
is/visible
- issue #14 query/focusable
no longer considers<html>
and<body>
focusable - issue #31- adding
element/disabled
(refactored fromfocus/disabled
) - issue #33 - adding
when/key
to observe simple keyboard input - issue #47 - adding
get/insignificant-branches
to find branches not relevant to a given set of elements - issue #32 - adding
maintain/hidden
to hide everything in the DOM that is not relevant to a given set of elements - issue #46
Breaking Changes
src/
was ES5 and AMD, it is now ES6 - AMD components are now available atdist/amd/
- dropping
focus/first
in favor ofquery/first-tabbable
dom/is-valid-area
now returnsfalse
for elements that are not<area>
dom/is-valid-tabindex
now returnsfalse
for elements withouttabindex
attribute- see the API docs for the new function signatures
- renaming files in
src
:dom/active-elements.js
toget/active-elements.js
dom/focus-target.js
toget/focus-target.js
dom/is-disabled.js
tois/disabled.js
dom/is-focusable.js
tois/focusable.js
dom/is-shadowed.js
tois/shadowed.js
dom/is-tabbable.js
tois/tabbable.js
dom/is-valid-area.js
tois/valid-area.js
dom/is-valid-tabindex.js
tois/valid-tabindex.js
dom/is-visible.js
tois/visible.js
dom/node-array.js
toutil/node-array.js
dom/path.js
toget/parents.js
dom/query-focusable.js
toquery/focusable.js
dom/query-tabbable.js
toquery/tabbable.js
dom/query-tabsequence.js
toquery/tabsequence.js
dom/shadow-host-ancestors.js
toget/shadow-host-parents.js
dom/when-visible.js
towhen/visible-area.js
dom/shadow-host.js
toget/shadow-host.js
dom/sort-tabindex.js
toutil/sort-elements-by-tabindex.js
dom/visible-quotient.js
toutil/visible-area.js
event/interaction-type-listener.js
toobserve/interaction-type.js
focus/source.js
tostyle/focus-source.js
focus/when-visible.js
towhen/focusable.js
focus/within.js
tostyle/focus-within.js
focus/disable-focus
tomaintain/disabled
focus/trap
tomaintain/focus-trapped
1.0.0-beta.6
Changes compared to 1.0.0-beta-4
- removing
maintain/focus-trapped
as it has been deprecated since 0.0.7 - exposing all internal modules in UMD build as well
Changes compared to 1.0.0-beta-3
- removing
get/parents
from public API (ally.get.parents
) - renaming
ally.when.visible
toally.when.visibleArea
as the docs say
Changes compared to v0.0.7
- moving dependencies from bower to npm
- moving source from AMD to ES6 Module Syntax
- adding ES6 build infrastructure - issue #1
- adding unit tests - issue #2
- adding
query/first-tabbable
(replacingfocus/first
) to find the first keyboard focusable element in a sub-tree - unifying API of all functions, see the API docs
- adding
strategy: 'strict'
option toquery/focusable
to find elements by filters unavailable toquerySelectorAll()
- i.e. Shadow DOM without the "Shadow Piercing Descendant Combinator", scrollable containers,-webkit-user-modify: read-write
- issue #17, issue #21 - refactoring
is/focusable
to also identify "edge-cases" - issue #17, issue #20, issue #21 - adding
is/focus-relevant
to identify technically focusable elements (refactored fromis/focusable
) - adding
is/only-tabbable
to identify elements that cannot be focused by script, but by keyboard - removing "dimension check" from
is/visible
- issue #14 query/focusable
no longer considers<html>
and<body>
focusable - issue #31- adding
element/disabled
(refactored fromfocus/disabled
) - issue #33 - adding
when/key
to observe simple keyboard input - issue #47 - adding
get/insignificant-branches
to find branches not relevant to a given set of elements - issue #32 - adding
maintain/hidden
to hide everything in the DOM that is not relevant to a given set of elements - issue #46
Breaking Changes
src/
was ES5 and AMD, it is now ES6 - AMD components are now available atdist/amd/
- dropping
focus/first
in favor ofquery/first-tabbable
dom/is-valid-area
now returnsfalse
for elements that are not<area>
dom/is-valid-tabindex
now returnsfalse
for elements withouttabindex
attribute- see the API docs for the new function signatures
- renaming files in
src
:dom/active-elements.js
toget/active-elements.js
dom/focus-target.js
toget/focus-target.js
dom/is-disabled.js
tois/disabled.js
dom/is-focusable.js
tois/focusable.js
dom/is-shadowed.js
tois/shadowed.js
dom/is-tabbable.js
tois/tabbable.js
dom/is-valid-area.js
tois/valid-area.js
dom/is-valid-tabindex.js
tois/valid-tabindex.js
dom/is-visible.js
tois/visible.js
dom/node-array.js
toutil/node-array.js
dom/path.js
toget/parents.js
dom/query-focusable.js
toquery/focusable.js
dom/query-tabbable.js
toquery/tabbable.js
dom/query-tabsequence.js
toquery/tabsequence.js
dom/shadow-host-ancestors.js
toget/shadow-host-parents.js
dom/when-visible.js
towhen/visible-area.js
dom/shadow-host.js
toget/shadow-host.js
dom/sort-tabindex.js
toutil/sort-elements-by-tabindex.js
dom/visible-quotient.js
toutil/visible-area.js
event/interaction-type-listener.js
toobserve/interaction-type.js
focus/source.js
tostyle/focus-source.js
focus/when-visible.js
towhen/focusable.js
focus/within.js
tostyle/focus-within.js
focus/disable-focus
tomaintain/disabled
focus/trap
tomaintain/focus-trapped
1.0.0-beta.4 - preview 4
Changes compared to 1.0.0-beta-3
- removing
get/parents
from public API (ally.get.parents
) - renaming
ally.when.visible
toally.when.visibleArea
as the docs say
Changes compared to v0.0.7
- moving dependencies from bower to npm
- moving source from AMD to ES6 Module Syntax
- adding ES6 build infrastructure - issue #1
- adding unit tests - issue #2
- adding
query/first-tabbable
(replacingfocus/first
) to find the first keyboard focusable element in a sub-tree - unifying API of all functions, see the API docs
- adding
strategy: 'strict'
option toquery/focusable
to find elements by filters unavailable toquerySelectorAll()
- i.e. Shadow DOM without the "Shadow Piercing Descendant Combinator", scrollable containers,-webkit-user-modify: read-write
- issue #17, issue #21 - refactoring
is/focusable
to also identify "edge-cases" - issue #17, issue #20, issue #21 - adding
is/focus-relevant
to identify technically focusable elements (refactored fromis/focusable
) - adding
is/only-tabbable
to identify elements that cannot be focused by script, but by keyboard - removing "dimension check" from
is/visible
- issue #14 query/focusable
no longer considers<html>
and<body>
focusable - issue #31- adding
element/disabled
(refactored fromfocus/disabled
) - issue #33 - adding
when/key
to observe simple keyboard input - issue #47 - adding
get/insignificant-branches
to find branches not relevant to a given set of elements - issue #32 - adding
maintain/hidden
to hide everything in the DOM that is not relevant to a given set of elements - issue #46
Breaking Changes
src/
was ES5 and AMD, it is now ES6 - AMD components are now available atdist/amd/
- dropping
focus/first
in favor ofquery/first-tabbable
dom/is-valid-area
now returnsfalse
for elements that are not<area>
dom/is-valid-tabindex
now returnsfalse
for elements withouttabindex
attribute- see the API docs for the new function signatures
- renaming files in
src
:dom/active-elements.js
toget/active-elements.js
dom/focus-target.js
toget/focus-target.js
dom/is-disabled.js
tois/disabled.js
dom/is-focusable.js
tois/focusable.js
dom/is-shadowed.js
tois/shadowed.js
dom/is-tabbable.js
tois/tabbable.js
dom/is-valid-area.js
tois/valid-area.js
dom/is-valid-tabindex.js
tois/valid-tabindex.js
dom/is-visible.js
tois/visible.js
dom/node-array.js
toutil/node-array.js
dom/path.js
toget/parents.js
dom/query-focusable.js
toquery/focusable.js
dom/query-tabbable.js
toquery/tabbable.js
dom/query-tabsequence.js
toquery/tabsequence.js
dom/shadow-host-ancestors.js
toget/shadow-host-parents.js
dom/when-visible.js
towhen/visible-area.js
dom/shadow-host.js
toget/shadow-host.js
dom/sort-tabindex.js
toutil/sort-elements-by-tabindex.js
dom/visible-quotient.js
toutil/visible-area.js
event/interaction-type-listener.js
toobserve/interaction-type.js
focus/source.js
tostyle/focus-source.js
focus/when-visible.js
towhen/focusable.js
focus/within.js
tostyle/focus-within.js
focus/disable-focus
tomaintain/disabled
focus/trap
tomaintain/focus-trapped
1.0.0-beta.3 - preview 3
Changes compared to v0.0.7
- moving dependencies from bower to npm
- moving source from AMD to ES6 Module Syntax
- adding ES6 build infrastructure - issue #1
- adding unit tests - issue #2
- adding
query/first-tabbable
(replacingfocus/first
) to find the first keyboard focusable element in a sub-tree - unifying API of all functions, see the API docs
- adding
strategy: 'strict'
option toquery/focusable
to find elements by filters unavailable toquerySelectorAll()
- i.e. Shadow DOM without the "Shadow Piercing Descendant Combinator", scrollable containers,-webkit-user-modify: read-write
- issue #17, issue #21 - refactoring
is/focusable
to also identify "edge-cases" - issue #17, issue #20, issue #21 - adding
is/focus-relevant
to identify technically focusable elements (refactored fromis/focusable
) - adding
is/only-tabbable
to identify elements that cannot be focused by script, but by keyboard - removing "dimension check" from
is/visible
- issue #14 query/focusable
no longer considers<html>
and<body>
focusable - issue #31- adding
element/disabled
(refactored fromfocus/disabled
) - issue #33 - adding
when/key
to observe simple keyboard input - issue #47 - adding
get/insignificant-branches
to find branches not relevant to a given set of elements - issue #32 - adding
maintain/hidden
to hide everything in the DOM that is not relevant to a given set of elements - issue #46
Breaking Changes
src/
was ES5 and AMD, it is now ES6 - AMD components are now available atdist/amd/
- dropping
focus/first
in favor ofquery/first-tabbable
dom/is-valid-area
now returnsfalse
for elements that are not<area>
dom/is-valid-tabindex
now returnsfalse
for elements withouttabindex
attribute- see the API docs for the new function signatures
- renaming files in
src
:dom/active-elements.js
toget/active-elements.js
dom/focus-target.js
toget/focus-target.js
dom/is-disabled.js
tois/disabled.js
dom/is-focusable.js
tois/focusable.js
dom/is-shadowed.js
tois/shadowed.js
dom/is-tabbable.js
tois/tabbable.js
dom/is-valid-area.js
tois/valid-area.js
dom/is-valid-tabindex.js
tois/valid-tabindex.js
dom/is-visible.js
tois/visible.js
dom/node-array.js
toutil/node-array.js
dom/path.js
toget/parents.js
dom/query-focusable.js
toquery/focusable.js
dom/query-tabbable.js
toquery/tabbable.js
dom/query-tabsequence.js
toquery/tabsequence.js
dom/shadow-host-ancestors.js
toget/shadow-host-parents.js
dom/when-visible.js
towhen/visible-area.js
dom/shadow-host.js
toget/shadow-host.js
dom/sort-tabindex.js
toutil/sort-elements-by-tabindex.js
dom/visible-quotient.js
toutil/visible-area.js
event/interaction-type-listener.js
toobserve/interaction-type.js
focus/source.js
tostyle/focus-source.js
focus/when-visible.js
towhen/focusable.js
focus/within.js
tostyle/focus-within.js
focus/disable-focus
tomaintain/disabled
focus/trap
tomaintain/focus-trapped