AX: [ATK] The pre element should be mapped to ATK_ROLE_SECTION; not ATK_ROLE_PANEL
authorjdiggs@igalia.com <jdiggs@igalia.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 7 May 2015 17:30:00 +0000 (17:30 +0000)
committerjdiggs@igalia.com <jdiggs@igalia.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 7 May 2015 17:30:00 +0000 (17:30 +0000)
https://bugs.webkit.org/show_bug.cgi?id=144702

Reviewed by Chris Fleizach.

Source/WebCore:

Add a new PreRole AccessibilityRole so that per-platform mapping is possible.
Map PreRole to ATK_ROLE_SECTION for Efl and Gtk; to NSAccessibilityGroupRole
for the Mac. Add PreRole to the list of "text type" ATK roles.

No new tests. Existing tests were updated to reflect the corrected mapping.

* accessibility/AccessibilityObject.h:
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::determineAccessibilityRole):
* accessibility/atk/AccessibilityObjectAtk.cpp:
(WebCore::AccessibilityObject::allowsTextRanges):
* accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
(atkRole):
(roleIsTextType):
* accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
(createAccessibilityRoleMap):

LayoutTests:

In addition to updating the platform expectations for Efl and Gtk, the computed
roles test needed to be updated because there is not a one-to-one mapping between
the HTML pre element and any ARIA role type.

* accessibility/roles-computedRoleString-expected.txt: Updated.
* accessibility/roles-computedRoleString.html: Updated.
* platform/efl/accessibility/roles-exposed-expected.txt: Updated.
* platform/gtk/accessibility/roles-exposed-expected.txt: Updated.

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

LayoutTests/ChangeLog
LayoutTests/accessibility/roles-computedRoleString-expected.txt
LayoutTests/accessibility/roles-computedRoleString.html
LayoutTests/platform/efl/accessibility/roles-exposed-expected.txt
LayoutTests/platform/gtk/accessibility/roles-exposed-expected.txt
Source/WebCore/ChangeLog
Source/WebCore/accessibility/AccessibilityObject.h
Source/WebCore/accessibility/AccessibilityRenderObject.cpp
Source/WebCore/accessibility/atk/AccessibilityObjectAtk.cpp
Source/WebCore/accessibility/atk/WebKitAccessibleWrapperAtk.cpp
Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm

index dae04f3..0bfe49f 100644 (file)
@@ -1,3 +1,19 @@
+2015-05-07  Joanmarie Diggs  <jdiggs@igalia.com>
+
+        AX: [ATK] The pre element should be mapped to ATK_ROLE_SECTION; not ATK_ROLE_PANEL
+        https://bugs.webkit.org/show_bug.cgi?id=144702
+
+        Reviewed by Chris Fleizach.
+
+        In addition to updating the platform expectations for Efl and Gtk, the computed
+        roles test needed to be updated because there is not a one-to-one mapping between
+        the HTML pre element and any ARIA role type.
+
+        * accessibility/roles-computedRoleString-expected.txt: Updated.
+        * accessibility/roles-computedRoleString.html: Updated.
+        * platform/efl/accessibility/roles-exposed-expected.txt: Updated.
+        * platform/gtk/accessibility/roles-exposed-expected.txt: Updated.
+
 2015-05-07  Csaba Osztrogon√°c  <ossy@webkit.org>
 
         [EFL] Unreviewed gardening.
index 3947fe3..23c0f99 100644 (file)
@@ -48,7 +48,7 @@ PASS: nav -> navigation.
 PASS: ol -> list. 
 PASS: li -> listitem. 
 PASS: p -> . 
-PASS: pre -> group
+PASS: pre -> . 
 PASS: progress -> progressbar. 
 PASS: section -> region. 
 PASS: select:not([multiple]) -> . 
index 8da3269..246089f 100644 (file)
@@ -69,7 +69,7 @@
 <!-- skipped <output> -->
 <p data-role="" class="ex">X</p>
 <!-- skipped <param> -->
-<pre data-role="group" class="ex">X</pre>
+<pre data-role="" class="ex">X</pre>
 <progress data-role="progressbar" class="ex" value="0.75">X</progress>
 <q data-role="" class="ex">X</q>
 <!-- skipped <ruby/rp/rt> -->
index beb18c7..077c91d 100644 (file)
@@ -335,7 +335,7 @@ p
       AXRole: AXParagraph
       
 pre
-      AXRole: AXGroup
+      AXRole: AXSection
       
 progress
       AXRole: AXProgressIndicator
index 4c485bb..e99d35e 100644 (file)
@@ -335,7 +335,7 @@ p
       AXRole: AXParagraph
       
 pre
-      AXRole: AXGroup
+      AXRole: AXSection
       
 progress
       AXRole: AXProgressIndicator
index 186e19c..f736d97 100644 (file)
@@ -1,3 +1,27 @@
+2015-05-07  Joanmarie Diggs  <jdiggs@igalia.com>
+
+        AX: [ATK] The pre element should be mapped to ATK_ROLE_SECTION; not ATK_ROLE_PANEL
+        https://bugs.webkit.org/show_bug.cgi?id=144702
+
+        Reviewed by Chris Fleizach.
+
+        Add a new PreRole AccessibilityRole so that per-platform mapping is possible.
+        Map PreRole to ATK_ROLE_SECTION for Efl and Gtk; to NSAccessibilityGroupRole
+        for the Mac. Add PreRole to the list of "text type" ATK roles.
+
+        No new tests. Existing tests were updated to reflect the corrected mapping.
+
+        * accessibility/AccessibilityObject.h:
+        * accessibility/AccessibilityRenderObject.cpp:
+        (WebCore::AccessibilityRenderObject::determineAccessibilityRole):
+        * accessibility/atk/AccessibilityObjectAtk.cpp:
+        (WebCore::AccessibilityObject::allowsTextRanges):
+        * accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
+        (atkRole):
+        (roleIsTextType):
+        * accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
+        (createAccessibilityRoleMap):
+
 2015-05-07  Dan Bernstein  <mitz@apple.com>
 
         <rdar://problem/19317140> [Xcode] Remove usage of AspenFamily.xcconfig in Source/
index 816c312..bb926b4 100644 (file)
@@ -170,6 +170,7 @@ enum AccessibilityRole {
     OutlineRole,
     ParagraphRole,
     PopUpButtonRole,
+    PreRole,
     PresentationalRole,
     ProgressIndicatorRole,
     RadioButtonRole,
index 3b0e443..7054785 100644 (file)
@@ -2630,6 +2630,9 @@ AccessibilityRole AccessibilityRenderObject::determineAccessibilityRole()
     if (node && node->hasTagName(captionTag))
         return CaptionRole;
 
+    if (node && node->hasTagName(preTag))
+        return PreRole;
+
 #if ENABLE(VIDEO)
     if (is<HTMLVideoElement>(node))
         return VideoRole;
index 7cde53d..748e97b 100644 (file)
@@ -157,7 +157,7 @@ bool AccessibilityObject::allowsTextRanges() const
 
     // Check roles as the last fallback mechanism.
     AccessibilityRole role = roleValue();
-    return role == ParagraphRole || role == LabelRole || role == DivRole || role == FormRole;
+    return role == ParagraphRole || role == LabelRole || role == DivRole || role == FormRole || role == PreRole;
 }
 
 unsigned AccessibilityObject::getLengthForTextRange() const
index 73fa12d..c3b7da4 100644 (file)
@@ -633,6 +633,7 @@ static AtkRole atkRole(AccessibilityObject* coreObject)
         return ATK_ROLE_BLOCK_QUOTE;
 #endif
     case DivRole:
+    case PreRole:
         return ATK_ROLE_SECTION;
     case FooterRole:
         return ATK_ROLE_FOOTER;
@@ -1080,7 +1081,7 @@ static GType GetAtkInterfaceTypeFromWAIType(WAIType type)
 static bool roleIsTextType(AccessibilityRole role)
 {
     return role == ParagraphRole || role == HeadingRole || role == DivRole || role == CellRole
-        || role == LinkRole || role == WebCoreLinkRole || role == ListItemRole;
+        || role == LinkRole || role == WebCoreLinkRole || role == ListItemRole || role == PreRole;
 }
 
 static guint16 getInterfaceMaskFromObject(AccessibilityObject* coreObject)
index 1b09cac..3d1b76c 100644 (file)
@@ -1959,6 +1959,7 @@ static const AccessibilityRoleMap& createAccessibilityRoleMap()
         { BlockquoteRole, NSAccessibilityGroupRole },
         { SwitchRole, NSAccessibilityCheckBoxRole },
         { SearchFieldRole, NSAccessibilityTextFieldRole },
+        { PreRole, NSAccessibilityGroupRole },
     };
     AccessibilityRoleMap& roleMap = *new AccessibilityRoleMap;