Contact emailsdizha...@chromium.org, mas...@chromium.org

ExplainerNone

Specification
https://html.spec.whatwg.org/multipage/interaction.html#attr-tabindex

Design docs
https://drafts.csswg.org/css-overflow-3/#scroll-container
https://html.spec.whatwg.org/multipage/interaction.html#focusable-area
https://html.spec.whatwg.org/multipage/interaction.html#dom-tabindex

Summary

Improves accessibility by making scroll containers focusable using
sequential focus navigation. Today, the tab key doesn't focus scrollers
unless tabIndex is explicitly set to 0 or more. By making scrollers
focusable by default, users who can't (or don't want to) use a mouse will
be able to focus clipped content using a keyboard's tab and arrow keys.
This behavior is enabled only if the scroller does not contain any keyboard
focusable children. This logic is necessary so we don't cause regressions
for existing focusable elements that might exist within a scroller like a
<textarea>. Note: The previous rollout of this feature (started in Chrome
127) was stopped due to web compatibility issues, which should be fixed in
the current implementation shipping in 130.


Blink componentBlink>HTML>Focus
<https://bugs.chromium.org/p/chromium/issues/list?q=component:Blink%3EHTML%3EFocus>

Search tagstab key <https://chromestatus.com/features#tags:tab%20key>, keyboard
focus <https://chromestatus.com/features#tags:keyboard%20focus>, sequential
navigation <https://chromestatus.com/features#tags:sequential%20navigation>

TAG review

TAG review statusNot applicable

Chromium Trial NameKeyboardFocusableScrollersOptOut

Origin Trial documentation link
https://developer.chrome.com/blog/keyboard-focusable-scrollers

WebFeature UseCounter namekNotApplicable

Risks


Interoperability and Compatibility

This is a change in behavior, but already matches what Firefox is doing
(have scroller be focusable by default). Low compatibility risk since this
default behavior is only enabled if the scroller doesn't have any focusable
children.


*Gecko*: Shipped/Shipping Chrome behavior is slightly different since we
are checking if any scroller child is focusable. This is to avoid
regression on existing focus sequences.

*WebKit*: No signal (https://bugs.webkit.org/show_bug.cgi?id=190870)

*Web developers*: Positive (
https://twitter.com/simevidas/status/1444033718742667270)

*Other signals*:

Ergonomics

There are no other platform APIs this feature will be used in tandem with.
It will not be hard for Chrome to maintain good performance.


Activation

It will not be challenging for developers to take advantage of this feature
immediately.


Security

There are no security risks, this is a change for keyboard focusing
behavior.


WebView application risks

Does this intent deprecate or change behavior of existing APIs, such that
it has potentially high risk for Android WebView-based applications?

This is not high risk for WebView.


Goals for experimentation



Reason this experiment is being extended

Request to extend by another 6 milestones, from M132 to M138 We had to push
our release plan from 127 to 130 to fix specific cases, per user requests
[1]. As such, users only had 3 milestones to use the Origin Trial and
adjust their sites to the new KeyboardFocusableScrollers behavior. Since
this feature is changing a user noticeable behavior, we believe it would be
safer to extend ahead. We already have a few comments mentioning depending
on the Deprecation Trial:
https://issues.chromium.org/issues/375425838#comment1
https://issues.chromium.org/issues/342705690#comment39 [1]
https://issues.chromium.org/issues/361072782


Ongoing technical constraints

None


Debuggability

This is a change to focus navigation and DevTools does not offer debugging
support for this behavior.


Will this feature be supported on all six Blink platforms (Windows, Mac,
Linux, ChromeOS, Android, and Android WebView)?Yes

Is this feature fully tested by web-platform-tests
<https://chromium.googlesource.com/chromium/src/+/main/docs/testing/web_platform_tests.md>
?No

Flag name on chrome://flagsKeyboardFocusableScrollers

Finch feature nameKeyboardFocusableScrollers

Requires code in //chrome?False

Tracking bughttps://bugs.chromium.org/p/chromium/issues/detail?id=1040141

Availability expectationFirefox already implemented (a variant of this). If
we succeed and don't break websites, Safari is more likely to follow suit.

Adoption expectationThis is a default behavior change and websites don't
need to make changes.

Non-OSS dependencies

Does the feature depend on any code or APIs outside the Chromium open
source repository and its open-source dependencies to function?
This feature does not depend on any APIs outside the chromium open source
repository.

Estimated milestones
Shipping on desktop 130
Origin trial desktop first 127
Origin trial desktop last 132
Origin trial extension 1 end milestone 138
DevTrial on desktop 123
Shipping on Android 130
Origin trial Android first 127
Origin trial Android last 132
DevTrial on Android 123
Shipping on WebView 130
Origin trial WebView first 127
Origin trial WebView last 132

Anticipated spec changes

Open questions about a feature may be a source of future web compat or
interop issues. Please list open issues (e.g. links to known github issues
in the project for the feature specification) whose resolution may
introduce web compat/interop risk (e.g., changing to naming or structure of
the API in a non-backward-compatible way).
This change is not specced yet. If this succeed, we will try to get it
specced.

Link to entry on the Chrome Platform Status
https://chromestatus.com/feature/5231964663578624?gate=4709973026930688

Links to previous Intent discussionsIntent to Experiment:
https://groups.google.com/a/chromium.org/g/blink-dev/c/2qwzMaEGWTk/m/X5MILw3BAQAJ
Intent to Ship:
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAM0wra8dpmu3Dbykg%2BZ6e-Ka4r0r8kAiHAYmhU0WpGkEE%2B7Wzw%40mail.gmail.com


This intent message was generated by Chrome Platform Status
<https://chromestatus.com/>.

-- 
You received this message because you are subscribed to the Google Groups 
"blink-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to blink-dev+unsubscr...@chromium.org.
To view this discussion visit 
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CA%2BSS7eC5Ri%2BB%3DesX8Heo8M%3DfOfZqRHUDsmgEea5_y9YWBx%3D91g%40mail.gmail.com.

Reply via email to