AX: [ATK] Expose subscript and superscript format style groups using ATK_ROLE_SUBSCRI...
authorjdiggs@igalia.com <jdiggs@igalia.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 29 Apr 2016 01:30:34 +0000 (01:30 +0000)
committerjdiggs@igalia.com <jdiggs@igalia.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 29 Apr 2016 01:30:34 +0000 (01:30 +0000)
https://bugs.webkit.org/show_bug.cgi?id=157158

Reviewed by Chris Fleizach.

Source/WebCore:

r200214 caused the sup and sub elements to be exposed as ATK_ROLE_STATIC.
While this exposure is much better than folding the text into the parent
element, ATK has roles for subscript and superscript, so use them instead.

The roles-exposed.html and roles-computedRoleString.html tests were updated
to reflect the new behavior.

* accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::isSubscriptStyleGroup):
(WebCore::AccessibilityObject::isSuperscriptStyleGroup):
* accessibility/AccessibilityObject.h:
* accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
(atkRole):

LayoutTests:

* platform/gtk/accessibility/roles-computedRoleString-expected.txt: Updated for new behavior.
* platform/gtk/accessibility/roles-exposed-expected.txt: Updated for new behavior.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@200222 268f45cc-cd09-0410-ab3c-d52691b4dbfc

LayoutTests/ChangeLog
LayoutTests/platform/gtk/accessibility/roles-computedRoleString-expected.txt
LayoutTests/platform/gtk/accessibility/roles-exposed-expected.txt
Source/WebCore/ChangeLog
Source/WebCore/accessibility/AccessibilityObject.cpp
Source/WebCore/accessibility/AccessibilityObject.h
Source/WebCore/accessibility/atk/WebKitAccessibleWrapperAtk.cpp

index 51a0af3..638d73b 100644 (file)
@@ -1,3 +1,13 @@
+2016-04-28  Joanmarie Diggs  <jdiggs@igalia.com>
+
+        AX: [ATK] Expose subscript and superscript format style groups using ATK_ROLE_SUBSCRIPT and ATK_ROLE_SUPERSCRIPT
+        https://bugs.webkit.org/show_bug.cgi?id=157158
+
+        Reviewed by Chris Fleizach.
+
+        * platform/gtk/accessibility/roles-computedRoleString-expected.txt: Updated for new behavior.
+        * platform/gtk/accessibility/roles-exposed-expected.txt: Updated for new behavior.
+
 2016-04-28  Zalan Bujtas  <zalan@apple.com>
 
         Content disappears on mouse over.
index fbd31e9..bd5c8e0 100644 (file)
@@ -61,6 +61,8 @@ PASS: option -> option.
 PASS: optgroup -> option. 
 PASS: option -> option. 
 PASS: option -> option. 
+PASS: sub -> . 
+PASS: sup -> . 
 PASS: table -> table. 
 PASS: caption -> . 
 PASS: tr -> row. 
index 8ad705f..f4f002b 100644 (file)
@@ -383,10 +383,10 @@ strong
       AXRole: 
       
 sub
-      AXRole: 
+      AXRole: AXSubscript
       
 sup
-      AXRole: 
+      AXRole: AXSuperscript
       
 svg
       AXRole: 
index 28c8bb9..c37b6b8 100644 (file)
@@ -1,3 +1,24 @@
+2016-04-28  Joanmarie Diggs  <jdiggs@igalia.com>
+
+        AX: [ATK] Expose subscript and superscript format style groups using ATK_ROLE_SUBSCRIPT and ATK_ROLE_SUPERSCRIPT
+        https://bugs.webkit.org/show_bug.cgi?id=157158
+
+        Reviewed by Chris Fleizach.
+
+        r200214 caused the sup and sub elements to be exposed as ATK_ROLE_STATIC.
+        While this exposure is much better than folding the text into the parent
+        element, ATK has roles for subscript and superscript, so use them instead.
+
+        The roles-exposed.html and roles-computedRoleString.html tests were updated
+        to reflect the new behavior.
+
+        * accessibility/AccessibilityObject.cpp:
+        (WebCore::AccessibilityObject::isSubscriptStyleGroup):
+        (WebCore::AccessibilityObject::isSuperscriptStyleGroup):
+        * accessibility/AccessibilityObject.h:
+        * accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
+        (atkRole):
+
 2016-04-28  Zalan Bujtas  <zalan@apple.com>
 
         Content disappears on mouse over.
index 5fe398f..dfcf7d3 100644 (file)
@@ -3027,6 +3027,18 @@ bool AccessibilityObject::isStyleFormatGroup() const
     || node->hasTagName(insTag) || node->hasTagName(delTag)
     || node->hasTagName(supTag) || node->hasTagName(subTag);
 }
+
+bool AccessibilityObject::isSubscriptStyleGroup() const
+{
+    Node* node = this->node();
+    return node && node->hasTagName(subTag);
+}
+
+bool AccessibilityObject::isSuperscriptStyleGroup() const
+{
+    Node* node = this->node();
+    return node && node->hasTagName(supTag);
+}
     
 bool AccessibilityObject::isContainedByPasswordField() const
 {
index dafe98d..56a225b 100644 (file)
@@ -555,6 +555,8 @@ public:
     bool isSplitter() const { return roleValue() == SplitterRole; }
     bool isToolbar() const { return roleValue() == ToolbarRole; }
     bool isStyleFormatGroup() const;
+    bool isSubscriptStyleGroup() const;
+    bool isSuperscriptStyleGroup() const;
     
     virtual bool isChecked() const { return false; }
     virtual bool isEnabled() const { return false; }
index ea7bac5..b2b8758 100644 (file)
@@ -717,8 +717,15 @@ static AtkRole atkRole(AccessibilityObject* coreObject)
     case DescriptionListDetailRole:
         return ATK_ROLE_DESCRIPTION_VALUE;
 #endif
-#if ATK_CHECK_VERSION(2, 15, 2)
     case InlineRole:
+#if ATK_CHECK_VERSION(2, 15, 4)
+        if (coreObject->isSubscriptStyleGroup())
+            return ATK_ROLE_SUBSCRIPT;
+        if (coreObject->isSuperscriptStyleGroup())
+            return ATK_ROLE_SUPERSCRIPT;
+#endif
+#if ATK_CHECK_VERSION(2, 15, 2)
+        return ATK_ROLE_STATIC;
     case SVGTextPathRole:
     case SVGTSpanRole:
         return ATK_ROLE_STATIC;