# 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.0
all<object>
elements in Internet Explorer are not considered only tabbable anymore. - Since
v1.1.0
exceptions can be passed toally.is.onlyTabbable.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
v1.1.0
elements must be visible to be considered only tabbable. - Since
v1.4.0
SVG 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.focusRelevant
is used to identify elements that can receive focus -
ally.is.focusable
identifies focusable elements -
ally.is.tabbable
identifies keyboard focusable elements