fomantic / Fomantic-UI

Fomantic-UI is the official community fork of Semantic-UI
https://fomantic-ui.com
MIT License
3.55k stars 328 forks source link

[ux] Native tab focus must not be visually supressed #2799

Open mvorisek opened 1 year ago

mvorisek commented 1 year ago

Feature Request

When tabindex="0" is set to a (div) button, the div can be focused by a tab.

Currently when such div is focused, no native glow is present. I have identified this is because: image outline: none style.

Example (if possible)

  1. open https://dev.atk4.org/demos/form/form.php
  2. click the first input field
  3. press tab
  4. notice the button background changed very slightly, but native tab outline around the button is not present

Screenshot (if possible)

normal: image

focused: image

compare it with tab glow in https://dev.atk4.org/demos/interactive/paginator.php for example: image

Expected fix/behaviour

Not sure why there is outline: none, but at least for :focus-visible pseudo class no outline: none style must be applied.

image (focused button without outline: none style, notice the native outline/border around the button, the color is not much different visually, but the visual dimension difference makes it very easy to understand what button is (tab) focused)

ko2in commented 1 year ago

Yes. As far as I know, it's by design ever since we've forked from SUI.

This less file is your friend for any customization where you can add the outline that suits your design and color pattern.

mvorisek commented 1 year ago

This is UX problem of Fomantic-UI. It is present also with dropdown when navigated via tab.

regex to find empty outlines: outline(-\w+)*:.*(non|0)

local fix can be:

*:focus-visible {
  outline: 2px solid darkblue !important;
}

but this is not optimal, as it will override every element, even the ones that Fomantic-UI styles now like inputs.

lubber-de commented 1 year ago

Removing the outline on focus for some components was decided by design since SUI was released in favor of using a different color of the whole component when the component gets focused. Showing the outline does not fit the default theme anymore and would be a breaking change.

I prepared a PR which allows to customize that if desired and overrides the outline in case of focus by #2801