Title: [288729] trunk/Source/WebCore
- Revision
- 288729
- Author
- [email protected]
- Date
- 2022-01-27 23:03:26 -0800 (Thu, 27 Jan 2022)
Log Message
[GTK][a11y] Ignore span elements with ATSPI
https://bugs.webkit.org/show_bug.cgi?id=235704
Reviewed by Adrian Perez de Castro.
Their text contents are exposed as part of the parent object.
* accessibility/atspi/AccessibilityObjectAtspi.cpp:
(WebCore::AccessibilityObject::accessibilityPlatformIncludesObject const):
Modified Paths
Diff
Modified: trunk/Source/WebCore/ChangeLog (288728 => 288729)
--- trunk/Source/WebCore/ChangeLog 2022-01-28 07:02:29 UTC (rev 288728)
+++ trunk/Source/WebCore/ChangeLog 2022-01-28 07:03:26 UTC (rev 288729)
@@ -1,3 +1,15 @@
+2022-01-27 Carlos Garcia Campos <[email protected]>
+
+ [GTK][a11y] Ignore span elements with ATSPI
+ https://bugs.webkit.org/show_bug.cgi?id=235704
+
+ Reviewed by Adrian Perez de Castro.
+
+ Their text contents are exposed as part of the parent object.
+
+ * accessibility/atspi/AccessibilityObjectAtspi.cpp:
+ (WebCore::AccessibilityObject::accessibilityPlatformIncludesObject const):
+
2022-01-27 Antoine Quint <[email protected]>
[Model] Allow disabling interaction
Modified: trunk/Source/WebCore/accessibility/atspi/AccessibilityObjectAtspi.cpp (288728 => 288729)
--- trunk/Source/WebCore/accessibility/atspi/AccessibilityObjectAtspi.cpp 2022-01-28 07:02:29 UTC (rev 288728)
+++ trunk/Source/WebCore/accessibility/atspi/AccessibilityObjectAtspi.cpp 2022-01-28 07:03:26 UTC (rev 288729)
@@ -26,6 +26,7 @@
#include "AccessibilityRootAtspi.h"
#include "AccessibilityTableCell.h"
#include "ElementInlines.h"
+#include "HTMLSpanElement.h"
#include "RenderAncestorIterator.h"
#include "RenderBlock.h"
#include "RenderObject.h"
@@ -1437,6 +1438,53 @@
if (roleValue() == AccessibilityRole::ListItem && inheritsPresentationalRole())
return AccessibilityObjectInclusion::IncludeObject;
+ RenderObject* renderObject = renderer();
+ if (!renderObject)
+ return AccessibilityObjectInclusion::DefaultBehavior;
+
+ // We always want to include paragraphs that have rendered content.
+ // WebCore Accessibility does so unless there is a RenderBlock child.
+ if (roleValue() == AccessibilityRole::Paragraph) {
+ auto child = childrenOfType<RenderBlock>(downcast<RenderElement>(*renderObject)).first();
+ return child ? AccessibilityObjectInclusion::IncludeObject : AccessibilityObjectInclusion::DefaultBehavior;
+ }
+
+ if (renderObject->isAnonymousBlock()) {
+ // The text displayed by an ARIA menu item is exposed through the accessible name.
+ if (parent->isMenuItem())
+ return AccessibilityObjectInclusion::IgnoreObject;
+
+ // The text displayed in headings is typically exposed in the heading itself.
+ if (parent->isHeading())
+ return AccessibilityObjectInclusion::IgnoreObject;
+
+ // The text displayed in list items is typically exposed in the list item itself.
+ if (parent->isListItem())
+ return AccessibilityObjectInclusion::IgnoreObject;
+
+ // The text displayed in links is typically exposed in the link itself.
+ if (parent->isLink())
+ return AccessibilityObjectInclusion::IgnoreObject;
+
+ // FIXME: This next one needs some further consideration. But paragraphs are not
+ // typically huge (like divs). And ignoring anonymous block children of paragraphs
+ // will preserve existing behavior.
+ if (parent->roleValue() == AccessibilityRole::Paragraph)
+ return AccessibilityObjectInclusion::IgnoreObject;
+
+ return AccessibilityObjectInclusion::DefaultBehavior;
+ }
+
+ Node* node = renderObject->node();
+ if (!node)
+ return AccessibilityObjectInclusion::DefaultBehavior;
+
+ // We don't want <span> elements to show up in the accessibility hierarchy unless
+ // we have good reasons for that (e.g. focusable or visible because of containing
+ // a meaningful accessible name, maybe set through ARIA).
+ if (is<HTMLSpanElement>(node) && !canSetFocusAttribute() && !hasAttributesRequiredForInclusion() && !supportsARIAAttributes())
+ return AccessibilityObjectInclusion::IgnoreObject;
+
return AccessibilityObjectInclusion::DefaultBehavior;
}
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes