| Index: Source/modules/accessibility/AXRenderObject.cpp | 
| diff --git a/Source/modules/accessibility/AXRenderObject.cpp b/Source/modules/accessibility/AXRenderObject.cpp | 
| index f262d7b35daa23ee55f6fa83987a6fff6de7a295..09f7a7d1be9d3c9cbbfbef2dfe6ac0da33ed524c 100644 | 
| --- a/Source/modules/accessibility/AXRenderObject.cpp | 
| +++ b/Source/modules/accessibility/AXRenderObject.cpp | 
| @@ -253,6 +253,17 @@ ScrollableArea* AXRenderObject::getScrollableAreaIfScrollable() const | 
| return box->scrollableArea(); | 
| } | 
|  | 
| +static bool isImageOrAltText(RenderBoxModelObject* box, Node* node) | 
| +{ | 
| +    if (box && box->isImage()) | 
| +        return true; | 
| +    if (isHTMLImageElement(node)) | 
| +        return true; | 
| +    if (isHTMLInputElement(node) && toHTMLInputElement(node)->hasFallbackContent()) | 
| +        return true; | 
| +    return false; | 
| +} | 
| + | 
| AccessibilityRole AXRenderObject::determineAccessibilityRole() | 
| { | 
| if (!m_renderer) | 
| @@ -268,7 +279,7 @@ AccessibilityRole AXRenderObject::determineAccessibilityRole() | 
| RenderBoxModelObject* cssBox = renderBoxModelObject(); | 
|  | 
| if (node && node->isLink()) { | 
| -        if (cssBox && cssBox->isImage()) | 
| +        if (isImageOrAltText(cssBox, node)) | 
| return ImageMapRole; | 
| return LinkRole; | 
| } | 
| @@ -289,7 +300,7 @@ AccessibilityRole AXRenderObject::determineAccessibilityRole() | 
| return LegendRole; | 
| if (m_renderer->isText()) | 
| return StaticTextRole; | 
| -    if (cssBox && cssBox->isImage()) { | 
| +    if (isImageOrAltText(cssBox, node)) { | 
| if (isHTMLInputElement(node)) | 
| return ariaHasPopup() ? PopUpButtonRole : ButtonRole; | 
| if (isSVGImage()) | 
| @@ -776,7 +787,7 @@ bool AXRenderObject::computeAccessibilityIsIgnored() const | 
| return true; | 
| } | 
|  | 
| -        if (isNativeImage() && m_renderer->isImage()) { | 
| +        if (isNativeImage() && isImageOrAltText(toRenderBoxModelObject(m_renderer), node)) { | 
| // check for one-dimensional image | 
| RenderImage* image = toRenderImage(m_renderer); | 
| if (image->height() <= 1 || image->width() <= 1) | 
|  |