Title: [147439] trunk
Revision
147439
Author
[email protected]
Date
2013-04-02 08:58:41 -0700 (Tue, 02 Apr 2013)

Log Message

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:]):

Modified Paths

Added Paths

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
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to