Title: [287425] trunk
Revision
287425
Author
[email protected]
Date
2021-12-24 02:50:26 -0800 (Fri, 24 Dec 2021)

Log Message

[GTK][a11y] Expose live region attributes with ATSPI
https://bugs.webkit.org/show_bug.cgi?id=234637

Reviewed by Adrian Perez de Castro.

Source/WebCore:

* accessibility/atspi/AccessibilityObjectAtspi.cpp:
(WebCore::AccessibilityObjectAtspi::attributes const):

Tools:

* WebKitTestRunner/InjectedBundle/atspi/AccessibilityUIElementAtspi.cpp:
(WTR::AccessibilityUIElement::stringAttributeValue):
(WTR::AccessibilityUIElement::boolAttributeValue):
(WTR::AccessibilityUIElement::isAttributeSupported):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (287424 => 287425)


--- trunk/Source/WebCore/ChangeLog	2021-12-24 10:48:46 UTC (rev 287424)
+++ trunk/Source/WebCore/ChangeLog	2021-12-24 10:50:26 UTC (rev 287425)
@@ -1,5 +1,15 @@
 2021-12-24  Carlos Garcia Campos  <[email protected]>
 
+        [GTK][a11y] Expose live region attributes with ATSPI
+        https://bugs.webkit.org/show_bug.cgi?id=234637
+
+        Reviewed by Adrian Perez de Castro.
+
+        * accessibility/atspi/AccessibilityObjectAtspi.cpp:
+        (WebCore::AccessibilityObjectAtspi::attributes const):
+
+2021-12-24  Carlos Garcia Campos  <[email protected]>
+
         [GTK][a11y] Expose the right roles for math elements with ATSPI
         https://bugs.webkit.org/show_bug.cgi?id=234634
 

Modified: trunk/Source/WebCore/accessibility/atspi/AccessibilityObjectAtspi.cpp (287424 => 287425)


--- trunk/Source/WebCore/accessibility/atspi/AccessibilityObjectAtspi.cpp	2021-12-24 10:48:46 UTC (rev 287424)
+++ trunk/Source/WebCore/accessibility/atspi/AccessibilityObjectAtspi.cpp	2021-12-24 10:50:26 UTC (rev 287425)
@@ -1030,6 +1030,27 @@
     else if (m_coreObject->isMathMultiscriptObject(AccessibilityMathMultiscriptObjectType::PostSuperscript) || m_coreObject->isMathMultiscriptObject(AccessibilityMathMultiscriptObjectType::PostSubscript))
         map.add("multiscript-type", "post");
 
+    if (auto* liveContainer = m_coreObject->liveRegionAncestor(false)) {
+        auto liveStatus = liveContainer->liveRegionStatus();
+        map.add("container-live", liveStatus);
+        auto relevant = liveContainer->liveRegionRelevant();
+        map.add("container-relevant", relevant);
+        bool isAtomic = liveContainer->liveRegionAtomic();
+        if (isAtomic)
+            map.add("container-atomic", "true");
+        const String& liveRole = roleString.isEmpty() ? computedRoleString : roleString;
+        if (!liveRole.isEmpty())
+            map.add("container-live-role", liveRole);
+
+        if (liveContainer == m_coreObject) {
+            map.add("live", liveStatus);
+            map.add("relevant", relevant);
+            if (isAtomic)
+                map.add("atomic", "true");
+        } else if (!isAtomic && m_coreObject->liveRegionAtomic())
+            map.add("atomic", "true");
+    }
+
     return map;
 }
 

Modified: trunk/Tools/ChangeLog (287424 => 287425)


--- trunk/Tools/ChangeLog	2021-12-24 10:48:46 UTC (rev 287424)
+++ trunk/Tools/ChangeLog	2021-12-24 10:50:26 UTC (rev 287425)
@@ -1,3 +1,15 @@
+2021-12-24  Carlos Garcia Campos  <[email protected]>
+
+        [GTK][a11y] Expose live region attributes with ATSPI
+        https://bugs.webkit.org/show_bug.cgi?id=234637
+
+        Reviewed by Adrian Perez de Castro.
+
+        * WebKitTestRunner/InjectedBundle/atspi/AccessibilityUIElementAtspi.cpp:
+        (WTR::AccessibilityUIElement::stringAttributeValue):
+        (WTR::AccessibilityUIElement::boolAttributeValue):
+        (WTR::AccessibilityUIElement::isAttributeSupported):
+
 2021-12-23  Wenson Hsieh  <[email protected]>
 
         Modal container control classifier fails on some neutral controls that contain multiplication symbols

Modified: trunk/Tools/WebKitTestRunner/InjectedBundle/atspi/AccessibilityUIElementAtspi.cpp (287424 => 287425)


--- trunk/Tools/WebKitTestRunner/InjectedBundle/atspi/AccessibilityUIElementAtspi.cpp	2021-12-24 10:48:46 UTC (rev 287424)
+++ trunk/Tools/WebKitTestRunner/InjectedBundle/atspi/AccessibilityUIElementAtspi.cpp	2021-12-24 10:50:26 UTC (rev 287425)
@@ -371,6 +371,10 @@
             value = checkElementState(m_element.get(), WebCore::Atspi::State::InvalidEntry) ? "true" : "false";
         return OpaqueJSString::tryCreate(value).leakRef();
     }
+    if (attributeName == "AXARIALive")
+        return OpaqueJSString::tryCreate(attributes.get("live")).leakRef();
+    if (attributeName == "AXARIARelevant")
+        return OpaqueJSString::tryCreate(attributes.get("relevant")).leakRef();
 
     return JSStringCreateWithCharacters(nullptr, 0);
 }
@@ -469,6 +473,8 @@
         return m_element->interfaces().contains(WebCore::AccessibilityObjectAtspi::Interface::Table);
     if (attributeName == "AXInterfaceTableCell")
         return m_element->interfaces().contains(WebCore::AccessibilityObjectAtspi::Interface::TableCell);
+    if (attributeName == "AXARIAAtomic")
+        return m_element->attributes().get("atomic") == "true";
 
     return false;
 }
@@ -539,6 +545,16 @@
         return attributes.contains("setsize");
     if (attributeName == "AXARIAPosInSet")
         return attributes.contains("posinset");
+    if (attributeName == "AXARIALive") {
+        auto value = attributes.get("live");
+        return !value.isEmpty() && value != "off";
+    }
+    if (attributeName == "AXARIARelevant")
+        return attributes.contains("relevant");
+    if (attributeName == "AXARIAAtomic")
+        return attributes.contains("atomic");
+    if (attributeName == "AXElementBusy")
+        return true;
 
     return false;
 }
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to