- 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: