Various focus indicator examples
Guidelines: Passing
Total bug count: 0
Popup appears on focus
Expected Result:
- Failure count for this test case: 0
- axe-core findings for this test case (initial load): 0
- axe-core findings that require additional scans: 0
| Rules | Description | Bug Count | SCs |
|---|---|---|---|
| passing |
The button doesn't have a traditional focus indicator, but its accessible name "close" appears on hover/focus. Note: while this revealed content does not have a means to dismiss it, it does not fail 1.4.13 Content on Hover or Focus. |
0 | N/A |
Tab widget
Apples
This tab widget requires explicit activation of a tab to render its associated tabpanel.
Here's a link just to test keyboard tabbing.
(it's odd talking about tabs, and tabs.)
Bananas
This is an example of a heading being used to populate the
tab's label, while also not removing heading
from the tabpanel. This is done by adding
the value "keep" to data-atabs-heading.
There are two headings here
The tab is getting its label from the
data-atabs-tab-label. The heading is
kept in the tabpanel because it does
not have the data-atabs-heading
attribute.
It wouldn't make much sense
If the contents of a tabpanel contain
additional sub headings, it wouldn't make sense to remove
the initial heading from the tabpanel.
Doing so would create a gap in the heading structure.
Expected Result:
- Failure count for this test case: 0
- axe-core findings for this test case (initial load): 0
- axe-core findings that require additional scans: 0
| Rules | Description | Bug Count | SCs |
|---|---|---|---|
| passing |
All focusable elements of the tab widget (the tabs, tabpanel and hyperlink within the tab panel) have visible focus indicators (outline, custom outline, box-shadow, or a combination). NOTE: if one were hitting shift + tab to return to the tablist from content within a tabpanel, or after a tabpanel that contains no focusable elements, focus purposefully skips the tabpanel container so as to reduce the effort for a user to return to the tablist to select a new tab. |
0 | N/A |
Visually hidden hyperlink
Expected Result:
- Failure count for this test case: 0
- axe-core findings for this test case (initial load): 0
- axe-core findings that require additional scans: 0
| Rules | Description | Bug Count | SCs |
|---|---|---|---|
| passing |
The hyperlink is visually hidden by default, but appears when receiving keyboard focus. |
0 | N/A |
Video controls
Expected Result:
- Failure count for this test case: 0
- axe-core findings for this test case (initial load): 0
- axe-core findings that require additional scans: 0
| Rules | Description | Bug Count | SCs |
|---|---|---|---|
| passing |
While the UA outline has been overridden and set to none for the video element, when focused it still has a background color change. The controls of the video also retain their outline focus indicators, regardless of the outline: none set to the video element itself. |
0 | N/A |
Object element
Expected Result:
- Failure count for this test case: 0
- axe-core findings for this test case (initial load): 0
- axe-core findings that require additional scans: 0
| Rules | Description | Bug Count | SCs |
|---|---|---|---|
| passing |
Even though a class is set to the object to attempt to override the default UA outline style, the video rendered within the object does not respect the author style, and the UA focus indicator style is still displayed. |
0 | N/A |
contenteditable div without an outline
Expected Result:
- Failure count for this test case: 0
- axe-core findings for this test case (initial load): 0
- axe-core findings that require additional scans: 0
| Rules | Description | Bug Count | SCs |
|---|---|---|---|
| passing |
While the UA outline of the content editable element has been set to none, the text cursor is still available and counts as a (poor) focus indicator, allowing for a technical pass of Focus Visible. This is generally not considered a good user experience. |
0 | N/A |
Text field
Expected Result:
- Failure count for this test case: 0
- axe-core findings for this test case (initial load): 0
- axe-core findings that require additional scans: 0
| Rules | Description | Bug Count | SCs |
|---|---|---|---|
| passing |
While the UA outline of the text input element has been set to none, the text cursor is still available and counts as a (poor) focus indicator, allowing for a technical pass of Focus Visible. This is generally not considered a good user experience. |
0 | N/A |
Textarea
Expected Result:
- Failure count for this test case: 0
- axe-core findings for this test case (initial load): 0
- axe-core findings that require additional scans: 0
| Rules | Description | Bug Count | SCs |
|---|---|---|---|
| passing |
While the UA outline of the textarea element has been set to none, the text cursor is still available and counts as a (poor) focus indicator, allowing for a technical pass of Focus Visible. This is generally not considered a good user experience. |
0 | N/A |
Standard button element
Expected Result:
- Failure count for this test case: 0
- axe-core findings for this test case (initial load): 0
- axe-core findings that require additional scans: 0
| Rules | Description | Bug Count | SCs |
|---|---|---|---|
| passing |
The default UA outline for the button is present when focused. |
0 | N/A |
Button variant 01
Expected Result:
- Failure count for this test case: 0
- axe-core findings for this test case (initial load): 0
- axe-core findings that require additional scans: 0
| Rules | Description | Bug Count | SCs |
|---|---|---|---|
| passing |
While the deafult UA focus outline has been removed, a replacement focus style (changing the border of the button) has been specified. The border of #000 against the #008000 (dark green) background has a contrast ratio of 4.08:1, also passing non-text contrast requirements for the focus indicator. |
0 | N/A |
Button variant 02
Expected Result:
- Failure count for this test case: 0
- axe-core findings for this test case (initial load): 0
- axe-core findings that require additional scans: 0
| Rules | Description | Bug Count | SCs |
|---|---|---|---|
| passing | While a poor focus indicator, a dot appears just outside the right side of this button on focus. A small focus indicator such as this unfortunately passes Focus Visible. | 0 | N/A |
Button variant 03
Expected Result:
- Failure count for this test case: 0
- axe-core findings for this test case (initial load): 0
- axe-core findings that require additional scans: 0
| Rules | Description | Bug Count | SCs |
|---|---|---|---|
| passing | The default focus indicator is set to 0, and a border of the same background as the button has been declared. But, an inset 2px white box shadow has also been added,which creates a white border between the button's background and the button's green border - making it appear a green outline appears around the button when focused. | 0 | N/A |
Button variant 04
Expected Result:
- Failure count for this test case: 0
- axe-core findings for this test case (initial load): 0
- axe-core findings that require additional scans: 0
| Rules | Description | Bug Count | SCs |
|---|---|---|---|
| passing | A 3px left border focus indicator is provided along the left side of the button on focus | 0 | N/A |
Button variant 05
Expected Result:
- Failure count for this test case: 0
- axe-core findings for this test case (initial load): 0
- axe-core findings that require additional scans: 0
| Rules | Description | Bug Count | SCs |
|---|---|---|---|
| passing | A text underline focus indicator is provided for the button on focus. | 0 | N/A |
Button variant 06
Expected Result:
- Failure count for this test case: 0
- axe-core findings for this test case (initial load): 0
- axe-core findings that require additional scans: 0
| Rules | Description | Bug Count | SCs |
|---|---|---|---|
| passing | On focus of this button, the visible text label becomes bold. Being a visual style update that appears on focus, this counts as a focus indicator, though one that could be easy to miss. | 0 | N/A |
Button variant 07
Expected Result:
- Failure count for this test case: 0
- axe-core findings for this test case (initial load): 0
- axe-core findings that require additional scans: 0
| Rules | Description | Bug Count | SCs |
|---|---|---|---|
| passing | On focus of this button, "::" characters are visually presented before/after the visible text label. Being a visual indicator that appears on focus, this counts as a focus indicator, though one that could be easy to miss. | 0 | N/A |
Button variant 08
Expected Result:
- Failure count for this test case: 0
- axe-core findings for this test case (initial load): 0
- axe-core findings that require additional scans: 0
| Rules | Description | Bug Count | SCs |
|---|---|---|---|
| passing | The focus indicator on the button element has been removed, but a focus-within style has been applied to the parent element when the button receives keyboard focus. | 0 | N/A |
Grid with non-interactive gridcells containing focusable elements
Expected Result:
- Failure count for this test case: 0
- axe-core findings for this test case (initial load): 0
- axe-core findings that require additional scans: 0
| Rules | Description | Bug Count | SCs |
|---|---|---|---|
| passing |
This example is a table element that has been given a role of The grid cells are non-interactive and do not receive keyboard focus. The links and buttons inside each cell are individually focusable and have focus indicators. This exapmle fully passes 2.4.7 Focus Visible, as all focusable elements produce visible focus indicators.
There is the possibility some might claim this to fail Name, Role, Value or Info and Relationships
because this table was given the role of grid, but none of the expected keyboard behaviors for an
elemetn with Note some screen readers, such as NVDA (tested April 2026 with latest release), will ignore the grid role. Windows Narrator, however, will announce the grid role, but someone will noticeably not be able to use expected arrow key navigation, since it has not been implemented. Only the element with | 0 | N/A |