Title: [136308] trunk/Tools
Revision
136308
Author
[email protected]
Date
2012-12-01 03:09:27 -0800 (Sat, 01 Dec 2012)

Log Message

[GTK] A11y tests in WK2 report badly-formatted AX roles
https://bugs.webkit.org/show_bug.cgi?id=102947

Reviewed by Xan Lopez.

As in DRT, convert the ATK accessibility roles to corresponding AXRoles.
These are expected in both tests and their baselines.

* WebKitTestRunner/InjectedBundle/atk/AccessibilityUIElementAtk.cpp:
(WTR::roleToString):
(WTR):
(WTR::AccessibilityUIElement::role):

Modified Paths

Diff

Modified: trunk/Tools/ChangeLog (136307 => 136308)


--- trunk/Tools/ChangeLog	2012-12-01 08:33:59 UTC (rev 136307)
+++ trunk/Tools/ChangeLog	2012-12-01 11:09:27 UTC (rev 136308)
@@ -1,3 +1,18 @@
+2012-12-01  Zan Dobersek  <[email protected]>
+
+        [GTK] A11y tests in WK2 report badly-formatted AX roles
+        https://bugs.webkit.org/show_bug.cgi?id=102947
+
+        Reviewed by Xan Lopez.
+
+        As in DRT, convert the ATK accessibility roles to corresponding AXRoles.
+        These are expected in both tests and their baselines.
+
+        * WebKitTestRunner/InjectedBundle/atk/AccessibilityUIElementAtk.cpp:
+        (WTR::roleToString):
+        (WTR):
+        (WTR::AccessibilityUIElement::role):
+
 2012-11-30  Mike West  <[email protected]>
 
         CSP 1.1: Make the CSP_NEXT flag runtime enabled.

Modified: trunk/Tools/WebKitTestRunner/InjectedBundle/atk/AccessibilityUIElementAtk.cpp (136307 => 136308)


--- trunk/Tools/WebKitTestRunner/InjectedBundle/atk/AccessibilityUIElementAtk.cpp	2012-12-01 08:33:59 UTC (rev 136307)
+++ trunk/Tools/WebKitTestRunner/InjectedBundle/atk/AccessibilityUIElementAtk.cpp	2012-12-01 11:09:27 UTC (rev 136308)
@@ -139,6 +139,114 @@
     return g_strdup(uString.utf8().data());
 }
 
+static const gchar* roleToString(AtkRole role)
+{
+    switch (role) {
+    case ATK_ROLE_ALERT:
+        return "AXRole: AXAlert";
+    case ATK_ROLE_CANVAS:
+        return "AXRole: AXCanvas";
+    case ATK_ROLE_CHECK_BOX:
+        return "AXRole: AXCheckBox";
+    case ATK_ROLE_COLUMN_HEADER:
+        return "AXRole: AXColumnHeader";
+    case ATK_ROLE_COMBO_BOX:
+        return "AXRole: AXComboBox";
+    case ATK_ROLE_DOCUMENT_FRAME:
+        return "AXRole: AXWebArea";
+    case ATK_ROLE_ENTRY:
+        return "AXRole: AXTextField";
+    case ATK_ROLE_FOOTER:
+        return "AXRole: AXFooter";
+    case ATK_ROLE_FORM:
+        return "AXRole: AXForm";
+    case ATK_ROLE_GROUPING:
+        return "AXRole: AXGroup";
+    case ATK_ROLE_HEADING:
+        return "AXRole: AXHeading";
+    case ATK_ROLE_IMAGE:
+        return "AXRole: AXImage";
+    case ATK_ROLE_IMAGE_MAP:
+        return "AXRole: AXImageMap";
+    case ATK_ROLE_LABEL:
+        return "AXRole: AXLabel";
+    case ATK_ROLE_LINK:
+        return "AXRole: AXLink";
+    case ATK_ROLE_LIST:
+        return "AXRole: AXList";
+    case ATK_ROLE_LIST_BOX:
+        return "AXRole: AXListBox";
+    case ATK_ROLE_LIST_ITEM:
+        return "AXRole: AXListItem";
+    case ATK_ROLE_MENU:
+        return "AXRole: AXMenu";
+    case ATK_ROLE_MENU_BAR:
+        return "AXRole: AXMenuBar";
+    case ATK_ROLE_MENU_ITEM:
+        return "AXRole: AXMenuItem";
+    case ATK_ROLE_PAGE_TAB:
+        return "AXRole: AXTab";
+    case ATK_ROLE_PAGE_TAB_LIST:
+        return "AXRole: AXTabGroup";
+    case ATK_ROLE_PANEL:
+        return "AXRole: AXGroup";
+    case ATK_ROLE_PARAGRAPH:
+        return "AXRole: AXParagraph";
+    case ATK_ROLE_PASSWORD_TEXT:
+        return "AXRole: AXPasswordField";
+    case ATK_ROLE_PUSH_BUTTON:
+        return "AXRole: AXButton";
+    case ATK_ROLE_RADIO_BUTTON:
+        return "AXRole: AXRadioButton";
+    case ATK_ROLE_ROW_HEADER:
+        return "AXRole: AXRowHeader";
+    case ATK_ROLE_RULER:
+        return "AXRole: AXRuler";
+    case ATK_ROLE_SCROLL_BAR:
+        return "AXRole: AXScrollBar";
+    case ATK_ROLE_SCROLL_PANE:
+        return "AXRole: AXScrollArea";
+    case ATK_ROLE_SECTION:
+        return "AXRole: AXDiv";
+    case ATK_ROLE_SEPARATOR:
+        return "AXRole: AXHorizontalRule";
+    case ATK_ROLE_SLIDER:
+        return "AXRole: AXSlider";
+    case ATK_ROLE_SPIN_BUTTON:
+        return "AXRole: AXSpinButton";
+    case ATK_ROLE_TABLE:
+        return "AXRole: AXTable";
+    case ATK_ROLE_TABLE_CELL:
+        return "AXRole: AXCell";
+    case ATK_ROLE_TABLE_COLUMN_HEADER:
+        return "AXRole: AXColumnHeader";
+    case ATK_ROLE_TABLE_ROW:
+        return "AXRole: AXRow";
+    case ATK_ROLE_TABLE_ROW_HEADER:
+        return "AXRole: AXRowHeader";
+    case ATK_ROLE_TOGGLE_BUTTON:
+        return "AXRole: AXToggleButton";
+    case ATK_ROLE_TOOL_BAR:
+        return "AXRole: AXToolbar";
+    case ATK_ROLE_TOOL_TIP:
+        return "AXRole: AXUserInterfaceTooltip";
+    case ATK_ROLE_TREE:
+        return "AXRole: AXTree";
+    case ATK_ROLE_TREE_TABLE:
+        return "AXRole: AXTreeGrid";
+    case ATK_ROLE_TREE_ITEM:
+        return "AXRole: AXTreeItem";
+    case ATK_ROLE_WINDOW:
+        return "AXRole: AXWindow";
+    case ATK_ROLE_UNKNOWN:
+        return "AXRole: AXUnknown";
+    default:
+        // We want to distinguish ATK_ROLE_UNKNOWN from a known AtkRole which
+        // our DRT isn't properly handling.
+        return "AXRole: FIXME not identified";
+    }
+}
+
 AccessibilityUIElement::AccessibilityUIElement(PlatformUIElement element)
     : m_element(element)
 {
@@ -370,9 +478,7 @@
     if (!role)
         return JSStringCreateWithCharacters(0, 0);
 
-    const gchar* roleName = atk_role_get_name(role);
-    GOwnPtr<gchar> axRole(g_strdup_printf("AXRole: %s", roleName));
-
+    GOwnPtr<gchar> axRole(g_strdup(roleToString(role)));
     return JSStringCreateWithUTF8CString(axRole.get());
 }
 
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to