Chromium Code Reviews
Help | Chromium Project | Sign in
(13)

Issue 2119413004: a11y: Exclude children of nested keyboard accessible controls from a11y tree.

Can't Edit
Can't Publish+Mail
Start Review
Created:
9 months, 3 weeks ago by Patti Lor
Modified:
2 weeks, 4 days ago
CC:
chromium-reviews, aboxhall+watch_chromium.org, tfarina, nektar+watch_chromium.org, yuzo+watch_chromium.org, je_julie, dmazzoni+watch_chromium.org, dtseng+watch_chromium.org, chrome-apps-syd-reviews_chromium.org
Base URL:
https://chromium.googlesource.com/chromium/src.git@master
Target Ref:
refs/heads/master
Project:
chromium
Visibility:
Public.

Description

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 and exclude them from the accessibility tree. BUG=610589 TEST=Open the XCode Accessibility Inspector, hover over the text on a views::LabelButton (e.g. on the HTTP Authentication dialog). It should report an empty set of children and its role should be a button.

Patch Set 1 #

Patch Set 2 : Tentative switch to use IsAccessibilityFocusable() instead of a flag. #

Total comments: 2

Patch Set 3 : Implement ignored accessibility elements and hide them from accessibility clients, with tests. #

Patch Set 4 : Fix compile errors. #

Patch Set 5 : Fix last two tests on Mac, compile errors for Linux and Windows. #

Patch Set 6 : Re-add compile error fixes. #

Patch Set 7 : Fix compile error and final test in NativeWidgetMacTest. #

Total comments: 1

Patch Set 8 : Before revert of cross-platform ignored a11y elements. #

Patch Set 9 : Move to a Mac-specific approach by ignoring elements with keyboard focusable parents. #

Total comments: 4

Patch Set 10 : Review comments, ignore View::enabled_. #

Patch Set 11 : Don't ignore children if they're accessibility focusable, regardless of enabled state. #

Total comments: 16

Patch Set 12 : Review comments. #

Total comments: 2

Patch Set 13 : Review comments. #

Total comments: 14

Patch Set 14 : Switch back to "using LabelButton::label() and update comment. #

Patch Set 15 : Make things cross-platform (with code from patchset 8). #

Patch Set 16 : Fix Windows/Linux compilation, use insert instead of emplace. #

Patch Set 17 : Don't use assignments inside if conditionals because Windows doesn't like it. #

Patch Set 18 : Fix ChildAtIndex() for Widget children. #

Patch Set 19 : Refactor to use ui::AX_ROLE_IGNORED for excluding a11y elements from the tree instead of focusabili… #

Total comments: 49

Patch Set 20 : Review comments (incomplete). #

Patch Set 21 : Rebase. #

Patch Set 22 : Fix compile error. #

Patch Set 23 : Fix widget children. #

Total comments: 34

Patch Set 24 : Implement FromNativeViewAccessible() for Mac/Linux. #

Patch Set 25 : Fix CrOS. #

Total comments: 6

Patch Set 26 : Address compilation issues + review comments. #

Patch Set 27 : Don't use AXPlatformNode::FromNativeViewAccessible() on CrOS (unimplemented). #

Patch Set 28 : Rebase on top of 2704263002. #

Total comments: 21

Patch Set 29 : Rebase again. #

Total comments: 13

Patch Set 30 : Review comments. #

Total comments: 8

Patch Set 31 : Fix easy review comments. #

Patch Set 32 : Rebase. #

Unified diffs Side-by-side diffs Delta from patch set Stats (+444 lines, -64 lines) Patch
M ui/accessibility/platform/ax_platform_node_mac.mm View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 1 chunk +3 lines, -1 line 0 comments Download
M ui/views/accessibility/native_view_accessibility_base.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 4 chunks +17 lines, -0 lines 0 comments Download
M ui/views/accessibility/native_view_accessibility_base.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 7 chunks +122 lines, -38 lines 0 comments Download
M ui/views/accessibility/native_view_accessibility_mac.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 1 chunk +2 lines, -1 line 0 comments Download
M ui/views/accessibility/native_view_accessibility_mac.mm View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 1 chunk +3 lines, -9 lines 0 comments Download
M ui/views/accessibility/native_view_accessibility_unittest.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 10 chunks +243 lines, -11 lines 0 comments Download
M ui/views/view.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 2 chunks +2 lines, -4 lines 0 comments Download
M ui/views/widget/native_widget_mac_accessibility_unittest.mm View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 4 chunks +52 lines, -0 lines 0 comments Download
Commit queue not available (can’t edit this change).

Messages

Total messages: 297 (262 generated)
Patti Lor
Hi Trent, PTAL. One part of this CL I'm not sure about is whether to ...
9 months, 3 weeks ago (2016-07-07 03:26:00 UTC) #2
tapted (OOO until 2017-05-01)
Did you see my comment at http://crbug.com/610589#c3 ? (is that a dead-end?) The notion would ...
9 months, 3 weeks ago (2016-07-07 04:27:26 UTC) #3
Patti Lor
On 2016/07/07 04:27:26, tapted wrote: > Did you see my comment at http://crbug.com/610589#c3 ? (is ...
9 months, 3 weeks ago (2016-07-07 05:24:19 UTC) #4
Patti Lor
So, I think doing it the way you suggested is going to be a bit ...
9 months, 3 weeks ago (2016-07-11 07:16:30 UTC) #5
tapted (OOO until 2017-05-01)
On 2016/07/11 07:16:30, Patti Lor wrote: > So, I think doing it the way you ...
9 months, 3 weeks ago (2016-07-12 01:44:14 UTC) #6
tapted (OOO until 2017-05-01)
https://codereview.chromium.org/2119413004/diff/20001/ui/views/controls/button/label_button.cc File ui/views/controls/button/label_button.cc (right): https://codereview.chromium.org/2119413004/diff/20001/ui/views/controls/button/label_button.cc#newcode135 ui/views/controls/button/label_button.cc:135: SetFocusBehavior(FocusBehavior::ACCESSIBLE_ONLY); The goal would be to make these lines ...
9 months, 3 weeks ago (2016-07-12 01:44:23 UTC) #7
tapted (OOO until 2017-05-01)
https://codereview.chromium.org/2119413004/diff/120001/ui/accessibility/platform/ax_platform_node_mac.mm File ui/accessibility/platform/ax_platform_node_mac.mm (right): https://codereview.chromium.org/2119413004/diff/120001/ui/accessibility/platform/ax_platform_node_mac.mm#newcode283 ui/accessibility/platform/ax_platform_node_mac.mm:283: if (NSPointInRect(point, child.boundsInScreen)) Perhaps we can tackle this logic. ...
6 months, 1 week ago (2016-10-18 04:38:31 UTC) #32
Patti Lor
Hi Trent, PTAL - scrapped the old approach entirely. Thanks! https://codereview.chromium.org/2119413004/diff/20001/ui/views/controls/button/label_button.cc File ui/views/controls/button/label_button.cc (right): https://codereview.chromium.org/2119413004/diff/20001/ui/views/controls/button/label_button.cc#newcode135 ...
5 months ago (2016-11-25 03:59:28 UTC) #40
tapted (OOO until 2017-05-01)
looks pretty good, but I'd loop in an a11y expert -- they might know better ...
5 months ago (2016-11-25 04:36:27 UTC) #43
Patti Lor
Thanks Trent, PTAL. https://codereview.chromium.org/2119413004/diff/160001/ui/views/accessibility/native_view_accessibility.cc File ui/views/accessibility/native_view_accessibility.cc (right): https://codereview.chromium.org/2119413004/diff/160001/ui/views/accessibility/native_view_accessibility.cc#newcode105 ui/views/accessibility/native_view_accessibility.cc:105: if (HasFocusableAncestor()) On 2016/11/25 04:36:27, tapted ...
5 months ago (2016-11-28 06:40:23 UTC) #50
tapted (OOO until 2017-05-01)
https://codereview.chromium.org/2119413004/diff/200001/ui/views/accessibility/native_view_accessibility.cc File ui/views/accessibility/native_view_accessibility.cc (right): https://codereview.chromium.org/2119413004/diff/200001/ui/views/accessibility/native_view_accessibility.cc#newcode24 ui/views/accessibility/native_view_accessibility.cc:24: bool ViewHasFocusableAncestor(View* parent) { nit: parent -> view (since ...
5 months ago (2016-11-29 03:12:49 UTC) #53
Patti Lor
Hi Trent, PTAL! Thanks. https://codereview.chromium.org/2119413004/diff/200001/ui/views/accessibility/native_view_accessibility.cc File ui/views/accessibility/native_view_accessibility.cc (right): https://codereview.chromium.org/2119413004/diff/200001/ui/views/accessibility/native_view_accessibility.cc#newcode24 ui/views/accessibility/native_view_accessibility.cc:24: bool ViewHasFocusableAncestor(View* parent) { On ...
5 months ago (2016-11-29 23:26:19 UTC) #58
tapted (OOO until 2017-05-01)
https://codereview.chromium.org/2119413004/diff/200001/ui/views/widget/native_widget_mac_accessibility_unittest.mm File ui/views/widget/native_widget_mac_accessibility_unittest.mm (right): https://codereview.chromium.org/2119413004/diff/200001/ui/views/widget/native_widget_mac_accessibility_unittest.mm#newcode124 ui/views/widget/native_widget_mac_accessibility_unittest.mm:124: child_button->SetSize(gfx::Size()); On 2016/11/29 23:26:18, Patti Lor wrote: > On ...
5 months ago (2016-11-29 23:43:20 UTC) #59
Patti Lor
PTAL, thanks https://codereview.chromium.org/2119413004/diff/200001/ui/views/widget/native_widget_mac_accessibility_unittest.mm File ui/views/widget/native_widget_mac_accessibility_unittest.mm (right): https://codereview.chromium.org/2119413004/diff/200001/ui/views/widget/native_widget_mac_accessibility_unittest.mm#newcode124 ui/views/widget/native_widget_mac_accessibility_unittest.mm:124: child_button->SetSize(gfx::Size()); On 2016/11/29 23:43:20, tapted wrote: > ...
5 months ago (2016-11-30 05:13:25 UTC) #62
tapted (OOO until 2017-05-01)
lgtm with the following https://codereview.chromium.org/2119413004/diff/240001/ui/views/widget/native_widget_mac_accessibility_unittest.mm File ui/views/widget/native_widget_mac_accessibility_unittest.mm (right): https://codereview.chromium.org/2119413004/diff/240001/ui/views/widget/native_widget_mac_accessibility_unittest.mm#newcode68 ui/views/widget/native_widget_mac_accessibility_unittest.mm:68: Label* GetLabel() { return LabelButton::label(); ...
5 months ago (2016-11-30 05:23:17 UTC) #63
Patti Lor
Hi dmazzoni, WDYT of this approach? Thanks! https://codereview.chromium.org/2119413004/diff/240001/ui/views/widget/native_widget_mac_accessibility_unittest.mm File ui/views/widget/native_widget_mac_accessibility_unittest.mm (right): https://codereview.chromium.org/2119413004/diff/240001/ui/views/widget/native_widget_mac_accessibility_unittest.mm#newcode68 ui/views/widget/native_widget_mac_accessibility_unittest.mm:68: Label* GetLabel() ...
5 months ago (2016-11-30 05:37:37 UTC) #65
dmazzoni
https://codereview.chromium.org/2119413004/diff/240001/ui/views/accessibility/native_view_accessibility.cc File ui/views/accessibility/native_view_accessibility.cc (right): https://codereview.chromium.org/2119413004/diff/240001/ui/views/accessibility/native_view_accessibility.cc#newcode110 ui/views/accessibility/native_view_accessibility.cc:110: #if defined(OS_MACOSX) I'd prefer to find a solution that ...
5 months ago (2016-11-30 23:12:45 UTC) #68
Patti Lor
Thanks for the review dmazzoni - the new patchset is not for your comments, but ...
4 months, 4 weeks ago (2016-12-01 01:12:07 UTC) #71
dmazzoni
On 2016/12/01 01:12:07, Patti Lor wrote: > Yes - this was my approach in patchset ...
4 months, 4 weeks ago (2016-12-02 00:07:16 UTC) #74
Patti Lor
Hi Trent, PTAL - it's changed a lot since you gave lgtm. Merged with the ...
4 months, 1 week ago (2016-12-21 04:09:09 UTC) #117
tapted (OOO until 2017-05-01)
https://codereview.chromium.org/2119413004/diff/460001/ui/accessibility/platform/ax_platform_node_mac.mm File ui/accessibility/platform/ax_platform_node_mac.mm (right): https://codereview.chromium.org/2119413004/diff/460001/ui/accessibility/platform/ax_platform_node_mac.mm#newcode289 ui/accessibility/platform/ax_platform_node_mac.mm:289: ![child accessibilityIsIgnored]) nit: reorder these so accessibilityIsIgnored is checked ...
4 months, 1 week ago (2016-12-22 02:56:37 UTC) #120
dmazzoni
Looking really good! https://codereview.chromium.org/2119413004/diff/460001/ui/views/accessibility/native_view_accessibility.cc File ui/views/accessibility/native_view_accessibility.cc (right): https://codereview.chromium.org/2119413004/diff/460001/ui/views/accessibility/native_view_accessibility.cc#newcode77 ui/views/accessibility/native_view_accessibility.cc:77: // This should only ever happen ...
4 months ago (2016-12-28 18:02:35 UTC) #121
Patti Lor
Thanks all, PTAL. https://codereview.chromium.org/2119413004/diff/460001/ui/accessibility/platform/ax_platform_node_mac.mm File ui/accessibility/platform/ax_platform_node_mac.mm (right): https://codereview.chromium.org/2119413004/diff/460001/ui/accessibility/platform/ax_platform_node_mac.mm#newcode289 ui/accessibility/platform/ax_platform_node_mac.mm:289: ![child accessibilityIsIgnored]) On 2016/12/22 02:56:36, tapted ...
3 months, 2 weeks ago (2017-01-11 02:01:48 UTC) #138
dmazzoni
lgtm https://codereview.chromium.org/2119413004/diff/540001/ui/views/accessibility/native_view_accessibility.cc File ui/views/accessibility/native_view_accessibility.cc (right): https://codereview.chromium.org/2119413004/diff/540001/ui/views/accessibility/native_view_accessibility.cc#newcode247 ui/views/accessibility/native_view_accessibility.cc:247: // don't have to search further because AXPlatformNodeWin ...
3 months, 2 weeks ago (2017-01-11 07:39:38 UTC) #141
tapted (OOO until 2017-05-01)
Sorry... lots more comments - I'm still discovering lots in the a11y code :) I ...
3 months, 2 weeks ago (2017-01-11 18:27:40 UTC) #142
tapted (OOO until 2017-05-01)
https://codereview.chromium.org/2119413004/diff/680001/ui/accessibility/platform/ax_platform_node_mac.h File ui/accessibility/platform/ax_platform_node_mac.h (right): https://codereview.chromium.org/2119413004/diff/680001/ui/accessibility/platform/ax_platform_node_mac.h#newcode55 ui/accessibility/platform/ax_platform_node_mac.h:55: - (ui::AXPlatformNodeBase*)getNode; @property(nonatomic, readonly) ui::AXPlatformNodeBase* node; (and @synthesize node ...
2 months, 1 week ago (2017-02-15 02:10:45 UTC) #181
Patti Lor
Ok, finally refactored the whole thing to use AXPlatformNode::FromNativeViewAccessible(), including implementing it for Linux and ...
2 months, 1 week ago (2017-02-21 03:29:17 UTC) #215
tapted (OOO until 2017-05-01)
https://codereview.chromium.org/2119413004/diff/840001/ui/gfx/native_widget_types.h File ui/gfx/native_widget_types.h (right): https://codereview.chromium.org/2119413004/diff/840001/ui/gfx/native_widget_types.h#newcode147 ui/gfx/native_widget_types.h:147: typedef void* NativeViewAccessible; I think we can get rid ...
2 months, 1 week ago (2017-02-21 06:01:12 UTC) #216
Patti Lor
https://codereview.chromium.org/2119413004/diff/840001/ui/gfx/native_widget_types.h File ui/gfx/native_widget_types.h (right): https://codereview.chromium.org/2119413004/diff/840001/ui/gfx/native_widget_types.h#newcode147 ui/gfx/native_widget_types.h:147: typedef void* NativeViewAccessible; On 2017/02/21 06:01:11, tapted wrote: > ...
2 months ago (2017-02-27 05:31:04 UTC) #225
Patti Lor
ping @ Trent? Thanks :)
3 weeks, 5 days ago (2017-04-03 03:59:51 UTC) #268
tapted (OOO until 2017-05-01)
mostly nits, and some questions https://codereview.chromium.org/2119413004/diff/1060001/ui/views/accessibility/native_view_accessibility_base.cc File ui/views/accessibility/native_view_accessibility_base.cc (right): https://codereview.chromium.org/2119413004/diff/1060001/ui/views/accessibility/native_view_accessibility_base.cc#newcode25 ui/views/accessibility/native_view_accessibility_base.cc:25: // being a non-keyboard-focusable ...
3 weeks, 5 days ago (2017-04-03 05:50:36 UTC) #271
Patti Lor
Hi Trent, PTAL https://codereview.chromium.org/2119413004/diff/1060001/ui/views/accessibility/native_view_accessibility_base.cc File ui/views/accessibility/native_view_accessibility_base.cc (right): https://codereview.chromium.org/2119413004/diff/1060001/ui/views/accessibility/native_view_accessibility_base.cc#newcode25 ui/views/accessibility/native_view_accessibility_base.cc:25: // being a non-keyboard-focusable child of ...
3 weeks, 4 days ago (2017-04-04 02:46:29 UTC) #284
tapted (OOO until 2017-05-01)
https://codereview.chromium.org/2119413004/diff/1060001/ui/views/accessibility/native_view_accessibility_base.cc File ui/views/accessibility/native_view_accessibility_base.cc (right): https://codereview.chromium.org/2119413004/diff/1060001/ui/views/accessibility/native_view_accessibility_base.cc#newcode221 ui/views/accessibility/native_view_accessibility_base.cc:221: return child_nva->GetParent(); On 2017/04/04 02:46:28, Patti Lor wrote: > ...
3 weeks, 4 days ago (2017-04-04 08:13:13 UTC) #287
tapted (OOO until 2017-05-01)
i've managed to get myself really lost - some suggestions below might allow an approach ...
3 weeks, 3 days ago (2017-04-05 06:03:33 UTC) #288
Patti Lor
2 weeks, 4 days ago (2017-04-11 05:40:46 UTC) #291
Thanks Trent - I need to do more investigation for your other comments that I've
missed, but I've replied to 3/5.

https://codereview.chromium.org/2119413004/diff/1060001/ui/views/accessibilit...
File ui/views/accessibility/native_view_accessibility_mac.mm (right):

https://codereview.chromium.org/2119413004/diff/1060001/ui/views/accessibilit...
ui/views/accessibility/native_view_accessibility_mac.mm:26: if
(view_->GetWidget())
On 2017/04/04 08:13:13, tapted wrote:
> On 2017/04/04 02:46:29, Patti Lor wrote:
> > On 2017/04/03 05:50:36, tapted wrote:
> > > comment here why |parent_widget_| doesn't work for Mac?
> > > 
> > > (e.g. is it a bug that we don't set a parent_widget_ on mac?)
> > 
> > I'm not sure why we are preferring to use the NativeView here over the
> > NativeViewAccessible of the Widget's RootView. I think this part of the code
> was
> > added before the |parent_widget_| NVA code in the current
> > NVABase::GetNVAForWidget() - see https://crrev.com/420653003, so maybe it's
> > actually just not needed any more. (Like, will there ever be a situation
where
> > |view_| is attached to a Widget, but its Widget doesn't have a RootView? I
> don't
> > think that should happen, but you know more than me.)
> > 
> > I think the only reason why we don't set |parent_widget_| on Mac is because
we
> > never happen to hit the part of the code in PopulateChildWidgetVector() that
> > actually calls SetParentWidget() (I messed around a bit to try and find a
> > situation where this might happen on Mac, including with MacViews browser,
but
> > couldn't really). But PopulateChildWidgetVector() doesn't actually seem to
> need
> > parent_widget_ itself, I think maybe it just assumes that whatever calls it
> > might need to access |parent_widget_| later (probably by calling
GetParent()).
> > 
> > WDYT of deleting this override and replacing the getter for parent_widget_
> that
> > will instead retrieve it on the fly? We might also have to DCHECK() in
> > GetParent() that |view_| is a RootView when we try accessing
|parent_widget_|
> > (since PopulateChildWidgetVector() only sets |parent_widget_| if that's the
> > case).
> 
> I think |parent_widget_| came about because in aura the NVA can teleport
between
> widgets, and they need to set up WidgetObservers correctly.. I need to look at
> this some more. (Maybe dmazzoni has some ideas..)

O, ok. I think that's still OK though right? If we get |parent_widget_| on the
fly instead of keeping a reference then we don't really need to set up
WidgetObservers for it. According to codesearch there is nowhere else in the
code that tries to use the getter we've got on NVABase, and if I delete it the
only compile error is on PopulateChildWidgetVector(). But yeah, I'll link this
thread on asking dmazzoni to look further.

https://codereview.chromium.org/2119413004/diff/1110001/ui/accessibility/plat...
File ui/accessibility/platform/ax_platform_node_mac.mm (right):

https://codereview.chromium.org/2119413004/diff/1110001/ui/accessibility/plat...
ui/accessibility/platform/ax_platform_node_mac.mm:292: -
(BOOL)accessibilityIsIgnored {
On 2017/04/05 06:03:33, tapted wrote:
> Should this be updated to include ui::AX_ROLE_IGNORED ?
> 
> (any chance that's a possible shortcut to fixing http://crbug.com/610589 ?)

I think this already happens - AX_ROLE_IGNORED is mapped to
NSAccessibilityUnknownRole (see BuildRoleMap() above), because there isn't any
NSAccessibility*Role equivalent, and we check for NS...UnknownRole here already.

The change that actually ignores the ignored elements on Mac is line 299 below,
where we check -accessibilityIsIgnored in the hit tests. We wouldn't need it if
we used NVABase::HitTestSync() in -accessibilityHitTest since that would exclude
ignored elements for us, but I think that might be out of scope for this CL (it
might be needed to make hit testing go inside WebViews; currently the
WebContents is just one giant green square when hovering over it with
Accessibility Inspector on Mac).

https://codereview.chromium.org/2119413004/diff/1110001/ui/views/accessibilit...
File ui/views/accessibility/native_view_accessibility_base.cc (right):

https://codereview.chromium.org/2119413004/diff/1110001/ui/views/accessibilit...
ui/views/accessibility/native_view_accessibility_base.cc:64: return false;
On 2017/04/04 08:13:13, tapted wrote:
> Comment here like
> 
> // If the native accessibility object isn't backed by NativeViewAccessibility
> (e.g. when the View wraps a native object), assume it should not be ignored.

Done.

https://codereview.chromium.org/2119413004/diff/1110001/ui/views/accessibilit...
ui/views/accessibility/native_view_accessibility_base.cc:310:
NativeViewAccessibilityBase::GetNativeViewAccessibleForWidget() {
On 2017/04/05 06:03:33, tapted wrote:
> I think this needs an override in NativeViewAccessiblilityWin as well?

I'm confused, can you explain why? A call to NVAWin::GetParent() would call
NVABase::GetParent(), which looks for the View parent, then calls
NVABase::GetNVAccessibleForWidget() to look for the Widget RootView, compared to
having previously called NVABase::GetParent() to firstly look for the View
parent, then the Widget RootView (which is the same)?
Sign in to reply to this message.

Powered by Google App Engine
RSS Feeds Recent Issues | This issue
This is Rietveld cc6ac46