diff --git a/accessible/src/html/nsHyperTextAccessible.cpp b/accessible/src/html/nsHyperTextAccessible.cpp
index 12a9878bf032..c3d456c26b0f 100644
--- a/accessible/src/html/nsHyperTextAccessible.cpp
+++ b/accessible/src/html/nsHyperTextAccessible.cpp
@@ -132,7 +132,7 @@ nsHyperTextAccessible::NativeRole()
return roles::FORM;
if (tag == nsGkAtoms::blockquote || tag == nsGkAtoms::div ||
- tag == nsGkAtoms::nav)
+ tag == nsGkAtoms::section || tag == nsGkAtoms::nav)
return roles::SECTION;
if (tag == nsGkAtoms::h1 || tag == nsGkAtoms::h2 ||
@@ -1239,6 +1239,9 @@ nsHyperTextAccessible::GetAttributesInternal(nsIPersistentProperties *aAttribute
if (mContent->Tag() == nsGkAtoms::nav)
nsAccUtils::SetAccAttr(aAttributes, nsGkAtoms::xmlroles,
NS_LITERAL_STRING("navigation"));
+ else if (mContent->Tag() == nsGkAtoms::section)
+ nsAccUtils::SetAccAttr(aAttributes, nsGkAtoms::xmlroles,
+ NS_LITERAL_STRING("region"));
else if (mContent->Tag() == nsGkAtoms::footer)
nsAccUtils::SetAccAttr(aAttributes, nsGkAtoms::xmlroles,
NS_LITERAL_STRING("contentinfo"));
diff --git a/accessible/tests/mochitest/elm/test_landmarks.html b/accessible/tests/mochitest/elm/test_landmarks.html
index 65ccc63b6736..9138427b7a6f 100644
--- a/accessible/tests/mochitest/elm/test_landmarks.html
+++ b/accessible/tests/mochitest/elm/test_landmarks.html
@@ -24,6 +24,7 @@
testRole("footer", ROLE_FOOTER);
testRole("article", ROLE_DOCUMENT);
testRole("aside", ROLE_NOTE);
+ testRole("section", ROLE_SECTION); // XXX bug 739612: not a landmark
testRole("main", ROLE_DOCUMENT);
testRole("form", ROLE_FORM);
@@ -32,6 +33,7 @@
testAttrs("nav", {"xml-roles" : "navigation"}, true);
testAttrs("footer", {"xml-roles" : "contentinfo"}, true);
testAttrs("aside", {"xml-roles" : "complementary"}, true);
+ testAttrs("section", {"xml-roles" : "region"}, true);
testAttrs("main", {"xml-roles" : "main"}, true); // // ARIA override
testAttrs("form", {"xml-roles" : "form"}, true);
@@ -41,6 +43,7 @@
testAttrs("footer", {"tag" : "footer"}, true);
testAttrs("article", {"tag" : "article"}, true);
testAttrs("aside", {"tag" : "aside"}, true);
+ testAttrs("section", {"tag" : "section"}, true);
testAttrs("main", {"tag" : "article"}, true);
testAttrs("form", {"tag" : "article"}, true);
@@ -68,6 +71,11 @@
title="Change implementation of HTML5 landmark elements to conform">
Bug 610650
+
+ Mozilla Bug 614310
+
@@ -82,6 +90,7 @@
+
an article
a main area