Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Upcoming focus navigation change in Chromium #3885

Open
4 tasks
boghyon opened this issue Nov 5, 2023 · 5 comments
Open
4 tasks

Upcoming focus navigation change in Chromium #3885

boghyon opened this issue Nov 5, 2023 · 5 comments

Comments

@boghyon
Copy link
Contributor

boghyon commented Nov 5, 2023

Background

Some years ago, I had submitted this issue on Chromium bug tracker: https://issues.chromium.org/issues/40113891
As a result, Chromium has now improved the keyboard a11y by allowing scrollable containers to be in the focus chain (unless tabindex < 0), similar to Firefox.

I.e. when tabbing through:

  • If the scrollable container has tabindex0, move the focus to the container.
  • If the scrollable container has tabindex < 0, skip the container.
  • If the scrollable container has no tabindex:
    • Chromium [new]: move the focus to the container but only if the container does not contain any focusable element. E.g. if the container contains only texts. Otherwise, skip the container but jump to the inner focusable element directly. The container can still be keyboard scrolled with the focus there.
    • Firefox: move the focus to the container regardless whether the container has a focusable element or not.
    • Safari: ...? "Safari has a user setting that can change what types of elements become keyboard focusable" according to the discussion in the Blink dev group linked below.

Steps to reproduce

  1. Start Chrome. If the new change is not already enabled by default:
    1. Kill all Chrome instances that are still running.
    2. From a CLI, navigate to the directory where the Chrome executable is located.
    3. Start Chrome with the option --enable-blink-features=KeyboardFocusableScrollers.
  2. Open https://output.jsbin.com/yajesab
  3. Move the focus to the scroll area with the keyboard which is possible now thanks to the Chromium change.
    Issue: the focus indicator is unstyled in UI5.

Request to consider

  • Deprecation: the focusable property of the sap.m.ScrollContainer can be deprecated since the browsers supported by UI5 set the focus automatically depending on the container content and the tabindex.
  • Fixes:

Remaining questions

  • What is the exact behavior in Safari regarding this topic? Does Safari need a special handling in UI5?
  • Is the behavior of the browsers same across all OS supported by UI5? Any system settings that could affect?

More information

"Intent to Ship: Keyboard-focusable scroll containers" - "Blink-dev" group
Changes regarding the topic KeyboardFocusableScrollers - "Blink Reviews" group

@tsanislavgatev
Copy link
Contributor

Hello @boghyon ,
Thank you for sharing this finding. I've created an internal incident 2370139540. The status of the issue will be updated here in GitHub.
Regards,
Tsanislav

@hristop
Copy link
Contributor

hristop commented Nov 23, 2023

Hi @boghyon ,

We will handle this via internal BLI: BGSOFUIRILA-3736 as it will require some support from our design colleagues as well.
I will close this issue, but you can monitor the progress via the BLI.

Best Regards,
Hristo

@boghyon

This comment was marked as outdated.

@boghyon

This comment was marked as outdated.

@boghyon
Copy link
Contributor Author

boghyon commented Apr 16, 2024

The feature is described more in detail at Keyboard focusable scrollers | Blog | Chrome for Developers

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

5 participants