Commit 91345e19 authored by shreeram.k's avatar shreeram.k Committed by Commit bot

Fix MSAA+IA2 & AX for <header> tag and banner role

According to latest editor's draft http://rawgit.com/w3c/html-api-map/master/index.html
and http://www.w3.org/WAI/PF/aria-implementation/

It should be exposed as below when header is not contained by article or section elements

MSAA+IA2
Role: IA2_ROLE_HEADER
Object attributes: xml-roles:banner

AX
AXRole: AXGroup
AXSubrole: AXLandmarkBanner
AXRoleDescription: "banner"

BUG=282262

Review URL: https://codereview.chromium.org/656293002

Cr-Commit-Position: refs/heads/master@{#300411}
parent dbd94aa2
......@@ -335,6 +335,9 @@ below:
<ph name="WEEK">$1<ex>Week 38, 2014</ex></ph>, starting on <ph name="WEEK_START_DATE">$2<ex>September 15, 2014</ex></ph>
</message>
<message name="IDS_AX_ROLE_BANNER" desc="accessibility role description for banner">
banner
</message>
<message name="IDS_AX_ROLE_WEB_AREA" desc="accessibility role description for web area">
HTML content
</message>
......
......@@ -575,6 +575,10 @@ NSDictionary* attributeToMethodNameMap = nil;
}
switch([self internalRole]) {
case ui::AX_ROLE_BANNER:
return base::SysUTF16ToNSString(content_client->GetLocalizedString(
IDS_AX_ROLE_BANNER));
break;
case ui::AX_ROLE_FOOTER:
return base::SysUTF16ToNSString(content_client->GetLocalizedString(
IDS_AX_ROLE_FOOTER));
......
......@@ -3397,6 +3397,10 @@ void BrowserAccessibilityWin::InitRoleAndState() {
ia_role_ = ROLE_SYSTEM_DOCUMENT;
ia_state_ |= STATE_SYSTEM_READONLY;
break;
case ui::AX_ROLE_BANNER:
ia_role_ = ROLE_SYSTEM_GROUPING;
ia2_role_ = IA2_ROLE_HEADER;
break;
case ui::AX_ROLE_BUSY_INDICATOR:
ia_role_ = ROLE_SYSTEM_ANIMATION;
ia_state_ |= STATE_SYSTEM_READONLY;
......@@ -3577,7 +3581,6 @@ void BrowserAccessibilityWin::InitRoleAndState() {
ia_role_ = ROLE_SYSTEM_TEXT;
ia2_role_ = IA2_ROLE_LABEL;
break;
case ui::AX_ROLE_BANNER:
case ui::AX_ROLE_SEARCH:
ia_role_ = ROLE_SYSTEM_GROUPING;
ia2_role_ = IA2_ROLE_SECTION;
......
......@@ -332,6 +332,10 @@ IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest,
RunTest(FILE_PATH_LITERAL("aria-autocomplete.html"));
}
IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAriaBanner) {
RunTest(FILE_PATH_LITERAL("aria-banner.html"));
}
IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityAriaCheckBox) {
RunTest(FILE_PATH_LITERAL("aria-checkbox.html"));
}
......@@ -604,6 +608,10 @@ IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityFrameset) {
RunTest(FILE_PATH_LITERAL("frameset.html"));
}
IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityHeader) {
RunTest(FILE_PATH_LITERAL("header.html"));
}
IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityHeading) {
RunTest(FILE_PATH_LITERAL("heading.html"));
}
......
android.webkit.WebView focusable focused scrollable
android.view.View clickable name='Chromium Browser'
AXWebArea AXRoleDescription='HTML content'
AXGroup AXSubrole=AXLandmarkBanner AXRoleDescription='banner'
AXStaticText AXRoleDescription='text' AXValue='Chromium Browser'
ROLE_SYSTEM_DOCUMENT READONLY FOCUSABLE
IA2_ROLE_HEADER xml-roles:banner
ROLE_SYSTEM_STATICTEXT name='Chromium Browser'
<!--
@MAC-ALLOW:AXRole*
@MAC-ALLOW:AXSubrole*
@WIN-ALLOW:xml-roles:*
-->
<!DOCTYPE html>
<html>
<body>
<div role="banner">
Chromium Browser
</div>
</body>
</html>
android.webkit.WebView focusable focused scrollable
android.view.View clickable name='Chromium Browser'
AXWebArea AXRoleDescription='HTML content'
AXGroup AXSubrole=AXLandmarkBanner AXRoleDescription='banner'
AXStaticText AXRoleDescription='text' AXValue='Chromium Browser'
ROLE_SYSTEM_DOCUMENT READONLY FOCUSABLE
IA2_ROLE_HEADER xml-roles:banner
ROLE_SYSTEM_STATICTEXT name='Chromium Browser'
<!--
@MAC-ALLOW:AXRole*
@MAC-ALLOW:AXSubrole*
@WIN-ALLOW:xml-roles:*
-->
<!DOCTYPE html>
<html>
<body>
<header>
Chromium Browser
</header>
</body>
</html>
ROLE_SYSTEM_DOCUMENT READONLY FOCUSABLE
IA2_ROLE_SECTION READONLY xml-roles:banner
IA2_ROLE_HEADER xml-roles:banner
ROLE_SYSTEM_STATICTEXT name='This is a header element.'
IA2_ROLE_NOTE xml-roles:complementary
ROLE_SYSTEM_STATICTEXT name='This is an aside element.'
......@@ -13,7 +13,7 @@ ROLE_SYSTEM_DOCUMENT READONLY FOCUSABLE
ROLE_SYSTEM_STATICTEXT name='This is a nav element.'
ROLE_SYSTEM_APPLICATION xml-roles:application
ROLE_SYSTEM_STATICTEXT name='This is an ARIA application landmark.'
IA2_ROLE_SECTION READONLY xml-roles:banner
IA2_ROLE_HEADER xml-roles:banner
ROLE_SYSTEM_STATICTEXT name='This is an ARIA banner landmark.'
IA2_ROLE_NOTE xml-roles:complementary
ROLE_SYSTEM_STATICTEXT name='This is an ARIA complementary landmark.'
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment