New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 770103 link

Starred by 3 users

Issue metadata

Status: Fixed
Owner:
Closed: Jan 2018
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 3
Type: Bug



Sign in to add a comment

Spatnav exits or ignores certain overflow boxes

Reported by hu...@vewd.com, Sep 29 2017

Issue description

When going upwards from b:

    <div class="scroll">
      <a href="#">a</a><br>
      <a href="#">b</a>
    </div>
    <a href="#">c</a>

Expected: Focus goes to a.
Actual: Focus goes to c.

See attached Layout Test for complete HTML+CSS.
 
snav-stay-in-overflow-div.html
1.1 KB View Download
Components: Blink>HTML>Focus
Components: -Blink>Focus

Comment 3 by junho092...@lge.com, Nov 20 2017

Labels: spatial-navigation

Comment 4 Deleted

Comment 5 by hu...@vewd.com, Dec 29 2017

Summary: Spatnav exits or ignores certain overflow boxes (was: Spatnav exits overflox box when going upwards)

Comment 6 by hu...@vewd.com, Jan 3 2018

Description: Show this description

Comment 7 by hu...@vewd.com, Jan 5 2018

Blockedon: 798094

Comment 8 by hu...@vewd.com, Jan 5 2018

Blockedon: -798094 585413

Comment 9 by hu...@vewd.com, Jan 15 2018

Blockedon: -585413
Owner: hu...@vewd.com
Status: Started (was: Available)
In progress at: https://chromium-review.googlesource.com/c/chromium/src/+/866790
hugo@ I attached a test case. Test step is
1. Focus to bottom most element.
2. Hit up arrow key.

Expected result:
focus should move to top most element.

Actual result:
focus not move anywhere.
container5.html
856 bytes View Download
Project Member

Comment 11 by bugdroid1@chromium.org, Jan 18 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/b1eaec2e1fe9eb6bc37b6a43a574a081d914b2af

commit b1eaec2e1fe9eb6bc37b6a43a574a081d914b2af
Author: Hugo Holgersson <hugoh@vewd.com>
Date: Thu Jan 18 16:56:24 2018

Snav: Search containers that reached their scroll limit

Problem:
A fully scrolled container might still have nearby
focusables. Before this CL, those were ignored.

Solution:
This adds a new helper IsScrollableAreaOrDocument() that
we can use in ScrollableEnclosingBoxOrParentFrameOf()
to find a node's "container":

Q: What is a "container"?
A: A node's _container_ is its enclosing scrollable area
   (= its first scrollable ancestor) or its document
   (possibly unscrollable).

In other words, we don't need a direction to determine
a node's container. This is a simplification that's
needed to fix  bug 770103 .

Bug: 770147,  770103 
Change-Id: I439d532631e9d424e40e801873ef330cd15ffe7f
Reviewed-on: https://chromium-review.googlesource.com/866790
Commit-Queue: Hugo Holgersson <hugoh@vewd.com>
Reviewed-by: Stefan Zager <szager@chromium.org>
Cr-Commit-Position: refs/heads/master@{#530169}
[add] https://crrev.com/b1eaec2e1fe9eb6bc37b6a43a574a081d914b2af/third_party/WebKit/LayoutTests/fast/spatial-navigation/snav-stay-in-overflow-div-expected.txt
[add] https://crrev.com/b1eaec2e1fe9eb6bc37b6a43a574a081d914b2af/third_party/WebKit/LayoutTests/fast/spatial-navigation/snav-stay-in-overflow-div.html
[modify] https://crrev.com/b1eaec2e1fe9eb6bc37b6a43a574a081d914b2af/third_party/WebKit/Source/core/page/FocusController.cpp
[modify] https://crrev.com/b1eaec2e1fe9eb6bc37b6a43a574a081d914b2af/third_party/WebKit/Source/core/page/SpatialNavigation.cpp
[modify] https://crrev.com/b1eaec2e1fe9eb6bc37b6a43a574a081d914b2af/third_party/WebKit/Source/core/page/SpatialNavigation.h
[modify] https://crrev.com/b1eaec2e1fe9eb6bc37b6a43a574a081d914b2af/third_party/WebKit/Source/core/page/SpatialNavigationTest.cpp

Comment 12 by hu...@vewd.com, Jan 18 2018

Status: Fixed (was: Started)

Sign in to add a comment