# ally.is.onlyTabbable
Determines if an element is considered tabbable and not focusable.
# Description
An element is considered tabbable and not focusable if the element is part of the document's focus navigation sequence, but cannot be focused by script.
Consult the data tables what browsers consider focusable and what ally.js fails to consider focusable to learn how HTML elements behave.
# Usage
var element = document.getElementById('victim');
var isOnlyTabbable = ally.is.onlyTabbable(element);
# Arguments
| Name | Type | Default | Description |
|---|---|---|---|
| element | HTMLElement |
required | The Element to test. |
The underlying rules can also be accessed in the options argument style by calling ally.is.onlyTabbable.rules(options):
| Name | Type | Default | Description |
|---|---|---|---|
| context | <selector> |
required | The element to examine. The first element of a collection is used. |
| except | <focus identification exception> |
{} |
The Element to test. |
# Returns
Boolean, true if the element is only tabbable.
# Throws
TypeError if element argument is not of type HTMLElement.
# Changes
- Since
v1.1.0all<object>elements in Internet Explorer are not considered only tabbable anymore. - Since
v1.1.0exceptions can be passed toally.is.onlyTabbable.rules(options). - Since
v1.1.0the state of the<iframe>or<object>element in which the currently examined element is hosted in is considered. - Since
v1.1.0elements must be visible to be considered only tabbable. - Since
v1.4.0SVG elements are no longer considered only tabbable in IE9+, Edge12+ and Firefox 51+.
# Notes
There is no way to feature detect if an element is tabbable or not. The Element.tabIndex property gives some indication, but ultimately user agent sniffing (via platform.js) is done internally to fix mismatches.
Even though SVG elements are focusable by script in Internet Explorer, they may lack the .focus() and .blur() methods. In order to safely manage focus for these elements use ally.element.focus and ally.element.blur.
# Related resources
-
ally.is.focusRelevantis used to identify elements that can receive focus -
ally.is.focusableidentifies focusable elements -
ally.is.tabbableidentifies keyboard focusable elements