Changeset 51669 in webkit


Ignore:
Timestamp:
Dec 3, 2009 5:00:07 PM (14 years ago)
Author:
Chris Fleizach
Message:

Implement WAI-ARIA scrollbar role and related property aria-orientation
https://bugs.webkit.org/show_bug.cgi?id=32126

Reviewed by Beth Dakin.

WebCore:

Test: accessibility/aria-scrollbar-role.html

  • accessibility/AccessibilityObject.cpp:

(WebCore::createARIARoleMap):

  • accessibility/AccessibilityObject.h:

(WebCore::AccessibilityObject::isScrollbar):

  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::valueForRange):
(WebCore::AccessibilityRenderObject::orientation):
(WebCore::AccessibilityRenderObject::canHaveChildren):

  • accessibility/AccessibilityRenderObject.h:
  • accessibility/mac/AccessibilityObjectWrapper.mm:

(-[AccessibilityObjectWrapper additionalAccessibilityAttributeNames]):
(-[AccessibilityObjectWrapper accessibilityAttributeValue:]):

  • html/HTMLAttributeNames.in:

WebKitTools:

  • DumpRenderTree/AccessibilityUIElement.cpp:

(getOrientationCallback):
(AccessibilityUIElement::getJSClass):

  • DumpRenderTree/AccessibilityUIElement.h:
  • DumpRenderTree/gtk/AccessibilityUIElementGtk.cpp:

(AccessibilityUIElement::orientation):

  • DumpRenderTree/mac/AccessibilityUIElementMac.mm:

(AccessibilityUIElement::orientation):

  • DumpRenderTree/win/AccessibilityUIElementWin.cpp:

(AccessibilityUIElement::orientation):

LayoutTests:

  • accessibility/aria-scrollbar-role-expected.txt: Added.
  • accessibility/aria-scrollbar-role.html: Added.
  • platform/gtk/Skipped:
  • platform/win/Skipped:
Location:
trunk
Files:
2 added
16 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r51667 r51669  
     12009-12-03  Chris Fleizach  <cfleizach@apple.com>
     2
     3        Reviewed by Beth Dakin.
     4
     5        Implement WAI-ARIA scrollbar role and related property aria-orientation
     6        https://bugs.webkit.org/show_bug.cgi?id=32126
     7
     8        * accessibility/aria-scrollbar-role-expected.txt: Added.
     9        * accessibility/aria-scrollbar-role.html: Added.
     10        * platform/gtk/Skipped:
     11        * platform/win/Skipped:
     12
    1132009-12-03  Alexey Proskuryakov  <ap@apple.com>
    214
  • trunk/LayoutTests/platform/gtk/Skipped

    r51640 r51669  
    5454accessibility/aria-link-supports-press.html
    5555accessibility/aria-readonly.html
     56accessibility/aria-scrollbar-role.html
    5657accessibility/aria-tab-roles.html
    5758accessibility/aria-text-role.html
  • trunk/LayoutTests/platform/win/Skipped

    r51667 r51669  
    371371accessibility/aria-readonly.html
    372372accessibility/aria-roles.html
     373accessibility/aria-scrollbar-role.html
    373374accessibility/aria-tables.html
    374375accessibility/aria-tab-roles.html
  • trunk/WebCore/ChangeLog

    r51668 r51669  
     12009-12-03  Chris Fleizach  <cfleizach@apple.com>
     2
     3        Reviewed by Beth Dakin.
     4
     5        Implement WAI-ARIA scrollbar role and related property aria-orientation
     6        https://bugs.webkit.org/show_bug.cgi?id=32126
     7
     8        Test: accessibility/aria-scrollbar-role.html
     9
     10        * accessibility/AccessibilityObject.cpp:
     11        (WebCore::createARIARoleMap):
     12        * accessibility/AccessibilityObject.h:
     13        (WebCore::AccessibilityObject::isScrollbar):
     14        * accessibility/AccessibilityRenderObject.cpp:
     15        (WebCore::AccessibilityRenderObject::valueForRange):
     16        (WebCore::AccessibilityRenderObject::orientation):
     17        (WebCore::AccessibilityRenderObject::canHaveChildren):
     18        * accessibility/AccessibilityRenderObject.h:
     19        * accessibility/mac/AccessibilityObjectWrapper.mm:
     20        (-[AccessibilityObjectWrapper additionalAccessibilityAttributeNames]):
     21        (-[AccessibilityObjectWrapper accessibilityAttributeValue:]):
     22        * html/HTMLAttributeNames.in:
     23
    1242009-12-03  Dan Bernstein  <mitz@apple.com>
    225
  • trunk/WebCore/accessibility/AccessibilityObject.cpp

    r51576 r51669  
    898898        { "row", RowRole },
    899899        { "range", SliderRole },
     900        { "scrollbar", ScrollBarRole },
    900901        { "search", LandmarkSearchRole },
    901902        { "separator", SplitterRole },
  • trunk/WebCore/accessibility/AccessibilityObject.h

    r51582 r51669  
    286286    bool isTree() const { return roleValue() == TreeRole; }
    287287    bool isTreeItem() const { return roleValue() == TreeItemRole; }
     288    bool isScrollbar() const { return roleValue() == ScrollBarRole; }
    288289   
    289290    virtual bool isChecked() const { return false; }
  • trunk/WebCore/accessibility/AccessibilityRenderObject.cpp

    r51582 r51669  
    834834float AccessibilityRenderObject::valueForRange() const
    835835{
    836     if (!isProgressIndicator() && !isSlider())
     836    if (!isProgressIndicator() && !isSlider() && !isScrollbar())
    837837        return 0.0f;
    838838
     
    26522652}
    26532653
     2654AccessibilityOrientation AccessibilityRenderObject::orientation() const
     2655{
     2656    const AtomicString& ariaOrientation = getAttribute(aria_orientationAttr).string();
     2657    if (equalIgnoringCase(ariaOrientation, "horizontal"))
     2658        return AccessibilityOrientationHorizontal;
     2659    if (equalIgnoringCase(ariaOrientation, "vertical"))
     2660        return AccessibilityOrientationVertical;
     2661   
     2662    return AccessibilityObject::orientation();
     2663}
     2664   
    26542665bool AccessibilityRenderObject::isPresentationalChildOfAriaRole() const
    26552666{
     
    27632774    case StaticTextRole:
    27642775    case ListBoxOptionRole:
     2776    case ScrollBarRole:
    27652777        return false;
    27662778    default:
  • trunk/WebCore/accessibility/AccessibilityRenderObject.h

    r51582 r51669  
    202202    virtual void setSelectedRows(AccessibilityChildrenVector&);
    203203    virtual void changeValueByPercent(float percentChange);
     204    virtual AccessibilityOrientation orientation() const;
    204205    virtual void increment();
    205206    virtual void decrement();
  • trunk/WebCore/accessibility/mac/AccessibilityObjectWrapper.mm

    r51582 r51669  
    591591        [additional addObject:NSAccessibilityOwnsAttribute];
    592592
     593    if (m_object->isScrollbar())
     594        [additional addObject:NSAccessibilityOrientationAttribute];
     595   
    593596    if (m_object->supportsARIADragging())
    594597        [additional addObject:NSAccessibilityGrabbedAttribute];
     
    14491452                return [[self attachmentView] accessibilityAttributeValue:NSAccessibilityValueAttribute];
    14501453        }
    1451         if (m_object->isProgressIndicator() || m_object->isSlider())
     1454        if (m_object->isProgressIndicator() || m_object->isSlider() || m_object->isScrollbar())
    14521455            return [NSNumber numberWithFloat:m_object->valueForRange()];
    14531456        if (m_object->hasIntValue())
  • trunk/WebCore/html/HTMLAttributeNames.in

    r51644 r51669  
    2828aria-level
    2929aria-multiselectable
     30aria-orientation
    3031aria-owns
    3132aria-pressed
  • trunk/WebKitTools/ChangeLog

    r51664 r51669  
     12009-12-03  Chris Fleizach  <cfleizach@apple.com>
     2
     3        Reviewed by Beth Dakin.
     4
     5        Implement WAI-ARIA scrollbar role and related property aria-orientation
     6        https://bugs.webkit.org/show_bug.cgi?id=32126
     7
     8        * DumpRenderTree/AccessibilityUIElement.cpp:
     9        (getOrientationCallback):
     10        (AccessibilityUIElement::getJSClass):
     11        * DumpRenderTree/AccessibilityUIElement.h:
     12        * DumpRenderTree/gtk/AccessibilityUIElementGtk.cpp:
     13        (AccessibilityUIElement::orientation):
     14        * DumpRenderTree/mac/AccessibilityUIElementMac.mm:
     15        (AccessibilityUIElement::orientation):
     16        * DumpRenderTree/win/AccessibilityUIElementWin.cpp:
     17        (AccessibilityUIElement::orientation):
     18
    1192009-12-03  Eric Carlson  <eric.carlson@apple.com>
    220
  • trunk/WebKitTools/DumpRenderTree/AccessibilityUIElement.cpp

    r51582 r51669  
    370370    JSRetainPtr<JSStringRef> language(Adopt, toAXElement(thisObject)->language());
    371371    return JSValueMakeString(context, language.get());
     372}
     373
     374static JSValueRef getOrientationCallback(JSContextRef context, JSObjectRef thisObject, JSStringRef propertyName, JSValueRef* exception)
     375{
     376    JSRetainPtr<JSStringRef> orientation(Adopt, toAXElement(thisObject)->orientation());
     377    return JSValueMakeString(context, orientation.get());
    372378}
    373379
     
    527533        { "documentURI", getDocumentURICallback, 0, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete },
    528534        { "isValid", getIsValidCallback, 0, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete },
     535        { "orientation", getOrientationCallback, 0, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete },
    529536        { "ariaIsGrabbed", getARIAIsGrabbedCallback, 0, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete },
    530537        { "ariaDropEffects", getARIADropEffectsCallback, 0, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete },
  • trunk/WebKitTools/DumpRenderTree/AccessibilityUIElement.h

    r51582 r51669  
    9696    JSStringRef stringValue();
    9797    JSStringRef accessibilityValue() const;
     98    JSStringRef orientation() const;
    9899    double x();
    99100    double y();
  • trunk/WebKitTools/DumpRenderTree/gtk/AccessibilityUIElementGtk.cpp

    r51583 r51669  
    240240}
    241241
     242JSStringRef AccessibilityUIElement::orientation() const
     243{
     244    return 0;
     245}
    242246
    243247double AccessibilityUIElement::intValue()
  • trunk/WebKitTools/DumpRenderTree/mac/AccessibilityUIElementMac.mm

    r51582 r51669  
    387387}
    388388
     389JSStringRef AccessibilityUIElement::orientation() const
     390{
     391    id description = descriptionOfValue([m_element accessibilityAttributeValue:NSAccessibilityOrientationAttribute], m_element);
     392    return concatenateAttributeAndValue(@"AXOrientation", description);   
     393}
     394
    389395JSStringRef AccessibilityUIElement::stringValue()
    390396{
  • trunk/WebKitTools/DumpRenderTree/win/AccessibilityUIElementWin.cpp

    r51583 r51669  
    278278}
    279279
     280JSStringRef AccessibilityUIElement::orientation() const
     281{
     282    return 0;
     283}
     284
    280285double AccessibilityUIElement::intValue()
    281286{
Note: See TracChangeset for help on using the changeset viewer.