Bug 106756 - AX: Need to implement ColorWellRole
Summary: AX: Need to implement ColorWellRole
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: Accessibility (show other bugs)
Version: 528+ (Nightly build)
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Dominic Mazzoni
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2013-01-13 22:40 PST by Dominic Mazzoni
Modified: 2013-01-14 14:22 PST (History)
14 users (show)

See Also:


Attachments
Patch (5.59 KB, patch)
2013-01-13 22:43 PST, Dominic Mazzoni
no flags Details | Formatted Diff | Diff
Patch (16.31 KB, patch)
2013-01-14 10:31 PST, Dominic Mazzoni
no flags Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Dominic Mazzoni 2013-01-13 22:40:44 PST
Chromium implements <input type="color"> using a native Mac color well, so it's important to support this role.
Comment 1 Dominic Mazzoni 2013-01-13 22:43:43 PST
Created attachment 182509 [details]
Patch
Comment 2 chris fleizach 2013-01-13 22:53:45 PST
Comment on attachment 182509 [details]
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=182509&action=review

the AXValue for a color well should return something like

AXValue	rgb 0.76448 1 0.280308 1, so VO can speak the color

> Source/WebCore/accessibility/AccessibilityRenderObject.cpp:2466
> +        const AtomicString& type = input->getAttribute(typeAttr);

What case will this not be handled by the same code in AXNodeObject?
Comment 3 Dominic Mazzoni 2013-01-14 10:31:48 PST
Created attachment 182599 [details]
Patch
Comment 4 Dominic Mazzoni 2013-01-14 10:33:19 PST
(In reply to comment #2)
> (From update of attachment 182509 [details])
> View in context: https://bugs.webkit.org/attachment.cgi?id=182509&action=review
> 
> the AXValue for a color well should return something like
> 
> AXValue    rgb 0.76448 1 0.280308 1, so VO can speak the color

OK. I implemented the Mac version but the code won't be used until Safari has color well support. I implemented something similar in Chromium DRT.

> > Source/WebCore/accessibility/AccessibilityRenderObject.cpp:2466
> > +        const AtomicString& type = input->getAttribute(typeAttr);
> 
> What case will this not be handled by the same code in AXNodeObject?

Right now, AccessibilityRenderObject::determineAccessibilityRole doesn't call the inherited method. We need to refactor it some more to remove more duplication.
Comment 5 WebKit Review Bot 2013-01-14 10:35:13 PST
Please wait for approval from abarth@webkit.org, dglazkov@chromium.org, fishd@chromium.org, jamesr@chromium.org or tkent@chromium.org before submitting, as this patch contains changes to the Chromium public API. See also https://trac.webkit.org/wiki/ChromiumWebKitAPI.
Comment 6 chris fleizach 2013-01-14 11:00:57 PST
(In reply to comment #4)
> (In reply to comment #2)
> > (From update of attachment 182509 [details] [details])
> > View in context: https://bugs.webkit.org/attachment.cgi?id=182509&action=review
> > 
> > the AXValue for a color well should return something like
> > 
> > AXValue    rgb 0.76448 1 0.280308 1, so VO can speak the color
> 
> OK. I implemented the Mac version but the code won't be used until Safari has color well support. I implemented something similar in Chromium DRT.
> 
> > > Source/WebCore/accessibility/AccessibilityRenderObject.cpp:2466
> > > +        const AtomicString& type = input->getAttribute(typeAttr);
> > 
> > What case will this not be handled by the same code in AXNodeObject?
> 
> Right now, AccessibilityRenderObject::determineAccessibilityRole doesn't call the inherited method. We need to refactor it some more to remove more duplication.

Is there a need to duplicate this logic in AXNodeObject currently then?
Comment 7 Dominic Mazzoni 2013-01-14 13:36:01 PST
(In reply to comment #6)
> Is there a need to duplicate this logic in AXNodeObject currently then?

I think there are now two relatively obscure places in the code where AXNodeObject is used without AXRenderObject:

1. In canvas fallback content
2. In a subtree with display:none but aria-hidden=false

These are admittedly rare, but I still think it's right to implement this code in AXNodeObject and try to refactor it over time to put most of the logic there and use AXRenderObject only where the information we get from the render tree differs.
Comment 8 WebKit Review Bot 2013-01-14 14:22:26 PST
Comment on attachment 182599 [details]
Patch

Clearing flags on attachment: 182599

Committed r139663: <http://trac.webkit.org/changeset/139663>
Comment 9 WebKit Review Bot 2013-01-14 14:22:31 PST
All reviewed patches have been landed.  Closing bug.