diff options
Diffstat (limited to 'WebCore/accessibility/gtk')
-rw-r--r-- | WebCore/accessibility/gtk/AccessibilityObjectAtk.cpp | 4 | ||||
-rw-r--r-- | WebCore/accessibility/gtk/AccessibilityObjectWrapperAtk.cpp | 12 |
2 files changed, 16 insertions, 0 deletions
diff --git a/WebCore/accessibility/gtk/AccessibilityObjectAtk.cpp b/WebCore/accessibility/gtk/AccessibilityObjectAtk.cpp index d00574b..b22a51e 100644 --- a/WebCore/accessibility/gtk/AccessibilityObjectAtk.cpp +++ b/WebCore/accessibility/gtk/AccessibilityObjectAtk.cpp @@ -71,6 +71,10 @@ AccessibilityObjectInclusion AccessibilityObject::accessibilityPlatformIncludesO if (role == StaticTextRole) return IgnoreObject; + // Bullets/numbers for list items shouldn't be exposed as AtkObjects. + if (roleValue() == ListMarkerRole) + return IgnoreObject; + return DefaultBehavior; } diff --git a/WebCore/accessibility/gtk/AccessibilityObjectWrapperAtk.cpp b/WebCore/accessibility/gtk/AccessibilityObjectWrapperAtk.cpp index b162346..90f363f 100644 --- a/WebCore/accessibility/gtk/AccessibilityObjectWrapperAtk.cpp +++ b/WebCore/accessibility/gtk/AccessibilityObjectWrapperAtk.cpp @@ -34,6 +34,7 @@ #if HAVE(ACCESSIBILITY) #include "AXObjectCache.h" +#include "AccessibilityList.h" #include "AccessibilityListBox.h" #include "AccessibilityListBoxOption.h" #include "AccessibilityRenderObject.h" @@ -54,6 +55,7 @@ #include "InlineTextBox.h" #include "IntRect.h" #include "NotImplemented.h" +#include "RenderListMarker.h" #include "RenderText.h" #include "TextEncoding.h" #include <wtf/text/CString.h> @@ -933,6 +935,16 @@ static gchar* webkit_accessible_text_get_text(AtkText* text, gint startOffset, g ret = ret.substring(start, endOffset - startOffset); } + // Prefix a item number/bullet if needed + if (coreObject->roleValue() == ListItemRole) { + RenderObject* objRenderer = static_cast<AccessibilityRenderObject*>(coreObject)->renderer(); + RenderObject* markerRenderer = objRenderer ? objRenderer->firstChild() : 0; + if (markerRenderer && markerRenderer->isListMarker()) { + String markerTxt = toRenderListMarker(markerRenderer)->text(); + ret = markerTxt.length() > 0 ? markerTxt + " " + ret : ret; + } + } + return g_strdup(ret.utf8().data()); } |