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

Issue 639340 link

Starred by 3 users

Issue metadata

Status: Started
Owner:
Last visit > 30 days ago
Cc:
Components:
EstimatedDays: ----
NextAction: 2017-09-15
OS: All
Pri: 2
Type: Bug
Team-Accessibility

Blocking:
issue 719651



Sign in to add a comment

Blink accessibility selection should behave in the same way as DOM selection (or in a specified way)

Project Member Reported by dtseng@chromium.org, Aug 19 2016

Issue description

Currently, Blink selection behaves inconsistently.selection.

For example:
<div role="group">
  <h1>a</h1>
  <h1>b</h1>
  <h1>c</h1>
</div>

does not resemble DOM selection when using node index selection.

e.g.
select
anchor and focus = <div>
anchor and focus offset set to 1

result:
Anchor object: h1.a
Focus object: h1.a

expected:
Ideally, we could get the container selection (so, selection would be on the div).

Furthermore, selecting with anchor and focus offset set to 0, also selects h1.a and h1.a with offsets set to 0.

Selecting with anchor offset 0 and focus offset 1 appears to result in the same values.

There might be an off by one somewhere.

 
Labels: NewComponent-Accessibility-Blink NewComponent-Accessibility
Components: Blink>Accessibility
Components: -UI>Accessibility
Labels: -newcomponent-accessibility-blink -newcomponent-accessibility

Comment 4 by dtseng@chromium.org, Jun 28 2017

Blocking: 719651
Labels: triage-aaron
Labels: -triage-aaron triage-nektar
Cc: dmazz...@chromium.org
Labels: -Pri-3 -triage-nektar OS-All Pri-2
NextAction: 2017-09-15
Owner: nek...@chromium.org
Status: Assigned (was: Available)
Labels: triage-dougt
Labels: -triage-dougt
The NextAction date has arrived: 2017-09-15
Status: Started (was: Assigned)
Cc: lpalmaro@chromium.org nek...@chromium.org dougt@chromium.org
 Issue 763143  has been merged into this issue.
Summary: Blink accessibility selection should behave in the same way as DOM selection (or in a specified way) (was: Blink accessibility selection should behave in the same way as DOM selection (or in a speced way) )
Project Member

Comment 14 by bugdroid1@chromium.org, Apr 5 2018

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

commit 0535a55b64a356695728927136e315e8256f0312
Author: Nektarios Paisios <nektar@chromium.org>
Date: Thu Apr 05 01:24:10 2018

Switch to using new AXObject helper functions in AXPosition and AXSelection

Also, dropped the word "container" from AXPosition::Create...PositionInContainerObject for better readability and faster typing.
R=dmazzoni@chromium.org, aleventhal@chromium.org

Bug: 639340
Change-Id: I75c10bb35435a7cad9988e30a54af60f525bb29c
Reviewed-on: https://chromium-review.googlesource.com/995639
Commit-Queue: Aaron Leventhal <aleventhal@chromium.org>
Commit-Queue: Nektarios Paisios <nektar@chromium.org>
Reviewed-by: Aaron Leventhal <aleventhal@chromium.org>
Cr-Commit-Position: refs/heads/master@{#548281}
[modify] https://crrev.com/0535a55b64a356695728927136e315e8256f0312/third_party/WebKit/Source/modules/accessibility/AXPosition.cpp
[modify] https://crrev.com/0535a55b64a356695728927136e315e8256f0312/third_party/WebKit/Source/modules/accessibility/AXPosition.h
[modify] https://crrev.com/0535a55b64a356695728927136e315e8256f0312/third_party/WebKit/Source/modules/accessibility/AXPositionTest.cpp
[modify] https://crrev.com/0535a55b64a356695728927136e315e8256f0312/third_party/WebKit/Source/modules/accessibility/AXRange.cpp
[modify] https://crrev.com/0535a55b64a356695728927136e315e8256f0312/third_party/WebKit/Source/modules/accessibility/AXRangeTest.cpp
[modify] https://crrev.com/0535a55b64a356695728927136e315e8256f0312/third_party/WebKit/Source/modules/accessibility/AXSelectionTest.cpp

Project Member

Comment 15 by bugdroid1@chromium.org, Apr 6 2018

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

commit cf661ce64240c5e0494aa693023f82f7c514a6e5
Author: Nektarios Paisios <nektar@chromium.org>
Date: Fri Apr 06 15:18:15 2018

Switch to using the new AXRange class for spelling markers and word boundaries

This patch begins using the new AXPosition and AXRange classes in a relatively simple part of the codebase in order to avoid regressions.
It also takes the opportunity to rename AXObject::AXRange to AXSelection in preparation of the use of the new AXSelection class in a subsequent patch.
The C++ Style Guide allows the use of initializer lists {...} when returning from or when calling functions, hence this patch switches to the new style in all the selection related functions. This will make the switch to the new AXSelection class in a subsequent patch easier since a rename at the point of construction will not be needed.
The patch makes some functions that are using the AXRange class not inline because the Style Guide dictates that virtual functions should not be inlined.

R=dmazzoni@chromium.org

Bug: 639340
Change-Id: I8e19986b0937fd6a954dfe1f5631064c5a9c42a2
Reviewed-on: https://chromium-review.googlesource.com/995976
Reviewed-by: Nektarios Paisios <nektar@chromium.org>
Reviewed-by: Kinuko Yasuda <kinuko@chromium.org>
Reviewed-by: Aaron Leventhal <aleventhal@chromium.org>
Reviewed-by: Dominic Mazzoni <dmazzoni@chromium.org>
Commit-Queue: Nektarios Paisios <nektar@chromium.org>
Cr-Commit-Position: refs/heads/master@{#548779}
[modify] https://crrev.com/cf661ce64240c5e0494aa693023f82f7c514a6e5/third_party/WebKit/Source/modules/accessibility/AXInlineTextBox.cpp
[modify] https://crrev.com/cf661ce64240c5e0494aa693023f82f7c514a6e5/third_party/WebKit/Source/modules/accessibility/AXLayoutObject.cpp
[modify] https://crrev.com/cf661ce64240c5e0494aa693023f82f7c514a6e5/third_party/WebKit/Source/modules/accessibility/AXLayoutObject.h
[modify] https://crrev.com/cf661ce64240c5e0494aa693023f82f7c514a6e5/third_party/WebKit/Source/modules/accessibility/AXNodeObject.cpp
[modify] https://crrev.com/cf661ce64240c5e0494aa693023f82f7c514a6e5/third_party/WebKit/Source/modules/accessibility/AXObject.cpp
[modify] https://crrev.com/cf661ce64240c5e0494aa693023f82f7c514a6e5/third_party/WebKit/Source/modules/accessibility/AXObject.h
[modify] https://crrev.com/cf661ce64240c5e0494aa693023f82f7c514a6e5/third_party/WebKit/Source/modules/exported/WebAXObject.cpp

Project Member

Comment 16 by bugdroid1@chromium.org, Nov 13

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

commit bd596425bd7a3bb64aeeb16a08c6bfb3506cb60b
Author: Nektarios Paisios <nektar@chromium.org>
Date: Tue Nov 13 00:40:08 2018

Handles list markers (including NG) when finding the containing DOM node of an AXLayoutObject that has no associated node

We need to have a generic function that given an AXLayoutObject will return either the associate DOM Node, or if the layout object has no node attached, the containing DOM node.
This functionality is required in cases such as the following:
1. An accessibility selection has one of its endpoints at a list marker and the user asks us to select the closest DOM selection possible.
We need to move the endpoint that is on the list marker to an object that has a DOM node attached, e.g. the containing DOM node of the AXLayoutObject representing the list marker.
2. A user wants to know if a layout object is editable.
We need to find if the attached or containing block node is editable.
R=aboxhall@chromium.org, dmazzoni@chromium.org

Change-Id: I4572b7b024f61518b7da61a61e6916c623d4d3dc
Bug: 639340
Reviewed-on: https://chromium-review.googlesource.com/c/1331131
Commit-Queue: Nektarios Paisios <nektar@chromium.org>
Reviewed-by: Dominic Mazzoni <dmazzoni@chromium.org>
Reviewed-by: Aaron Leventhal <aleventhal@chromium.org>
Cr-Commit-Position: refs/heads/master@{#607392}
[modify] https://crrev.com/bd596425bd7a3bb64aeeb16a08c6bfb3506cb60b/content/test/data/accessibility/html/contenteditable-descendants-expected-auralinux.txt
[modify] https://crrev.com/bd596425bd7a3bb64aeeb16a08c6bfb3506cb60b/content/test/data/accessibility/html/contenteditable-descendants-expected-blink.txt
[modify] https://crrev.com/bd596425bd7a3bb64aeeb16a08c6bfb3506cb60b/content/test/data/accessibility/html/contenteditable-descendants-expected-win.txt
[modify] https://crrev.com/bd596425bd7a3bb64aeeb16a08c6bfb3506cb60b/content/test/data/accessibility/html/contenteditable-descendants-with-selection-expected-auralinux.txt
[modify] https://crrev.com/bd596425bd7a3bb64aeeb16a08c6bfb3506cb60b/content/test/data/accessibility/html/contenteditable-descendants-with-selection-expected-blink.txt
[modify] https://crrev.com/bd596425bd7a3bb64aeeb16a08c6bfb3506cb60b/content/test/data/accessibility/html/contenteditable-descendants-with-selection-expected-win.txt
[modify] https://crrev.com/bd596425bd7a3bb64aeeb16a08c6bfb3506cb60b/third_party/blink/renderer/modules/accessibility/ax_layout_object.cc

Project Member

Comment 17 by bugdroid1@chromium.org, Nov 13

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

commit 0272e9b93d5a932b5e844e4d31ba5442b6c9f577
Author: Nektarios Paisios <nektar@chromium.org>
Date: Tue Nov 13 17:23:12 2018

AXSelection: Added declarative test for aria-hidden and strengthened tests for aria-hidden and list bullets

Tests now check the results of both shrinking a selection as well as extending a selection.
In the case of aria-hidden, we want to check whether a DOM selection on aria-hidden endpoints would be correctly extended or shrunk when converted to an equivalent AX selection, since aria-hidden objects are an example of an object that is ignored in the accessibility tree.
In the case of a list bullet, we want to check whether an AXSelection that has an endpoint on a list bullet, would be correctly extended or shrunk when converted to a DOM selection, since list bullets are an example of an object not present in the DOM tree.
R=dmazzoni@chromium.org

Bug: 639340
Change-Id: Ia9e7dee6efe5c0059faae101a1a07b5d7d35ef5c
Reviewed-on: https://chromium-review.googlesource.com/c/1327221
Commit-Queue: Nektarios Paisios <nektar@chromium.org>
Reviewed-by: Dominic Mazzoni <dmazzoni@chromium.org>
Cr-Commit-Position: refs/heads/master@{#607631}
[modify] https://crrev.com/0272e9b93d5a932b5e844e4d31ba5442b6c9f577/third_party/blink/renderer/modules/accessibility/ax_position.cc
[modify] https://crrev.com/0272e9b93d5a932b5e844e4d31ba5442b6c9f577/third_party/blink/renderer/modules/accessibility/ax_position_test.cc
[modify] https://crrev.com/0272e9b93d5a932b5e844e4d31ba5442b6c9f577/third_party/blink/renderer/modules/accessibility/ax_selection.cc
[modify] https://crrev.com/0272e9b93d5a932b5e844e4d31ba5442b6c9f577/third_party/blink/renderer/modules/accessibility/ax_selection.h
[modify] https://crrev.com/0272e9b93d5a932b5e844e4d31ba5442b6c9f577/third_party/blink/renderer/modules/accessibility/ax_selection_test.cc
[modify] https://crrev.com/0272e9b93d5a932b5e844e4d31ba5442b6c9f577/third_party/blink/renderer/modules/accessibility/testing/accessibility_selection_test.cc
[modify] https://crrev.com/0272e9b93d5a932b5e844e4d31ba5442b6c9f577/third_party/blink/renderer/modules/accessibility/testing/accessibility_selection_test.h
[add] https://crrev.com/0272e9b93d5a932b5e844e4d31ba5442b6c9f577/third_party/blink/renderer/modules/accessibility/testing/data/selection/aria-hidden-ax.txt
[add] https://crrev.com/0272e9b93d5a932b5e844e4d31ba5442b6c9f577/third_party/blink/renderer/modules/accessibility/testing/data/selection/aria-hidden.html

Project Member

Comment 18 by bugdroid1@chromium.org, Nov 24

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

commit 23a510ae6c849a4624f9e81eff8df37f61392d1d
Author: Nektarios Paisios <nektar@chromium.org>
Date: Sat Nov 24 22:10:40 2018

AXSelection: Added methods for retrieving and clearing the current selection

Also, fixed a few bugs in the Select() method, namely selection should not occur if it is unavailable in the current document and the cached range should be cleared and re-set.
R=dmazzoni@chromium.org

Change-Id: I214ff808af402f379c12ae533fea8e9c2a3888ec
Bug: 639340
Reviewed-on: https://chromium-review.googlesource.com/c/1340639
Commit-Queue: Nektarios Paisios <nektar@chromium.org>
Reviewed-by: Dominic Mazzoni <dmazzoni@chromium.org>
Cr-Commit-Position: refs/heads/master@{#610712}
[modify] https://crrev.com/23a510ae6c849a4624f9e81eff8df37f61392d1d/third_party/blink/renderer/modules/accessibility/ax_position.cc
[modify] https://crrev.com/23a510ae6c849a4624f9e81eff8df37f61392d1d/third_party/blink/renderer/modules/accessibility/ax_position.h
[modify] https://crrev.com/23a510ae6c849a4624f9e81eff8df37f61392d1d/third_party/blink/renderer/modules/accessibility/ax_selection.cc
[modify] https://crrev.com/23a510ae6c849a4624f9e81eff8df37f61392d1d/third_party/blink/renderer/modules/accessibility/ax_selection.h

Project Member

Comment 19 by bugdroid1@chromium.org, Nov 27

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

commit 88843ebb9493e475b0d71719def2a6d410c5579b
Author: Nektarios Paisios <nektar@chromium.org>
Date: Tue Nov 27 23:21:06 2018

AXSelection: Added the ability for a web app to cancel an accessibility SetSelection action

This functionality is based on the Selection API draft specification and is already supported in Blink by other types of user initiated selection actions:
https://w3c.github.io/selection-api/#selectstart-event

Tests are in the following patch:
https://chromium-review.googlesource.com/c/chromium/src/+/1350195/

R=dmazzoni@chromium.org

Bug: 639340
Change-Id: I5a7793c71b02f2e92fafb7fb9731b6ebf288a412
Tested: with unit tests in another patch
Reviewed-on: https://chromium-review.googlesource.com/c/1347214
Commit-Queue: Nektarios Paisios <nektar@chromium.org>
Reviewed-by: Dominic Mazzoni <dmazzoni@chromium.org>
Cr-Commit-Position: refs/heads/master@{#611400}
[modify] https://crrev.com/88843ebb9493e475b0d71719def2a6d410c5579b/third_party/blink/renderer/modules/accessibility/ax_selection.cc
[modify] https://crrev.com/88843ebb9493e475b0d71719def2a6d410c5579b/third_party/blink/renderer/modules/accessibility/ax_selection.h

Project Member

Comment 20 by bugdroid1@chromium.org, Nov 28

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

commit ca3f4f91e17a839d99fc446129a4dca62ee84141
Author: Nektarios Paisios <nektar@chromium.org>
Date: Wed Nov 28 01:48:45 2018

AXSelection: Added unit tests for retrieving and clearing the current selection, and for cancelling a selection that is in progress

R=dmazzoni@chromium.org, aleventhal@chromium.org

Change-Id: I9bb2589a938930e9e967525c4a627c893eecaa48
Bug: 639340
Reviewed-on: https://chromium-review.googlesource.com/c/1350195
Reviewed-by: Dominic Mazzoni <dmazzoni@chromium.org>
Commit-Queue: Nektarios Paisios <nektar@chromium.org>
Cr-Commit-Position: refs/heads/master@{#611502}
[modify] https://crrev.com/ca3f4f91e17a839d99fc446129a4dca62ee84141/third_party/blink/renderer/modules/accessibility/ax_selection.cc
[modify] https://crrev.com/ca3f4f91e17a839d99fc446129a4dca62ee84141/third_party/blink/renderer/modules/accessibility/ax_selection_test.cc

Project Member

Comment 21 by bugdroid1@chromium.org, Dec 5

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

commit 098ef8ec87b7f01f7b31846b0303d49fa49735ee
Author: Nektarios Paisios <nektar@chromium.org>
Date: Wed Dec 05 03:13:54 2018

AXSelection: Added the ability to select within the shadow DOM

This includes both user agent shadow trees, e.g. the ones used for text fields and spin controls, as well as user generated shadow DOM trees, such as the ones created by web components.
R=dmazzoni@chromium.org, aleventhal@chromium.org, aboxhall@chromium.org

Change-Id: I4280035eb5f4e1f0bdcec251823266010a790ec0
Bug: 639340
Reviewed-on: https://chromium-review.googlesource.com/c/1355530
Commit-Queue: Nektarios Paisios <nektar@chromium.org>
Reviewed-by: Xiaocheng Hu <xiaochengh@chromium.org>
Reviewed-by: Dominic Mazzoni <dmazzoni@chromium.org>
Cr-Commit-Position: refs/heads/master@{#613842}
[modify] https://crrev.com/098ef8ec87b7f01f7b31846b0303d49fa49735ee/third_party/blink/renderer/modules/accessibility/ax_position.cc
[modify] https://crrev.com/098ef8ec87b7f01f7b31846b0303d49fa49735ee/third_party/blink/renderer/modules/accessibility/ax_selection.cc
[modify] https://crrev.com/098ef8ec87b7f01f7b31846b0303d49fa49735ee/third_party/blink/renderer/modules/accessibility/ax_selection.h
[modify] https://crrev.com/098ef8ec87b7f01f7b31846b0303d49fa49735ee/third_party/blink/renderer/modules/accessibility/ax_selection_test.cc
[modify] https://crrev.com/098ef8ec87b7f01f7b31846b0303d49fa49735ee/third_party/blink/renderer/modules/accessibility/testing/accessibility_test.cc
[modify] https://crrev.com/098ef8ec87b7f01f7b31846b0303d49fa49735ee/third_party/blink/renderer/modules/accessibility/testing/accessibility_test.h

Sign in to add a comment