Changeset 197616 in webkit


Ignore:
Timestamp:
Mar 5, 2016, 1:35:57 PM (9 years ago)
Author:
jdiggs@igalia.com
Message:

AX: Implement missing/different accessibility API mappings for SVG
https://bugs.webkit.org/show_bug.cgi?id=155034

Reviewed by Chris Fleizach.

Source/WebCore:

Create an AccessibilitySVGElement class for the SVG-specific mappings;
fix name and description mappings for ATK; add new AccessibilityRole
types (SVGTextRole, SVGTSpanRole, SVGTextPathRole) and map them for
ATK and AX API.

Tests: accessibility/w3c-svg-description-calculation.html

accessibility/w3c-svg-elements-not-exposed.html
accessibility/w3c-svg-name-calculation.html
accessibility/w3c-svg-presentational-role.html
accessibility/w3c-svg-roles.html

  • CMakeLists.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • accessibility/AXObjectCache.cpp:

(WebCore::createFromRenderer):

  • accessibility/AccessibilityAllInOne.cpp:
  • accessibility/AccessibilityNodeObject.cpp:

(WebCore::AccessibilityNodeObject::alternativeText): Deleted.
(WebCore::AccessibilityNodeObject::accessibilityDescription): Deleted.

  • accessibility/AccessibilityObject.h:

(WebCore::AccessibilityObject::isAccessibilitySVGElement):

  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::determineAccessibilityRole): Deleted.

  • accessibility/AccessibilitySVGElement.cpp: Added.

(WebCore::AccessibilitySVGElement::AccessibilitySVGElement):
(WebCore::AccessibilitySVGElement::~AccessibilitySVGElement):
(WebCore::AccessibilitySVGElement::create):
(WebCore::AccessibilitySVGElement::targetForUseElement):
(WebCore::AccessibilitySVGElement::accessibilityText):
(WebCore::AccessibilitySVGElement::accessibilityDescription):
(WebCore::AccessibilitySVGElement::helpText):
(WebCore::AccessibilitySVGElement::computeAccessibilityIsIgnored):
(WebCore::AccessibilitySVGElement::inheritsPresentationalRole):
(WebCore::AccessibilitySVGElement::determineAriaRoleAttribute):
(WebCore::AccessibilitySVGElement::determineAccessibilityRole):

  • accessibility/AccessibilitySVGElement.h: Added.
  • accessibility/atk/WebKitAccessibleWrapperAtk.cpp:

(webkitAccessibleGetName):
(webkitAccessibleGetDescription):
(atkRole):

  • accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:

(-[WebAccessibilityObjectWrapper determineIsAccessibilityElement]):

  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(createAccessibilityRoleMap):

  • rendering/RenderObject.h:

(WebCore::RenderObject::isSVGTSpan):

  • rendering/svg/RenderSVGTSpan.h:

LayoutTests:

  • accessibility/svg-group-element-with-title.html: Modified to reflect correct ATK results.
  • accessibility/svg-image.html: Modified to reflect correct ATK results.
  • accessibility/svg-labelledby.html: Modified to reflect correct ATK results.
  • accessibility/svg-remote-element.html: Modified to reflect correct ATK results.
  • accessibility/w3c-svg-description-calculation.html: Added.
  • accessibility/w3c-svg-elements-not-exposed.html: Added.
  • accessibility/w3c-svg-name-calculation.html: Added.
  • accessibility/w3c-svg-presentational-role.html: Added.
  • accessibility/w3c-svg-roles.html: Added.
  • platform/gtk/accessibility/svg-group-element-with-title-expected.txt: Added.
  • platform/gtk/accessibility/svg-image-expected.txt: Added.
  • platform/gtk/accessibility/svg-labelledby-expected.txt: Added.
  • platform/gtk/accessibility/svg-remote-element-expected.txt: Added.
  • platform/gtk/accessibility/w3c-svg-description-calculation-expected.txt: Added.
  • platform/gtk/accessibility/w3c-svg-elements-not-exposed-expected.txt: Added.
  • platform/gtk/accessibility/w3c-svg-name-calculation-expected.txt: Added.
  • platform/gtk/accessibility/w3c-svg-presentational-role-expected.txt: Added.
  • platform/gtk/accessibility/w3c-svg-roles-expected.txt: Added.
  • platform/mac/accessibility/w3c-svg-description-calculation-expected.txt: Added.
  • platform/mac/accessibility/w3c-svg-elements-not-exposed-expected.txt: Added.
  • platform/mac/accessibility/w3c-svg-name-calculation-expected.txt: Added.
  • platform/mac/accessibility/w3c-svg-presentational-role-expected.txt: Added.
  • platform/mac/accessibility/w3c-svg-roles-expected.txt: Added.
Location:
trunk
Files:
21 added
18 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r197611 r197616  
     12016-03-05  Joanmarie Diggs  <jdiggs@igalia.com>
     2
     3        AX: Implement missing/different accessibility API mappings for SVG
     4        https://bugs.webkit.org/show_bug.cgi?id=155034
     5
     6        Reviewed by Chris Fleizach.
     7
     8        * accessibility/svg-group-element-with-title.html: Modified to reflect correct ATK results.
     9        * accessibility/svg-image.html: Modified to reflect correct ATK results.
     10        * accessibility/svg-labelledby.html: Modified to reflect correct ATK results.
     11        * accessibility/svg-remote-element.html: Modified to reflect correct ATK results.
     12        * accessibility/w3c-svg-description-calculation.html: Added.
     13        * accessibility/w3c-svg-elements-not-exposed.html: Added.
     14        * accessibility/w3c-svg-name-calculation.html: Added.
     15        * accessibility/w3c-svg-presentational-role.html: Added.
     16        * accessibility/w3c-svg-roles.html: Added.
     17        * platform/gtk/accessibility/svg-group-element-with-title-expected.txt: Added.
     18        * platform/gtk/accessibility/svg-image-expected.txt: Added.
     19        * platform/gtk/accessibility/svg-labelledby-expected.txt: Added.
     20        * platform/gtk/accessibility/svg-remote-element-expected.txt: Added.
     21        * platform/gtk/accessibility/w3c-svg-description-calculation-expected.txt: Added.
     22        * platform/gtk/accessibility/w3c-svg-elements-not-exposed-expected.txt: Added.
     23        * platform/gtk/accessibility/w3c-svg-name-calculation-expected.txt: Added.
     24        * platform/gtk/accessibility/w3c-svg-presentational-role-expected.txt: Added.
     25        * platform/gtk/accessibility/w3c-svg-roles-expected.txt: Added.
     26        * platform/mac/accessibility/w3c-svg-description-calculation-expected.txt: Added.
     27        * platform/mac/accessibility/w3c-svg-elements-not-exposed-expected.txt: Added.
     28        * platform/mac/accessibility/w3c-svg-name-calculation-expected.txt: Added.
     29        * platform/mac/accessibility/w3c-svg-presentational-role-expected.txt: Added.
     30        * platform/mac/accessibility/w3c-svg-roles-expected.txt: Added.
     31
    1322016-03-04  Ryosuke Niwa  <rniwa@webkit.org>
    233
  • trunk/LayoutTests/accessibility/svg-group-element-with-title.html

    r168313 r197616  
    2525          var group1 = accessibilityController.accessibleElementById("group1");
    2626          shouldBe("group1.role", "'AXRole: AXGroup'");
    27           shouldBe("group1.description", "'AXDescription: SVG TITLE 1'");
     27          if (accessibilityController.platformName == "atk")
     28              shouldBe("group1.title", "'AXTitle: SVG TITLE 1'");
     29          else
     30              shouldBe("group1.description", "'AXDescription: SVG TITLE 1'");
    2831
    2932          debug("\nVerify that you can hit-test to the SVG group.");
  • trunk/LayoutTests/accessibility/svg-image.html

    r155274 r197616  
    2828        var svgImage = accessibilityController.focusedElement;
    2929        shouldBe("svgImage.role", "realImage.role");
    30         shouldBe("svgImage.description", "realImage.description");
     30        if (accessibilityController.platformName == "atk")
     31            shouldBe("svgImage.title", "realImage.title");
     32        else
     33            shouldBe("svgImage.description", "realImage.description");
    3134       
    3235        debug("SVG Image Role: " + svgImage.role);
    33         debug("SVG Image Description: " + svgImage.description);
     36        if (accessibilityController.platformName == "atk")
     37            debug("SVG Image Title: " + svgImage.title);
     38        else
     39            debug("SVG Image Description: " + svgImage.description);
    3440    }
    3541
  • trunk/LayoutTests/accessibility/svg-labelledby.html

    r166917 r197616  
    2929    if (window.accessibilityController) {
    3030        var image = accessibilityController.accessibleElementById("Sudan");
    31         debug("SVG Element: " + image.description);
     31        if (accessibilityController.platformName == "atk")
     32            debug("SVG Element: " + image.title);
     33        else
     34            debug("SVG Element: " + image.description);
    3235    }
    3336
  • trunk/LayoutTests/accessibility/svg-remote-element.html

    r155274 r197616  
    2222}
    2323
     24function label(axElement) {
     25    return accessibilityController.platformName == "atk" ? axElement.title : axElement.description;
     26}
     27
    2428function runAXTest() {   
    2529    var container = accessibilityController.accessibleElementById("svg-image");
     
    3236    var face = container.childAtIndex(0);
    3337    debug('Face role: ' + face.role);
    34     debug('Face label: ' + face.description);
     38    debug('Face label: ' + label(face));
    3539    debug('FaceX: ' + (pageX(face) - x));
    3640    debug('FaceY: ' + Math.abs(pageY(face) - y));
     
    3943    var eye = container.childAtIndex(1);
    4044    debug('Eye role: ' + eye.role);
    41     debug('Eye label: ' + eye.description);
     45    debug('Eye label: ' + label(eye));
    4246    debug('EyeX: ' + (pageX(eye) - x));
    4347    debug('EyeY: ' + Math.abs(pageY(eye) - y));
     
    4650    var nose = container.childAtIndex(3);
    4751    debug('Nose role: ' + nose.role);
    48     debug('Nose label: ' + nose.description);
     52    debug('Nose label: ' + label(nose));
    4953    debug('NoseX: ' + (pageX(nose) - x));
    5054    debug('NoseY: ' + Math.abs(pageY(nose) - y));
     
    5357    var mouth = container.childAtIndex(4);
    5458    debug('Mouth role: ' + mouth.role);
    55     debug('Mouth label: ' + mouth.description);
     59    debug('Mouth label: ' + label(mouth));
    5660    debug('MouthX: ' + (pageX(mouth) - x));
    5761    debug('MouthY: ' + Math.floor(Math.abs(pageY(mouth) - y)));
  • trunk/Source/WebCore/CMakeLists.txt

    r197611 r197616  
    10611061    accessibility/AccessibilityProgressIndicator.cpp
    10621062    accessibility/AccessibilityRenderObject.cpp
     1063    accessibility/AccessibilitySVGElement.cpp
    10631064    accessibility/AccessibilitySVGRoot.cpp
    10641065    accessibility/AccessibilityScrollView.cpp
  • trunk/Source/WebCore/ChangeLog

    r197614 r197616  
     12016-03-05  Joanmarie Diggs  <jdiggs@igalia.com>
     2
     3        AX: Implement missing/different accessibility API mappings for SVG
     4        https://bugs.webkit.org/show_bug.cgi?id=155034
     5
     6        Reviewed by Chris Fleizach.
     7
     8        Create an AccessibilitySVGElement class for the SVG-specific mappings;
     9        fix name and description mappings for ATK; add new AccessibilityRole
     10        types (SVGTextRole, SVGTSpanRole, SVGTextPathRole) and map them for
     11        ATK and AX API.
     12
     13        Tests: accessibility/w3c-svg-description-calculation.html
     14               accessibility/w3c-svg-elements-not-exposed.html
     15               accessibility/w3c-svg-name-calculation.html
     16               accessibility/w3c-svg-presentational-role.html
     17               accessibility/w3c-svg-roles.html
     18
     19        * CMakeLists.txt:
     20        * WebCore.xcodeproj/project.pbxproj:
     21        * accessibility/AXObjectCache.cpp:
     22        (WebCore::createFromRenderer):
     23        * accessibility/AccessibilityAllInOne.cpp:
     24        * accessibility/AccessibilityNodeObject.cpp:
     25        (WebCore::AccessibilityNodeObject::alternativeText): Deleted.
     26        (WebCore::AccessibilityNodeObject::accessibilityDescription): Deleted.
     27        * accessibility/AccessibilityObject.h:
     28        (WebCore::AccessibilityObject::isAccessibilitySVGElement):
     29        * accessibility/AccessibilityRenderObject.cpp:
     30        (WebCore::AccessibilityRenderObject::determineAccessibilityRole): Deleted.
     31        * accessibility/AccessibilitySVGElement.cpp: Added.
     32        (WebCore::AccessibilitySVGElement::AccessibilitySVGElement):
     33        (WebCore::AccessibilitySVGElement::~AccessibilitySVGElement):
     34        (WebCore::AccessibilitySVGElement::create):
     35        (WebCore::AccessibilitySVGElement::targetForUseElement):
     36        (WebCore::AccessibilitySVGElement::accessibilityText):
     37        (WebCore::AccessibilitySVGElement::accessibilityDescription):
     38        (WebCore::AccessibilitySVGElement::helpText):
     39        (WebCore::AccessibilitySVGElement::computeAccessibilityIsIgnored):
     40        (WebCore::AccessibilitySVGElement::inheritsPresentationalRole):
     41        (WebCore::AccessibilitySVGElement::determineAriaRoleAttribute):
     42        (WebCore::AccessibilitySVGElement::determineAccessibilityRole):
     43        * accessibility/AccessibilitySVGElement.h: Added.
     44        * accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
     45        (webkitAccessibleGetName):
     46        (webkitAccessibleGetDescription):
     47        (atkRole):
     48        * accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
     49        (-[WebAccessibilityObjectWrapper determineIsAccessibilityElement]):
     50        * accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
     51        (createAccessibilityRoleMap):
     52        * rendering/RenderObject.h:
     53        (WebCore::RenderObject::isSVGTSpan):
     54        * rendering/svg/RenderSVGTSpan.h:
     55
    1562016-03-05  Yusuke Suzuki  <utatane.tea@gmail.com>
    257
  • trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj

    r197611 r197616  
    25042504                65E0E9441133C89F00B4CB10 /* JSDOMWrapper.h in Headers */ = {isa = PBXBuildFile; fileRef = 65E0E9431133C89F00B4CB10 /* JSDOMWrapper.h */; settings = {ATTRIBUTES = (Private, ); }; };
    25052505                65FEA86909833ADE00BED4AB /* Page.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 65FEA86809833ADE00BED4AB /* Page.cpp */; };
     2506                69A6CBAC1C6BE42C00B836E9 /* AccessibilitySVGElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 697101071C6BE1550018C7F1 /* AccessibilitySVGElement.cpp */; };
     2507                69A6CBAD1C6BE42C00B836E9 /* AccessibilitySVGElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 697101081C6BE1550018C7F1 /* AccessibilitySVGElement.h */; };
    25062508                6B3480940EEF50D400AC1B41 /* NativeImagePtr.h in Headers */ = {isa = PBXBuildFile; fileRef = 6B3480920EEF50D400AC1B41 /* NativeImagePtr.h */; settings = {ATTRIBUTES = (Private, ); }; };
    25072509                6B693A2E1C51A82E00B03BEF /* ResourceLoadObserver.h in Headers */ = {isa = PBXBuildFile; fileRef = 6B693A2D1C51A82E00B03BEF /* ResourceLoadObserver.h */; settings = {ATTRIBUTES = (Private, ); }; };
     
    1009210094                65F80697054D9F86008BF776 /* BlockExceptions.mm */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = BlockExceptions.mm; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
    1009310095                65FEA86809833ADE00BED4AB /* Page.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = Page.cpp; sourceTree = "<group>"; };
     10096                697101071C6BE1550018C7F1 /* AccessibilitySVGElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AccessibilitySVGElement.cpp; sourceTree = "<group>"; };
     10097                697101081C6BE1550018C7F1 /* AccessibilitySVGElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AccessibilitySVGElement.h; sourceTree = "<group>"; };
    1009410098                6B3480920EEF50D400AC1B41 /* NativeImagePtr.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NativeImagePtr.h; sourceTree = "<group>"; };
    1009510099                6B693A2D1C51A82E00B03BEF /* ResourceLoadObserver.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ResourceLoadObserver.h; sourceTree = "<group>"; };
     
    1647016474                                29D7BCF51444AF580070619C /* AccessibilitySpinButton.cpp */,
    1647116475                                29D7BCF91444AF7D0070619C /* AccessibilitySpinButton.h */,
     16476                                697101071C6BE1550018C7F1 /* AccessibilitySVGElement.cpp */,
     16477                                697101081C6BE1550018C7F1 /* AccessibilitySVGElement.h */,
    1647216478                                AAC08CF015F941FC00F1E188 /* AccessibilitySVGRoot.cpp */,
    1647316479                                AAC08CF115F941FC00F1E188 /* AccessibilitySVGRoot.h */,
     
    2626626272                                5185FC8B1BB4C4E80012898F /* IDBEventDispatcher.h in Headers */,
    2626726273                                5185FC8D1BB4C4E80012898F /* IDBFactory.h in Headers */,
     26274                                51F41A721BA73B5B002E053B /* IDBFactoryBackendInterface.h in Headers */,
     26275                                69A6CBAD1C6BE42C00B836E9 /* AccessibilitySVGElement.h in Headers */,
    2626826276                                510310501BA8CC03003329C0 /* IDBFactoryImpl.h in Headers */,
    2626926277                                5185FC8F1BB4C4E80012898F /* IDBGetResult.h in Headers */,
     
    3006630074                                FDF7E9C313AC21DB00A51EAC /* JSAudioBufferCallback.cpp in Sources */,
    3006730075                                FDA15E9F12B03EE1003A583A /* JSAudioBufferSourceNode.cpp in Sources */,
     30076                                69A6CBAC1C6BE42C00B836E9 /* AccessibilitySVGElement.cpp in Sources */,
    3006830077                                FDEAAAF312B02EE400DCF33B /* JSAudioBufferSourceNodeCustom.cpp in Sources */,
    3006930078                                FDA15EA512B03EE1003A583A /* JSAudioContext.cpp in Sources */,
  • trunk/Source/WebCore/accessibility/AXObjectCache.cpp

    r196853 r197616  
    4646#include "AccessibilityProgressIndicator.h"
    4747#include "AccessibilityRenderObject.h"
     48#include "AccessibilitySVGElement.h"
    4849#include "AccessibilitySVGRoot.h"
    4950#include "AccessibilityScrollView.h"
     
    8182#include "RenderTableRow.h"
    8283#include "RenderView.h"
     84#include "SVGElement.h"
    8385#include "ScrollView.h"
    8486#include "TextBoundaries.h"
     
    405407        return AccessibilitySVGRoot::create(renderer);
    406408   
     409    if (is<SVGElement>(node))
     410        return AccessibilitySVGElement::create(renderer);
     411
    407412    if (is<RenderBoxModelObject>(*renderer)) {
    408413        RenderBoxModelObject& cssBox = downcast<RenderBoxModelObject>(*renderer);
  • trunk/Source/WebCore/accessibility/AccessibilityAllInOne.cpp

    r187584 r197616  
    4343#include "AccessibilityProgressIndicator.cpp"
    4444#include "AccessibilityRenderObject.cpp"
     45#include "AccessibilitySVGElement.cpp"
    4546#include "AccessibilitySVGRoot.cpp"
    4647#include "AccessibilityScrollView.cpp"
  • trunk/Source/WebCore/accessibility/AccessibilityNodeObject.cpp

    r195743 r197616  
    13211321    }
    13221322   
    1323     // SVG elements all can have a <svg:title> element inside which should act as the descriptive text.
    1324     if (node->isSVGElement())
    1325         textOrder.append(AccessibilityText(downcast<SVGElement>(*node).title(), AlternativeText));
    1326    
    13271323#if ENABLE(MATHML)
    13281324    if (node->isMathMLElement())
     
    15071503            return alt;
    15081504    }
    1509 
    1510     // SVG elements all can have a <svg:title> element inside which should act as the descriptive text.
    1511     if (m_node && m_node->isSVGElement())
    1512         return downcast<SVGElement>(*m_node).title();
    15131505   
    15141506#if ENABLE(MATHML)
  • trunk/Source/WebCore/accessibility/AccessibilityObject.h

    r195463 r197616  
    203203    SystemWideRole,
    204204    SVGRootRole,
     205    SVGTextRole,
     206    SVGTSpanRole,
     207    SVGTextPathRole,
    205208    TabGroupRole,
    206209    TabListRole,
     
    466469    virtual bool isAccessibilityScrollView() const { return false; }
    467470    virtual bool isAccessibilitySVGRoot() const { return false; }
     471    virtual bool isAccessibilitySVGElement() const { return false; }
    468472
    469473    bool accessibilityObjectContainsText(String *) const;
  • trunk/Source/WebCore/accessibility/AccessibilityRenderObject.cpp

    r195463 r197616  
    25792579        return HeadingRole;
    25802580   
    2581     if (m_renderer->isSVGImage())
    2582         return ImageRole;
    25832581    if (m_renderer->isSVGRoot())
    25842582        return SVGRootRole;
    2585     if (node && node->hasTagName(SVGNames::gTag))
    2586         return GroupRole;
    25872583   
    25882584    if (isStyleFormatGroup())
  • trunk/Source/WebCore/accessibility/atk/WebKitAccessibleWrapperAtk.cpp

    r195951 r197616  
    4646#include "HostWindow.h"
    4747#include "RenderObject.h"
     48#include "SVGElement.h"
    4849#include "Settings.h"
    4950#include "TextIterator.h"
     
    133134    }
    134135
     136    if (is<SVGElement>(coreObject->element())) {
     137        Vector<AccessibilityText> textOrder;
     138        coreObject->accessibilityText(textOrder);
     139
     140        for (const auto& text : textOrder) {
     141            if (text.textSource != HelpText && text.textSource != SummaryText)
     142                return cacheAndReturnAtkProperty(object, AtkCachedAccessibleName, text.text);
     143        }
     144        // FIXME: This is to keep the next blocks from returning duplicate text.
     145        // This behavior should be extended to all elements; not just SVG.
     146        return cacheAndReturnAtkProperty(object, AtkCachedAccessibleName, "");
     147    }
     148
    135149    if (coreObject->isImage() || coreObject->isInputImage() || coreObject->isImageMap() || coreObject->isImageMapLink()) {
    136150        Node* node = coreObject->node();
     
    168182    if (coreObject->isAccessibilityRenderObject())
    169183        node = coreObject->node();
     184
     185    if (is<SVGElement>(node)) {
     186        Vector<AccessibilityText> textOrder;
     187        coreObject->accessibilityText(textOrder);
     188
     189        for (const auto& text : textOrder) {
     190            if (text.textSource == HelpText || text.textSource == SummaryText || text.textSource == TitleTagText)
     191                return cacheAndReturnAtkProperty(object, AtkCachedAccessibleDescription, text.text);
     192        }
     193        // FIXME: This is to keep the next blocks from returning duplicate text.
     194        // This behavior should be extended to all elements; not just SVG.
     195        return cacheAndReturnAtkProperty(object, AtkCachedAccessibleDescription, "");
     196    }
     197
    170198    if (!is<HTMLElement>(node) || coreObject->ariaRoleAttribute() != UnknownRole || coreObject->isImage())
    171199        return cacheAndReturnAtkProperty(object, AtkCachedAccessibleDescription, accessibilityDescription(coreObject));
     
    573601    case GroupRole:
    574602    case RadioGroupRole:
     603    case SVGRootRole:
    575604    case TabPanelRole:
    576605        return ATK_ROLE_PANEL;
     
    621650    case DivRole:
    622651    case PreRole:
     652    case SVGTextRole:
    623653        return ATK_ROLE_SECTION;
    624654    case FooterRole:
     
    697727#if ATK_CHECK_VERSION(2, 15, 2)
    698728    case InlineRole:
     729    case SVGTextPathRole:
     730    case SVGTSpanRole:
    699731        return ATK_ROLE_STATIC;
    700732#endif
  • trunk/Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm

    r196546 r197616  
    858858        case SystemWideRole:
    859859        case SVGRootRole:
     860        case SVGTextPathRole:
     861        case SVGTextRole:
     862        case SVGTSpanRole:
    860863        case TabGroupRole:
    861864        case TabListRole:
  • trunk/Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm

    r196824 r197616  
    21822182        { DetailsRole, NSAccessibilityGroupRole },
    21832183        { SummaryRole, NSAccessibilityGroupRole },
     2184        { SVGTextPathRole, NSAccessibilityGroupRole },
     2185        { SVGTextRole, NSAccessibilityGroupRole },
     2186        { SVGTSpanRole, NSAccessibilityGroupRole },
    21842187    };
    21852188    AccessibilityRoleMap& roleMap = *new AccessibilityRoleMap;
  • trunk/Source/WebCore/rendering/RenderObject.h

    r197563 r197616  
    414414    virtual bool isSVGText() const { return false; }
    415415    virtual bool isSVGTextPath() const { return false; }
     416    virtual bool isSVGTSpan() const { return false; }
    416417    virtual bool isSVGInline() const { return false; }
    417418    virtual bool isSVGInlineText() const { return false; }
  • trunk/Source/WebCore/rendering/svg/RenderSVGTSpan.h

    r197563 r197616  
    3939    void graphicsElement() const = delete;
    4040    const char* renderName() const override { return "RenderSVGTSpan"; }
     41    bool isSVGTSpan() const override { return true; }
    4142};
    4243}
    4344
     45SPECIALIZE_TYPE_TRAITS_RENDER_OBJECT(RenderSVGTSpan, isSVGTSpan())
     46
    4447#endif // !RenderSVGTSpan_h
Note: See TracChangeset for help on using the changeset viewer.