# ally.is.focusable
Determines if an element is considered focusable.
# Description
An element is considered focusable if it is ally.is.focusRelevant, ally.is.visible and not ally.is.disabled.
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 isFocusable = ally.is.focusable(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.focusable.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 focusable.
# Throws
TypeError if element argument is not of type HTMLElement.
# Changes
- Since
v1.1.0all<area>elements are considered focus-relevant, but only valid<area>elements are considered focusable. - Since
v1.1.0exceptions can be passed toally.is.focusable.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.0hidden<object>elements are focusable in Chrome - Blink 586191.
# Notes
# Related resources
-
ally.is.focusRelevantis used to identify elements that can receive focus -
ally.is.focusableidentifies elements that are focusable -
ally.query.focusablefinds focusable elements in the DOM -
ally.is.validAreais used to identify if<area>elements satisfy the requirements to be considered focusable