diff options
Diffstat (limited to 'WebCore/accessibility/AccessibilityRenderObject.cpp')
-rw-r--r-- | WebCore/accessibility/AccessibilityRenderObject.cpp | 23 |
1 files changed, 18 insertions, 5 deletions
diff --git a/WebCore/accessibility/AccessibilityRenderObject.cpp b/WebCore/accessibility/AccessibilityRenderObject.cpp index 141d725..3c6079b 100644 --- a/WebCore/accessibility/AccessibilityRenderObject.cpp +++ b/WebCore/accessibility/AccessibilityRenderObject.cpp @@ -1325,17 +1325,30 @@ String AccessibilityRenderObject::ariaDescribedByAttribute() const return accessibilityDescriptionForElements(elements); } + +String AccessibilityRenderObject::ariaAccessibilityDescription() const +{ + const AtomicString& ariaLabel = getAttribute(aria_labelAttr); + if (!ariaLabel.isEmpty()) + return ariaLabel; + + String ariaDescription = ariaDescribedByAttribute(); + if (!ariaDescription.isEmpty()) + return ariaDescription; + + return String(); +} String AccessibilityRenderObject::accessibilityDescription() const { if (!m_renderer) return String(); - const AtomicString& ariaLabel = getAttribute(aria_labelAttr); - if (!ariaLabel.isEmpty()) - return ariaLabel; + // Static text should not have a description, it should only have a stringValue. + if (roleValue() == StaticTextRole) + return String(); - String ariaDescription = ariaDescribedByAttribute(); + String ariaDescription = ariaAccessibilityDescription(); if (!ariaDescription.isEmpty()) return ariaDescription; @@ -1895,7 +1908,7 @@ String AccessibilityRenderObject::text() const { // If this is a user defined static text, use the accessible name computation. if (ariaRoleAttribute() == StaticTextRole) - return accessibilityDescription(); + return ariaAccessibilityDescription(); if (!isTextControl() || isPasswordField()) return String(); |