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

Issue 645596 link

Starred by 1 user

Issue metadata

Status: Assigned
Owner:
Last visit > 30 days ago
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: All
Pri: 3
Type: Bug
Team-Accessibility

Blocking:
issue 610591



Sign in to add a comment

Implement SetSelection in Views widgets that support text editing

Project Member Reported by nek...@chromium.org, Sep 9 2016

Issue description

Impact: Jumping to specific characters with the cursor on a Braille display, (this is called routing), doesn't work.

How to implement:
Open ui/accessibility/ax_view_state.h
Notice that even though there are attributes selection_start and selection_end for getting the current selection, there is no way to set the current selection.
I think we should implement something similar to
base::Callback<void(const base::string16&)> set_value_callback;
but for the current selection.
See also, ui/views/accessibility/native_view_accessibility.h
bool SetStringValue(const base::string16& new_value) override;
Again, we need something similar for selection.
The corresponding method in the Web view is:
content/browser/accessibility/browser_accessibility_manager.h
BrowserAccessibilityDelegate::AccessibilitySetSelection

 
Cc: ellyjo...@chromium.org
Owner: patricia...@chromium.org
patricialor@, can you take a look at this please? :)
Blocking: 610591
This might be implemented already for Mac - by setting the selection, do you mean replacing the selected text with a new string, or making a new selection (without changing the text)? The former should already work after https://codereview.chromium.org/2341633006/.

The latter is in progress, but will need to land after NativeViewAccessibility::AccessibilityPerformAction() is implemented (working on this now).

I'm not sure how to implement this for OSes other than Mac though, so that part might be a little delayed until I get time to figure it out (unless someone else wants to look into it :)).

Updated to be blocking 610591 (this is one of the writable accessibility attributes that need to be implemented for Mac Textfields).
Implemented for Windows in https://codereview.chromium.org/2679313003/
Project Member

Comment 4 by bugdroid1@chromium.org, Feb 8 2017

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

commit 1d4fdc1a0b9e9839a1b23498ca2791864669147a
Author: nektar <nektar@chromium.org>
Date: Wed Feb 08 23:50:28 2017

Implemented IA2::setSelection and related methods on text fields in Views.

Entering grade 2 Braille should now work with Jaws when in the address bar.
BUG=645596
R=dmazzoni@chromium.org, msw@chromium.org
CC=aleventhal@google.com
TESTED=unit test, NVDA Python console > focus.IAccessibleTextObject.setSelection(...)

Review-Url: https://codereview.chromium.org/2679313003
Cr-Commit-Position: refs/heads/master@{#449143}

[modify] https://crrev.com/1d4fdc1a0b9e9839a1b23498ca2791864669147a/ui/accessibility/platform/ax_platform_node.h
[modify] https://crrev.com/1d4fdc1a0b9e9839a1b23498ca2791864669147a/ui/accessibility/platform/ax_platform_node_base.cc
[modify] https://crrev.com/1d4fdc1a0b9e9839a1b23498ca2791864669147a/ui/accessibility/platform/ax_platform_node_base.h
[modify] https://crrev.com/1d4fdc1a0b9e9839a1b23498ca2791864669147a/ui/accessibility/platform/ax_platform_node_win.cc
[modify] https://crrev.com/1d4fdc1a0b9e9839a1b23498ca2791864669147a/ui/accessibility/platform/ax_platform_node_win.h
[modify] https://crrev.com/1d4fdc1a0b9e9839a1b23498ca2791864669147a/ui/accessibility/platform/ax_platform_node_win_unittest.cc
[modify] https://crrev.com/1d4fdc1a0b9e9839a1b23498ca2791864669147a/ui/accessibility/platform/test_ax_node_wrapper.cc
[modify] https://crrev.com/1d4fdc1a0b9e9839a1b23498ca2791864669147a/ui/views/controls/textfield/textfield.cc

Project Member

Comment 5 by bugdroid1@chromium.org, Feb 17 2017

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

commit 0a8d26e24fbf3e0a262f2e0fe72100c979a77428
Author: patricialor <patricialor@chromium.org>
Date: Fri Feb 17 00:11:36 2017

MacViews/a11y: Allow accessibility clients to set new selections in Textfields.

Currently, the `SelectedTextRange` a11y attribute on Views is reported as
unmodifiable, which differs from native text field elements on Mac.

This change will support allowing accessibility clients to change the text
selection (including moving the cursor position) for views::Textfields.

BUG= 610591 , 645596
TEST=With #secondary-ui-md turned on in chrome:flags, open the XCode
Accessibility Inspector and bring up the HTTP Authentication dialog. Type some
text into the username dialog, select some text, and inspect it with Alt+Space
on macOS 10.12 or Cmd+F7 otherwise. In the Accessibility Inspector, scroll down
to SelectedTextRange and check it's editable. Setting the location and length of
the control then changes the text selection made earlier.

Review-Url: https://codereview.chromium.org/2684203002
Cr-Commit-Position: refs/heads/master@{#451148}

[modify] https://crrev.com/0a8d26e24fbf3e0a262f2e0fe72100c979a77428/ui/accessibility/platform/ax_platform_node_mac.mm
[modify] https://crrev.com/0a8d26e24fbf3e0a262f2e0fe72100c979a77428/ui/views/widget/native_widget_mac_accessibility_unittest.mm

Cc: patricia...@chromium.org
Owner: nek...@chromium.org
Status: Started (was: Assigned)
Assigning back to you, nektar@, since you mentioned in codereview (from #c5) that you had some additional stuff to add with anchor and focus ids. Thanks for doing that!
Labels: NewComponent-Accessibility NewComponent-Accessibility-Compatibility
Components: UI>Accessibility>Compatibility
Components: -UI>Accessibility
Labels: -newcomponent-accessibility-compatibility -newcomponent-accessibility
Labels: a11y-secondary
Status: Available (was: Started)
We should also deprecate the selection_start and selection_end attributes in favor of anchor_object, focus_object, anchor_offset and focus_offset.
Status: Assigned (was: Available)

Sign in to add a comment