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.