Changeset 100892 in webkit


Ignore:
Timestamp:
Nov 21, 2011 1:50:39 AM (12 years ago)
Author:
dmazzoni@google.com
Message:

Accessibility: Multiselect list boxes need to report the active option in addition to which items are selected.
https://bugs.webkit.org/show_bug.cgi?id=72479

Reviewed by Chris Fleizach.

Source/WebCore:

Test: accessibility/multiselect-list-reports-active-option.html

  • accessibility/AccessibilityListBoxOption.cpp:

(WebCore::AccessibilityListBoxOption::isSelectedOptionActive):

  • accessibility/AccessibilityListBoxOption.h:
  • accessibility/AccessibilityObject.h:

(WebCore::AccessibilityObject::isSelectedOptionActive):

Source/WebKit/chromium:

Test: accessibility/multiselect-list-reports-active-option.html

  • public/WebAccessibilityObject.h:
  • src/WebAccessibilityObject.cpp:

(WebKit::WebAccessibilityObject::isSelectedOptionActive):

Tools:

  • DumpRenderTree/AccessibilityUIElement.cpp:

(getIsSelectedOptionActiveCallback):
(AccessibilityUIElement::getJSClass):

  • DumpRenderTree/AccessibilityUIElement.h:
  • DumpRenderTree/chromium/AccessibilityUIElement.cpp:

(AccessibilityUIElement::AccessibilityUIElement):
(AccessibilityUIElement::isSelectedOptionActiveGetterCallback):

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

(AccessibilityUIElement::isSelectedOptionActive):

  • DumpRenderTree/mac/AccessibilityUIElementMac.mm:

(AccessibilityUIElement::isSelectedOptionActive):

  • DumpRenderTree/win/AccessibilityUIElementWin.cpp:

(AccessibilityUIElement::isSelectedOptionActive):

LayoutTests:

  • accessibility/multiselect-list-reports-active-option.html: Added.
  • platform/chromium/accessibility/multiselect-list-reports-active-option-expected.txt: Added.
Location:
trunk
Files:
2 added
16 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r100891 r100892  
     12011-11-21  Dominic Mazzoni  <dmazzoni@google.com>
     2
     3        Accessibility: Multiselect list boxes need to report the active option in addition to which items are selected.
     4        https://bugs.webkit.org/show_bug.cgi?id=72479
     5
     6        Reviewed by Chris Fleizach.
     7
     8        * accessibility/multiselect-list-reports-active-option.html: Added.
     9        * platform/chromium/accessibility/multiselect-list-reports-active-option-expected.txt: Added.
     10
    1112011-11-21  Yuta Kitamura  <yutak@chromium.org>
    212
  • trunk/Source/WebCore/ChangeLog

    r100891 r100892  
     12011-11-21  Dominic Mazzoni  <dmazzoni@google.com>
     2
     3        Accessibility: Multiselect list boxes need to report the active option in addition to which items are selected.
     4        https://bugs.webkit.org/show_bug.cgi?id=72479
     5
     6        Reviewed by Chris Fleizach.
     7
     8        Test: accessibility/multiselect-list-reports-active-option.html
     9
     10        * accessibility/AccessibilityListBoxOption.cpp:
     11        (WebCore::AccessibilityListBoxOption::isSelectedOptionActive):
     12        * accessibility/AccessibilityListBoxOption.h:
     13        * accessibility/AccessibilityObject.h:
     14        (WebCore::AccessibilityObject::isSelectedOptionActive):
     15
    1162011-11-21  Yuta Kitamura  <yutak@chromium.org>
    217
  • trunk/Source/WebCore/accessibility/AccessibilityListBoxOption.cpp

    r97354 r100892  
    8484}
    8585
     86bool AccessibilityListBoxOption::isSelectedOptionActive() const
     87{
     88    HTMLSelectElement* listBoxParentNode = listBoxOptionParentNode();
     89    if (!listBoxParentNode)
     90        return false;
     91
     92    return listBoxParentNode->activeSelectionEndListIndex() == listBoxOptionIndex();
     93}
     94
    8695LayoutRect AccessibilityListBoxOption::elementRect() const
    8796{
  • trunk/Source/WebCore/accessibility/AccessibilityListBoxOption.h

    r95901 r100892  
    5555    virtual bool isSelected() const;
    5656    virtual bool isEnabled() const;
     57    virtual bool isSelectedOptionActive() const;
    5758    virtual String stringValue() const;
    5859    virtual Element* actionElement() const;
  • trunk/Source/WebCore/accessibility/AccessibilityObject.h

    r100666 r100892  
    408408    virtual void setIsExpanded(bool) { }
    409409
     410    // In a multi-select list, many items can be selected but only one is active at a time.
     411    virtual bool isSelectedOptionActive() const { return false; }
     412
    410413    virtual bool hasBoldFont() const { return false; }
    411414    virtual bool hasItalicFont() const { return false; }
  • trunk/Source/WebKit/chromium/ChangeLog

    r100886 r100892  
     12011-11-21  Dominic Mazzoni  <dmazzoni@google.com>
     2
     3        Accessibility: Multiselect list boxes need to report the active option in addition to which items are selected.
     4        https://bugs.webkit.org/show_bug.cgi?id=72479
     5
     6        Reviewed by Chris Fleizach.
     7
     8        Test: accessibility/multiselect-list-reports-active-option.html
     9
     10        * public/WebAccessibilityObject.h:
     11        * src/WebAccessibilityObject.cpp:
     12        (WebKit::WebAccessibilityObject::isSelectedOptionActive):
     13
    1142011-11-20  Kenichi Ishibashi  <bashi@chromium.org>
    215
  • trunk/Source/WebKit/chromium/public/WebAccessibilityObject.h

    r97193 r100892  
    114114    WEBKIT_EXPORT bool isRequired() const;
    115115    WEBKIT_EXPORT bool isSelected() const;
     116    WEBKIT_EXPORT bool isSelectedOptionActive() const;
    116117    WEBKIT_EXPORT bool isVertical() const;
    117118    WEBKIT_EXPORT bool isVisible() const;
  • trunk/Source/WebKit/chromium/src/WebAccessibilityObject.cpp

    r100070 r100892  
    398398}
    399399
     400bool WebAccessibilityObject::isSelectedOptionActive() const
     401{
     402    if (m_private.isNull())
     403        return false;
     404
     405    m_private->updateBackingStore();
     406    return m_private->isSelectedOptionActive();
     407}
     408
    400409bool WebAccessibilityObject::isVertical() const
    401410{
  • trunk/Tools/ChangeLog

    r100889 r100892  
     12011-11-21  Dominic Mazzoni  <dmazzoni@google.com>
     2
     3        Accessibility: Multiselect list boxes need to report the active option in addition to which items are selected.
     4        https://bugs.webkit.org/show_bug.cgi?id=72479
     5
     6        Reviewed by Chris Fleizach.
     7
     8        * DumpRenderTree/AccessibilityUIElement.cpp:
     9        (getIsSelectedOptionActiveCallback):
     10        (AccessibilityUIElement::getJSClass):
     11        * DumpRenderTree/AccessibilityUIElement.h:
     12        * DumpRenderTree/chromium/AccessibilityUIElement.cpp:
     13        (AccessibilityUIElement::AccessibilityUIElement):
     14        (AccessibilityUIElement::isSelectedOptionActiveGetterCallback):
     15        * DumpRenderTree/chromium/AccessibilityUIElement.h:
     16        * DumpRenderTree/gtk/AccessibilityUIElementGtk.cpp:
     17        (AccessibilityUIElement::isSelectedOptionActive):
     18        * DumpRenderTree/mac/AccessibilityUIElementMac.mm:
     19        (AccessibilityUIElement::isSelectedOptionActive):
     20        * DumpRenderTree/win/AccessibilityUIElementWin.cpp:
     21        (AccessibilityUIElement::isSelectedOptionActive):
     22
    1232011-11-21  Takashi Toyoshima  <toyoshim@chromium.org>
    224
  • trunk/Tools/DumpRenderTree/AccessibilityUIElement.cpp

    r100488 r100892  
    761761{
    762762    return JSValueMakeBoolean(context, toAXElement(thisObject)->isMultiSelectable());
     763}
     764
     765static JSValueRef getIsSelectedOptionActiveCallback(JSContextRef context, JSObjectRef thisObject, JSStringRef, JSValueRef*)
     766{
     767    return JSValueMakeBoolean(context, toAXElement(thisObject)->isSelectedOptionActive());
    763768}
    764769
     
    992997        { "isSelectable", getIsSelectableCallback, 0, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete },
    993998        { "isMultiSelectable", getIsMultiSelectableCallback, 0, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete },
     999        { "isSelectedOptionActive", getIsSelectedOptionActiveCallback, 0, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete },
    9941000        { "isExpanded", getIsExpandedCallback, 0, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete },
    9951001        { "isChecked", getIsCheckedCallback, 0, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete },
  • trunk/Tools/DumpRenderTree/AccessibilityUIElement.h

    r100488 r100892  
    139139    bool isSelectable() const;
    140140    bool isMultiSelectable() const;
     141    bool isSelectedOptionActive() const;
    141142    void setSelectedChild(AccessibilityUIElement*) const;
    142143    unsigned selectedChildrenCount() const;
  • trunk/Tools/DumpRenderTree/chromium/AccessibilityUIElement.cpp

    r99770 r100892  
    309309    bindProperty("isSelectable", &AccessibilityUIElement::isSelectableGetterCallback);
    310310    bindProperty("isMultiSelectable", &AccessibilityUIElement::isMultiSelectableGetterCallback);
     311    bindProperty("isSelectedOptionActive", &AccessibilityUIElement::isSelectedOptionActiveGetterCallback);
    311312    bindProperty("isExpanded", &AccessibilityUIElement::isExpandedGetterCallback);
    312313    bindProperty("isChecked", &AccessibilityUIElement::isCheckedGetterCallback);
     
    504505}
    505506
     507void AccessibilityUIElement::isSelectedOptionActiveGetterCallback(CppVariant* result)
     508{
     509    result->set(accessibilityObject().isSelectedOptionActive());
     510}
     511
    506512void AccessibilityUIElement::isExpandedGetterCallback(CppVariant* result)
    507513{
  • trunk/Tools/DumpRenderTree/chromium/AccessibilityUIElement.h

    r100160 r100892  
    8282    void isSelectableGetterCallback(CppVariant*);
    8383    void isMultiSelectableGetterCallback(CppVariant*);
     84    void isSelectedOptionActiveGetterCallback(CppVariant*);
    8485    void isExpandedGetterCallback(CppVariant*);
    8586    void isCheckedGetterCallback(CppVariant*);
  • trunk/Tools/DumpRenderTree/gtk/AccessibilityUIElementGtk.cpp

    r93226 r100892  
    764764}
    765765
     766bool AccessibilityUIElement::isSelectedOptionActive() const
     767{
     768    // FIXME: implement
     769    return false;
     770}
     771
    766772bool AccessibilityUIElement::isVisible() const
    767773{
  • trunk/Tools/DumpRenderTree/mac/AccessibilityUIElementMac.mm

    r100625 r100892  
    12631263}
    12641264
     1265bool AccessibilityUIElement::isSelectedOptionActive() const
     1266{
     1267    // FIXME: implement
     1268    return false;
     1269}
     1270
    12651271bool AccessibilityUIElement::isVisible() const
    12661272{
  • trunk/Tools/DumpRenderTree/win/AccessibilityUIElementWin.cpp

    r93226 r100892  
    642642}
    643643
     644bool AccessibilityUIElement::isSelectedOptionActive() const
     645{
     646    // FIXME: implement
     647    return false;
     648}
     649
    644650bool AccessibilityUIElement::isVisible() const
    645651{
Note: See TracChangeset for help on using the changeset viewer.