Diff
Added: trunk/LayoutTests/platform/mac/accessibility/mathml-line-fraction-expected.txt (0 => 147439)
--- trunk/LayoutTests/platform/mac/accessibility/mathml-line-fraction-expected.txt (rev 0)
+++ trunk/LayoutTests/platform/mac/accessibility/mathml-line-fraction-expected.txt 2013-04-02 15:58:41 UTC (rev 147439)
@@ -0,0 +1,18 @@
+This tests ensures that we can retrieve the line thickness of a fraction object
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+Verify the line thickness of 0 is reported correctly.
+PASS fraction1.subrole is 'AXSubrole: AXMathFraction'
+PASS fraction1.isAttributeSupported('AXMathLineThickness') is true
+PASS fraction1.numberAttributeValue('AXMathLineThickness') is 0
+
+Verify the line thickness of 4 is reported correctly.
+PASS fraction2.subrole is 'AXSubrole: AXMathFraction'
+PASS fraction2.isAttributeSupported('AXMathLineThickness') is true
+PASS fraction2.numberAttributeValue('AXMathLineThickness') is 4
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
Added: trunk/LayoutTests/platform/mac/accessibility/mathml-line-fraction.html (0 => 147439)
--- trunk/LayoutTests/platform/mac/accessibility/mathml-line-fraction.html (rev 0)
+++ trunk/LayoutTests/platform/mac/accessibility/mathml-line-fraction.html 2013-04-02 15:58:41 UTC (rev 147439)
@@ -0,0 +1,50 @@
+<!DOCTYPE HTML>
+<html>
+<body>
+<script src=""
+
+<div id="content">
+
+<math id="math1">
+<mfrac linethickness="0">
+ <mi>n</mi>
+ <mi>k</mi>
+</mfrac>
+</math>
+
+<math id="math2">
+<mfrac linethickness="4">
+ <mi>n</mi>
+ <mi>k</mi>
+</mfrac>
+</math>
+
+</div>
+
+<div id="console"></div>
+<script>
+
+description("This tests ensures that we can retrieve the line thickness of a fraction object")
+
+if (window.testRunner && window.accessibilityController) {
+
+ debug("Verify the line thickness of 0 is reported correctly.");
+ var fraction1 = accessibilityController.accessibleElementById("math1").childAtIndex(0);
+ shouldBe("fraction1.subrole", "'AXSubrole: AXMathFraction'");
+ shouldBeTrue("fraction1.isAttributeSupported('AXMathLineThickness')");
+ shouldBe("fraction1.numberAttributeValue('AXMathLineThickness')", "0");
+
+ debug("\nVerify the line thickness of 4 is reported correctly.");
+ var fraction2 = accessibilityController.accessibleElementById("math2").childAtIndex(0);
+ shouldBe("fraction2.subrole", "'AXSubrole: AXMathFraction'");
+ shouldBeTrue("fraction2.isAttributeSupported('AXMathLineThickness')");
+ shouldBe("fraction2.numberAttributeValue('AXMathLineThickness')", "4");
+
+ document.getElementById("content").style.visibility = 'hidden';
+}
+
+</script>
+
+<script src=""
+</body>
+</html>
Modified: trunk/Source/WebCore/ChangeLog (147438 => 147439)
--- trunk/Source/WebCore/ChangeLog 2013-04-02 15:48:33 UTC (rev 147438)
+++ trunk/Source/WebCore/ChangeLog 2013-04-02 15:58:41 UTC (rev 147439)
@@ -1,3 +1,28 @@
+2013-04-02 Chris Fleizach <[email protected]>
+
+ AX: Need to get line thickness from fraction on web
+ https://bugs.webkit.org/show_bug.cgi?id=113720
+
+ Reviewed by David Kilzer.
+
+ Expose the line thickness property for fractions, which is needed to
+ help determine the type of equation.
+
+ Test: platform/mac/accessibility/mathml-line-fraction.html
+
+ * accessibility/AccessibilityObject.h:
+ (WebCore::AccessibilityObject::mathLineThickness):
+ * accessibility/AccessibilityRenderObject.cpp:
+ (WebCore::AccessibilityRenderObject::mathLineThickness):
+ (WebCore):
+ * accessibility/AccessibilityRenderObject.h:
+ (AccessibilityRenderObject):
+ * accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
+ (-[WebAccessibilityObjectWrapper accessibilityMathLineThickness]):
+ * accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
+ (-[WebAccessibilityObjectWrapper additionalAccessibilityAttributeNames]):
+ (-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
+
2013-04-02 Alexandre Elias <[email protected]>
Unreviewed, rolling out r147389.
Modified: trunk/Source/WebCore/accessibility/AccessibilityObject.h (147438 => 147439)
--- trunk/Source/WebCore/accessibility/AccessibilityObject.h 2013-04-02 15:48:33 UTC (rev 147438)
+++ trunk/Source/WebCore/accessibility/AccessibilityObject.h 2013-04-02 15:58:41 UTC (rev 147439)
@@ -808,6 +808,7 @@
// Fenced components.
virtual String mathFencedOpenString() const { return String(); }
virtual String mathFencedCloseString() const { return String(); }
+ virtual int mathLineThickness() const { return 0; }
#if HAVE(ACCESSIBILITY)
#if PLATFORM(GTK) || PLATFORM(EFL)
Modified: trunk/Source/WebCore/accessibility/AccessibilityRenderObject.cpp (147438 => 147439)
--- trunk/Source/WebCore/accessibility/AccessibilityRenderObject.cpp 2013-04-02 15:48:33 UTC (rev 147438)
+++ trunk/Source/WebCore/accessibility/AccessibilityRenderObject.cpp 2013-04-02 15:58:41 UTC (rev 147439)
@@ -3675,6 +3675,11 @@
return getAttribute(MathMLNames::closeAttr);
}
+int AccessibilityRenderObject::mathLineThickness() const
+{
+ return getAttribute(MathMLNames::linethicknessAttr).toInt();
+}
+
#endif
} // namespace WebCore
Modified: trunk/Source/WebCore/accessibility/AccessibilityRenderObject.h (147438 => 147439)
--- trunk/Source/WebCore/accessibility/AccessibilityRenderObject.h 2013-04-02 15:48:33 UTC (rev 147438)
+++ trunk/Source/WebCore/accessibility/AccessibilityRenderObject.h 2013-04-02 15:58:41 UTC (rev 147439)
@@ -320,6 +320,7 @@
// Fenced components.
virtual String mathFencedOpenString() const;
virtual String mathFencedCloseString() const;
+ virtual int mathLineThickness() const;
bool isIgnoredElementWithinMathTree() const;
#endif
Modified: trunk/Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm (147438 => 147439)
--- trunk/Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm 2013-04-02 15:48:33 UTC (rev 147438)
+++ trunk/Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm 2013-04-02 15:58:41 UTC (rev 147439)
@@ -2002,6 +2002,14 @@
return m_object->roleValue() == DocumentMathRole;
}
+- (NSInteger)accessibilityMathLineThickness
+{
+ if (![self _prepareAccessibilityCall])
+ return 0;
+
+ return m_object->mathLineThickness();
+}
+
- (NSString *)accessibilityMathType
{
if (m_object->roleValue() == MathElementRole) {
Modified: trunk/Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm (147438 => 147439)
--- trunk/Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm 2013-04-02 15:48:33 UTC (rev 147438)
+++ trunk/Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm 2013-04-02 15:58:41 UTC (rev 147439)
@@ -362,6 +362,7 @@
#define NSAccessibilityMathOverAttribute @"AXMathOver"
#define NSAccessibilityMathFencedOpenAttribute @"AXMathFencedOpen"
#define NSAccessibilityMathFencedCloseAttribute @"AXMathFencedClose"
+#define NSAccessibilityMathLineThicknessAttribute @"AXMathLineThickness"
@implementation WebAccessibilityObjectWrapper
@@ -1011,6 +1012,7 @@
} else if (m_object->isMathFraction()) {
[additional addObject:NSAccessibilityMathFractionNumeratorAttribute];
[additional addObject:NSAccessibilityMathFractionDenominatorAttribute];
+ [additional addObject:NSAccessibilityMathLineThicknessAttribute];
} else if (m_object->isMathSubscriptSuperscript()) {
[additional addObject:NSAccessibilityMathBaseAttribute];
[additional addObject:NSAccessibilityMathSubscriptAttribute];
@@ -2653,6 +2655,8 @@
return m_object->mathFencedOpenString();
if ([attributeName isEqualToString:NSAccessibilityMathFencedCloseAttribute])
return m_object->mathFencedCloseString();
+ if ([attributeName isEqualToString:NSAccessibilityMathLineThicknessAttribute])
+ return [NSNumber numberWithInteger:m_object->mathLineThickness()];
}
// this is used only by DumpRenderTree for testing