New issue
Advanced search Search tips

Issue 668590 link

Starred by 2 users

Issue metadata

Status: Assigned
Owner:
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: All
Pri: 3
Type: Bug
Team-Accessibility

Blocking:
issue 667685



Sign in to add a comment

AX code checks editability during style recalc

Project Member Reported by xiaoche...@chromium.org, Nov 25 2016

Issue description

hasEditableStyle should always be called with clean style to get correct result. AX sometimes calls it with dirty style, and an in-place style update (by calling Document::updateStyleAndLayoutTree) causes troubles.

The followings are the relevant (possibly indirect) call sites in AX, and the failing layout tests if they perform an in-place style update:

- AXLayoutObject::getScrollableAreaIfScrollable
 - fast/events/onchange-text-form-field.html
 - fast/dom/search-shadow-host-crash.html

- AXNodeObject::canSetFocusAttribute
 - editing/pasteboard/style-from-rules.html
 - editing/style/inline-style-extend-run.html
 - editing/undo/remove-css-property-and-remove-style.html
 - editing/selection/first-letter-selection-crash.html
 - editing/selection/extend-by-word-002.html

- AXTable::isDataTable
 - fast/dynamic/checkbox-selection-crash.html
 
Blocking: 667685
Components: UI>Accessibility
Labels: -Pri-3 OS-All Pri-2
Haven't fully investigated why updating style causes failure.

One of the possible sources is that, AXNodeObject::canSetFocusAttribute can be called during style recalculation.
Cc: dmazz...@chromium.org
Owner: xiaoche...@chromium.org
Status: Started (was: Untriaged)
At the current state, we will add a scope so that when we reach hasEditableLevel from the functions mentioned in #0, we do not update style even if style is dirty.
Status: Assigned (was: Started)
Further actions are paused, as we need to discuss the future of -webkit-user-modify.
Labels: NewComponent-Accessibility-Blink NewComponent-Accessibility
Components: Blink>Accessibility
Components: -UI>Accessibility
Labels: -newcomponent-accessibility-blink -newcomponent-accessibility
Owner: ----
Status: Available (was: Assigned)
Summary: AX code checks focusability during style recalc (was: Calling hasEditableStyle from AX doesn't work correctly)
Pasted from  issue 667685 :

A typical stack trace of entering the function in style recalc looks like:

STDERR: #2 0x7fb28ea3803c blink::hasEditableLevel()
STDERR: #3 0x7fb28ea37f07 blink::hasEditableStyle()
STDERR: #4 0x7fb28ea382a5 blink::isRootEditableElement()
STDERR: #5 0x7fb28e8a59d7 blink::Element::supportsFocus()
STDERR: #6 0x7fb28ced9088 blink::AXNodeObject::canSetFocusAttribute()
...
STDERR: #35 0x7fb28cefb25f blink::AXObjectCacheImpl::textChanged()
STDERR: #36 0x7fb28f285d41 blink::LayoutText::setText()
...
STDERR: #52 0x7fb28e8a201f blink::Element::rebuildLayoutTree()
STDERR: #53 0x7fb28e8a11d3 blink::Element::recalcOwnStyle()
STDERR: #54 0x7fb28e8a08df blink::Element::recalcStyle()
STDERR: #55 0x7fb28e8273a5 blink::Document::updateStyle()
Summary: AX code checks editability during style recalc (was: AX code checks focusability during style recalc)
Labels: triage-alice
Labels: -triage-alice
This seems like something that would be fixed by implementing the accessibility lifecycle phase.
Labels: triage-dougt
Labels: -triage-dougt
Project Member

Comment 13 by sheriffbot@chromium.org, Aug 13

Labels: Hotlist-Recharge-Cold
Status: Untriaged (was: Available)
This issue has been Available for over a year. If it's no longer important or seems unlikely to be fixed, please consider closing it out. If it is important, please re-triage the issue.

Sorry for the inconvenience if the bug really should have been left as Available.

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
Cc: -dmazz...@chromium.org
Labels: -Pri-2 -Hotlist-Recharge-Cold Pri-3
Owner: dmazz...@chromium.org
Status: Assigned (was: Untriaged)
This is NOT an easy fix but this will be possible once other refactoring is completed.

Sign in to add a comment