| Summary: | AX: Fix accessibility/aria-current-state-changed-notification.html in isolated tree mode | ||||||
|---|---|---|---|---|---|---|---|
| Product: | WebKit | Reporter: | Tyler Wilcock <tyler_w> | ||||
| Component: | Accessibility | Assignee: | Tyler Wilcock <tyler_w> | ||||
| Status: | RESOLVED FIXED | ||||||
| Severity: | Normal | CC: | aboxhall, andresg_22, apinheiro, cfleizach, dmazzoni, ews-watchlist, jbedard, jcraig, jdiggs, samuel_white, webkit-bug-importer | ||||
| Priority: | P2 | Keywords: | InRadar | ||||
| Version: | WebKit Nightly Build | ||||||
| Hardware: | Unspecified | ||||||
| OS: | Unspecified | ||||||
| Attachments: |
|
||||||
|
Description
Tyler Wilcock
2022-02-21 19:04:33 PST
Created attachment 452811 [details]
Patch
(In reply to Tyler Wilcock from comment #2) > Created attachment 452811 [details] > Patch --- a/Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp +++ a/Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp + case AXPropertyName::CurrentValue: + propertyMap.set(AXPropertyName::CurrentValue, axObject.currentValue().isolatedCopy()); + break; Do we need to also clear the state in the object that is loosing current? Or we get separate notifications for each. (In reply to Andres Gonzalez from comment #3) > (In reply to Tyler Wilcock from comment #2) > > Created attachment 452811 [details] > > Patch > > --- a/Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp > +++ a/Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp > > + case AXPropertyName::CurrentValue: > + propertyMap.set(AXPropertyName::CurrentValue, > axObject.currentValue().isolatedCopy()); > + break; > > Do we need to also clear the state in the object that is loosing current? Or > we get separate notifications for each. (In reply to Andres Gonzalez from comment #3) > (In reply to Tyler Wilcock from comment #2) > > Created attachment 452811 [details] > > Patch > > --- a/Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp > +++ a/Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp > > + case AXPropertyName::CurrentValue: > + propertyMap.set(AXPropertyName::CurrentValue, > axObject.currentValue().isolatedCopy()); > + break; > > Do we need to also clear the state in the object that is loosing current? Or > we get separate notifications for each. We get an AXCurrentStateChanged notification for each individual element that changes aria-current, so assuming correct authoring we would get separate notifications for each -- one gaining current status, and the other losing it. (In reply to Tyler Wilcock from comment #4) > (In reply to Andres Gonzalez from comment #3) > > (In reply to Tyler Wilcock from comment #2) > > > Created attachment 452811 [details] > > > Patch > > > > --- a/Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp > > +++ a/Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp > > > > + case AXPropertyName::CurrentValue: > > + propertyMap.set(AXPropertyName::CurrentValue, > > axObject.currentValue().isolatedCopy()); > > + break; > > > > Do we need to also clear the state in the object that is loosing current? Or > > we get separate notifications for each. > (In reply to Andres Gonzalez from comment #3) > > (In reply to Tyler Wilcock from comment #2) > > > Created attachment 452811 [details] > > > Patch > > > > --- a/Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp > > +++ a/Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp > > > > + case AXPropertyName::CurrentValue: > > + propertyMap.set(AXPropertyName::CurrentValue, > > axObject.currentValue().isolatedCopy()); > > + break; > > > > Do we need to also clear the state in the object that is loosing current? Or > > we get separate notifications for each. > We get an AXCurrentStateChanged notification for each individual element > that changes aria-current, so assuming correct authoring we would get > separate notifications for each -- one gaining current status, and the other > losing it. Is the test covering that? (In reply to Tyler Wilcock from comment #4) > (In reply to Andres Gonzalez from comment #3) > > (In reply to Tyler Wilcock from comment #2) > > > Created attachment 452811 [details] > > > Patch > > > > --- a/Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp > > +++ a/Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp > > > > + case AXPropertyName::CurrentValue: > > + propertyMap.set(AXPropertyName::CurrentValue, > > axObject.currentValue().isolatedCopy()); > > + break; > > > > Do we need to also clear the state in the object that is loosing current? Or > > we get separate notifications for each. > (In reply to Andres Gonzalez from comment #3) > > (In reply to Tyler Wilcock from comment #2) > > > Created attachment 452811 [details] > > > Patch > > > > --- a/Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp > > +++ a/Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp > > > > + case AXPropertyName::CurrentValue: > > + propertyMap.set(AXPropertyName::CurrentValue, > > axObject.currentValue().isolatedCopy()); > > + break; > > > > Do we need to also clear the state in the object that is loosing current? Or > > we get separate notifications for each. > We get an AXCurrentStateChanged notification for each individual element > that changes aria-current, so assuming correct authoring we would get > separate notifications for each -- one gaining current status, and the other > losing it. (In reply to Andres Gonzalez from comment #5) > (In reply to Tyler Wilcock from comment #4) > > (In reply to Andres Gonzalez from comment #3) > > > (In reply to Tyler Wilcock from comment #2) > > > > Created attachment 452811 [details] > > > > Patch > > > > > > --- a/Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp > > > +++ a/Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp > > > > > > + case AXPropertyName::CurrentValue: > > > + propertyMap.set(AXPropertyName::CurrentValue, > > > axObject.currentValue().isolatedCopy()); > > > + break; > > > > > > Do we need to also clear the state in the object that is loosing current? Or > > > we get separate notifications for each. > > (In reply to Andres Gonzalez from comment #3) > > > (In reply to Tyler Wilcock from comment #2) > > > > Created attachment 452811 [details] > > > > Patch > > > > > > --- a/Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp > > > +++ a/Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp > > > > > > + case AXPropertyName::CurrentValue: > > > + propertyMap.set(AXPropertyName::CurrentValue, > > > axObject.currentValue().isolatedCopy()); > > > + break; > > > > > > Do we need to also clear the state in the object that is loosing current? Or > > > we get separate notifications for each. > > We get an AXCurrentStateChanged notification for each individual element > > that changes aria-current, so assuming correct authoring we would get > > separate notifications for each -- one gaining current status, and the other > > losing it. > > Is the test covering that? It wasn't important before because we would query the live object, but it is important now in ITM. > > Is the test covering that?
>
> It wasn't important before because we would query the live object, but it is
> important now in ITM.
It does. The expectations exercised by the test are:
Initial state
item2: page
item3: false
Update item2 aria-current to false
item2: false
item3: false
Update item3 aria-current to page
item2: false
item3: page
(In reply to Tyler Wilcock from comment #7) > > > Is the test covering that? > > > > It wasn't important before because we would query the live object, but it is > > important now in ITM. > It does. The expectations exercised by the test are: > > Initial state > item2: page > item3: false > > Update item2 aria-current to false > item2: false > item3: false > > Update item3 aria-current to page > item2: false > item3: page Great, thanks! Stopped https://ews-build.webkit.org/#/builders/70/builds/984, the 3 failures are already known. Committed r290309 (247632@main): <https://commits.webkit.org/247632@main> All reviewed patches have been landed. Closing bug and clearing flags on attachment 452811 [details]. |