New issue
Advanced search Search tips

Issue 796350 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Feb 2018
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux , Windows , Chrome
Pri: 2
Type: Task
Team-Accessibility

Blocking:
issue 787860



Sign in to add a comment

Views accessibility needs to be able to express relations

Project Member Reported by dmazz...@chromium.org, Dec 19 2017

Issue description

Right now we don't have a way for two views to be related like nodes on the web can be.

As a prerequisite we need accessible IDs for views, and we need to unify them across AXPlatformNode and AXViewObjWrapper.

While solving this problem it'd be nice to make other things in Views accessibility easier, like overriding just the role or name.

 
Project Member

Comment 1 by bugdroid1@chromium.org, Dec 20 2017

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

commit 6af2e54a2a1e1a0fd7086897e94e19618b0f80db
Author: Dominic Mazzoni <dmazzoni@chromium.org>
Date: Wed Dec 20 01:18:09 2017

Turn NativeViewAccessibility into ViewAccessibility

Instead of only using NativeViewAccessibility on some platforms, rename
the base class ViewAccessibility and make it a general-purpose class for
view accessibility code.

Potential benefits of doing it this way:
* View subclasses like Slider wouldn't need to add a special method like
  SetAccessibleName. Instead any client could override the name or any other
  property directly:

    view->GetViewAccessible().SetName(...);
* Creates a means to share more code with AXViewObjWrapper.
* Creates a way to have a single consistent ID for all Views, making
  relations between views easier.

As a next step, these could be moved from View to ViewAccessibility,
further simplifying view.h:

   HandleAccessibleAction(const ui::AXActionData& action_data);
   gfx::NativeViewAccessible GetNativeViewAccessible();
   void NotifyAccessibilityEvent(ui::AXEvent event_type);

Bug:  796350 
Change-Id: I9676a362a45ed57629f3205f3b6c45ec695d9f23
Reviewed-on: https://chromium-review.googlesource.com/833221
Reviewed-by: Trent Apted <tapted@chromium.org>
Reviewed-by: Nektarios Paisios <nektar@chromium.org>
Commit-Queue: Dominic Mazzoni <dmazzoni@chromium.org>
Cr-Commit-Position: refs/heads/master@{#525213}
[modify] https://crrev.com/6af2e54a2a1e1a0fd7086897e94e19618b0f80db/ui/views/BUILD.gn
[modify] https://crrev.com/6af2e54a2a1e1a0fd7086897e94e19618b0f80db/ui/views/accessibility/ax_view_obj_wrapper.cc
[modify] https://crrev.com/6af2e54a2a1e1a0fd7086897e94e19618b0f80db/ui/views/accessibility/native_view_accessibility_auralinux.cc
[modify] https://crrev.com/6af2e54a2a1e1a0fd7086897e94e19618b0f80db/ui/views/accessibility/native_view_accessibility_base.cc
[modify] https://crrev.com/6af2e54a2a1e1a0fd7086897e94e19618b0f80db/ui/views/accessibility/native_view_accessibility_base.h
[modify] https://crrev.com/6af2e54a2a1e1a0fd7086897e94e19618b0f80db/ui/views/accessibility/native_view_accessibility_mac.mm
[delete] https://crrev.com/117b9d3a698a52d96857b31caeb72c2e74f2a782/ui/views/accessibility/native_view_accessibility_stub.cc
[modify] https://crrev.com/6af2e54a2a1e1a0fd7086897e94e19618b0f80db/ui/views/accessibility/native_view_accessibility_unittest.cc
[modify] https://crrev.com/6af2e54a2a1e1a0fd7086897e94e19618b0f80db/ui/views/accessibility/native_view_accessibility_win.cc
[add] https://crrev.com/6af2e54a2a1e1a0fd7086897e94e19618b0f80db/ui/views/accessibility/view_accessibility.cc
[add] https://crrev.com/6af2e54a2a1e1a0fd7086897e94e19618b0f80db/ui/views/accessibility/view_accessibility.h
[modify] https://crrev.com/6af2e54a2a1e1a0fd7086897e94e19618b0f80db/ui/views/controls/native/native_view_host.cc
[modify] https://crrev.com/6af2e54a2a1e1a0fd7086897e94e19618b0f80db/ui/views/view.cc
[modify] https://crrev.com/6af2e54a2a1e1a0fd7086897e94e19618b0f80db/ui/views/view.h

Project Member

Comment 2 by bugdroid1@chromium.org, Dec 20 2017

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

commit 018d87586d823b803a5a6949444236f1f4bbe561
Author: David Tseng <dtseng@chromium.org>
Date: Wed Dec 20 21:39:54 2017

Revert "Turn NativeViewAccessibility into ViewAccessibility"

This reverts commit 6af2e54a2a1e1a0fd7086897e94e19618b0f80db.

Reason for revert: This change breaks Chrome OS locke screen accessibility. It also causes lots of nodes ot become "ignored" role which isn't supported by ChromeVox so we end up outputting "ignored" everywhere.

Original change's description:
> Turn NativeViewAccessibility into ViewAccessibility
> 
> Instead of only using NativeViewAccessibility on some platforms, rename
> the base class ViewAccessibility and make it a general-purpose class for
> view accessibility code.
> 
> Potential benefits of doing it this way:
> * View subclasses like Slider wouldn't need to add a special method like
>   SetAccessibleName. Instead any client could override the name or any other
>   property directly:
> 
>     view->GetViewAccessible().SetName(...);
> * Creates a means to share more code with AXViewObjWrapper.
> * Creates a way to have a single consistent ID for all Views, making
>   relations between views easier.
> 
> As a next step, these could be moved from View to ViewAccessibility,
> further simplifying view.h:
> 
>    HandleAccessibleAction(const ui::AXActionData& action_data);
>    gfx::NativeViewAccessible GetNativeViewAccessible();
>    void NotifyAccessibilityEvent(ui::AXEvent event_type);
> 
> Bug:  796350 
> Change-Id: I9676a362a45ed57629f3205f3b6c45ec695d9f23
> Reviewed-on: https://chromium-review.googlesource.com/833221
> Reviewed-by: Trent Apted <tapted@chromium.org>
> Reviewed-by: Nektarios Paisios <nektar@chromium.org>
> Commit-Queue: Dominic Mazzoni <dmazzoni@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#525213}

TBR=dmazzoni@chromium.org,tapted@chromium.org,nektar@chromium.org,aleventhal@chromium.org

Change-Id: Ibf9a572ec353e16717e5e855ed034c9299fc41f3
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug:  796350 
Reviewed-on: https://chromium-review.googlesource.com/837517
Reviewed-by: David Tseng <dtseng@chromium.org>
Commit-Queue: David Tseng <dtseng@chromium.org>
Cr-Commit-Position: refs/heads/master@{#525469}
[modify] https://crrev.com/018d87586d823b803a5a6949444236f1f4bbe561/ui/views/BUILD.gn
[modify] https://crrev.com/018d87586d823b803a5a6949444236f1f4bbe561/ui/views/accessibility/ax_view_obj_wrapper.cc
[modify] https://crrev.com/018d87586d823b803a5a6949444236f1f4bbe561/ui/views/accessibility/native_view_accessibility_auralinux.cc
[modify] https://crrev.com/018d87586d823b803a5a6949444236f1f4bbe561/ui/views/accessibility/native_view_accessibility_base.cc
[modify] https://crrev.com/018d87586d823b803a5a6949444236f1f4bbe561/ui/views/accessibility/native_view_accessibility_base.h
[modify] https://crrev.com/018d87586d823b803a5a6949444236f1f4bbe561/ui/views/accessibility/native_view_accessibility_mac.mm
[add] https://crrev.com/018d87586d823b803a5a6949444236f1f4bbe561/ui/views/accessibility/native_view_accessibility_stub.cc
[modify] https://crrev.com/018d87586d823b803a5a6949444236f1f4bbe561/ui/views/accessibility/native_view_accessibility_unittest.cc
[modify] https://crrev.com/018d87586d823b803a5a6949444236f1f4bbe561/ui/views/accessibility/native_view_accessibility_win.cc
[delete] https://crrev.com/25e618cffd8c4613d456852f8051e7683b9d159f/ui/views/accessibility/view_accessibility.cc
[delete] https://crrev.com/25e618cffd8c4613d456852f8051e7683b9d159f/ui/views/accessibility/view_accessibility.h
[modify] https://crrev.com/018d87586d823b803a5a6949444236f1f4bbe561/ui/views/controls/native/native_view_host.cc
[modify] https://crrev.com/018d87586d823b803a5a6949444236f1f4bbe561/ui/views/view.cc
[modify] https://crrev.com/018d87586d823b803a5a6949444236f1f4bbe561/ui/views/view.h

Project Member

Comment 3 by bugdroid1@chromium.org, Dec 22 2017

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

commit f34ea3de967995d41ac1e15001c7072ea89cb2d6
Author: Dominic Mazzoni <dmazzoni@chromium.org>
Date: Fri Dec 22 19:32:18 2017

Re-land: Turn NativeViewAccessibility into ViewAccessibility

Originally landed: crrev.com/c/833221
Reverted: crrev.com/c/837517

Moved the code that sets roles to ignored out of the code shared
with Chrome OS and manually verified that the lock screen works now.

Instead of only using NativeViewAccessibility on some platforms, rename
the base class ViewAccessibility and make it a general-purpose class for
view accessibility code.

Potential benefits of doing it this way:
* View subclasses like Slider wouldn't need to add a special method like
  SetAccessibleName. Instead any client could override the name or any other
  property directly:

    view->GetViewAccessible().SetName(...);
* Creates a means to share more code with AXViewObjWrapper.
* Creates a way to have a single consistent ID for all Views, making
  relations between views easier.

As a next step, these could be moved from View to ViewAccessibility,
further simplifying view.h:

   HandleAccessibleAction(const ui::AXActionData& action_data);
   gfx::NativeViewAccessible GetNativeViewAccessible();
   void NotifyAccessibilityEvent(ui::AXEvent event_type);

Bug:  796350 
Change-Id: I61f88707a7f302bafdf1f5cb5fe4b2faa6a9095c
Reviewed-on: https://chromium-review.googlesource.com/837901
Reviewed-by: Aaron Leventhal <aleventhal@chromium.org>
Reviewed-by: David Tseng <dtseng@chromium.org>
Reviewed-by: Trent Apted <tapted@chromium.org>
Commit-Queue: Dominic Mazzoni <dmazzoni@chromium.org>
Cr-Commit-Position: refs/heads/master@{#526043}
[modify] https://crrev.com/f34ea3de967995d41ac1e15001c7072ea89cb2d6/ui/views/BUILD.gn
[modify] https://crrev.com/f34ea3de967995d41ac1e15001c7072ea89cb2d6/ui/views/accessibility/ax_view_obj_wrapper.cc
[modify] https://crrev.com/f34ea3de967995d41ac1e15001c7072ea89cb2d6/ui/views/accessibility/native_view_accessibility_auralinux.cc
[modify] https://crrev.com/f34ea3de967995d41ac1e15001c7072ea89cb2d6/ui/views/accessibility/native_view_accessibility_base.cc
[modify] https://crrev.com/f34ea3de967995d41ac1e15001c7072ea89cb2d6/ui/views/accessibility/native_view_accessibility_base.h
[modify] https://crrev.com/f34ea3de967995d41ac1e15001c7072ea89cb2d6/ui/views/accessibility/native_view_accessibility_mac.mm
[delete] https://crrev.com/d6877b1f1efefcb8652eb9ebdf0e3172254e66b8/ui/views/accessibility/native_view_accessibility_stub.cc
[modify] https://crrev.com/f34ea3de967995d41ac1e15001c7072ea89cb2d6/ui/views/accessibility/native_view_accessibility_unittest.cc
[modify] https://crrev.com/f34ea3de967995d41ac1e15001c7072ea89cb2d6/ui/views/accessibility/native_view_accessibility_win.cc
[add] https://crrev.com/f34ea3de967995d41ac1e15001c7072ea89cb2d6/ui/views/accessibility/view_accessibility.cc
[add] https://crrev.com/f34ea3de967995d41ac1e15001c7072ea89cb2d6/ui/views/accessibility/view_accessibility.h
[modify] https://crrev.com/f34ea3de967995d41ac1e15001c7072ea89cb2d6/ui/views/controls/native/native_view_host.cc
[modify] https://crrev.com/f34ea3de967995d41ac1e15001c7072ea89cb2d6/ui/views/view.cc
[modify] https://crrev.com/f34ea3de967995d41ac1e15001c7072ea89cb2d6/ui/views/view.h

Project Member

Comment 4 by bugdroid1@chromium.org, Jan 23 2018

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

commit b9cec7d59a12b2405a1f1303f0452fd442f5397b
Author: Dominic Mazzoni <dmazzoni@chromium.org>
Date: Tue Jan 23 02:39:23 2018

Get rid of SetAccessibleName from Slider

After http://crrev.com/c/833221, ViewAccessibility now contains a
general mechanism to change the accessible name of any View without
needing a custom method on each View subclass.

Bug:  796350 
Change-Id: I4ea0835ecade1c878dbaa5d7b369bf52b2d3a64b
Reviewed-on: https://chromium-review.googlesource.com/834997
Commit-Queue: Dominic Mazzoni <dmazzoni@chromium.org>
Reviewed-by: Trent Apted <tapted@chromium.org>
Reviewed-by: Sadrul Chowdhury <sadrul@chromium.org>
Cr-Commit-Position: refs/heads/master@{#531134}
[modify] https://crrev.com/b9cec7d59a12b2405a1f1303f0452fd442f5397b/ash/system/audio/volume_view.cc
[modify] https://crrev.com/b9cec7d59a12b2405a1f1303f0452fd442f5397b/ash/system/brightness/tray_brightness.cc
[modify] https://crrev.com/b9cec7d59a12b2405a1f1303f0452fd442f5397b/ash/system/display_scale/scale_view.cc
[modify] https://crrev.com/b9cec7d59a12b2405a1f1303f0452fd442f5397b/ash/system/keyboard_brightness/tray_keyboard_brightness.cc
[modify] https://crrev.com/b9cec7d59a12b2405a1f1303f0452fd442f5397b/ui/views/accessibility/view_accessibility.cc
[modify] https://crrev.com/b9cec7d59a12b2405a1f1303f0452fd442f5397b/ui/views/accessibility/view_accessibility.h
[modify] https://crrev.com/b9cec7d59a12b2405a1f1303f0452fd442f5397b/ui/views/controls/slider.cc
[modify] https://crrev.com/b9cec7d59a12b2405a1f1303f0452fd442f5397b/ui/views/controls/slider.h

Status: Fixed (was: Started)

Sign in to add a comment