Title: [195463] trunk
Revision
195463
Author
[email protected]
Date
2016-01-22 11:31:22 -0800 (Fri, 22 Jan 2016)

Log Message

AX: <code> group and friends should have a custom subrole
https://bugs.webkit.org/show_bug.cgi?id=153282

Reviewed by Mario Sanchez Prada.

Source/WebCore:

Add some custom subroles for the mac for code, ins, del, cite, var, samp, pre, kbd,
so that assistive tech can recognize them.

Test: accessibility/mac/subroles-for-formatted-groups.html

* accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::isStyleFormatGroup):
* accessibility/AccessibilityObject.h:
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::computeAccessibilityIsIgnored):
(WebCore::AccessibilityRenderObject::determineAccessibilityRole):
* accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
(-[WebAccessibilityObjectWrapper subrole]):

LayoutTests:

* accessibility/duplicate-child-nodes-expected.txt:
* accessibility/mac/subroles-for-formatted-groups-expected.txt: Added.
* accessibility/mac/subroles-for-formatted-groups.html: Added.
* accessibility/roles-computedRoleString-expected.txt:
* accessibility/roles-computedRoleString.html:

Modified Paths

Added Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (195462 => 195463)


--- trunk/LayoutTests/ChangeLog	2016-01-22 19:31:06 UTC (rev 195462)
+++ trunk/LayoutTests/ChangeLog	2016-01-22 19:31:22 UTC (rev 195463)
@@ -1,3 +1,16 @@
+2016-01-22  Chris Fleizach  <[email protected]>
+
+        AX: <code> group and friends should have a custom subrole
+        https://bugs.webkit.org/show_bug.cgi?id=153282
+
+        Reviewed by Mario Sanchez Prada.
+
+        * accessibility/duplicate-child-nodes-expected.txt:
+        * accessibility/mac/subroles-for-formatted-groups-expected.txt: Added.
+        * accessibility/mac/subroles-for-formatted-groups.html: Added.
+        * accessibility/roles-computedRoleString-expected.txt:
+        * accessibility/roles-computedRoleString.html:
+
 2016-01-22  Skachkov Oleksandr  <[email protected]>
 
         [ES6] Arrow function. Default arguments in arrow functions

Modified: trunk/LayoutTests/accessibility/duplicate-child-nodes-expected.txt (195462 => 195463)


--- trunk/LayoutTests/accessibility/duplicate-child-nodes-expected.txt	2016-01-22 19:31:06 UTC (rev 195462)
+++ trunk/LayoutTests/accessibility/duplicate-child-nodes-expected.txt	2016-01-22 19:31:22 UTC (rev 195463)
@@ -3,6 +3,7 @@
 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
 
 
+PASS webArea.childAtIndex(0).isEqual(webArea.childAtIndex(1)) is false
 PASS successfullyParsed is true
 
 TEST COMPLETE

Added: trunk/LayoutTests/accessibility/mac/subroles-for-formatted-groups-expected.txt (0 => 195463)


--- trunk/LayoutTests/accessibility/mac/subroles-for-formatted-groups-expected.txt	                        (rev 0)
+++ trunk/LayoutTests/accessibility/mac/subroles-for-formatted-groups-expected.txt	2016-01-22 19:31:22 UTC (rev 195463)
@@ -0,0 +1,22 @@
+code
+kbd
+sample
+pre
+var insert delete cite
+This test makes sure that formatting style groups.
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+code: AXSubrole: AXCodeStyleGroup
+kbd: AXSubrole: AXKeyboardInputStyleGroup
+samp: AXSubrole: AXSampleStyleGroup
+pre: AXSubrole: AXPreformattedStyleGroup
+var: AXSubrole: AXVariableStyleGroup
+ins: AXSubrole: AXInsertStyleGroup
+del: AXSubrole: AXDeleteStyleGroup
+cite: AXSubrole: AXCiteStyleGroup
+PASS successfullyParsed is true
+
+TEST COMPLETE
+

Added: trunk/LayoutTests/accessibility/mac/subroles-for-formatted-groups.html (0 => 195463)


--- trunk/LayoutTests/accessibility/mac/subroles-for-formatted-groups.html	                        (rev 0)
+++ trunk/LayoutTests/accessibility/mac/subroles-for-formatted-groups.html	2016-01-22 19:31:22 UTC (rev 195463)
@@ -0,0 +1,39 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
+<html>
+<head>
+<script src=""
+</head>
+<body id="body">
+
+<code id="code">code</code><br>
+<kbd id="kbd">kbd</kbd><br>
+<samp id="samp">sample</samp><br>
+<pre id="pre">pre</pre>
+<var id="var">var</var>
+<ins id="ins">insert</ins>
+<del id="del">delete</del>
+<cite id="cite">cite</cite>
+
+<p id="description"></p>
+<div id="console"></div>
+
+<script>
+
+    description("This test makes sure that formatting style groups.");
+
+    if (window.accessibilityController) {
+          debug("code: " + accessibilityController.accessibleElementById('code').subrole);
+          debug("kbd: " + accessibilityController.accessibleElementById('kbd').subrole);
+          debug("samp: " + accessibilityController.accessibleElementById('samp').subrole);
+          debug("pre: " + accessibilityController.accessibleElementById('pre').subrole);
+          debug("var: " + accessibilityController.accessibleElementById('var').subrole);
+          debug("ins: " + accessibilityController.accessibleElementById('ins').subrole);
+          debug("del: " + accessibilityController.accessibleElementById('del').subrole);
+          debug("cite: " + accessibilityController.accessibleElementById('cite').subrole);
+    }
+
+</script>
+
+<script src=""
+</body>
+</html>

Modified: trunk/LayoutTests/accessibility/roles-computedRoleString-expected.txt (195462 => 195463)


--- trunk/LayoutTests/accessibility/roles-computedRoleString-expected.txt	2016-01-22 19:31:06 UTC (rev 195462)
+++ trunk/LayoutTests/accessibility/roles-computedRoleString-expected.txt	2016-01-22 19:31:22 UTC (rev 195463)
@@ -42,14 +42,16 @@
 PASS: input[type='time'] -> . 
 PASS: input[type='url'] -> . 
 PASS: input[type='week'] -> . 
+PASS: ins -> group. 
 PASS: math -> math. 
 PASS: meter -> progressbar. 
 PASS: nav -> navigation. 
 PASS: ol -> list. 
 PASS: li -> listitem. 
 PASS: p -> . 
-PASS: pre -> . 
+PASS: pre -> group. 
 PASS: progress -> progressbar. 
+PASS: samp -> group. 
 PASS: section -> region. 
 PASS: select:not([multiple]) -> . 
 PASS: select[multiple] -> listbox. 
@@ -74,6 +76,7 @@
 PASS: textarea -> textbox. 
 PASS: ul -> list. 
 PASS: li -> listitem. 
+PASS: var -> group. 
 PASS: div[role="command"] -> . 
 PASS: div[role="composite"] -> . 
 PASS: div[role="input"] -> . 

Modified: trunk/LayoutTests/accessibility/roles-computedRoleString.html (195462 => 195463)


--- trunk/LayoutTests/accessibility/roles-computedRoleString.html	2016-01-22 19:31:06 UTC (rev 195462)
+++ trunk/LayoutTests/accessibility/roles-computedRoleString.html	2016-01-22 19:31:22 UTC (rev 195463)
@@ -52,7 +52,7 @@
 <input type="time" value="X" data-role="" class="ex" data-note="[type='time']">
 <input type="url" value="X" data-role="" class="ex" data-note="[type='url']">
 <input type="week" value="X" data-role="" class="ex" data-note="[type='week']">
-<ins data-role="" class="ex">X</ins>
+<ins data-role="group" class="ex">X</ins>
 <mark data-role="" class="ex">X</mark>
 <math data-role="math" class="ex">X</math>
 <!-- skipped <menu> -->
@@ -69,12 +69,12 @@
 <!-- skipped <output> -->
 <p data-role="" class="ex">X</p>
 <!-- skipped <param> -->
-<pre data-role="" class="ex">X</pre>
+<pre data-role="group" class="ex">X</pre>
 <progress data-role="progressbar" class="ex" value="0.75">X</progress>
 <q data-role="" class="ex">X</q>
 <!-- skipped <ruby/rp/rt> -->
 <s data-role="" class="ex">X</s>
-<samp data-role="" class="ex">X</samp>
+<samp data-role="group" class="ex">X</samp>
 <!-- skipped <script> -->
 <section data-role="region" class="ex">X</section>
 <select data-role="" class="ex" data-note=":not([multiple])">
@@ -140,7 +140,7 @@
 <ul data-role="list" class="ex">
     <li data-role="listitem" class="ex">X</li>
 </ul>
-<var data-role="" class="ex">X</var>
+<var data-role="group" class="ex">X</var>
 <wbr data-role="" class="ex">X</wbr>
 
 <!-- ==================================================================================================== -->

Modified: trunk/LayoutTests/platform/mac/accessibility/roles-exposed-expected.txt (195462 => 195463)


--- trunk/LayoutTests/platform/mac/accessibility/roles-exposed-expected.txt	2016-01-22 19:31:06 UTC (rev 195462)
+++ trunk/LayoutTests/platform/mac/accessibility/roles-exposed-expected.txt	2016-01-22 19:31:22 UTC (rev 195463)
@@ -70,24 +70,24 @@
       AXRoleDescription: 
       
 cite
-      AXRole: 
-      AXSubrole: 
-      AXRoleDescription: 
+      AXRole: AXGroup
+      AXSubrole: AXCiteStyleGroup
+      AXRoleDescription: group
       
 code
-      AXRole: 
-      AXSubrole: 
-      AXRoleDescription: 
+      AXRole: AXGroup
+      AXSubrole: AXCodeStyleGroup
+      AXRoleDescription: group
       
 del:not([datetime])
-      AXRole: 
-      AXSubrole: 
-      AXRoleDescription: 
+      AXRole: AXGroup
+      AXSubrole: AXDeleteStyleGroup
+      AXRoleDescription: group
       
 del[datetime]
-      AXRole: 
-      AXSubrole: 
-      AXRoleDescription: 
+      AXRole: AXGroup
+      AXSubrole: AXDeleteStyleGroup
+      AXRoleDescription: group
       
 dfn
       AXRole: AXGroup
@@ -335,14 +335,14 @@
       AXRoleDescription: text field
       
 ins:not([datetime])
-      AXRole: 
-      AXSubrole: 
-      AXRoleDescription: 
+      AXRole: AXGroup
+      AXSubrole: AXInsertStyleGroup
+      AXRoleDescription: group
       
 ins[datetime]
-      AXRole: 
-      AXSubrole: 
-      AXRoleDescription: 
+      AXRole: AXGroup
+      AXSubrole: AXInsertStyleGroup
+      AXRoleDescription: group
       
 map
       AXRole: 
@@ -556,7 +556,7 @@
       
 pre
       AXRole: AXGroup
-      AXSubrole: 
+      AXSubrole: AXPreformattedStyleGroup
       AXRoleDescription: group
       
 progress
@@ -575,9 +575,9 @@
       AXRoleDescription: 
       
 samp
-      AXRole: 
-      AXSubrole: 
-      AXRoleDescription: 
+      AXRole: AXGroup
+      AXSubrole: AXSampleStyleGroup
+      AXRoleDescription: group
       
 section
       AXRole: AXGroup
@@ -730,9 +730,9 @@
       AXRoleDescription: group
       
 var
-      AXRole: 
-      AXSubrole: 
-      AXRoleDescription: 
+      AXRole: AXGroup
+      AXSubrole: AXVariableStyleGroup
+      AXRoleDescription: group
       
 wbr
       AXRole: 

Modified: trunk/Source/WebCore/ChangeLog (195462 => 195463)


--- trunk/Source/WebCore/ChangeLog	2016-01-22 19:31:06 UTC (rev 195462)
+++ trunk/Source/WebCore/ChangeLog	2016-01-22 19:31:22 UTC (rev 195463)
@@ -1,3 +1,24 @@
+2016-01-22  Chris Fleizach  <[email protected]>
+
+        AX: <code> group and friends should have a custom subrole
+        https://bugs.webkit.org/show_bug.cgi?id=153282
+
+        Reviewed by Mario Sanchez Prada.
+
+        Add some custom subroles for the mac for code, ins, del, cite, var, samp, pre, kbd,
+        so that assistive tech can recognize them.
+
+        Test: accessibility/mac/subroles-for-formatted-groups.html
+
+        * accessibility/AccessibilityObject.cpp:
+        (WebCore::AccessibilityObject::isStyleFormatGroup):
+        * accessibility/AccessibilityObject.h:
+        * accessibility/AccessibilityRenderObject.cpp:
+        (WebCore::AccessibilityRenderObject::computeAccessibilityIsIgnored):
+        (WebCore::AccessibilityRenderObject::determineAccessibilityRole):
+        * accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
+        (-[WebAccessibilityObjectWrapper subrole]):
+
 2016-01-22  Enrica Casucci  <[email protected]>
 
         Remove dependency from DataDetectorsCore on iOS.

Modified: trunk/Source/WebCore/accessibility/AccessibilityObject.cpp (195462 => 195463)


--- trunk/Source/WebCore/accessibility/AccessibilityObject.cpp	2016-01-22 19:31:06 UTC (rev 195462)
+++ trunk/Source/WebCore/accessibility/AccessibilityObject.cpp	2016-01-22 19:31:22 UTC (rev 195463)
@@ -2940,6 +2940,18 @@
 }
 #endif
 
+bool AccessibilityObject::isStyleFormatGroup() const
+{
+    Node* node = this->node();
+    if (!node)
+        return false;
+    
+    return node->hasTagName(kbdTag) || node->hasTagName(codeTag)
+    || node->hasTagName(preTag) || node->hasTagName(sampTag)
+    || node->hasTagName(varTag) || node->hasTagName(citeTag)
+    || node->hasTagName(insTag) || node->hasTagName(delTag);
+}
+    
 bool AccessibilityObject::isContainedByPasswordField() const
 {
     Node* node = this->node();

Modified: trunk/Source/WebCore/accessibility/AccessibilityObject.h (195462 => 195463)


--- trunk/Source/WebCore/accessibility/AccessibilityObject.h	2016-01-22 19:31:06 UTC (rev 195462)
+++ trunk/Source/WebCore/accessibility/AccessibilityObject.h	2016-01-22 19:31:22 UTC (rev 195463)
@@ -540,7 +540,8 @@
     bool isMeter() const;
     bool isSplitter() const { return roleValue() == SplitterRole; }
     bool isToolbar() const { return roleValue() == ToolbarRole; }
-
+    bool isStyleFormatGroup() const;
+    
     virtual bool isChecked() const { return false; }
     virtual bool isEnabled() const { return false; }
     virtual bool isSelected() const { return false; }

Modified: trunk/Source/WebCore/accessibility/AccessibilityRenderObject.cpp (195462 => 195463)


--- trunk/Source/WebCore/accessibility/AccessibilityRenderObject.cpp	2016-01-22 19:31:06 UTC (rev 195462)
+++ trunk/Source/WebCore/accessibility/AccessibilityRenderObject.cpp	2016-01-22 19:31:22 UTC (rev 195463)
@@ -1386,6 +1386,9 @@
     if (node && node->hasTagName(dfnTag))
         return false;
     
+    if (isStyleFormatGroup())
+        return false;
+    
     // Make sure that ruby containers are not ignored.
     if (m_renderer->isRubyRun() || m_renderer->isRubyBlock() || m_renderer->isRubyInline())
         return false;
@@ -2581,7 +2584,10 @@
         return SVGRootRole;
     if (node && node->hasTagName(SVGNames::gTag))
         return GroupRole;
-
+    
+    if (isStyleFormatGroup())
+        return GroupRole;
+    
 #if ENABLE(MATHML)
     if (node && node->hasTagName(MathMLNames::mathTag))
         return DocumentMathRole;

Modified: trunk/Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm (195462 => 195463)


--- trunk/Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm	2016-01-22 19:31:06 UTC (rev 195462)
+++ trunk/Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm	2016-01-22 19:31:22 UTC (rev 195463)
@@ -2361,6 +2361,27 @@
     if (m_object->isSwitch())
         return NSAccessibilitySwitchSubrole;
 
+    if (role == GroupRole) {
+        if (Node* node = m_object->node()) {
+            if (node->hasTagName(kbdTag))
+                return @"AXKeyboardInputStyleGroup";
+            if (node->hasTagName(codeTag))
+                return @"AXCodeStyleGroup";
+            if (node->hasTagName(preTag))
+                return @"AXPreformattedStyleGroup";
+            if (node->hasTagName(sampTag))
+                return @"AXSampleStyleGroup";
+            if (node->hasTagName(varTag))
+                return @"AXVariableStyleGroup";
+            if (node->hasTagName(citeTag))
+                return @"AXCiteStyleGroup";
+            if (node->hasTagName(insTag))
+                return @"AXInsertStyleGroup";
+            if (node->hasTagName(delTag))
+                return @"AXDeleteStyleGroup";
+        }
+    }
+    
     // Ruby subroles
     switch (role) {
     case RubyBaseRole:
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to