Changeset 127936 in webkit


Ignore:
Timestamp:
Sep 7, 2012 4:46:45 PM (12 years ago)
Author:
dmazzoni@google.com
Message:

AX: WebCore accessibility roles should be cross-platform
https://bugs.webkit.org/show_bug.cgi?id=94870

Reviewed by Chris Fleizach.

Source/WebCore:

Make 5 accessibility roles cross-platform rather than GTK-only.

Instead of mapping the HR tag to SplitterRole (which is an interactive
splitter control on Mac), create a new role HorizontalRuleRole.

Map all of the new roles to AXGroup on Mac, which matches the existing
behavior. Add a new test for these roles on Chromium.

Test: platform/chromium/accessibility/chromium-only-roles.html

  • accessibility/AccessibilityObject.cpp:

(WebCore::AccessibilityObject::supportsARIAAttributes):

  • accessibility/AccessibilityObject.h:
  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::determineAccessibilityRole):

  • accessibility/gtk/AccessibilityObjectAtk.cpp:

(WebCore::AccessibilityObject::accessibilityPlatformIncludesObject):

  • accessibility/gtk/WebKitAccessibleWrapperAtk.cpp:

(atkRole):

  • accessibility/mac/WebAccessibilityObjectWrapper.mm:

(createAccessibilityRoleMap):

Source/WebKit/chromium:

Add a new accessibility role.

  • public/WebAccessibilityRole.h:
  • src/AssertMatchingEnums.cpp:

Tools:

Add debug strings to Chromium for new accessibility roles.

  • DumpRenderTree/chromium/TestRunner/AccessibilityUIElementChromium.cpp:

(roleToString):

LayoutTests:

Adds a test for some new accessibility roles that aren't present on all platforms.

  • platform/chromium/accessibility/chromium-only-roles-expected.txt: Added.
  • platform/chromium/accessibility/chromium-only-roles.html: Added.
Location:
trunk
Files:
2 added
15 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r127935 r127936  
     12012-09-07  Dominic Mazzoni  <dmazzoni@google.com>
     2
     3        AX: WebCore accessibility roles should be cross-platform
     4        https://bugs.webkit.org/show_bug.cgi?id=94870
     5
     6        Reviewed by Chris Fleizach.
     7
     8        Adds a test for some new accessibility roles that aren't present on all platforms.
     9
     10        * platform/chromium/accessibility/chromium-only-roles-expected.txt: Added.
     11        * platform/chromium/accessibility/chromium-only-roles.html: Added.
     12
    1132012-09-07  Ojan Vafai  <ojan@chromium.org>
    214
  • trunk/LayoutTests/accessibility/canvas-fallback-content.html

    r125710 r127936  
    33<body>
    44<script src="../fast/js/resources/js-test-pre.js"></script>
     5
     6<style>
     7myelement {
     8  display: block;
     9}
     10</style>
    511
    612<div>
     
    1218  <input id="submit1" type="submit">
    1319  <select id="combobox1"><option>1<option>2</select>
    14   <div id="focusable1" tabindex="0">Focusable</div>
     20  <myelement id="focusable1" tabindex="0">Focusable</myelement>
    1521  <div id="aria-button1" tabindex="0" role="button">ARIA button</div>
    1622  <div id="aria-link1" tabindex="0" role="link">ARIA link</div>
     
    2531  <input id="submit2" type="submit">
    2632  <select id="combobox2"><option>1<option>2</select>
    27   <div id="focusable2" tabindex="0">Focusable</div>
     33  <myelement id="focusable2" tabindex="0">Focusable</myelement>
    2834  <div id="aria-button2" tabindex="0" role="button">ARIA button</div>
    2935  <div id="aria-link2" tabindex="0" role="link">ARIA link</div>
  • trunk/LayoutTests/accessibility/inline-continuations.html

    r120111 r127936  
    1717   tree.</p>
    1818
    19 <div contentEditable="true" id="test"><span>1<div>2</div>3</span><span>4</span><div>5</div></div>
     19<div contentEditable="true" id="test"><span>1<div role="group">2</div>3</span><span>4</span><div role="group">5</div></div>
    2020
    2121<div id="console"></div>
     
    2828    for (var i = 0; i < count; ++i) {
    2929        var child = elt.childAtIndex(i);
    30           if (!child.role.match(/group/i))
    31           result++;
     30        if (!child.role.match(/group/i))
     31            result++;
    3232        result += nonGroupDescendants(child);
    3333    }
  • trunk/LayoutTests/platform/chromium/accessibility/adjacent-continuations-cause-assertion-failure-expected.txt

    r97128 r127936  
    1010AXRole: AXWebArea AXValue:
    1111    AXRole: AXStaticText AXValue: x
    12     AXRole: AXGroup AXValue:
     12    AXRole: AXDiv AXValue:
    1313        AXRole: AXStaticText AXValue: y
    1414    AXRole: AXStaticText AXValue: z
    15     AXRole: AXGroup AXValue:
     15    AXRole: AXDiv AXValue:
    1616        AXRole: AXStaticText AXValue: End of test
    1717PASS successfullyParsed is true
  • trunk/LayoutTests/platform/chromium/accessibility/div-within-anchors-causes-crash-expected.txt

    r97128 r127936  
    33AXRole: AXWebArea AXValue:
    44    AXRole: AXLink AXValue:
    5     AXRole: AXGroup AXValue:
     5    AXRole: AXDiv AXValue:
    66        AXRole: AXStaticText AXValue: End of test
    77After:
    88AXRole: AXWebArea AXValue:
    9     AXRole: AXGroup AXValue:
     9    AXRole: AXDiv AXValue:
    1010        AXRole: AXStaticText AXValue: End of test
    1111This can cause a crash.
  • trunk/Source/WebCore/ChangeLog

    r127934 r127936  
     12012-09-07  Dominic Mazzoni  <dmazzoni@google.com>
     2
     3        AX: WebCore accessibility roles should be cross-platform
     4        https://bugs.webkit.org/show_bug.cgi?id=94870
     5
     6        Reviewed by Chris Fleizach.
     7
     8        Make 5 accessibility roles cross-platform rather than GTK-only.
     9
     10        Instead of mapping the HR tag to SplitterRole (which is an interactive
     11        splitter control on Mac), create a new role HorizontalRuleRole.
     12
     13        Map all of the new roles to AXGroup on Mac, which matches the existing
     14        behavior. Add a new test for these roles on Chromium.
     15
     16        Test: platform/chromium/accessibility/chromium-only-roles.html
     17
     18        * accessibility/AccessibilityObject.cpp:
     19        (WebCore::AccessibilityObject::supportsARIAAttributes):
     20        * accessibility/AccessibilityObject.h:
     21        * accessibility/AccessibilityRenderObject.cpp:
     22        (WebCore::AccessibilityRenderObject::determineAccessibilityRole):
     23        * accessibility/gtk/AccessibilityObjectAtk.cpp:
     24        (WebCore::AccessibilityObject::accessibilityPlatformIncludesObject):
     25        * accessibility/gtk/WebKitAccessibleWrapperAtk.cpp:
     26        (atkRole):
     27        * accessibility/mac/WebAccessibilityObjectWrapper.mm:
     28        (createAccessibilityRoleMap):
     29
    1302012-09-07  Simon Hausmann  <simon.hausmann@nokia.com>
    231
  • trunk/Source/WebCore/accessibility/AccessibilityObject.cpp

    r127882 r127936  
    14971497bool AccessibilityObject::supportsARIAAttributes() const
    14981498{
    1499     return supportsARIALiveRegion() || supportsARIADragging() || supportsARIADropping() || supportsARIAFlowTo() || supportsARIAOwns();
     1499    return supportsARIALiveRegion()
     1500        || supportsARIADragging()
     1501        || supportsARIADropping()
     1502        || supportsARIAFlowTo()
     1503        || supportsARIAOwns()
     1504        || hasAttribute(aria_labelAttr);
    15001505}
    15011506   
  • trunk/Source/WebCore/accessibility/AccessibilityObject.h

    r127882 r127936  
    131131    HeadingRole,
    132132    HelpTagRole,
     133    HorizontalRuleRole,
    133134    IgnoredRole,
    134135    ImageRole,
  • trunk/Source/WebCore/accessibility/AccessibilityRenderObject.cpp

    r127882 r127936  
    32603260    if (m_renderer->isTableSection())
    32613261        return IgnoredRole;
    3262    
    3263 #if PLATFORM(GTK)
     3262
    32643263    if (m_renderer->isHR())
    3265         return SplitterRole;
     3264        return HorizontalRuleRole;
    32663265
    32673266    if (node && node->hasTagName(pTag))
     
    32763275    if (node && node->hasTagName(formTag))
    32773276        return FormRole;
    3278 #else
    3279     if (node && node->hasTagName(labelTag))
    3280         return GroupRole;
    3281 #endif
    32823277
    32833278    if (node && node->hasTagName(articleTag))
  • trunk/Source/WebCore/accessibility/gtk/AccessibilityObjectAtk.cpp

    r127483 r127936  
    4242
    4343    AccessibilityRole role = roleValue();
    44     if (role == SplitterRole)
     44    if (role == HorizontalRuleRole)
    4545        return IncludeObject;
    4646
  • trunk/Source/WebCore/accessibility/gtk/WebKitAccessibleWrapperAtk.cpp

    r127825 r127936  
    477477        return ATK_ROLE_SPLIT_PANE;
    478478    case SplitterRole:
    479         return ATK_ROLE_SEPARATOR;
     479        return ATK_ROLE_UNKNOWN;
    480480    case ColorWellRole:
    481481        return ATK_ROLE_COLOR_CHOOSER;
     
    527527    case CanvasRole:
    528528        return ATK_ROLE_CANVAS;
     529    case HorizontalRuleRole:
     530        return ATK_ROLE_SEPARATOR;
    529531    default:
    530532        return ATK_ROLE_UNKNOWN;
  • trunk/Source/WebKit/chromium/ChangeLog

    r127931 r127936  
     12012-09-07  Dominic Mazzoni  <dmazzoni@google.com>
     2
     3        AX: WebCore accessibility roles should be cross-platform
     4        https://bugs.webkit.org/show_bug.cgi?id=94870
     5
     6        Reviewed by Chris Fleizach.
     7
     8        Add a new accessibility role.
     9
     10        * public/WebAccessibilityRole.h:
     11        * src/AssertMatchingEnums.cpp:
     12
    1132012-09-07  Dominic Mazzoni  <dmazzoni@google.com>
    214
  • trunk/Source/WebKit/chromium/public/WebAccessibilityRole.h

    r127084 r127936  
    7676    WebAccessibilityRoleHeading,
    7777    WebAccessibilityRoleHelpTag,
     78    WebAccessibilityRoleHorizontalRule,
    7879    WebAccessibilityRoleIgnored,
    7980    WebAccessibilityRoleImage,
  • trunk/Tools/ChangeLog

    r127931 r127936  
     12012-09-07  Dominic Mazzoni  <dmazzoni@google.com>
     2
     3        AX: WebCore accessibility roles should be cross-platform
     4        https://bugs.webkit.org/show_bug.cgi?id=94870
     5
     6        Reviewed by Chris Fleizach.
     7
     8        Add debug strings to Chromium for new accessibility roles.
     9
     10        * DumpRenderTree/chromium/TestRunner/AccessibilityUIElementChromium.cpp:
     11        (roleToString):
     12
    1132012-09-07  Dominic Mazzoni  <dmazzoni@google.com>
    214
  • trunk/Tools/DumpRenderTree/chromium/TestRunner/AccessibilityUIElementChromium.cpp

    r127931 r127936  
    209209    case WebAccessibilityRoleCanvas:
    210210        return result.append("Canvas");
     211    case WebAccessibilityRoleParagraph:
     212        return result.append("Paragraph");
     213    case WebAccessibilityRoleDiv:
     214        return result.append("Div");
     215    case WebAccessibilityRoleLabel:
     216        return result.append("Label");
     217    case WebAccessibilityRoleForm:
     218        return result.append("Form");
     219    case WebAccessibilityRoleHorizontalRule:
     220        return result.append("HorizontalRule");
    211221    default:
    212222        // Also matches WebAccessibilityRoleUnknown.
Note: See TracChangeset for help on using the changeset viewer.