Changeset 52146 in webkit


Ignore:
Timestamp:
Dec 15, 2009 2:18:15 AM (14 years ago)
Author:
eric@webkit.org
Message:

2009-12-15 Eric Seidel <eric@webkit.org>

No review, rolling out r52140.
http://trac.webkit.org/changeset/52140
https://bugs.webkit.org/show_bug.cgi?id=31299

The commit broke the Leopard bots and unfortunately
Chris wasn't around to fix them, so I'm rolling the change
out after 3 hours so that the bots can roll green again. :)

  • platform/mac/accessibility/aria-treegrid-expected.txt: Removed.
  • platform/mac/accessibility/aria-treegrid.html: Removed.

2009-12-15 Eric Seidel <eric@webkit.org>

No review, rolling out r52140.
http://trac.webkit.org/changeset/52140
https://bugs.webkit.org/show_bug.cgi?id=31299

The commit broke the Leopard bots and unfortunately
Chris wasn't around to fix them, so I'm rolling the change
out after 3 hours so that the bots can roll green again. :)

  • accessibility/AXObjectCache.cpp: (WebCore::AXObjectCache::getOrCreate):
  • accessibility/AccessibilityARIAGrid.h:
  • accessibility/AccessibilityARIAGridRow.cpp:
  • accessibility/AccessibilityARIAGridRow.h:
  • accessibility/AccessibilityObject.cpp: (WebCore::createARIARoleMap):
  • accessibility/AccessibilityObject.h: (WebCore::):
  • accessibility/AccessibilityRenderObject.cpp: (WebCore::AccessibilityRenderObject::isMultiSelect): (WebCore::AccessibilityRenderObject::setIsExpanded): (WebCore::AccessibilityRenderObject::setSelectedRows): (WebCore::AccessibilityRenderObject::ariaTreeSelectedRows): (WebCore::AccessibilityRenderObject::ariaListboxSelectedChildren): (WebCore::AccessibilityRenderObject::selectedChildren):
  • accessibility/AccessibilityRenderObject.h:
  • accessibility/AccessibilityTable.h:
  • accessibility/mac/AccessibilityObjectWrapper.mm: (-[AccessibilityObjectWrapper additionalAccessibilityAttributeNames]): (-[AccessibilityObjectWrapper accessibilityAttributeNames]): (-[AccessibilityObjectWrapper accessibilityAttributeValue:]): (-[AccessibilityObjectWrapper accessibilitySetValue:forAttribute:]):
Location:
trunk
Files:
2 deleted
12 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r52140 r52146  
     12009-12-15  Eric Seidel  <eric@webkit.org>
     2
     3        No review, rolling out r52140.
     4        http://trac.webkit.org/changeset/52140
     5        https://bugs.webkit.org/show_bug.cgi?id=31299
     6
     7        The commit broke the Leopard bots and unfortunately
     8        Chris wasn't around to fix them, so I'm rolling the change
     9        out after 3 hours so that the bots can roll green again. :)
     10
     11        * platform/mac/accessibility/aria-treegrid-expected.txt: Removed.
     12        * platform/mac/accessibility/aria-treegrid.html: Removed.
     13
    1142009-12-14  Chris Fleizach  <cfleizach@apple.com>
    215
  • trunk/WebCore/ChangeLog

    r52143 r52146  
     12009-12-15  Eric Seidel  <eric@webkit.org>
     2
     3        No review, rolling out r52140.
     4        http://trac.webkit.org/changeset/52140
     5        https://bugs.webkit.org/show_bug.cgi?id=31299
     6
     7        The commit broke the Leopard bots and unfortunately
     8        Chris wasn't around to fix them, so I'm rolling the change
     9        out after 3 hours so that the bots can roll green again. :)
     10
     11        * accessibility/AXObjectCache.cpp:
     12        (WebCore::AXObjectCache::getOrCreate):
     13        * accessibility/AccessibilityARIAGrid.h:
     14        * accessibility/AccessibilityARIAGridRow.cpp:
     15        * accessibility/AccessibilityARIAGridRow.h:
     16        * accessibility/AccessibilityObject.cpp:
     17        (WebCore::createARIARoleMap):
     18        * accessibility/AccessibilityObject.h:
     19        (WebCore::):
     20        * accessibility/AccessibilityRenderObject.cpp:
     21        (WebCore::AccessibilityRenderObject::isMultiSelect):
     22        (WebCore::AccessibilityRenderObject::setIsExpanded):
     23        (WebCore::AccessibilityRenderObject::setSelectedRows):
     24        (WebCore::AccessibilityRenderObject::ariaTreeSelectedRows):
     25        (WebCore::AccessibilityRenderObject::ariaListboxSelectedChildren):
     26        (WebCore::AccessibilityRenderObject::selectedChildren):
     27        * accessibility/AccessibilityRenderObject.h:
     28        * accessibility/AccessibilityTable.h:
     29        * accessibility/mac/AccessibilityObjectWrapper.mm:
     30        (-[AccessibilityObjectWrapper additionalAccessibilityAttributeNames]):
     31        (-[AccessibilityObjectWrapper accessibilityAttributeNames]):
     32        (-[AccessibilityObjectWrapper accessibilityAttributeValue:]):
     33        (-[AccessibilityObjectWrapper accessibilitySetValue:forAttribute:]):
     34
    1352009-12-14  Holger Hans Peter Freyther  <zecke@selfish.org>
    236
  • trunk/WebCore/accessibility/AXObjectCache.cpp

    r52140 r52146  
    149149       
    150150        // aria tables
    151         else if (nodeIsAriaType(node, "grid") || nodeIsAriaType(node, "treegrid"))
     151        else if (nodeIsAriaType(node, "grid"))
    152152            newObj = AccessibilityARIAGrid::create(renderer);
    153153        else if (nodeIsAriaType(node, "row"))
  • trunk/WebCore/accessibility/AccessibilityARIAGrid.h

    r52140 r52146  
    5353
    5454private:
    55     // ARIA treegrids and grids support selected rows.
    56     virtual bool supportsSelectedRows() { return true; }   
    57 
    5855    void addChild(AccessibilityObject* object, HashSet<AccessibilityObject*>& appendedRows, unsigned& columnCount);
    5956};
  • trunk/WebCore/accessibility/AccessibilityARIAGridRow.cpp

    r52140 r52146  
    3131
    3232#include "AccessibilityObject.h"
    33 #include "AccessibilityTable.h"
    3433#include "RenderObject.h"
    3534
     
    5251}
    5352
    54 bool AccessibilityARIAGridRow::isARIATreeGridRow() const
    55 {
    56     AccessibilityObject* parent = parentTable();
    57     if (!parent)
    58         return false;
    59    
    60     return parent->ariaRoleAttribute() == TreeGridRole;
    61 }
    62    
    63 void AccessibilityARIAGridRow::disclosedRows(AccessibilityChildrenVector& disclosedRows)
    64 {
    65     // The contiguous disclosed rows will be the rows in the table that
    66     // have an aria-level of plus 1 from this row.
    67     AccessibilityObject* parent = parentObjectUnignored();
    68     if (!parent || !parent->isDataTable())
    69         return;
    70    
    71     // Search for rows that match the correct level.
    72     // Only take the subsequent rows from this one that are +1 from this row's level.
    73     int index = rowIndex();
    74     if (index < 0)
    75         return;
    76    
    77     unsigned level = hierarchicalLevel();
    78     AccessibilityChildrenVector& allRows = static_cast<AccessibilityTable*>(parent)->rows();
    79     int rowCount = allRows.size();
    80     for (int k = index + 1; k < rowCount; ++k) {
    81         AccessibilityObject* row = allRows[k].get();
    82         // Stop at the first row that doesn't match the correct level.
    83         if (row->hierarchicalLevel() != level + 1)
    84             break;
    85 
    86         disclosedRows.append(row);
    87     }
    88 }
    89    
    90 AccessibilityObject* AccessibilityARIAGridRow::disclosedByRow() const
    91 {
    92     // The row that discloses this one is the row in the table
    93     // that is aria-level subtract 1 from this row.
    94     AccessibilityObject* parent = parentObjectUnignored();
    95     if (!parent || !parent->isDataTable())
    96         return 0;
    97    
    98     // If the level is 1 or less, than nothing discloses this row.
    99     unsigned level = hierarchicalLevel();
    100     if (level <= 1)
    101         return 0;
    102    
    103     // Search for the previous row that matches the correct level.
    104     int index = rowIndex();
    105     AccessibilityChildrenVector& allRows = static_cast<AccessibilityTable*>(parent)->rows();
    106     int rowCount = allRows.size();
    107     if (index >= rowCount)
    108         return 0;
    109    
    110     for (int k = index - 1; k >= 0; --k) {
    111         AccessibilityObject* row = allRows[k].get();
    112         if (row->hierarchicalLevel() == level - 1)
    113             return row;
    114     }
    115    
    116     return 0;
    117 }
    118    
    11953AccessibilityObject* AccessibilityARIAGridRow::parentTable() const
    12054{
  • trunk/WebCore/accessibility/AccessibilityARIAGridRow.h

    r52140 r52146  
    4242    virtual ~AccessibilityARIAGridRow();
    4343   
    44     virtual bool isARIATreeGridRow() const;
    45     void disclosedRows(AccessibilityChildrenVector&);
    46     AccessibilityObject* disclosedByRow() const;
    47    
    4844    virtual AccessibilityObject* headerObject();
    4945    virtual AccessibilityObject* parentTable() const;   
  • trunk/WebCore/accessibility/AccessibilityObject.cpp

    r52140 r52146  
    913913        { "tooltip", UserInterfaceTooltipRole },
    914914        { "tree", TreeRole },
    915         { "treegrid", TreeGridRole },
    916915        { "treeitem", TreeItemRole }
    917916    };
  • trunk/WebCore/accessibility/AccessibilityObject.h

    r52140 r52146  
    166166    TabPanelRole,
    167167    TreeRole,
    168     TreeGridRole,
    169168    TreeItemRole,
    170169    DirectoryRole,
     
    281280    virtual bool isFieldset() const { return false; }
    282281    virtual bool isGroup() const { return false; }
    283     virtual bool isARIATreeGridRow() const { return false; }
    284282    bool isTabList() const { return roleValue() == TabListRole; }
    285283    bool isTabItem() const { return roleValue() == TabRole; }
  • trunk/WebCore/accessibility/AccessibilityRenderObject.cpp

    r52140 r52146  
    376376}
    377377
    378 bool AccessibilityRenderObject::isMultiSelectable() const
     378bool AccessibilityRenderObject::isMultiSelect() const
    379379{
    380380    ASSERT(m_renderer);
    381    
    382     const AtomicString& ariaMultiSelectable = getAttribute(aria_multiselectableAttr);
    383     if (equalIgnoringCase(ariaMultiSelectable, "true"))
    384         return true;
    385     if (equalIgnoringCase(ariaMultiSelectable, "false"))
    386         return false;
    387    
    388381    if (!m_renderer->isListBox())
    389382        return false;
     
    17611754void AccessibilityRenderObject::setIsExpanded(bool isExpanded)
    17621755{
    1763     // Combo boxes, tree items and rows can be expanded (in different ways on different platforms).
     1756    // Combo boxes and tree items can be expanded (in different ways on different platforms).
    17641757    // That action translates into setting the aria-expanded attribute to true.
    17651758    AccessibilityRole role = roleValue();
    1766     switch (role) {
    1767     case ComboBoxRole:
    1768     case TreeItemRole:
    1769     case RowRole:
    1770         setElementAttributeValue(aria_expandedAttr, isExpanded);
    1771         break;
    1772     default:
    1773         break;
    1774     }
     1759    if (role != ComboBoxRole && role != TreeItemRole)
     1760        return;
     1761   
     1762    setElementAttributeValue(aria_expandedAttr, isExpanded);
    17751763}
    17761764   
     
    18971885void AccessibilityRenderObject::setSelectedRows(AccessibilityChildrenVector& selectedRows)
    18981886{
    1899     // Setting selected only makes sense in trees and tables (and tree-tables).
    1900     AccessibilityRole role = roleValue();
    1901     if (role != TreeRole && role != TreeGridRole && role != TableRole)
     1887    // Setting selected rows only works on trees for now.
     1888    if (roleValue() != TreeRole)
    19021889        return;
    19031890   
    1904     bool isMulti = isMultiSelectable();
     1891    bool isMultiselectable = elementAttributeValue(aria_multiselectableAttr);
    19051892    unsigned count = selectedRows.size();
    1906     if (count > 1 && !isMulti)
     1893    if (count > 1 && !isMultiselectable)
    19071894        count = 1;
    19081895   
     
    28742861}
    28752862
    2876 void AccessibilityRenderObject::ariaSelectedRows(AccessibilityChildrenVector& result)
     2863void AccessibilityRenderObject::ariaTreeSelectedRows(AccessibilityChildrenVector& result)
    28772864{
    28782865    // Get all the rows.
     
    28812868
    28822869    // Determine which rows are selected.
    2883     bool isMulti = isMultiSelectable();
     2870    bool isMultiselectable = elementAttributeValue(aria_multiselectableAttr);
    28842871
    28852872    // Prefer active descendant over aria-selected.
    28862873    AccessibilityObject* activeDesc = activeDescendant();
    2887     if (activeDesc && (activeDesc->isTreeItem() || activeDesc->isTableRow())) {
     2874    if (activeDesc && activeDesc->isTreeItem()) {
    28882875        result.append(activeDesc);   
    2889         if (!isMulti)
     2876        if (!isMultiselectable)
    28902877            return;
    28912878    }
     
    28952882        if (allRows[k]->isSelected()) {
    28962883            result.append(allRows[k]);
    2897             if (!isMulti)
     2884            if (!isMultiselectable)
    28982885                break;
    28992886        }
     
    29092896        return;
    29102897
    2911     bool isMulti = isMultiSelectable();
     2898    bool isMultiselectable = elementAttributeValue(aria_multiselectableAttr);
    29122899   
    29132900    while (child) {
     
    29232910                if (equalIgnoringCase(selectedAttrString, "true")) {
    29242911                    result.append(child);
    2925                     if (isMulti)
     2912                    if (isMultiselectable)
    29262913                        return;
    29272914                }
     
    29402927    if (role == ListBoxRole) // native list boxes would be AccessibilityListBoxes, so only check for aria list boxes
    29412928        ariaListboxSelectedChildren(result);
    2942     else if (role == TreeRole || role == TreeGridRole || role == TableRole)
    2943         ariaSelectedRows(result);
     2929    else if (role == TreeRole)
     2930        ariaTreeSelectedRows(result);
    29442931}
    29452932
  • trunk/WebCore/accessibility/AccessibilityRenderObject.h

    r52140 r52146  
    9797    virtual bool isIndeterminate() const;
    9898    virtual bool isLoaded() const;
    99     virtual bool isMultiSelectable() const;
     99    virtual bool isMultiSelect() const;
    100100    virtual bool isOffScreen() const;
    101101    virtual bool isPressed() const;
     
    281281    AccessibilityObject* accessibilityParentForImageMap(HTMLMapElement* map) const;
    282282
    283     void ariaSelectedRows(AccessibilityChildrenVector&);
     283    void ariaTreeSelectedRows(AccessibilityChildrenVector&);
    284284   
    285285    bool elementAttributeValue(const QualifiedName&);
  • trunk/WebCore/accessibility/AccessibilityTable.h

    r52140 r52146  
    6464    AccessibilityChildrenVector& rows();
    6565   
    66     virtual bool supportsSelectedRows() { return false; }
    6766    unsigned columnCount();
    6867    unsigned rowCount();
  • trunk/WebCore/accessibility/mac/AccessibilityObjectWrapper.mm

    r52140 r52146  
    3333
    3434#import "AXObjectCache.h"
    35 #import "AccessibilityARIAGridRow.h"
    3635#import "AccessibilityListBox.h"
    3736#import "AccessibilityList.h"
     
    601600        [additional addObject:NSAccessibilityDropEffectsAttribute];
    602601
    603     if (m_object->isDataTable() && static_cast<AccessibilityTable*>(m_object)->supportsSelectedRows())
    604         [additional addObject:NSAccessibilitySelectedRowsAttribute];       
    605    
    606602    return additional;
    607603}
     
    868864    if (outlineRowAttrs == nil) {
    869865        tempArray = [[NSMutableArray alloc] initWithArray:tableRowAttrs];
     866        [tempArray addObject:NSAccessibilityIndexAttribute];
    870867        [tempArray addObject:NSAccessibilityDisclosingAttribute];
    871868        [tempArray addObject:NSAccessibilityDisclosedByRowAttribute];
     
    892889    else if (m_object->isDataTable())
    893890        objectAttributes = tableAttrs;
     891    else if (m_object->isTableRow())
     892        objectAttributes = tableRowAttrs;
    894893    else if (m_object->isTableColumn())
    895894        objectAttributes = tableColAttrs;
    896895    else if (m_object->isTableCell())
    897896        objectAttributes = tableCellAttrs;
    898     else if (m_object->isTableRow()) {
    899         // An ARIA table row can be collapsed and expanded, so it needs the extra attributes.
    900         if (m_object->isARIATreeGridRow())
    901             objectAttributes = outlineRowAttrs;
    902         else
    903             objectAttributes = tableRowAttrs;
    904     }
    905897   
    906898    else if (m_object->isTree())
     
    15771569        }
    15781570       
    1579         if ([attributeName isEqualToString:NSAccessibilitySelectedRowsAttribute]) {
    1580             AccessibilityObject::AccessibilityChildrenVector selectedChildrenCopy;
    1581             m_object->selectedChildren(selectedChildrenCopy);
    1582             return convertToNSArray(selectedChildrenCopy);
    1583         }
    1584        
    15851571        // HTML tables don't support these
    15861572        if ([attributeName isEqualToString:NSAccessibilitySelectedColumnsAttribute] ||
     1573            [attributeName isEqualToString:NSAccessibilitySelectedRowsAttribute] ||
    15871574            [attributeName isEqualToString:NSAccessibilitySelectedCellsAttribute])
    15881575            return nil;
     
    16121599            return convertToNSArray(cells);
    16131600        }       
     1601    }
     1602   
     1603    if (m_object->isTableRow()) {
     1604        if ([attributeName isEqualToString:NSAccessibilityIndexAttribute])
     1605            return [NSNumber numberWithInt:static_cast<AccessibilityTableRow*>(m_object)->rowIndex()];
    16141606    }
    16151607   
     
    16611653    }
    16621654
    1663     if ([attributeName isEqualToString:NSAccessibilityIndexAttribute]) {
    1664         if (m_object->isTreeItem()) {
     1655    if (m_object->isTreeItem()) {
     1656        if ([attributeName isEqualToString:NSAccessibilityIndexAttribute]) {
    16651657            AccessibilityObject* parent = m_object->parentObject();
    16661658            for (; parent && !parent->isTree(); parent = parent->parentObject())
     
    16801672            return nil;
    16811673        }
    1682         if (m_object->isTableRow()) {
    1683             if ([attributeName isEqualToString:NSAccessibilityIndexAttribute])
    1684                 return [NSNumber numberWithInt:static_cast<AccessibilityTableRow*>(m_object)->rowIndex()];
    1685         }
    1686     }   
    1687    
    1688     // The rows that are considered inside this row.
    1689     if ([attributeName isEqualToString:NSAccessibilityDisclosedRowsAttribute]) {
    1690         if (m_object->isTreeItem()) {
     1674       
     1675        // The rows that are considered inside this row.
     1676        if ([attributeName isEqualToString:NSAccessibilityDisclosedRowsAttribute]) {
    16911677            AccessibilityObject::AccessibilityChildrenVector rowsCopy;
    16921678            m_object->ariaTreeItemDisclosedRows(rowsCopy);
    16931679            return convertToNSArray(rowsCopy);   
    1694         } else if (m_object->isARIATreeGridRow()) {
    1695             AccessibilityObject::AccessibilityChildrenVector rowsCopy;
    1696             static_cast<AccessibilityARIAGridRow*>(m_object)->disclosedRows(rowsCopy);
    1697             return convertToNSArray(rowsCopy);   
    1698         }
    1699     }
    1700    
    1701     // The row that contains this row. It should be the same as the first parent that is a treeitem.
    1702     if ([attributeName isEqualToString:NSAccessibilityDisclosedByRowAttribute]) {
    1703         if (m_object->isTreeItem()) {
     1680        }
     1681
     1682        // The row that contains this row. It should be the same as the first parent that is a treeitem.
     1683        if ([attributeName isEqualToString:NSAccessibilityDisclosedByRowAttribute]) {
    17041684            AccessibilityObject* parent = m_object->parentObject();
    17051685            while (parent) {
     
    17121692            }
    17131693            return nil;
    1714         } else if (m_object->isARIATreeGridRow()) {
    1715             AccessibilityObject* row = static_cast<AccessibilityARIAGridRow*>(m_object)->disclosedByRow();
    1716             if (!row)
    1717                 return nil;
    1718             return row->wrapper();
    1719         }
    1720     }
    1721 
    1722     if ([attributeName isEqualToString:NSAccessibilityDisclosureLevelAttribute])
    1723         return [NSNumber numberWithInt:m_object->hierarchicalLevel()];
    1724     if ([attributeName isEqualToString:NSAccessibilityDisclosingAttribute])
    1725         return [NSNumber numberWithBool:m_object->isExpanded()];
     1694        }
     1695        if ([attributeName isEqualToString:NSAccessibilityDisclosureLevelAttribute])
     1696            return [NSNumber numberWithInt:m_object->hierarchicalLevel()];
     1697        if ([attributeName isEqualToString:NSAccessibilityDisclosingAttribute])
     1698            return [NSNumber numberWithBool:m_object->isExpanded()];
     1699    }
    17261700   
    17271701    if ((m_object->isListBox() || m_object->isList()) && [attributeName isEqualToString:NSAccessibilityOrientationAttribute])
     
    21802154        AccessibilityObject::AccessibilityChildrenVector selectedRows;
    21812155        convertToVector(array, selectedRows);
    2182         if (m_object->isTree() || m_object->isDataTable())
     2156        if (m_object->isTree())
    21832157            m_object->setSelectedRows(selectedRows);
    21842158    } else if ([attributeName isEqualToString:NSAccessibilityGrabbedAttribute])
Note: See TracChangeset for help on using the changeset viewer.