Daily Accessibility ReviewFocus Outline Removed on Interactive Elements Without Replacement Indicator #17745
Unanswered
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
Accessibility Issue: Focus Outline Removed on Interactive Elements
Several stylesheets and components explicitly remove the browser's default focus outline (
outline: 0/outline: none) on interactive or focusable elements without providing an alternative visible focus indicator. This violates WCAG 2.2 Success Criterion 2.4.7 – Focus Visible (Level AA) and the stronger 2.4.11 – Focus Appearance (Level AA, new in WCAG 2.2).Removing the focus ring with no replacement makes it impossible for keyboard-only users to know which element is currently focused.
Affected Files (selection)
1.
shell/assets/styles/global/_labeled-input.scss— line 72–75The
SELECT:focusrule removes the focus outline from<select>form controls without providing any other visible indicator.2.
shell/assets/styles/global/_select.scss— lines 65, 113Removes outline inside the custom select dropdown, affecting keyboard navigation within dropdowns.
3.
shell/components/nav/Group.vue— lines 380, 404, 419, 580Navigation group items have their focus outline removed. While some
:focus-visiblerules exist elsewhere in the nav, these rules may still suppress the outline in certain browsers/contexts.4.
shell/components/nav/TopLevelMenu.vue— multiple locations (e.g. lines 1013, 1081, 1085, 1225, 1679)outline: 0; // or outline: none;Several interactive elements in the top-level menu (cluster items, backdrop, buttons) have their focus indicators removed.
Steps to Reproduce
<select>elements and several navigation items, the focus indicator disappears — there is no visible indication of which element has keyboard focus.Suggested Fix
Instead of removing the focus outline globally, use
:focus-visible(which only shows the ring for keyboard focus, not mouse clicks) and ensure a visible alternative is present:The codebase already uses
@include focus-outlinemixin in several places — this pattern should be applied consistently whereveroutline: none/0is set on focusable elements.WCAG References
Beta Was this translation helpful? Give feedback.
All reactions