Focusable Elements (Quick) - ally.js Compatibility Table

The following tables show the differences between what browsers consider focusable and what ally.js identifies using strategy: quick.

Note that touch devices (without a physical keyboard) only show elements as tabbable (keyboard focusable), that can be navigated to through the on-screen keyboard (or "virtual keyboard").

Document Elements
Element Chrome Firefox IE Opera Safari WebKit Nightly Chrome Mobile (Android) Safari (iOS)
47.0 49.0 43.0 46.0 9.0 10.0 11.0 12.10240 13.11082 34.0 6.2 8.0 9.0 602.1 47.0 9.0
<html>
2 1
inert
-1
inert
-1
focusable inert
-1 E S
focusable inert
-1 E S
tabbable inert
0
tabbable inert
0
tabbable inert
0
inert
0
inert
0
inert
-1
inert
-1
inert
-1
inert
-1
inert
-1
inert
-1
inert
-1
<body>
3 1
focusable inert
-1 E S
focusable inert
-1 E S
focusable inert
-1 E S
focusable inert
-1 E S
tabbable inert
0 E
tabbable inert
0
tabbable inert
0 E
focusable inert
0 E S
focusable inert
0 E S
focusable inert
-1 E S
focusable inert
-1 E S
focusable inert
-1 E S
focusable inert
-1 E S
focusable inert
-1 E S
focusable inert
-1 E S
focusable inert
-1 E S
Label Element
Element Chrome Firefox IE Opera Safari WebKit Nightly Chrome Mobile (Android) Safari (iOS)
47.0 49.0 43.0 46.0 9.0 10.0 11.0 12.10240 13.11082 34.0 6.2 8.0 9.0 602.1 47.0 9.0
<label for=""> with <input id="">
6
redirecting
-1 T
redirecting
-1 T
redirecting
-1 T
redirecting
-1 T
inert redirecting
0 7
inert redirecting
0 7
inert redirecting
0 7
inert redirecting
0 7
inert redirecting
0
redirecting
-1 T
redirecting
-1 T
redirecting
-1 T
redirecting
-1 T
redirecting
-1 T
redirecting
-1 T
redirecting
-1 T
<label> with nested <input>
6
redirecting
-1 T
redirecting
-1 T
redirecting
-1 T
redirecting
-1 T
inert redirecting
0 7
inert redirecting
0 7
inert redirecting
0 7
inert redirecting
0 7
inert redirecting
0
redirecting
-1 T
redirecting
-1 T
redirecting
-1 T
redirecting
-1 T
redirecting
-1 T
redirecting
-1 T
redirecting
-1 T
Editable Elements
Element Chrome Firefox IE Opera Safari WebKit Nightly Chrome Mobile (Android) Safari (iOS)
47.0 49.0 43.0 46.0 9.0 10.0 11.0 12.10240 13.11082 34.0 6.2 8.0 9.0 602.1 47.0 9.0
<span style="user-modify: read-write">
8
tabbable inert
0
tabbable inert
0
inert
-1
inert
-1
inert
0
inert
0
inert
0
tabbable inert
0
tabbable inert
0
tabbable inert
0
tabbable inert
0
tabbable inert
0
tabbable inert
0
tabbable inert
0
focusable inert
0
tabbable inert
0
Image Maps
Element Chrome Firefox IE Opera Safari WebKit Nightly Chrome Mobile (Android) Safari (iOS)
47.0 49.0 43.0 46.0 9.0 10.0 11.0 12.10240 13.11082 34.0 6.2 8.0 9.0 602.1 47.0 9.0
<area> with <img usemap="#…">
inert
0 R
inert
0 R
tabbable inert
0 R
tabbable inert
0 R
inert
0 R
inert
0 R
inert
0 R
inert
0 R
inert
0 R
inert
0 R
inert
0 R
inert
0 R
inert
0 R
inert
0 R
inert
0 R
inert
0 R
<area> with <img usemap="#…" tabindex="-1">
inert
0 R
inert
0 R
tabbable inert
0 R 14
tabbable inert
0 R 14
focusable inert
0 S R
focusable inert
0 S R
focusable inert
0 S R
focusable inert
0 S R
focusable inert
0 S R
inert
0 R
inert
0 R
inert
0 R
inert
0 R
inert
0 R
inert
0 R
inert
0 R
<input> between <img usemap="#map"> and <img usemap="#map">
45
tabbable
0
tabbable
0
focusable tabbable
0 44
focusable tabbable
0 44
tabbable
0
tabbable
0
tabbable
0
tabbable
0
tabbable
0
tabbable
0
tabbable
0
tabbable
0
tabbable
0
tabbable
0
focusable
0
tabbable
0
<area> child of <map name="#…"> with <object type="image/png" usemap="#…">
inert
0 R
inert
0 R
focusable inert
0 R
focusable inert
0 R
inert
0 R
inert
0 R
inert
0 R
inert
0 R
inert
0 R
inert
0 R
inert
0 R
inert
0 R
inert
0 R
inert
0 R
inert
0 R
inert
0 R
<area href=""> <object type="image/png" usemap="#…" >
inert
0 R
inert
0 R
focusable inert
0 R
focusable inert
0 R
inert
0 R
inert
0 R
inert
0 R
inert
0 R
inert
0 R
inert
0 R
inert
0 R
inert
0 R
inert
0 R
inert
0 R
inert
0 R
inert
0 R
Shadow DOM
Element Chrome Firefox IE Opera Safari WebKit Nightly Chrome Mobile (Android) Safari (iOS)
47.0 49.0 43.0 46.0 9.0 10.0 11.0 12.10240 13.11082 34.0 6.2 8.0 9.0 602.1 47.0 9.0
::shadow
18 19
inert host inert
-1 C
inert host inert
-1 C
inert
-1
inert
-1
inert
0
inert
0
inert
0
inert
0
inert
0
inert host inert
-1 C
inert
-1
inert
-1
inert
-1
inert
-1
inert host inert
-1 C
inert
-1
<input tabindex="-1"> within ::shadow
18 20
focusable
-1 T R
focusable
-1 T R
focusable inert
-1 R
focusable inert
-1 R
inert
null M 67
inert
null M 67
inert
null M 67
inert
null M 67
inert
null M 67
focusable
-1 T R
inert
null M 67
inert
null M 67
inert
null M 67
inert
null M 67
focusable
-1 T R
inert
null M 67
<input tabindex="0"> within ::shadow
18 20
tabbable
0 T R
tabbable
0 T R
tabbable inert
0 R
tabbable inert
0 R
inert
null M 67
inert
null M 67
inert
null M 67
inert
null M 67
inert
null M 67
tabbable
0 T R
inert
null M 67
inert
null M 67
inert
null M 67
inert
null M 67
focusable
0 T R
inert
null M 67
<input tabindex="2"> within ::shadow
18 20
tabbable
2 T R
tabbable
2 T R
tabbable inert
2 R
tabbable inert
2 R
inert
null M 67
inert
null M 67
inert
null M 67
inert
null M 67
inert
null M 67
tabbable
2 T R
inert
null M 67
inert
null M 67
inert
null M 67
inert
null M 67
focusable
2 T R
inert
null M 67
<input tabindex="1"> within ::shadow within ::shadow
18 20
tabbable
1 T R
tabbable
1 T R
tabbable inert
1 R
tabbable inert
1 R
inert
null M 67
inert
null M 67
inert
null M 67
inert
null M 67
inert
null M 67
tabbable
1 T R
inert
null M 67
inert
null M 67
inert
null M 67
inert
null M 67
focusable
1 T R
inert
null M 67
<input tabindex="-1"> within ::shadow[tabindex="-1"]
18 20 51
focusable
-1 T R
focusable
-1 T R
focusable inert
-1 R
focusable inert
-1 R
inert
null M 67
inert
null M 67
inert
null M 67
inert
null M 67
inert
null M 67
focusable
-1 T R
inert
null M 67
inert
null M 67
inert
null M 67
inert
null M 67
focusable
-1 T R
inert
null M 67
<input tabindex="0"> within ::shadow[tabindex="-1"]
18 20 51
tabbable
0 T R
tabbable
0 T R
tabbable inert
0 R
tabbable inert
0 R
inert
null M 67
inert
null M 67
inert
null M 67
inert
null M 67
inert
null M 67
tabbable
0 T R
inert
null M 67
inert
null M 67
inert
null M 67
inert
null M 67
focusable
0 T R
inert
null M 67
<input tabindex="2"> within ::shadow[tabindex="-1"]
18 20 51
tabbable
2 T R
tabbable
2 T R
tabbable inert
2 R
tabbable inert
2 R
inert
null M 67
inert
null M 67
inert
null M 67
inert
null M 67
inert
null M 67
tabbable
2 T R
inert
null M 67
inert
null M 67
inert
null M 67
inert
null M 67
focusable
2 T R
inert
null M 67
<input tabindex="1"> within ::shadow within ::shadow[tabindex="-1"]
18 20 51
tabbable
1 T R
tabbable
1 T R
tabbable inert
1 R
tabbable inert
1 R
inert
null M 67
inert
null M 67
inert
null M 67
inert
null M 67
inert
null M 67
tabbable
1 T R
inert
null M 67
inert
null M 67
inert
null M 67
inert
null M 67
focusable
1 T R
inert
null M 67
<input tabindex="-1"> within ::shadow[tabindex="0"]
18 20
focusable
-1 T R
focusable
-1 T R
focusable inert
-1 R
focusable inert
-1 R
inert
null M 67
inert
null M 67
inert
null M 67
inert
null M 67
inert
null M 67
focusable
-1 T R
inert
null M 67
inert
null M 67
inert
null M 67
inert
null M 67
focusable
-1 T R
inert
null M 67
<input tabindex="0"> within ::shadow[tabindex="0"]
18 20
tabbable
0 T R
tabbable
0 T R
tabbable inert
0 R
tabbable inert
0 R
inert
null M 67
inert
null M 67
inert
null M 67
inert
null M 67
inert
null M 67
tabbable
0 T R
inert
null M 67
inert
null M 67
inert
null M 67
inert
null M 67
focusable
0 T R
inert
null M 67
<input tabindex="2"> within ::shadow[tabindex="0"]
18 20
tabbable
2 T R
tabbable
2 T R
tabbable inert
2 R
tabbable inert
2 R
inert
null M 67
inert
null M 67
inert
null M 67
inert
null M 67
inert
null M 67
tabbable
2 T R
inert
null M 67
inert
null M 67
inert
null M 67
inert
null M 67
focusable
2 T R
inert
null M 67
<input tabindex="1"> within ::shadow within ::shadow[tabindex="0"]
18 20
tabbable
1 T R
tabbable
1 T R
tabbable inert
1 R
tabbable inert
1 R
inert
null M 67
inert
null M 67
inert
null M 67
inert
null M 67
inert
null M 67
tabbable
1 T R
inert
null M 67
inert
null M 67
inert
null M 67
inert
null M 67
focusable
1 T R
inert
null M 67
Iframe Element
Element Chrome Firefox IE Opera Safari WebKit Nightly Chrome Mobile (Android) Safari (iOS)
47.0 49.0 43.0 46.0 9.0 10.0 11.0 12.10240 13.11082 34.0 6.2 8.0 9.0 602.1 47.0 9.0
<iframe src=""> without focusable content
21 22
tabbable focusable
0 S
tabbable focusable
0 S
tabbable focusable
0 E S C
tabbable focusable
0 E S C
focusable
0 C
focusable
0 C
focusable
0 C
focusable
0
focusable
0
tabbable focusable
0 S
tabbable focusable
0 S
tabbable focusable
0 S
tabbable focusable
0 S
tabbable focusable
0 S
focusable
0 S
focusable
0 S
<iframe src=""> with SVG document
21 22
focusable
0 S C
focusable
0 S C
tabbable focusable
0 E S
tabbable focusable
0 E S
focusable
0
focusable
0
focusable
0
focusable
0
focusable
0
focusable
0 S C
focusable
0 S C
focusable
0 S C
focusable
0 S C
focusable
0 S C
focusable
0 S C
focusable
0 S C
content in <iframe>
21 22
inert
null M
inert
null M
inert
null M
inert
null M
inert
null M
inert
null M
inert
null M
inert
null M
inert
null M
inert
null M
inert
null M
inert
null M
inert
null M
inert
null M
inert
null M
inert
null M
Object Element
Element Chrome Firefox IE Opera Safari WebKit Nightly Chrome Mobile (Android) Safari (iOS)
47.0 49.0 43.0 46.0 9.0 10.0 11.0 12.10240 13.11082 34.0 6.2 8.0 9.0 602.1 47.0 9.0
<object type="application/x-shockwave-flash" data="">
31
focusable
0
focusable
0
focusable
-1
focusable
-1
inert
0
focusable tabbable
0 32
tabbable
0
tabbable
0
tabbable
0
focusable
0
focusable
0
focusable
0
focusable
0
focusable
0
focusable
0
focusable
0
<object type="application/x-shockwave-flash" data="" tabindex="0">
31
focusable
0
focusable
0
tabbable
0
tabbable
0
inert
0
focusable tabbable
0 32
tabbable
0
tabbable
0
tabbable
0
focusable
0
focusable
0
focusable
0
focusable
0
focusable
0
focusable
0
focusable
0
SVG Element
Element Chrome Firefox IE Opera Safari WebKit Nightly Chrome Mobile (Android) Safari (iOS)
47.0 49.0 43.0 46.0 9.0 10.0 11.0 12.10240 13.11082 34.0 6.2 8.0 9.0 602.1 47.0 9.0
<rect onfocus="">
33 35
tabbable inert
0 34
tabbable inert
0 34
inert
null M
inert
null M
inert
null M
inert
null M
inert
null M
inert
null M
inert
null M
tabbable inert
0 34
tabbable inert
0
tabbable inert
0
tabbable inert
0 34
tabbable inert
0 34
focusable inert
0 34
focusable inert
0 34
SVG Document in Iframe Element
Element Chrome Firefox IE Opera Safari WebKit Nightly Chrome Mobile (Android) Safari (iOS)
47.0 49.0 43.0 46.0 9.0 10.0 11.0 12.10240 13.11082 34.0 6.2 8.0 9.0 602.1 47.0 9.0
content in <iframe>
21 22
inert
null M
inert
null M
inert
null M
inert
null M
inert
null M
inert
null M
inert
null M
inert
null M
inert
null M
inert
null M
inert
null M
inert
null M
inert
null M
inert
null M
inert
null M
inert
null M
SVG Document in Embed Element
Element Chrome Firefox IE Opera Safari WebKit Nightly Chrome Mobile (Android) Safari (iOS)
47.0 49.0 43.0 46.0 9.0 10.0 11.0 12.10240 13.11082 34.0 6.2 8.0 9.0 602.1 47.0 9.0
content in <embed>
23 24
inert
null M
inert
null M
inert
null M
inert
null M
inert
null M
inert
null M
inert
null M
inert
null M
inert
null M
inert
null M
inert
null M
inert
null M
inert
null M
inert
null M
inert
null M
inert
null M
SVG Document in Object Element
Element Chrome Firefox IE Opera Safari WebKit Nightly Chrome Mobile (Android) Safari (iOS)
47.0 49.0 43.0 46.0 9.0 10.0 11.0 12.10240 13.11082 34.0 6.2 8.0 9.0 602.1 47.0 9.0
content in <object>
25 26
inert
null M
inert
null M
inert
null M
inert
null M
inert
null M
inert
null M
inert
null M
inert
null M
inert
null M
inert
null M
inert
null M
inert
null M
inert
null M
inert
null M
inert
null M
inert
null M
Details Element
Element Chrome Firefox IE Opera Safari WebKit Nightly Chrome Mobile (Android) Safari (iOS)
47.0 49.0 43.0 46.0 9.0 10.0 11.0 12.10240 13.11082 34.0 6.2 8.0 9.0 602.1 47.0 9.0
<summary> within <details>
38
tabbable
0
tabbable
0
inert
-1
inert
-1
inert
0
inert
0
inert
0
inert
0
inert
0
tabbable
0
tabbable
0
tabbable
0
tabbable
0
focusable tabbable
0 39
focusable
0
focusable
0
<summary> within <details tabindex="-1">
38
tabbable
0
tabbable
0
inert
-1
inert
-1
inert
0
inert
0
inert
0
inert
0
inert
0
tabbable
0
tabbable
0
tabbable
0
tabbable
0
focusable tabbable
0 39
focusable
0
focusable
0
<a href=""> within <details open>
38
tabbable
0
tabbable
0
tabbable
0
tabbable
0
tabbable
0
tabbable
0
tabbable
0
tabbable
0
tabbable
0
tabbable
0
tabbable
0
tabbable
0
tabbable
0
focusable tabbable
0 39
focusable
0
focusable
0
<summary> within <details open>
38
tabbable
0
tabbable
0
inert
-1
inert
-1
inert
0
inert
0
inert
0
inert
0
inert
0
tabbable
0
tabbable
0
tabbable
0
tabbable
0
focusable tabbable
0 39
focusable
0
focusable
0
Scrollable Elements
Element Chrome Firefox IE Opera Safari WebKit Nightly Chrome Mobile (Android) Safari (iOS)
47.0 49.0 43.0 46.0 9.0 10.0 11.0 12.10240 13.11082 34.0 6.2 8.0 9.0 602.1 47.0 9.0
<div> child of horizontally overflowing <div style="overflow: auto">
inert
-1
inert
-1
inert
-1
inert
-1
focusable inert
0
focusable inert
0
focusable inert
0
inert
0
inert
0
inert
-1
inert
-1
inert
-1
inert
-1
inert
-1
inert
-1
inert
-1
<div> child of overflowing <div style="overflow: hidden">
inert
-1
inert
-1
inert
-1
inert
-1
focusable inert
0
focusable inert
0
focusable inert
0
inert
0
inert
0
inert
-1
inert
-1
inert
-1
inert
-1
inert
-1
inert
-1
inert
-1
<div> child of overflowing <div style="overflow: scroll">
inert
-1
inert
-1
inert
-1
inert
-1
focusable inert
0
focusable inert
0
focusable inert
0
inert
0
inert
0
inert
-1
inert
-1
inert
-1
inert
-1
inert
-1
inert
-1
inert
-1
<div> child of overflowing <div style="overflow: visible">
inert
-1
inert
-1
inert
-1
inert
-1
focusable inert
0
focusable inert
0
focusable inert
0
inert
0
inert
0
inert
-1
inert
-1
inert
-1
inert
-1
inert
-1
inert
-1
inert
-1
<div> child of not overflowing <div style="overflow: scroll">
inert
-1
inert
-1
inert
-1
inert
-1
focusable inert
0
focusable inert
0
focusable inert
0
inert
0
inert
0
inert
-1
inert
-1
inert
-1
inert
-1
inert
-1
inert
-1
inert
-1
<div> child of not overflowing <div style="overflow: scroll">
inert
-1
inert
-1
inert
-1
inert
-1
focusable inert
0
focusable inert
0
focusable inert
0
inert
0
inert
0
inert
-1
inert
-1
inert
-1
inert
-1
inert
-1
inert
-1
inert
-1
horizontally overflowing <div style="overflow: auto">
inert
-1
inert
-1
tabbable inert
-1
tabbable inert
-1
focusable inert
0
focusable inert
0
focusable inert
0
inert
0
inert
0
inert
-1
inert
-1
inert
-1
inert
-1
inert
-1
inert
-1
inert
-1
overflowing <div style="overflow: hidden">
inert
-1
inert
-1
inert
-1
inert
-1
focusable inert
0
focusable inert
0
focusable inert
0
inert
0
inert
0
inert
-1
inert
-1
inert
-1
inert
-1
inert
-1
inert
-1
inert
-1
overflowing <div style="overflow: scroll">
inert
-1
inert
-1
tabbable inert
-1
tabbable inert
-1
focusable inert
0
focusable inert
0
focusable inert
0
inert
0
inert
0
inert
-1
inert
-1
inert
-1
inert
-1
inert
-1
inert
-1
inert
-1
overflowing <div style="overflow: visible">
inert
-1
inert
-1
inert
-1
inert
-1
focusable inert
0
focusable inert
0
focusable inert
0
inert
0
inert
0
inert
-1
inert
-1
inert
-1
inert
-1
inert
-1
inert
-1
inert
-1
not overflowing <div style="overflow: auto">
inert
-1
inert
-1
tabbable inert
-1
tabbable inert
-1
focusable inert
0
focusable inert
0
focusable inert
0
inert
0
inert
0
inert
-1
inert
-1
inert
-1
inert
-1
inert
-1
inert
-1
inert
-1
overflowing <section style="overflow: scroll">
inert
-1
inert
-1
tabbable inert
-1
tabbable inert
-1
inert
0
inert
0 40
inert
0 40
inert
0
inert
0
inert
-1
inert
-1
inert
-1
inert
-1
inert
-1
inert
-1
inert
-1
<div> child of <div style="overflow: scroll" tabindex="-1">
inert
-1
inert
-1
inert
-1
inert
-1
focusable inert
0
focusable inert
0
focusable inert
0
inert
0
inert
0
inert
-1
inert
-1
inert
-1
inert
-1
inert
-1
inert
-1
inert
-1
Image Element Ismap Attribute
Element Chrome Firefox IE Opera Safari WebKit Nightly Chrome Mobile (Android) Safari (iOS)
47.0 49.0 43.0 46.0 9.0 10.0 11.0 12.10240 13.11082 34.0 6.2 8.0 9.0 602.1 47.0 9.0
<img ismap src=""> child of <a href="">
inert
-1
inert
-1
inert
-1
inert
-1
tabbable inert
0 41
tabbable inert
0 41
tabbable inert
0 41
tabbable inert
0 41
tabbable inert
0 41
inert
-1
inert
-1
inert
-1
inert
-1
inert
-1
inert
-1
inert
-1
<img ismap src=""> child of <a href="" tabindex="-1">
inert
-1
inert
-1
inert
-1
inert
-1
tabbable inert
0 41
tabbable inert
0 41
tabbable inert
0 41
tabbable inert
0 41
tabbable inert
0 41
inert
-1
inert
-1
inert
-1
inert
-1
inert
-1
inert
-1
inert
-1
CSS Flexbox Layout
Element Chrome Firefox IE Opera Safari WebKit Nightly Chrome Mobile (Android) Safari (iOS)
47.0 49.0 43.0 46.0 9.0 10.0 11.0 12.10240 13.11082 34.0 6.2 8.0 9.0 602.1 47.0 9.0
<span> child of <a href="" style="display: flex">
inert
-1
inert
-1
inert
-1
inert
-1
inert
0
focusable inert
0 42
focusable inert
0 42
inert
0
inert
0
inert
-1
inert
-1
inert
-1
inert
-1
inert
-1
inert
-1
inert
-1
<span> child of <div tabindex="-1" style="display: flex">
inert
-1
inert
-1
inert
-1
inert
-1
inert
0
focusable inert
0 42
focusable inert
0 42
inert
0
inert
0
inert
-1
inert
-1
inert
-1
inert
-1
inert
-1
inert
-1
inert
-1
<span style="display: flex">
inert
-1
inert
-1
inert
-1
inert
-1
inert
0
focusable inert
0 42
focusable inert
0 42
inert
0
inert
0
inert
-1
inert
-1
inert
-1
inert
-1
inert
-1
inert
-1
inert
-1
<span> child of <span style="display: flex">
inert
-1
inert
-1
inert
-1
inert
-1
inert
0
focusable inert
0 42
focusable inert
0 42
inert
0
inert
0
inert
-1
inert
-1
inert
-1
inert
-1
inert
-1
inert
-1
inert
-1
<span style="order: 1"> with focusable child
inert
-1
inert
-1
inert
-1
inert
-1
inert
0
focusable inert
0 42
focusable inert
0 42
inert
0
inert
0
inert
-1
inert
-1
inert
-1
inert
-1
inert
-1
inert
-1
inert
-1
Questionable Elements
Element Chrome Firefox IE Opera Safari WebKit Nightly Chrome Mobile (Android) Safari (iOS)
47.0 49.0 43.0 46.0 9.0 10.0 11.0 12.10240 13.11082 34.0 6.2 8.0 9.0 602.1 47.0 9.0
<keygen >
47 48
inert
null M
inert
null M
inert
null M 46
inert
null M 46
inert
null M
inert
null M
inert
null M
inert
null M
inert
null M
inert
null M
inert
null M
inert
null M
inert
null M
inert
null M
inert
null M
inert
null M

Footnotes