[SCM] WebKit Debian packaging branch, webkit-1.1, updated. upstream/1.1.22-985-g3c00f00
cfleizach at apple.com
cfleizach at apple.com
Wed Mar 17 18:32:20 UTC 2010
The following commit has been merged in the webkit-1.1 branch:
commit 82dddacff03eb70585539cb00e03913501dd33d8
Author: cfleizach at apple.com <cfleizach at apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date: Thu Mar 11 00:36:02 2010 +0000
VoiceOver can navigate to hidden content in widget (WAI-ARIA)
https://bugs.webkit.org/show_bug.cgi?id=35986
Reviewed by Beth Dakin.
WebCore:
Elements that are subclassers of AXRenderObject have not been respecting
aria-hidden and other cases that would make them ignored. This applies
to tables, rows, cells, select boxes, sliders, and lists. Select boxes
also need to make sure their option elements respect aria-hidden as well.
Test: accessibility/aria-hidden-with-elements.html
* accessibility/AccessibilityList.cpp:
(WebCore::AccessibilityList::accessibilityIsIgnored):
* accessibility/AccessibilityListBox.cpp:
(WebCore::AccessibilityListBox::addChildren):
(WebCore::AccessibilityListBox::accessibilityIsIgnored):
(WebCore::AccessibilityListBox::doAccessibilityHitTest):
* accessibility/AccessibilityListBox.h:
* accessibility/AccessibilityListBoxOption.cpp:
(WebCore::AccessibilityListBoxOption::accessibilityIsIgnored):
* accessibility/AccessibilityListBoxOption.h:
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::accessibilityIsIgnoredCommon):
(WebCore::AccessibilityRenderObject::accessibilityIsIgnored):
(WebCore::AccessibilityRenderObject::doAccessibilityHitTest):
* accessibility/AccessibilityRenderObject.h:
* accessibility/AccessibilitySlider.cpp:
(WebCore::AccessibilitySlider::accessibilityIsIgnored):
* accessibility/AccessibilitySlider.h:
(WebCore::AccessibilitySlider::roleValue):
(WebCore::AccessibilitySliderThumb::roleValue):
(WebCore::AccessibilitySliderThumb::accessibilityIsIgnored):
* accessibility/AccessibilityTable.cpp:
(WebCore::AccessibilityTable::accessibilityIsIgnored):
* accessibility/AccessibilityTableCell.cpp:
(WebCore::AccessibilityTableCell::accessibilityIsIgnored):
* accessibility/AccessibilityTableColumn.cpp:
(WebCore::AccessibilityTableColumn::accessibilityIsIgnored):
* accessibility/AccessibilityTableColumn.h:
(WebCore::AccessibilityTableColumn::roleValue):
* accessibility/AccessibilityTableHeaderContainer.cpp:
(WebCore::AccessibilityTableHeaderContainer::accessibilityIsIgnored):
* accessibility/AccessibilityTableHeaderContainer.h:
* accessibility/AccessibilityTableRow.cpp:
(WebCore::AccessibilityTableRow::accessibilityIsIgnored):
LayoutTests:
* accessibility/aria-hidden-with-elements-expected.txt: Added.
* accessibility/aria-hidden-with-elements.html: Added.
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@55818 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/LayoutTests/ChangeLog b/LayoutTests/ChangeLog
index 8dda756..ae890ad 100644
--- a/LayoutTests/ChangeLog
+++ b/LayoutTests/ChangeLog
@@ -1,3 +1,13 @@
+2010-03-10 Chris Fleizach <cfleizach at apple.com>
+
+ Reviewed by Beth Dakin.
+
+ VoiceOver can navigate to hidden content in widget (WAI-ARIA)
+ https://bugs.webkit.org/show_bug.cgi?id=35986
+
+ * accessibility/aria-hidden-with-elements-expected.txt: Added.
+ * accessibility/aria-hidden-with-elements.html: Added.
+
2010-03-10 Dmitry Titov <dimich at chromium.org>
Reviewed by Darin Adler.
diff --git a/LayoutTests/accessibility/aria-hidden-with-elements-expected.txt b/LayoutTests/accessibility/aria-hidden-with-elements-expected.txt
new file mode 100644
index 0000000..7bfa004
--- /dev/null
+++ b/LayoutTests/accessibility/aria-hidden-with-elements-expected.txt
@@ -0,0 +1,20 @@
+cell cell cell
+cell cell cell
+cell
+test
+test
+
+heading
+
+This tests that aria-hidden works as expected on elements that are subclasses of AccessibilityRenderObject
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS child.childrenCount is 0
+PASS child.childrenCount is 0
+PASS child.role is 'AXRole: AXHeading'
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
diff --git a/LayoutTests/accessibility/aria-hidden-with-elements.html b/LayoutTests/accessibility/aria-hidden-with-elements.html
new file mode 100644
index 0000000..7e2624e
--- /dev/null
+++ b/LayoutTests/accessibility/aria-hidden-with-elements.html
@@ -0,0 +1,61 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
+<html>
+<head>
+<link rel="stylesheet" href="../fast/js/resources/js-test-style.css">
+<script>
+var successfullyParsed = false;
+</script>
+<script src="../fast/js/resources/js-test-pre.js"></script>
+</head>
+<body id="body">
+
+<table border=1 summary="test" aria-hidden="true">
+<tr><td>cell</td><td>cell</td><td>cell</td></tr>
+<tr><td>cell</td><td>cell</td><td>cell</td></tr>
+</table>
+
+<div role="grid" aria-hidden="true">
+<div role="row"><div role="gridcell">cell</div></div>
+</div>
+
+<ul aria-hidden="true">
+<li>test
+<li>test
+</ul>
+
+<select size=10 aria-hidden="true">
+<option>option
+<option>option
+</select>
+
+<h1>heading</h1>
+
+<p id="description"></p>
+<div id="console"></div>
+
+<script>
+
+ description("This tests that aria-hidden works as expected on elements that are subclasses of AccessibilityRenderObject");
+
+ if (window.accessibilityController) {
+ var root = accessibilityController.rootElement;
+
+ // first child is an AXGroup that has no children
+ var child = root.childAtIndex(0).childAtIndex(0);
+ shouldBe("child.childrenCount", "0");
+
+ // second child is an AXGroup that has no children
+ child = root.childAtIndex(0).childAtIndex(1);
+ shouldBe("child.childrenCount", "0");
+
+ // the next child we ask for from the web area should be the heading, and we should have skipped over everything else.
+ child = root.childAtIndex(0).childAtIndex(2);
+ shouldBe("child.role", "'AXRole: AXHeading'");
+ }
+
+ successfullyParsed = true;
+</script>
+
+<script src="../fast/js/resources/js-test-post.js"></script>
+</body>
+</html>
diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index a9614fd..7d0eb87 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -1,3 +1,52 @@
+2010-03-10 Chris Fleizach <cfleizach at apple.com>
+
+ Reviewed by Beth Dakin.
+
+ VoiceOver can navigate to hidden content in widget (WAI-ARIA)
+ https://bugs.webkit.org/show_bug.cgi?id=35986
+
+ Elements that are subclassers of AXRenderObject have not been respecting
+ aria-hidden and other cases that would make them ignored. This applies
+ to tables, rows, cells, select boxes, sliders, and lists. Select boxes
+ also need to make sure their option elements respect aria-hidden as well.
+
+ Test: accessibility/aria-hidden-with-elements.html
+
+ * accessibility/AccessibilityList.cpp:
+ (WebCore::AccessibilityList::accessibilityIsIgnored):
+ * accessibility/AccessibilityListBox.cpp:
+ (WebCore::AccessibilityListBox::addChildren):
+ (WebCore::AccessibilityListBox::accessibilityIsIgnored):
+ (WebCore::AccessibilityListBox::doAccessibilityHitTest):
+ * accessibility/AccessibilityListBox.h:
+ * accessibility/AccessibilityListBoxOption.cpp:
+ (WebCore::AccessibilityListBoxOption::accessibilityIsIgnored):
+ * accessibility/AccessibilityListBoxOption.h:
+ * accessibility/AccessibilityRenderObject.cpp:
+ (WebCore::AccessibilityRenderObject::accessibilityIsIgnoredCommon):
+ (WebCore::AccessibilityRenderObject::accessibilityIsIgnored):
+ (WebCore::AccessibilityRenderObject::doAccessibilityHitTest):
+ * accessibility/AccessibilityRenderObject.h:
+ * accessibility/AccessibilitySlider.cpp:
+ (WebCore::AccessibilitySlider::accessibilityIsIgnored):
+ * accessibility/AccessibilitySlider.h:
+ (WebCore::AccessibilitySlider::roleValue):
+ (WebCore::AccessibilitySliderThumb::roleValue):
+ (WebCore::AccessibilitySliderThumb::accessibilityIsIgnored):
+ * accessibility/AccessibilityTable.cpp:
+ (WebCore::AccessibilityTable::accessibilityIsIgnored):
+ * accessibility/AccessibilityTableCell.cpp:
+ (WebCore::AccessibilityTableCell::accessibilityIsIgnored):
+ * accessibility/AccessibilityTableColumn.cpp:
+ (WebCore::AccessibilityTableColumn::accessibilityIsIgnored):
+ * accessibility/AccessibilityTableColumn.h:
+ (WebCore::AccessibilityTableColumn::roleValue):
+ * accessibility/AccessibilityTableHeaderContainer.cpp:
+ (WebCore::AccessibilityTableHeaderContainer::accessibilityIsIgnored):
+ * accessibility/AccessibilityTableHeaderContainer.h:
+ * accessibility/AccessibilityTableRow.cpp:
+ (WebCore::AccessibilityTableRow::accessibilityIsIgnored):
+
2010-03-10 Dmitry Titov <dimich at chromium.org>
Reviewed by Darin Adler.
diff --git a/WebCore/accessibility/AccessibilityList.cpp b/WebCore/accessibility/AccessibilityList.cpp
index feceee5..6317826 100644
--- a/WebCore/accessibility/AccessibilityList.cpp
+++ b/WebCore/accessibility/AccessibilityList.cpp
@@ -55,8 +55,7 @@ PassRefPtr<AccessibilityList> AccessibilityList::create(RenderObject* renderer)
bool AccessibilityList::accessibilityIsIgnored() const
{
- // Is the platform interested in the object?
- if (accessibilityPlatformIncludesObject() == IgnoreObject)
+ if (accessibilityIsIgnoredBase())
return true;
// lists don't appear on tiger/leopard on the mac
diff --git a/WebCore/accessibility/AccessibilityListBox.cpp b/WebCore/accessibility/AccessibilityListBox.cpp
index 2c267c1..50b2514 100644
--- a/WebCore/accessibility/AccessibilityListBox.cpp
+++ b/WebCore/accessibility/AccessibilityListBox.cpp
@@ -80,7 +80,7 @@ void AccessibilityListBox::addChildren()
// The cast to HTMLElement below is safe because the only other possible listItem type
// would be a WMLElement, but WML builds don't use accessibility features at all.
AccessibilityObject* listOption = listBoxOptionAccessibilityObject(static_cast<HTMLElement*>(listItems[i]));
- if (listOption)
+ if (listOption && !listOption->accessibilityIsIgnored())
m_children.append(listOption);
}
}
@@ -151,6 +151,14 @@ AccessibilityObject* AccessibilityListBox::listBoxOptionAccessibilityObject(HTML
return listBoxObject;
}
+
+bool AccessibilityListBox::accessibilityIsIgnored() const
+{
+ if (accessibilityIsIgnoredBase())
+ return true;
+
+ return false;
+}
AccessibilityObject* AccessibilityListBox::doAccessibilityHitTest(const IntPoint& point) const
{
@@ -165,16 +173,21 @@ AccessibilityObject* AccessibilityListBox::doAccessibilityHitTest(const IntPoint
IntRect parentRect = boundingBoxRect();
- const Vector<Element*>& listItems = static_cast<HTMLSelectElement*>(node)->listItems();
- unsigned length = listItems.size();
+ AccessibilityObject* listBoxOption = 0;
+ unsigned length = m_children.size();
for (unsigned i = 0; i < length; i++) {
IntRect rect = toRenderListBox(m_renderer)->itemBoundingBoxRect(parentRect.x(), parentRect.y(), i);
// The cast to HTMLElement below is safe because the only other possible listItem type
// would be a WMLElement, but WML builds don't use accessibility features at all.
- if (rect.contains(point))
- return listBoxOptionAccessibilityObject(static_cast<HTMLElement*>(listItems[i]));
+ if (rect.contains(point)) {
+ listBoxOption = m_children[i].get();
+ break;
+ }
}
+ if (listBoxOption && !listBoxOption->accessibilityIsIgnored())
+ return listBoxOption;
+
return axObjectCache()->getOrCreate(m_renderer);
}
diff --git a/WebCore/accessibility/AccessibilityListBox.h b/WebCore/accessibility/AccessibilityListBox.h
index ce1abe0..72ce82f 100644
--- a/WebCore/accessibility/AccessibilityListBox.h
+++ b/WebCore/accessibility/AccessibilityListBox.h
@@ -49,9 +49,7 @@ public:
virtual bool canSetSelectedChildrenAttribute() const;
void setSelectedChildren(AccessibilityChildrenVector&);
virtual AccessibilityRole roleValue() const { return ListBoxRole; }
-
- virtual bool accessibilityIsIgnored() const { return false; }
-
+
virtual void selectedChildren(AccessibilityChildrenVector&);
virtual void visibleChildren(AccessibilityChildrenVector&);
@@ -59,6 +57,7 @@ public:
private:
AccessibilityObject* listBoxOptionAccessibilityObject(HTMLElement*) const;
+ virtual bool accessibilityIsIgnored() const;
};
} // namespace WebCore
diff --git a/WebCore/accessibility/AccessibilityListBoxOption.cpp b/WebCore/accessibility/AccessibilityListBoxOption.cpp
index 9bf5a4d..685ea13 100644
--- a/WebCore/accessibility/AccessibilityListBoxOption.cpp
+++ b/WebCore/accessibility/AccessibilityListBoxOption.cpp
@@ -105,6 +105,17 @@ IntRect AccessibilityListBoxOption::elementRect() const
return rect;
}
+bool AccessibilityListBoxOption::accessibilityIsIgnored() const
+{
+ if (!m_optionElement)
+ return true;
+
+ if (equalIgnoringCase(getAttribute(m_optionElement, aria_hiddenAttr), "true"))
+ return true;
+
+ return parentObject()->accessibilityIsIgnored();
+}
+
bool AccessibilityListBoxOption::canSetSelectedAttribute() const
{
if (!m_optionElement)
diff --git a/WebCore/accessibility/AccessibilityListBoxOption.h b/WebCore/accessibility/AccessibilityListBoxOption.h
index f8fd5f0..6b293e1 100644
--- a/WebCore/accessibility/AccessibilityListBoxOption.h
+++ b/WebCore/accessibility/AccessibilityListBoxOption.h
@@ -51,7 +51,7 @@ public:
void setHTMLElement(HTMLElement* element) { m_optionElement = element; }
virtual AccessibilityRole roleValue() const { return ListBoxOptionRole; }
- virtual bool accessibilityIsIgnored() const { return false; }
+ virtual bool accessibilityIsIgnored() const;
virtual bool isSelected() const;
virtual bool isEnabled() const;
virtual String stringValue() const;
diff --git a/WebCore/accessibility/AccessibilityRenderObject.cpp b/WebCore/accessibility/AccessibilityRenderObject.cpp
index 4c12b91..4cd08f3 100644
--- a/WebCore/accessibility/AccessibilityRenderObject.cpp
+++ b/WebCore/accessibility/AccessibilityRenderObject.cpp
@@ -1458,8 +1458,10 @@ bool AccessibilityRenderObject::isAllowedChildOfTree() const
return true;
}
-bool AccessibilityRenderObject::accessibilityIsIgnored() const
+bool AccessibilityRenderObject::accessibilityIsIgnoredBase() const
{
+ // The following cases can apply to any element that's a subclass of AccessibilityRenderObject.
+
// Is the platform interested in this object?
AccessibilityObjectPlatformInclusion decision = accessibilityPlatformIncludesObject();
if (decision == IncludeObject)
@@ -1477,7 +1479,18 @@ bool AccessibilityRenderObject::accessibilityIsIgnored() const
if (isPresentationalChildOfAriaRole())
return true;
-
+
+ return false;
+}
+
+bool AccessibilityRenderObject::accessibilityIsIgnored() const
+{
+ // Check first if any of the common reasons cause this element to be ignored.
+ // Then process other use cases that need to be applied to all the various roles
+ // that AccessibilityRenderObjects take on.
+ if (accessibilityIsIgnoredBase())
+ return true;
+
// If this element is within a parent that cannot have children, it should not be exposed.
if (isDescendantOfBarrenParent())
return true;
@@ -2494,8 +2507,12 @@ AccessibilityObject* AccessibilityRenderObject::doAccessibilityHitTest(const Int
AccessibilityObject* result = obj->document()->axObjectCache()->getOrCreate(obj);
- if (obj->isListBox())
- return static_cast<AccessibilityListBox*>(result)->doAccessibilityHitTest(point);
+ if (obj->isListBox()) {
+ // Make sure the children are initialized so that hit testing finds the right element.
+ AccessibilityListBox* listBox = static_cast<AccessibilityListBox*>(result);
+ listBox->updateChildrenIfNecessary();
+ return listBox->doAccessibilityHitTest(point);
+ }
if (result->accessibilityIsIgnored()) {
// If this element is the label of a control, a hit test should return the control.
diff --git a/WebCore/accessibility/AccessibilityRenderObject.h b/WebCore/accessibility/AccessibilityRenderObject.h
index a6e4c8a..cf6f932 100644
--- a/WebCore/accessibility/AccessibilityRenderObject.h
+++ b/WebCore/accessibility/AccessibilityRenderObject.h
@@ -114,6 +114,8 @@ public:
virtual bool hasIntValue() const;
+ // Provides common logic used by all elements when determining isIgnored.
+ bool accessibilityIsIgnoredBase() const;
virtual bool accessibilityIsIgnored() const;
virtual int headingLevel() const;
diff --git a/WebCore/accessibility/AccessibilitySlider.cpp b/WebCore/accessibility/AccessibilitySlider.cpp
index 77f4dcc..b36e7c5 100644
--- a/WebCore/accessibility/AccessibilitySlider.cpp
+++ b/WebCore/accessibility/AccessibilitySlider.cpp
@@ -99,6 +99,14 @@ const AtomicString& AccessibilitySlider::getAttribute(const QualifiedName& attri
return element()->getAttribute(attribute);
}
+bool AccessibilitySlider::accessibilityIsIgnored() const
+{
+ if (accessibilityIsIgnoredBase())
+ return true;
+
+ return false;
+}
+
float AccessibilitySlider::valueForRange() const
{
return element()->value().toFloat();
diff --git a/WebCore/accessibility/AccessibilitySlider.h b/WebCore/accessibility/AccessibilitySlider.h
index e1e3812..461f62b 100644
--- a/WebCore/accessibility/AccessibilitySlider.h
+++ b/WebCore/accessibility/AccessibilitySlider.h
@@ -42,7 +42,6 @@ public:
virtual ~AccessibilitySlider() { }
virtual AccessibilityRole roleValue() const { return SliderRole; }
- virtual bool accessibilityIsIgnored() const { return false; }
virtual bool isSlider() const { return true; }
@@ -63,6 +62,7 @@ protected:
private:
HTMLInputElement* element() const;
+ virtual bool accessibilityIsIgnored() const;
};
class AccessibilitySliderThumb : public AccessibilityObject {
@@ -72,7 +72,6 @@ public:
virtual ~AccessibilitySliderThumb() { }
virtual AccessibilityRole roleValue() const { return SliderThumbRole; }
- virtual bool accessibilityIsIgnored() const { return false; }
void setParentObject(AccessibilitySlider* slider) { m_parentSlider = slider; }
virtual AccessibilityObject* parentObject() const { return m_parentSlider; }
@@ -82,6 +81,7 @@ public:
private:
AccessibilitySliderThumb();
+ virtual bool accessibilityIsIgnored() const { return false; }
AccessibilitySlider* m_parentSlider;
};
diff --git a/WebCore/accessibility/AccessibilityTable.cpp b/WebCore/accessibility/AccessibilityTable.cpp
index d5c229a..1f9c0c8 100644
--- a/WebCore/accessibility/AccessibilityTable.cpp
+++ b/WebCore/accessibility/AccessibilityTable.cpp
@@ -445,9 +445,12 @@ AccessibilityRole AccessibilityTable::roleValue() const
bool AccessibilityTable::accessibilityIsIgnored() const
{
+ if (accessibilityIsIgnoredBase())
+ return true;
+
if (!isDataTable())
return AccessibilityRenderObject::accessibilityIsIgnored();
-
+
return false;
}
diff --git a/WebCore/accessibility/AccessibilityTableCell.cpp b/WebCore/accessibility/AccessibilityTableCell.cpp
index 7674cb8..7422f39 100644
--- a/WebCore/accessibility/AccessibilityTableCell.cpp
+++ b/WebCore/accessibility/AccessibilityTableCell.cpp
@@ -56,6 +56,9 @@ PassRefPtr<AccessibilityTableCell> AccessibilityTableCell::create(RenderObject*
bool AccessibilityTableCell::accessibilityIsIgnored() const
{
+ if (accessibilityIsIgnoredBase())
+ return true;
+
if (!isTableCell())
return AccessibilityRenderObject::accessibilityIsIgnored();
diff --git a/WebCore/accessibility/AccessibilityTableColumn.cpp b/WebCore/accessibility/AccessibilityTableColumn.cpp
index ee8531e..5872706 100644
--- a/WebCore/accessibility/AccessibilityTableColumn.cpp
+++ b/WebCore/accessibility/AccessibilityTableColumn.cpp
@@ -158,6 +158,18 @@ AccessibilityObject* AccessibilityTableColumn::headerObjectForSection(RenderTabl
return m_parentTable->axObjectCache()->getOrCreate(cell);
}
+bool AccessibilityTableColumn::accessibilityIsIgnored() const
+{
+ if (!m_parentTable)
+ return true;
+
+#if PLATFORM(GTK)
+ return true;
+#endif
+
+ return m_parentTable->accessibilityIsIgnored();
+}
+
void AccessibilityTableColumn::addChildren()
{
ASSERT(!m_haveChildren);
diff --git a/WebCore/accessibility/AccessibilityTableColumn.h b/WebCore/accessibility/AccessibilityTableColumn.h
index 34be815..15d300c 100644
--- a/WebCore/accessibility/AccessibilityTableColumn.h
+++ b/WebCore/accessibility/AccessibilityTableColumn.h
@@ -49,12 +49,8 @@ public:
virtual AccessibilityObject* parentObject() const { return m_parentTable; }
AccessibilityObject* headerObject();
+ virtual bool accessibilityIsIgnored() const;
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.cpp b/WebCore/accessibility/AccessibilityTableHeaderContainer.cpp
index 3a2a241..e2da83c 100644
--- a/WebCore/accessibility/AccessibilityTableHeaderContainer.cpp
+++ b/WebCore/accessibility/AccessibilityTableHeaderContainer.cpp
@@ -68,6 +68,18 @@ IntSize AccessibilityTableHeaderContainer::size() const
return elementRect().size();
}
+bool AccessibilityTableHeaderContainer::accessibilityIsIgnored() const
+{
+ if (!m_parentTable)
+ return true;
+
+#if PLATFORM(GTK)
+ return true;
+#endif
+
+ return m_parentTable->accessibilityIsIgnored();
+}
+
void AccessibilityTableHeaderContainer::addChildren()
{
ASSERT(!m_haveChildren);
diff --git a/WebCore/accessibility/AccessibilityTableHeaderContainer.h b/WebCore/accessibility/AccessibilityTableHeaderContainer.h
index 46c47bc..79521c0 100644
--- a/WebCore/accessibility/AccessibilityTableHeaderContainer.h
+++ b/WebCore/accessibility/AccessibilityTableHeaderContainer.h
@@ -48,12 +48,6 @@ 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();
@@ -64,6 +58,7 @@ private:
AccessibilityTable* m_parentTable;
IntRect m_headerRect;
+ virtual bool accessibilityIsIgnored() const;
};
} // namespace WebCore
diff --git a/WebCore/accessibility/AccessibilityTableRow.cpp b/WebCore/accessibility/AccessibilityTableRow.cpp
index 1250358..7ad7ab3 100644
--- a/WebCore/accessibility/AccessibilityTableRow.cpp
+++ b/WebCore/accessibility/AccessibilityTableRow.cpp
@@ -77,10 +77,13 @@ bool AccessibilityTableRow::isTableRow() const
bool AccessibilityTableRow::accessibilityIsIgnored() const
{
#if PLATFORM(GTK)
- if (true)
-#else
- if (!isTableRow())
+ return true;
#endif
+
+ if (accessibilityIsIgnoredBase())
+ return true;
+
+ if (!isTableRow())
return AccessibilityRenderObject::accessibilityIsIgnored();
return false;
--
WebKit Debian packaging
More information about the Pkg-webkit-commits
mailing list