Title: [271416] trunk
Revision
271416
Author
[email protected]
Date
2021-01-12 14:13:28 -0800 (Tue, 12 Jan 2021)

Log Message

AX: Implement aria-braillelabel and aria-brailleroledescription
https://bugs.webkit.org/show_bug.cgi?id=220516
<rdar://problem/73004715>

Reviewed by Zalan Bujtas.

Source/WebCore:

Add support for new ARIA attributes.

Test: accessibility/mac/braille-label-role.html

* accessibility/AccessibilityObject.h:
* accessibility/AccessibilityObjectInterface.h:
* accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
(-[WebAccessibilityObjectWrapper accessibilityBrailleLabel]):
(-[WebAccessibilityObjectWrapper accessibilityBrailleRoleDescription]):
* accessibility/isolatedtree/AXIsolatedObject.cpp:
(WebCore::AXIsolatedObject::initializeAttributeData):
* accessibility/isolatedtree/AXIsolatedObject.h:
* accessibility/isolatedtree/AXIsolatedTree.h:
* accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
* html/HTMLAttributeNames.in:

LayoutTests:

* accessibility/braille-label-role-expected.txt: Added.
* accessibility/braille-label-role.html: Added.

Modified Paths

Added Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (271415 => 271416)


--- trunk/LayoutTests/ChangeLog	2021-01-12 22:07:59 UTC (rev 271415)
+++ trunk/LayoutTests/ChangeLog	2021-01-12 22:13:28 UTC (rev 271416)
@@ -1,3 +1,14 @@
+2021-01-12  Chris Fleizach  <[email protected]>
+
+        AX: Implement aria-braillelabel and aria-brailleroledescription
+        https://bugs.webkit.org/show_bug.cgi?id=220516
+        <rdar://problem/73004715>
+
+        Reviewed by Zalan Bujtas.
+
+        * accessibility/braille-label-role-expected.txt: Added.
+        * accessibility/braille-label-role.html: Added.
+
 2021-01-12  Truitt Savell  <[email protected]>
 
         [ Big Sur ] platform/mac/fast/text/international/bidi-fallback-font-weight.html is failing

Added: trunk/LayoutTests/accessibility/braille-label-role-expected.txt (0 => 271416)


--- trunk/LayoutTests/accessibility/braille-label-role-expected.txt	                        (rev 0)
+++ trunk/LayoutTests/accessibility/braille-label-role-expected.txt	2021-01-12 22:13:28 UTC (rev 271416)
@@ -0,0 +1,12 @@
+
+Validate aria-braillelabel and aria-brailleroledescription
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS label.stringAttributeValue('AXBrailleLabel') is 'braille'
+PASS label.stringAttributeValue('AXBrailleRoleDescription') is 'braille role'
+PASS successfullyParsed is true
+
+TEST COMPLETE
+

Added: trunk/LayoutTests/accessibility/braille-label-role.html (0 => 271416)


--- trunk/LayoutTests/accessibility/braille-label-role.html	                        (rev 0)
+++ trunk/LayoutTests/accessibility/braille-label-role.html	2021-01-12 22:13:28 UTC (rev 271416)
@@ -0,0 +1,24 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
+<html>
+<head>
+<script src=""
+</head>
+<body id="body">
+
+<input id="label" type="text" value="text" aria-braillelabel="braille" aria-label="label" aria-brailleroledescription="braille role"/>
+
+<p id="description"></p>
+<div id="console"></div>
+
+<script>
+    description("Validate aria-braillelabel and aria-brailleroledescription");
+
+    if (window.accessibilityController) {
+        var label = accessibilityController.accessibleElementById("label");
+        shouldBe("label.stringAttributeValue('AXBrailleLabel')", "'braille'");
+        shouldBe("label.stringAttributeValue('AXBrailleRoleDescription')", "'braille role'");
+    }
+</script>
+<script src=""
+</body>
+</html>

Modified: trunk/LayoutTests/platform/gtk/TestExpectations (271415 => 271416)


--- trunk/LayoutTests/platform/gtk/TestExpectations	2021-01-12 22:07:59 UTC (rev 271415)
+++ trunk/LayoutTests/platform/gtk/TestExpectations	2021-01-12 22:13:28 UTC (rev 271416)
@@ -136,6 +136,8 @@
 webkit.org/b/215405 accessibility/gtk/combobox-descendants-orientation-crash.html [ Failure ]
 webkit.org/b/215405 accessibility/gtk/text-for-range-combo-box.html [ Failure ]
 webkit.org/b/215405 inspector/dom/getAccessibilityPropertiesForNode.html [ Failure ]
+# aria-braille* attributes are not implemented:
+accessibility/braille-label-role.html
 
 # CSS
 webkit.org/b/216161 imported/w3c/web-platform-tests/css/css-pseudo/text-selection.html [ Failure Pass ]

Modified: trunk/LayoutTests/platform/win/TestExpectations (271415 => 271416)


--- trunk/LayoutTests/platform/win/TestExpectations	2021-01-12 22:07:59 UTC (rev 271415)
+++ trunk/LayoutTests/platform/win/TestExpectations	2021-01-12 22:13:28 UTC (rev 271416)
@@ -1560,6 +1560,9 @@
 # Color Well is not implemented:
 accessibility/color-well.html
 
+# aria-braille* attributes are not implemented:
+accessibility/braille-label-role.html
+
 # Failing Windows-only accessibility tests
 webkit.org/b/127485 [ Debug ] accessibility/win/parent-element.html [ Failure ]
 webkit.org/b/127485 [ Release ] accessibility/win/parent-element.html [ Pass Failure ]

Modified: trunk/Source/WebCore/ChangeLog (271415 => 271416)


--- trunk/Source/WebCore/ChangeLog	2021-01-12 22:07:59 UTC (rev 271415)
+++ trunk/Source/WebCore/ChangeLog	2021-01-12 22:13:28 UTC (rev 271416)
@@ -1,3 +1,28 @@
+2021-01-12  Chris Fleizach  <[email protected]>
+
+        AX: Implement aria-braillelabel and aria-brailleroledescription
+        https://bugs.webkit.org/show_bug.cgi?id=220516
+        <rdar://problem/73004715>
+
+        Reviewed by Zalan Bujtas.
+
+        Add support for new ARIA attributes.
+
+        Test: accessibility/mac/braille-label-role.html
+
+        * accessibility/AccessibilityObject.h:
+        * accessibility/AccessibilityObjectInterface.h:
+        * accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
+        (-[WebAccessibilityObjectWrapper accessibilityBrailleLabel]):
+        (-[WebAccessibilityObjectWrapper accessibilityBrailleRoleDescription]):
+        * accessibility/isolatedtree/AXIsolatedObject.cpp:
+        (WebCore::AXIsolatedObject::initializeAttributeData):
+        * accessibility/isolatedtree/AXIsolatedObject.h:
+        * accessibility/isolatedtree/AXIsolatedTree.h:
+        * accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
+        (-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
+        * html/HTMLAttributeNames.in:
+
 2021-01-12  Don Olmstead  <[email protected]>
 
         Non-unified build fixes mid January 2021 edition

Modified: trunk/Source/WebCore/accessibility/AccessibilityObject.h (271415 => 271416)


--- trunk/Source/WebCore/accessibility/AccessibilityObject.h	2021-01-12 22:07:59 UTC (rev 271415)
+++ trunk/Source/WebCore/accessibility/AccessibilityObject.h	2021-01-12 22:13:28 UTC (rev 271416)
@@ -397,6 +397,8 @@
     String ariaDescribedByAttribute() const override { return String(); }
     const String placeholderValue() const override;
     bool accessibleNameDerivesFromContent() const override;
+    String brailleLabel() const override { return getAttribute(HTMLNames::aria_braillelabelAttr); }
+    String brailleRoleDescription() const override { return getAttribute(HTMLNames::aria_brailleroledescriptionAttr); }
 
     // Abbreviations
     String expandedTextValue() const override { return String(); }

Modified: trunk/Source/WebCore/accessibility/AccessibilityObjectInterface.h (271415 => 271416)


--- trunk/Source/WebCore/accessibility/AccessibilityObjectInterface.h	2021-01-12 22:07:59 UTC (rev 271415)
+++ trunk/Source/WebCore/accessibility/AccessibilityObjectInterface.h	2021-01-12 22:13:28 UTC (rev 271416)
@@ -1009,6 +1009,8 @@
     virtual AXCoreObject* selectedListItem() = 0;
     virtual int layoutCount() const = 0;
     virtual double estimatedLoadingProgress() const = 0;
+    virtual String brailleLabel() const = 0;
+    virtual String brailleRoleDescription() const = 0;
 
     virtual bool supportsARIAOwns() const = 0;
     virtual bool isActiveDescendantOfFocusedContainer() const = 0;

Modified: trunk/Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm (271415 => 271416)


--- trunk/Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm	2021-01-12 22:07:59 UTC (rev 271415)
+++ trunk/Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm	2021-01-12 22:13:28 UTC (rev 271416)
@@ -1159,6 +1159,20 @@
     return self.axBackingObject->roleDescription();
 }
 
+- (NSString *)accessibilityBrailleLabel
+{
+    if (![self _prepareAccessibilityCall])
+        return nil;
+    return self.axBackingObject->brailleLabel();
+}
+
+- (NSString *)accessibilityBrailleRoleDescription
+{
+    if (![self _prepareAccessibilityCall])
+        return nil;
+    return self.axBackingObject->brailleRoleDescription();
+}
+
 - (NSString *)accessibilityLabel
 {
     if (![self _prepareAccessibilityCall])

Modified: trunk/Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.cpp (271415 => 271416)


--- trunk/Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.cpp	2021-01-12 22:07:59 UTC (rev 271415)
+++ trunk/Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.cpp	2021-01-12 22:13:28 UTC (rev 271416)
@@ -235,6 +235,8 @@
     setObjectProperty(AXPropertyName::NextSibling, object.nextSibling());
     setObjectProperty(AXPropertyName::PreviousSibling, object.previousSibling());
     setProperty(AXPropertyName::SupportsCheckedState, object.supportsCheckedState());
+    setProperty(AXPropertyName::BrailleRoleDescription, object.brailleRoleDescription().isolatedCopy());
+    setProperty(AXPropertyName::BrailleLabel, object.brailleLabel().isolatedCopy());
 
     if (object.isTable()) {
         setProperty(AXPropertyName::IsTable, true);

Modified: trunk/Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.h (271415 => 271416)


--- trunk/Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.h	2021-01-12 22:07:59 UTC (rev 271415)
+++ trunk/Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.h	2021-01-12 22:13:28 UTC (rev 271416)
@@ -270,6 +270,9 @@
     LayoutRect elementRect() const override { return rectAttributeValue<LayoutRect>(AXPropertyName::ElementRect); }
     IntPoint clickPoint() override { return intPointAttributeValue(AXPropertyName::ClickPoint); }
     void accessibilityText(Vector<AccessibilityText>& texts) const override;
+    String brailleLabel() const override { return stringAttributeValue(AXPropertyName::BrailleLabel); }
+    String brailleRoleDescription() const override { return stringAttributeValue(AXPropertyName::BrailleRoleDescription); }
+
     String computedRoleString() const override { return stringAttributeValue(AXPropertyName::ComputedRoleString); }
     bool isValueAutofilled() const override { return boolAttributeValue(AXPropertyName::IsValueAutofilled); }
     bool isValueAutofillAvailable() const override { return boolAttributeValue(AXPropertyName::IsValueAutofillAvailable); }

Modified: trunk/Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.h (271415 => 271416)


--- trunk/Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.h	2021-01-12 22:07:59 UTC (rev 271415)
+++ trunk/Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.h	2021-01-12 22:13:28 UTC (rev 271416)
@@ -69,6 +69,8 @@
     AutoCompleteValue,
     BlockquoteLevel,
     BoundingBoxRect,
+    BrailleLabel,
+    BrailleRoleDescription,
     CanHaveSelectedChildren,
     CanSetExpandedAttribute,
     CanSetFocusAttribute,

Modified: trunk/Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm (271415 => 271416)


--- trunk/Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm	2021-01-12 22:07:59 UTC (rev 271415)
+++ trunk/Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm	2021-01-12 22:13:28 UTC (rev 271416)
@@ -535,6 +535,14 @@
 #define NSAccessibilityRelativeFrameAttribute @"AXRelativeFrame"
 #endif
 
+#ifndef NSAccessibilityBrailleLabelAttribute
+#define NSAccessibilityBrailleLabelAttribute @"AXBrailleLabel"
+#endif
+
+#ifndef NSAccessibilityBrailleRoleDescriptionAttribute
+#define NSAccessibilityBrailleRoleDescriptionAttribute @"AXBrailleRoleDescription"
+#endif
+
 extern "C" AXUIElementRef NSAccessibilityCreateAXUIElementRef(id element);
 
 @implementation WebAccessibilityObjectWrapper
@@ -2902,6 +2910,12 @@
         return convertToNSArray(details);
     }
 
+    if ([attributeName isEqualToString:NSAccessibilityBrailleLabelAttribute])
+        return backingObject->brailleLabel();
+
+    if ([attributeName isEqualToString:NSAccessibilityBrailleRoleDescriptionAttribute])
+        return backingObject->brailleRoleDescription();
+
     if ([attributeName isEqualToString:NSAccessibilityRelativeFrameAttribute])
         return [NSValue valueWithRect:(NSRect)backingObject->relativeFrame()];
 

Modified: trunk/Source/WebCore/html/HTMLAttributeNames.in (271415 => 271416)


--- trunk/Source/WebCore/html/HTMLAttributeNames.in	2021-01-12 22:07:59 UTC (rev 271415)
+++ trunk/Source/WebCore/html/HTMLAttributeNames.in	2021-01-12 22:13:28 UTC (rev 271416)
@@ -17,6 +17,8 @@
 aria-activedescendant
 aria-atomic
 aria-autocomplete
+aria-braillelabel
+aria-brailleroledescription
 aria-busy
 aria-checked
 aria-colcount
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to