Issue metadata
Sign in to add a comment
|
MacViews(a11y): Hovering over the *text* of a button has role AXStaticString, but the button should take precedence |
||||||||||||||||||||||
Issue descriptionChrome Version : 52.0.2729.3 OS Version: OS X 10.11.4 What steps will reproduce the problem? 1. Cmd+F5 to enable VoiceOver on Mac + chrome://flags/#mac-views-dialogs Enabled 2. Open OSX Accessibility Inspector 3. Open bookmark bubble, hover over buttons [compare to Cocoa bookmark bubble] What is the expected result? Should have role AXButton What happens instead of that? The text has role AXStaticString inside an AXButton. Hovering over the text should return the same thing as hovering over the padding between the text and the button border. Generally it should be a closer match to a native NSButton. UserAgentString: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2729.3 Safari/537.36
,
May 31 2016
,
Jun 23 2016
Another option here might be for the accessibility stuff to only add child nodes if View::IsAccessibilitFocusable() reports 'true' for them.
,
Jul 10 2016
Moving this nonessential bug to the next milestone. For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
,
Oct 18 2016
,
Jan 16 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/dc7d397153bcbccbc21e12f2ea3568f594699220 commit dc7d397153bcbccbc21e12f2ea3568f594699220 Author: patricialor <patricialor@chromium.org> Date: Mon Jan 16 03:10:27 2017 a11y: Add a11y information to views::Tab and manually ignore its a11y children. Currently, Views tabs have no a11y information specific to their class. The fallback then is to use the views::Label inside them for a11y information instead. This means they report their role as text. Fix this by adding a11y information to views::Tab to report its role as ui::AX_ROLE_TAB, and handle the ui::AX_ACTION_SET_SELECTED action and plumb through for Mac. views::Tab is also a special case where only the selected tab is allowed to be keyboard focusable. Because of this behavior, the views::Label inside is exposed to the accessibility tree. Since views::Tab now has its own a11y information, the views::Label should be hidden from users (see Issue 610589 ). Make a class views::TabLabel to manually set its a11y role to ui::AX_ROLE_IGNORED. BUG= 657593 , 610589 Review-Url: https://codereview.chromium.org/2578303003 Cr-Commit-Position: refs/heads/master@{#443837} [modify] https://crrev.com/dc7d397153bcbccbc21e12f2ea3568f594699220/chrome/app/generated_resources.grd [modify] https://crrev.com/dc7d397153bcbccbc21e12f2ea3568f594699220/chrome/browser/ui/cocoa/tabs/tab_view.mm [modify] https://crrev.com/dc7d397153bcbccbc21e12f2ea3568f594699220/ui/accessibility/platform/ax_platform_node_mac.mm [modify] https://crrev.com/dc7d397153bcbccbc21e12f2ea3568f594699220/ui/strings/ui_strings.grd [modify] https://crrev.com/dc7d397153bcbccbc21e12f2ea3568f594699220/ui/views/BUILD.gn [modify] https://crrev.com/dc7d397153bcbccbc21e12f2ea3568f594699220/ui/views/controls/tabbed_pane/tabbed_pane.cc [modify] https://crrev.com/dc7d397153bcbccbc21e12f2ea3568f594699220/ui/views/controls/tabbed_pane/tabbed_pane.h [add] https://crrev.com/dc7d397153bcbccbc21e12f2ea3568f594699220/ui/views/controls/tabbed_pane/tabbed_pane_accessibility_mac_unittest.mm [modify] https://crrev.com/dc7d397153bcbccbc21e12f2ea3568f594699220/ui/views/controls/tabbed_pane/tabbed_pane_unittest.cc
,
Feb 2 2017
,
Mar 6 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/28468e05efc7fde6e9201a29a25b2f8904b5b5e4 commit 28468e05efc7fde6e9201a29a25b2f8904b5b5e4 Author: patricialor <patricialor@chromium.org> Date: Mon Mar 06 01:47:22 2017 Views a11y: Convert View's NativeViewAccessibility to a unique_ptr. Currently, instances of NativeViewAccessibility depend on NativeViewAccessibility::Destroy() being called in order to be released. By converting the Views NativeViewAccessibility member to a unique_ptr, it will be automatically destroyed with its corresponding View. BUG= 610589 Review-Url: https://codereview.chromium.org/2718073003 Cr-Commit-Position: refs/heads/master@{#454808} [modify] https://crrev.com/28468e05efc7fde6e9201a29a25b2f8904b5b5e4/ui/views/accessibility/native_view_accessibility.cc [modify] https://crrev.com/28468e05efc7fde6e9201a29a25b2f8904b5b5e4/ui/views/accessibility/native_view_accessibility.h [modify] https://crrev.com/28468e05efc7fde6e9201a29a25b2f8904b5b5e4/ui/views/accessibility/native_view_accessibility_auralinux.cc [modify] https://crrev.com/28468e05efc7fde6e9201a29a25b2f8904b5b5e4/ui/views/accessibility/native_view_accessibility_mac.mm [modify] https://crrev.com/28468e05efc7fde6e9201a29a25b2f8904b5b5e4/ui/views/accessibility/native_view_accessibility_unittest.cc [modify] https://crrev.com/28468e05efc7fde6e9201a29a25b2f8904b5b5e4/ui/views/accessibility/native_view_accessibility_win.cc [modify] https://crrev.com/28468e05efc7fde6e9201a29a25b2f8904b5b5e4/ui/views/controls/tabbed_pane/tabbed_pane_unittest.cc [modify] https://crrev.com/28468e05efc7fde6e9201a29a25b2f8904b5b5e4/ui/views/view.cc [modify] https://crrev.com/28468e05efc7fde6e9201a29a25b2f8904b5b5e4/ui/views/view.h
,
Mar 14 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/df7b70bca50665b8ea628e8012aa1a49c63bd001 commit df7b70bca50665b8ea628e8012aa1a49c63bd001 Author: patricialor <patricialor@chromium.org> Date: Tue Mar 14 02:51:27 2017 MacViews/a11y: Typedef gfx::NativeViewAccessible to id for all of Mac & iOS. Currently on Mac and iOS, gfx::NativeViewAccessible is 'typedef'ed to void* or id depending on whether the file it's used in is an Objective C file or not (i.e. if __OBJC__ is defined or not). Previously, when it was only ever used as a return type on these platforms, this was fine. But in order to implement AXPlatformNode::FromNativeViewAccessible() on Mac where gfx::NativeViewAccessible is used as an method argument, this no longer works -- .cc and .mm files see different method signatures, and linking these together fails (since the .mm file will declare an overload that doesn't exist). To fix, typedef gfx::NativeViewAccessible to id. BUG= 610589 Review-Url: https://codereview.chromium.org/2739783002 Cr-Commit-Position: refs/heads/master@{#456594} [modify] https://crrev.com/df7b70bca50665b8ea628e8012aa1a49c63bd001/testing/platform_test.h [modify] https://crrev.com/df7b70bca50665b8ea628e8012aa1a49c63bd001/ui/gfx/native_widget_types.h
,
Mar 23 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/2d1f02c30222c895ba0216f011a627140e2a1318 commit 2d1f02c30222c895ba0216f011a627140e2a1318 Author: tapted <tapted@chromium.org> Date: Thu Mar 23 02:05:15 2017 Hide AXPlatformNode on ChromeOS. AXPlatformNode is always null on ChromeOS (and cast_shell) and never null on other toolkit-views platforms. ChromeOS just uses AXViewObjWrapper and related classes. This means that, although NativeViewAccessibility (and AXNodeData) is needed on all platforms, on ChromeOS, NativeViewAccessibility will never serve as an AXPlatformNodeDelegate, so doesn't need to implement it. Currently, it's complicating the implementation of platform integration since the NativeViewAccessibility always has a null AXPlatformNode. Split NativeViewAccessibility into two; keeping the abstract interface that views::View needs in NativeViewAccessibility and move the rest into NativeViewAccessibilityBase, which is never compiled on ChromeOS. BUG= 610589 Review-Url: https://codereview.chromium.org/2746813002 Cr-Commit-Position: refs/heads/master@{#458978} [modify] https://crrev.com/2d1f02c30222c895ba0216f011a627140e2a1318/chrome/browser/ui/views/location_bar/location_icon_view.cc [modify] https://crrev.com/2d1f02c30222c895ba0216f011a627140e2a1318/content/browser/accessibility/browser_accessibility.cc [modify] https://crrev.com/2d1f02c30222c895ba0216f011a627140e2a1318/ui/accessibility/BUILD.gn [modify] https://crrev.com/2d1f02c30222c895ba0216f011a627140e2a1318/ui/accessibility/platform/ax_platform_node.cc [modify] https://crrev.com/2d1f02c30222c895ba0216f011a627140e2a1318/ui/accessibility/platform/ax_platform_node.h [add] https://crrev.com/2d1f02c30222c895ba0216f011a627140e2a1318/ui/accessibility/platform/ax_platform_unique_id.cc [add] https://crrev.com/2d1f02c30222c895ba0216f011a627140e2a1318/ui/accessibility/platform/ax_platform_unique_id.h [modify] https://crrev.com/2d1f02c30222c895ba0216f011a627140e2a1318/ui/base/BUILD.gn [modify] https://crrev.com/2d1f02c30222c895ba0216f011a627140e2a1318/ui/base/ui_features.gni [modify] https://crrev.com/2d1f02c30222c895ba0216f011a627140e2a1318/ui/views/BUILD.gn [modify] https://crrev.com/2d1f02c30222c895ba0216f011a627140e2a1318/ui/views/accessibility/native_view_accessibility.h [modify] https://crrev.com/2d1f02c30222c895ba0216f011a627140e2a1318/ui/views/accessibility/native_view_accessibility_auralinux.cc [modify] https://crrev.com/2d1f02c30222c895ba0216f011a627140e2a1318/ui/views/accessibility/native_view_accessibility_auralinux.h [rename] https://crrev.com/2d1f02c30222c895ba0216f011a627140e2a1318/ui/views/accessibility/native_view_accessibility_base.cc [add] https://crrev.com/2d1f02c30222c895ba0216f011a627140e2a1318/ui/views/accessibility/native_view_accessibility_base.h [modify] https://crrev.com/2d1f02c30222c895ba0216f011a627140e2a1318/ui/views/accessibility/native_view_accessibility_mac.h [modify] https://crrev.com/2d1f02c30222c895ba0216f011a627140e2a1318/ui/views/accessibility/native_view_accessibility_mac.mm [add] https://crrev.com/2d1f02c30222c895ba0216f011a627140e2a1318/ui/views/accessibility/native_view_accessibility_stub.cc [modify] https://crrev.com/2d1f02c30222c895ba0216f011a627140e2a1318/ui/views/accessibility/native_view_accessibility_unittest.cc [modify] https://crrev.com/2d1f02c30222c895ba0216f011a627140e2a1318/ui/views/accessibility/native_view_accessibility_win.cc [modify] https://crrev.com/2d1f02c30222c895ba0216f011a627140e2a1318/ui/views/accessibility/native_view_accessibility_win.h [modify] https://crrev.com/2d1f02c30222c895ba0216f011a627140e2a1318/ui/views/accessibility/native_view_accessibility_win_unittest.cc [modify] https://crrev.com/2d1f02c30222c895ba0216f011a627140e2a1318/ui/views/controls/tabbed_pane/tabbed_pane_unittest.cc [modify] https://crrev.com/2d1f02c30222c895ba0216f011a627140e2a1318/ui/views/controls/webview/webview.h
,
Mar 27 2017
,
Mar 31 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/54bfa63a7eedc669fc481aa985d1f5979e695a1a commit 54bfa63a7eedc669fc481aa985d1f5979e695a1a Author: patricialor <patricialor@chromium.org> Date: Fri Mar 31 04:22:01 2017 Views a11y: Implement AXPlatformNode::FromNativeViewAccessible() for Mac/Linux. In order to implement the ability to exclude unnecessary accessibility elements from the accessibility tree cross-platform, a method to retrieve the NativeViewAccessibility instance for a given View is required. While this is possible using AXPlatformNode::FromNativeViewAccessible() on Windows, it is not implemented on any other platform. This patch implements AXPlatformNode::FromNativeViewAccessible() for Linux and Mac, which makes it possible to retrieve a NativeViewAccessibility instance for any given View. BUG= 610589 Review-Url: https://codereview.chromium.org/2715543003 Cr-Commit-Position: refs/heads/master@{#461026} [modify] https://crrev.com/54bfa63a7eedc669fc481aa985d1f5979e695a1a/ui/accessibility/platform/ax_platform_node.cc [modify] https://crrev.com/54bfa63a7eedc669fc481aa985d1f5979e695a1a/ui/accessibility/platform/ax_platform_node_auralinux.cc [modify] https://crrev.com/54bfa63a7eedc669fc481aa985d1f5979e695a1a/ui/accessibility/platform/ax_platform_node_mac.h [modify] https://crrev.com/54bfa63a7eedc669fc481aa985d1f5979e695a1a/ui/accessibility/platform/ax_platform_node_mac.mm
,
Apr 21 2017
,
Apr 21 2017
,
May 26 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/ce2e11f2565db306765cc6f6412cf5bfb158fb70 commit ce2e11f2565db306765cc6f6412cf5bfb158fb70 Author: patricialor <patricialor@chromium.org> Date: Fri May 26 01:25:32 2017 a11y: Exclude children of nested keyboard accessible controls from a11y tree. Currently, children of keyboard accessible controls, such as the Labels inside LabelButtons, are not hidden from the accessibility tree. This is not useful because the user only cares about the element that has focus, not any children inside it, which are implementation details. Set any children of keyboard accessible controls to have ignored roles, which indicates to the OS (works for Windows, Mac, and Linux) that the ignored element should be excluded from the accessibility tree. BUG= 610589 , 723574 TEST=On Mac: Open the XCode Accessibility Inspector. On Windows: Open the Windows SDK 'Inspect.exe' and make sure the icon for 'Watch Focus' is selected. Then (on Mac, hover over; on Windows, focus) a views::LabelButton (e.g. on the HTTP Authentication dialog). It should report an empty set of children and its role ("Type"/"accessibilityRole" on Mac; "Role"/"ControlType" on Windows) should say it is a button. Review-Url: https://codereview.chromium.org/2119413004 Cr-Commit-Position: refs/heads/master@{#474867} [modify] https://crrev.com/ce2e11f2565db306765cc6f6412cf5bfb158fb70/ui/accessibility/platform/ax_platform_node_auralinux.cc [modify] https://crrev.com/ce2e11f2565db306765cc6f6412cf5bfb158fb70/ui/accessibility/platform/ax_platform_node_mac.mm [modify] https://crrev.com/ce2e11f2565db306765cc6f6412cf5bfb158fb70/ui/accessibility/platform/ax_platform_node_win.cc [modify] https://crrev.com/ce2e11f2565db306765cc6f6412cf5bfb158fb70/ui/views/accessibility/native_view_accessibility_base.cc [modify] https://crrev.com/ce2e11f2565db306765cc6f6412cf5bfb158fb70/ui/views/accessibility/native_view_accessibility_unittest.cc [modify] https://crrev.com/ce2e11f2565db306765cc6f6412cf5bfb158fb70/ui/views/view.h [modify] https://crrev.com/ce2e11f2565db306765cc6f6412cf5bfb158fb70/ui/views/widget/native_widget_mac_accessibility_unittest.mm
,
May 30 2017
|
|||||||||||||||||||||||
►
Sign in to add a comment |
|||||||||||||||||||||||
Comment 1 by tapted@chromium.org
, May 10 2016