[SCM] WebKit Debian packaging branch, webkit-1.2, updated. upstream/1.1.90-6072-g9a69373

eric at webkit.org eric at webkit.org
Thu Apr 8 02:14:33 UTC 2010


The following commit has been merged in the webkit-1.2 branch:
commit fad8d126bb366c8731265edc38e9325f855941fe
Author: eric at webkit.org <eric at webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Mon Mar 8 21:06:08 2010 +0000

    2010-03-08  Joanmarie Diggs  <joanmarie.diggs at gmail.com>
    
            Reviewed by Xan Lopez.
    
            https://bugs.webkit.org/show_bug.cgi?id=30895
            [Gtk] The accessible hierarchy of tables is significantly incorrect for Atk
    
            * platform/gtk/accessibility/table-hierarchy.html:
            * platform/gtk/accessibility/table-hierarchy-expected.txt:
    2010-03-08  Joanmarie Diggs  <joanmarie.diggs at gmail.com>
    
            Reviewed by Xan Lopez.
    
            https://bugs.webkit.org/show_bug.cgi?id=30895
            [Gtk] The accessible hierarchy of tables is significantly incorrect for Atk
    
            Gives platforms the ability to exclude parts of an AccessibilityTable
            from the accessible hierarchy.
    
            * accessibility/gtk/AccessibilityObjectAtk.cpp:
            (AccessibilityObject::accessibilityPlatformIncludesObject):
            * accessibility/AccessibilityRenderObject.cpp:
            (AccessibilityRenderObject::determineAccessibilityRole):
            * accessibility/AccessibilityTable.cpp:
            (AccessibilityTable::addChildren):
            * accessibility/AccessibilityTableColumn.h:
            (accessibilityIsIgnored):
            * accessibility/AccessibilityTableHeaderContainer.h:
            (accessibilityIsIgnored):
            * accessibility/AccessibilityTableRow.cpp:
            (accessibilityIsIgnored):
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@55680 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/LayoutTests/ChangeLog b/LayoutTests/ChangeLog
index ea09140..70369a7 100644
--- a/LayoutTests/ChangeLog
+++ b/LayoutTests/ChangeLog
@@ -1,3 +1,13 @@
+2010-03-08  Joanmarie Diggs  <joanmarie.diggs at gmail.com>
+
+        Reviewed by Xan Lopez.
+
+        https://bugs.webkit.org/show_bug.cgi?id=30895
+        [Gtk] The accessible hierarchy of tables is significantly incorrect for Atk
+
+        * platform/gtk/accessibility/table-hierarchy.html:
+        * platform/gtk/accessibility/table-hierarchy-expected.txt:
+
 2010-03-08  Adam Barth  <abarth at webkit.org>
 
         Reviewed by Nate Chapin.
diff --git a/LayoutTests/platform/gtk/accessibility/table-hierarchy-expected.txt b/LayoutTests/platform/gtk/accessibility/table-hierarchy-expected.txt
index b3c7597..a48d28f 100644
--- a/LayoutTests/platform/gtk/accessibility/table-hierarchy-expected.txt
+++ b/LayoutTests/platform/gtk/accessibility/table-hierarchy-expected.txt
@@ -3,6 +3,15 @@ Odd	Even
 1	2
 3	4
 hello	world
+Odd	Even
+1
+
+2
+
+3
+
+4
+
 This tests the Atk table hierarhy.
 
 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
@@ -11,6 +20,7 @@ On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE
 PASS table1.role is 'table'
 PASS table2.role is 'table'
 PASS table3.role is 'table'
+PASS table4.role is 'table'
 PASS children is 2
 PASS table1.childAtIndex(i).role is 'table cell'
 PASS table1.childAtIndex(i).role is 'table cell'
@@ -24,6 +34,13 @@ PASS table2.childAtIndex(i).role is 'table cell'
 PASS children is 2
 PASS table3.childAtIndex(i).role is 'table cell'
 PASS table3.childAtIndex(i).role is 'table cell'
+PASS children is 6
+PASS table4.childAtIndex(i).role is 'table cell'
+PASS table4.childAtIndex(i).role is 'table cell'
+PASS table4.childAtIndex(i).role is 'table cell'
+PASS table4.childAtIndex(i).role is 'table cell'
+PASS table4.childAtIndex(i).role is 'table cell'
+PASS table4.childAtIndex(i).role is 'table cell'
 PASS successfullyParsed is true
 
 TEST COMPLETE
diff --git a/LayoutTests/platform/gtk/accessibility/table-hierarchy.html b/LayoutTests/platform/gtk/accessibility/table-hierarchy.html
index dd32dfc..11cc8b8 100644
--- a/LayoutTests/platform/gtk/accessibility/table-hierarchy.html
+++ b/LayoutTests/platform/gtk/accessibility/table-hierarchy.html
@@ -21,6 +21,11 @@ var successfullyParsed = false;
 <tr><td>hello</td><td>world</td></tr>
 </tbody>
 </table>
+<table border=1>
+<tr><th>Odd</th><th>Even</th></tr>
+<tr><td><p>1</p></td><td><p>2</p></td></tr>
+<tr><td><p>3</p></td><td><p>4</p></td></tr>
+</table>
 <p id="description"></p>
 <div id="console"></div>
 <script>
@@ -36,6 +41,8 @@ var successfullyParsed = false;
         shouldBe("table2.role", "'table'");
         var table3 = webArea.childAtIndex(2);
         shouldBe("table3.role", "'table'");
+        var table4 = webArea.childAtIndex(3);
+        shouldBe("table4.role", "'table'");
 
         var children = table1.childrenCount;
         shouldBe("children", "2");
@@ -52,6 +59,11 @@ var successfullyParsed = false;
         for (i = 0; i < children; ++i) {
             shouldBe("table3.childAtIndex(i).role", "'table cell'");
         }
+        children = table4.childrenCount;
+        shouldBe("children", "6");
+        for (i = 0; i < children; ++i) {
+            shouldBe("table4.childAtIndex(i).role", "'table cell'");
+        }
     }
     successfullyParsed = true;
 </script>
diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index d9f9671..c8e5004 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -1,3 +1,26 @@
+2010-03-08  Joanmarie Diggs  <joanmarie.diggs at gmail.com>
+
+        Reviewed by Xan Lopez.
+
+        https://bugs.webkit.org/show_bug.cgi?id=30895
+        [Gtk] The accessible hierarchy of tables is significantly incorrect for Atk
+
+        Gives platforms the ability to exclude parts of an AccessibilityTable
+        from the accessible hierarchy.
+
+        * accessibility/gtk/AccessibilityObjectAtk.cpp:
+        (AccessibilityObject::accessibilityPlatformIncludesObject):
+        * accessibility/AccessibilityRenderObject.cpp:
+        (AccessibilityRenderObject::determineAccessibilityRole):
+        * accessibility/AccessibilityTable.cpp:
+        (AccessibilityTable::addChildren):
+        * accessibility/AccessibilityTableColumn.h:
+        (accessibilityIsIgnored):
+        * accessibility/AccessibilityTableHeaderContainer.h:
+        (accessibilityIsIgnored):
+        * accessibility/AccessibilityTableRow.cpp:
+        (accessibilityIsIgnored):
+
 2010-03-08  Jian Li  <jianli at chromium.org>
 
         No review. Fix build break on Tiger intel release.
diff --git a/WebCore/accessibility/AccessibilityRenderObject.cpp b/WebCore/accessibility/AccessibilityRenderObject.cpp
index 35f702e..c39a81a 100644
--- a/WebCore/accessibility/AccessibilityRenderObject.cpp
+++ b/WebCore/accessibility/AccessibilityRenderObject.cpp
@@ -2738,6 +2738,9 @@ AccessibilityRole AccessibilityRenderObject::determineAccessibilityRole()
     if (node && (node->hasTagName(tdTag) || node->hasTagName(thTag)))
         return CellRole;
 
+    if (node && node->hasTagName(trTag))
+        return RowRole;
+
     if (node && node->hasTagName(tableTag))
         return TableRole;
 #endif   
diff --git a/WebCore/accessibility/AccessibilityTable.cpp b/WebCore/accessibility/AccessibilityTable.cpp
index 34006ad..d5c229a 100644
--- a/WebCore/accessibility/AccessibilityTable.cpp
+++ b/WebCore/accessibility/AccessibilityTable.cpp
@@ -250,7 +250,12 @@ void AccessibilityTable::addChildren()
                 
                 row->setRowIndex((int)m_rows.size());        
                 m_rows.append(row);
-                m_children.append(row);
+                if (!row->accessibilityIsIgnored())
+                    m_children.append(row);
+#if PLATFORM(GTK)
+                else
+                    m_children.append(row->children());
+#endif
                 appendedRows.add(row);
             }
         }
@@ -265,11 +270,12 @@ void AccessibilityTable::addChildren()
         column->setColumnIndex((int)i);
         column->setParentTable(this);
         m_columns.append(column);
-        m_children.append(column);
+        if (!column->accessibilityIsIgnored())
+            m_children.append(column);
     }
     
     AccessibilityObject* headerContainerObject = headerContainer();
-    if (headerContainerObject)
+    if (headerContainerObject && !headerContainerObject->accessibilityIsIgnored())
         m_children.append(headerContainerObject);
 }
     
diff --git a/WebCore/accessibility/AccessibilityTableColumn.h b/WebCore/accessibility/AccessibilityTableColumn.h
index 6270398..34be815 100644
--- a/WebCore/accessibility/AccessibilityTableColumn.h
+++ b/WebCore/accessibility/AccessibilityTableColumn.h
@@ -50,7 +50,11 @@ public:
     AccessibilityObject* headerObject();
         
     virtual AccessibilityRole roleValue() const { return ColumnRole; }
+#if PLATFORM(GTK)
+    virtual bool accessibilityIsIgnored() const { return true; }
+#else
     virtual bool accessibilityIsIgnored() const { return false; }
+#endif
     virtual bool isTableColumn() const { return true; }
     
     void setColumnIndex(int columnIndex) { m_columnIndex = columnIndex; }
diff --git a/WebCore/accessibility/AccessibilityTableHeaderContainer.h b/WebCore/accessibility/AccessibilityTableHeaderContainer.h
index 8a9448a..46c47bc 100644
--- a/WebCore/accessibility/AccessibilityTableHeaderContainer.h
+++ b/WebCore/accessibility/AccessibilityTableHeaderContainer.h
@@ -48,7 +48,11 @@ public:
     void setParentTable(AccessibilityTable* table) { m_parentTable = table; }
     virtual AccessibilityObject* parentObject() const { return m_parentTable; }
     
+#if PLATFORM(GTK)
+    virtual bool accessibilityIsIgnored() const { return true; }
+#else
     virtual bool accessibilityIsIgnored() const { return false; }
+#endif
     
     virtual const AccessibilityChildrenVector& children();
     virtual void addChildren();
diff --git a/WebCore/accessibility/AccessibilityTableRow.cpp b/WebCore/accessibility/AccessibilityTableRow.cpp
index 71f8b2b..1250358 100644
--- a/WebCore/accessibility/AccessibilityTableRow.cpp
+++ b/WebCore/accessibility/AccessibilityTableRow.cpp
@@ -76,7 +76,11 @@ bool AccessibilityTableRow::isTableRow() const
     
 bool AccessibilityTableRow::accessibilityIsIgnored() const
 {    
+#if PLATFORM(GTK)
+    if (true)
+#else
     if (!isTableRow())
+#endif
         return AccessibilityRenderObject::accessibilityIsIgnored();
 
     return false;
diff --git a/WebCore/accessibility/gtk/AccessibilityObjectAtk.cpp b/WebCore/accessibility/gtk/AccessibilityObjectAtk.cpp
index 242727c..e436425 100644
--- a/WebCore/accessibility/gtk/AccessibilityObjectAtk.cpp
+++ b/WebCore/accessibility/gtk/AccessibilityObjectAtk.cpp
@@ -63,6 +63,10 @@ AccessibilityObjectPlatformInclusion AccessibilityObject::accessibilityPlatformI
     if (role == CellRole || role == TableRole)
         return IncludeObject;
 
+    // We at some point might have a need to expose a table row; but it's not standard Gtk+.
+    if (role == RowRole)
+        return IgnoreObject;
+
     // The object containing the text should implement AtkText itself.
     if (role == StaticTextRole)
         return IgnoreObject;

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list