This commit is contained in:
Sara Arjona 2025-02-05 08:50:20 +01:00
commit d8dbb53c36
No known key found for this signature in database
23 changed files with 120 additions and 92 deletions

View file

@ -55,12 +55,13 @@ Feature: Authentication
And the page should meet accessibility standards with "wcag131, wcag141, wcag412" extra tests
@javascript @accessibility
Scenario: The login page must have sufficient colour contrast
Scenario: The login page must meet accessibility standards
Given the following config values are set as admin:
| custommenuitems | -This is a custom item\|/customurl/ |
When I am on site homepage
Then the page should meet "wcag143" accessibility standards
And the page should meet accessibility standards with "wcag143" extra tests
Then the page should meet accessibility standards with "best-practice" extra tests
And I follow "Log in"
And the page should meet accessibility standards with "best-practice" extra tests
Scenario: Alternate login URL can be bypassed
Given the following config values are set as admin:

View file

@ -46,12 +46,14 @@ Feature: Test if the login form provides the correct feedback
And I follow "Log in"
Then I should see "Lorem ipsum dolor sit amet"
@javascript @accessibility
Scenario: Show the maintenance mode message
Given the following config values are set as admin:
| maintenance_enabled | Disabled |
| maintenance_message | Back online tomorrow |
| maintenance_enabled | 1 |
| maintenance_message | Back online tomorrow |
And I follow "Log in"
Then I should see "Back online tomorrow"
And the page should meet accessibility standards with "best-practice" extra tests
Scenario: User self registration
Given the following config values are set as admin:

View file

@ -446,8 +446,11 @@ class block_base {
$attributes = array(
'id' => 'inst' . $this->instance->id,
'class' => 'block_' . $this->name() . ' block',
'role' => $this->get_aria_role()
);
$ariarole = $this->get_aria_role();
if ($ariarole) {
$attributes['role'] = $ariarole;
}
if ($this->hide_header()) {
$attributes['class'] .= ' no-header';
}
@ -739,20 +742,19 @@ EOD;
* a landmark child.
*
* Options are as follows:
* - application
* - landmark
* - application
* - banner
* - complementary
* - contentinfo
* - form
* - main
* - navigation
* - search
*
* Please do not use top-level landmark roles such as 'banner', 'complementary', 'contentinfo', or 'main'. Read more at
* {@link https://www.w3.org/WAI/ARIA/apg/practices/landmark-regions/ ARIA Authoring Practices Guide - Landmark Regions}
*
* @return string
*/
public function get_aria_role() {
return 'complementary';
return 'region';
}
/**

View file

@ -222,6 +222,8 @@ $string['block'] = 'Block';
$string['blockconfiga'] = 'Configuring a {$a} block';
$string['blockconfigbad'] = 'This block has not been implemented correctly and thus cannot provide a configuration interface.';
$string['blocks'] = 'Blocks';
$string['blocks_main'] = 'Main content blocks';
$string['blocks_supplementary'] = 'Supplementary blocks';
$string['blocksaddedit'] = 'Add/Edit blocks';
$string['blockseditoff'] = 'Blocks editing off';
$string['blocksediton'] = 'Blocks editing on';

View file

@ -1504,7 +1504,7 @@ class core_renderer extends renderer_base {
$context->skiptitle = strip_tags($bc->title);
$context->showskiplink = !empty($context->skiptitle);
$context->arialabel = $bc->arialabel;
$context->ariarole = !empty($bc->attributes['role']) ? $bc->attributes['role'] : 'complementary';
$context->ariarole = !empty($bc->attributes['role']) ? $bc->attributes['role'] : '';
$context->class = $bc->attributes['class'];
$context->type = $bc->attributes['data-block'];
$context->title = $bc->title;
@ -3817,6 +3817,7 @@ EOD;
*/
public function blocks($region, $classes = [], $tag = 'aside', $fakeblocksonly = false) {
$displayregion = $this->page->apply_theme_region_manipulations($region);
$headingid = $displayregion . '-block-region-heading';
$classes = (array)$classes;
$classes[] = 'block-region';
$attributes = [
@ -3824,12 +3825,23 @@ EOD;
'class' => join(' ', $classes),
'data-blockregion' => $displayregion,
'data-droptarget' => '1',
'aria-labelledby' => $headingid,
];
// Generate an appropriate heading to uniquely identify the block region.
$blocksheading = match ($displayregion) {
'side-post' => get_string('blocks_supplementary'),
'content' => get_string('blocks_main'),
default => get_string('blocks'),
};
$content = html_writer::tag('h2', $blocksheading, ['class' => 'visually-hidden', 'id' => $headingid]);
if ($this->page->blocks->region_has_content($displayregion, $this)) {
$content = html_writer::tag('h2', get_string('blocks'), ['class' => 'visually-hidden']) .
$this->blocks_for_region($displayregion, $fakeblocksonly);
} else {
$content = html_writer::tag('h2', get_string('blocks'), ['class' => 'visually-hidden']);
$content .= $this->blocks_for_region($displayregion, $fakeblocksonly);
}
// Given that <aside> has a default role of a complementary landmark and is supposed to be a top-level landmark,
// blocks rendered as part of the main content should not have a complementary role and should be rendered in a more generic
// container.
if ($displayregion === 'content' && $tag === 'aside') {
$tag = 'section';
}
return html_writer::tag($tag, $content, $attributes);
}

View file

@ -7,7 +7,7 @@
"class": "block block_html",
"showskiplink": true,
"type": "html",
"ariarole": "complementary",
"ariarole": "",
"title": "Test block",
"blockinstanceid": 1,
"content": "<p>Hello block world!</p>"
@ -22,7 +22,7 @@
{{! Start Block Container }}
<section id="{{id}}"
class="{{#hidden}}hidden{{/hidden}} {{class}} {{#hascontrols}}block_with_controls{{/hascontrols}} card mb-3"
role="{{ariarole}}"
{{#ariarole}}role="{{.}}"{{/ariarole}}
data-block="{{type}}"
data-instance-id="{{blockinstanceid}}"
{{#arialabel}}

View file

@ -1168,7 +1168,7 @@ class behat_navigation extends behat_base {
protected function select_on_administration_page($nodelist) {
$parentnodes = $nodelist;
$lastnode = array_pop($parentnodes);
$xpath = '//section[@id=\'region-main\']';
$xpath = '//div[@id=\'region-main\']';
// Check if there is a separate tab for this submenu of the page. If found go to it.
if ($parentnodes) {

View file

@ -36,3 +36,9 @@ Feature: Page displaying with secure layout
And I am on "Course 1" course homepage
When I follow "Fixture link"
Then I should not see "This is a custom item" in the "nav" "css_element"
@javascript @accessibility
Scenario: A page on the secure layout meets the accessibility standards
Given I am on the "C1" "Course" page logged in as "admin"
When I follow "Fixture link"
Then the page should meet accessibility standards with "best-practice" extra tests

View file

@ -29,6 +29,9 @@ defined('BEHAT_SITE_RUNNING') || die('Only available on Behat test server');
$PAGE->set_pagelayout('secure');
$PAGE->set_url('/lib/tests/fixtures/securetestpage.php');
$PAGE->set_context(context_system::instance());
$title = 'Secure test page';
$PAGE->set_title($title);
$PAGE->set_heading($title);
echo $OUTPUT->header();

View file

@ -609,7 +609,7 @@ table.calendartable caption {
}
@media (min-width: 768px) {
section:not(#region-main) {
[data-blockregion]:not([data-blockregion="content"]) {
.block {
&.block_calendar_month {
.maincalendar {

View file

@ -27773,41 +27773,41 @@ table.calendartable caption {
}
}
@media (min-width: 768px) {
section:not(#region-main) .block.block_calendar_month .maincalendar div.header {
[data-blockregion]:not([data-blockregion=content]) .block.block_calendar_month .maincalendar div.header {
visibility: hidden;
height: 0;
}
section:not(#region-main) .block.block_calendar_month .maincalendar .calendarwrapper .current {
[data-blockregion]:not([data-blockregion=content]) .block.block_calendar_month .maincalendar .calendarwrapper .current {
width: 40%;
font-size: inherit;
line-height: inherit;
}
section:not(#region-main) .block.block_calendar_month .maincalendar .calendarwrapper .previous,
section:not(#region-main) .block.block_calendar_month .maincalendar .calendarwrapper .next {
[data-blockregion]:not([data-blockregion=content]) .block.block_calendar_month .maincalendar .calendarwrapper .previous,
[data-blockregion]:not([data-blockregion=content]) .block.block_calendar_month .maincalendar .calendarwrapper .next {
width: 30%;
}
section:not(#region-main) .block.block_calendar_month .maincalendar .calendarwrapper .previous .arrow_text,
section:not(#region-main) .block.block_calendar_month .maincalendar .calendarwrapper .next .arrow_text {
[data-blockregion]:not([data-blockregion=content]) .block.block_calendar_month .maincalendar .calendarwrapper .previous .arrow_text,
[data-blockregion]:not([data-blockregion=content]) .block.block_calendar_month .maincalendar .calendarwrapper .next .arrow_text {
display: none;
}
section:not(#region-main) .block.block_calendar_month .maincalendar .calendartable.calendarmonth th,
section:not(#region-main) .block.block_calendar_month .maincalendar .calendartable.calendarmonth td {
[data-blockregion]:not([data-blockregion=content]) .block.block_calendar_month .maincalendar .calendartable.calendarmonth th,
[data-blockregion]:not([data-blockregion=content]) .block.block_calendar_month .maincalendar .calendartable.calendarmonth td {
border: none;
text-align: center !important;
padding: 0;
}
section:not(#region-main) .block.block_calendar_month .maincalendar .calendartable.calendarmonth td {
[data-blockregion]:not([data-blockregion=content]) .block.block_calendar_month .maincalendar .calendartable.calendarmonth td {
height: auto;
font-size: 0.8em;
}
section:not(#region-main) .block.block_calendar_month .maincalendar .calendartable.calendarmonth td.hasevent [data-region=day-content] {
[data-blockregion]:not([data-blockregion=content]) .block.block_calendar_month .maincalendar .calendartable.calendarmonth td.hasevent [data-region=day-content] {
display: none;
}
section:not(#region-main) .block.block_calendar_month .maincalendar .calendartable.calendarmonth td.hasevent .day-number {
[data-blockregion]:not([data-blockregion=content]) .block.block_calendar_month .maincalendar .calendartable.calendarmonth td.hasevent .day-number {
display: inline-block;
position: relative;
}
section:not(#region-main) .block.block_calendar_month .maincalendar .calendartable.calendarmonth td.hasevent .day-number:before {
[data-blockregion]:not([data-blockregion=content]) .block.block_calendar_month .maincalendar .calendartable.calendarmonth td.hasevent .day-number:before {
content: ".";
display: inline-block;
position: absolute;
@ -27818,19 +27818,19 @@ table.calendartable caption {
font-size: 3em;
color: inherit;
}
section:not(#region-main) .block.block_calendar_month .maincalendar .calendartable.calendarmonth td:after {
[data-blockregion]:not([data-blockregion=content]) .block.block_calendar_month .maincalendar .calendartable.calendarmonth td:after {
content: "";
display: block;
margin-top: calc(100% - 26px);
}
section:not(#region-main) .block.block_calendar_month .maincalendar .calendartable.calendarmonth td.clickable:hover {
[data-blockregion]:not([data-blockregion=content]) .block.block_calendar_month .maincalendar .calendartable.calendarmonth td.clickable:hover {
background-color: inherit;
}
section:not(#region-main) .block.block_calendar_month .maincalendar .calendartable.calendarmonth td.clickable:not(.today):hover .day-number-circle {
[data-blockregion]:not([data-blockregion=content]) .block.block_calendar_month .maincalendar .calendartable.calendarmonth td.clickable:not(.today):hover .day-number-circle {
border-radius: 50%;
background-color: #ededed;
}
section:not(#region-main) .block.block_calendar_month .bottom {
[data-blockregion]:not([data-blockregion=content]) .block.block_calendar_month .bottom {
border-top: 1px solid rgba(0, 0, 0, 0.125);
padding-top: 0.5rem;
}

View file

@ -48,7 +48,7 @@
<div id="page" class="container-fluid d-print-block">
<div id="page-content" class="row pb-3 d-print-block">
<div id="region-main-box" class="col-12">
<section id="region-main" aria-label="{{#str}}content{{/str}}">
<div id="region-main">
{{{ output.course_content_header }}}
{{#headercontent}}
{{> core/activity_header }}
@ -56,7 +56,7 @@
{{{ output.main_content }}}
{{{ output.activity_navigation }}}
{{{ output.course_content_footer }}}
</section>
</div>
</div>
</div>
</div>

View file

@ -73,7 +73,7 @@
<div> {{{ regionmainsettingsmenu }}} </div>
</div>
{{/hasregionmainsettingsmenu}}
<section id="region-main" {{#hasblocks}}class="has-blocks mb-3"{{/hasblocks}} aria-label="{{#str}}content{{/str}}">
<div id="region-main" {{#hasblocks}}class="has-blocks mb-3"{{/hasblocks}}>
{{#hasregionmainsettingsmenu}}
<div class="region_main_settings_menu_proxy"></div>
@ -89,12 +89,12 @@
{{{ output.activity_navigation }}}
{{{ output.course_content_footer }}}
</section>
</div>
{{#hasblocks}}
<section data-region="blocks-column" class="d-print-none" aria-label="{{#str}}blocks{{/str}}">
<div data-region="blocks-column" class="d-print-none">
{{{ addblockbutton }}}
{{{ sidepreblocks }}}
</section>
</div>
{{/hasblocks}}
</div>
</div>

View file

@ -79,10 +79,10 @@
{{$id}}theme_boost-drawers-blocks{{/id}}
{{$drawerclasses}}drawer drawer-right{{#blockdraweropen}} show{{/blockdraweropen}}{{/drawerclasses}}
{{$drawercontent}}
<section class="d-print-none" aria-label="{{#str}}blocks{{/str}}">
<div class="d-print-none">
{{{ addblockbutton }}}
{{{ sidepreblocks }}}
</section>
</div>
{{/drawercontent}}
{{$drawerpreferencename}}drawer-open-block{{/drawerpreferencename}}
{{$forceopen}}{{#forceblockdraweropen}}1{{/forceblockdraweropen}}{{/forceopen}}
@ -142,7 +142,7 @@
<div> {{{ regionmainsettingsmenu }}} </div>
</div>
{{/hasregionmainsettingsmenu}}
<section id="region-main" aria-label="{{#str}}content{{/str}}">
<div id="region-main">
{{#hasregionmainsettingsmenu}}
<div class="region_main_settings_menu_proxy"></div>
@ -162,7 +162,7 @@
{{{ output.activity_navigation }}}
{{{ output.course_content_footer }}}
</section>
</div>
</div>
</div>
</div>

View file

@ -56,9 +56,9 @@
{{{ output.standard_top_of_body_html }}}
<div id="page" {{#hasfakeblocks}}class="has-fake-blocks"{{/hasfakeblocks}}>
{{#hasfakeblocks}}
<section class="embedded-blocks" aria-label="{{#str}}blocks{{/str}}">
<div class="embedded-blocks">
{{{ fakeblocks }}}
</section>
</div>
{{/hasfakeblocks}}
<section class="embedded-main">
{{#headercontent}}

View file

@ -41,13 +41,13 @@
<div id="page" class="container-fluid pt-5 mt-0">
<div id="page-content" class="row">
<div id="region-main-box" class="col-12">
<section id="region-main" class="col-12 h-100" aria-label="{{#str}}content{{/str}}">
<div id="region-main" class="col-12 h-100">
<div class="login-wrapper">
<div class="login-container">
{{{ output.main_content }}}
</div>
</div>
</section>
</div>
</div>
</div>
</div>

View file

@ -57,9 +57,9 @@
</div>
<div id="page-content" class="row">
<section id="region-main" class="col-12" aria-label="{{#str}}content{{/str}}">
<div id="region-main" class="col-12">
{{{ output.main_content }}}
</section>
</div>
</div>
</div>

View file

@ -48,7 +48,7 @@
<div id="page" class="container-fluid">
{{! Secured full header }}
<div id="page-header" class="row">
<header id="page-header" class="row">
<div class="col-12 py-3">
<div class="page-context-header">
<div class="page-header-headings">
@ -56,11 +56,11 @@
</div>
</div>
</div>
</div>
</header>
<div id="page-content" class="row">
<div id="region-main-box" class="col-12">
<section id="region-main" {{#hasblocks}}class="has-blocks"{{/hasblocks}} aria-label="{{#str}}content{{/str}}">
<div id="region-main" {{#hasblocks}}class="has-blocks"{{/hasblocks}}>
{{{ output.course_content_header }}}
{{#headercontent}}
@ -69,11 +69,11 @@
{{{ output.main_content }}}
{{{ output.course_content_footer }}}
</section>
</div>
{{#hasblocks}}
<section data-region="blocks-column" aria-label="{{#str}}blocks{{/str}}">
<div data-region="blocks-column">
{{{ sidepreblocks }}}
</section>
</div>
{{/hasblocks}}
</div>
</div>

View file

@ -27773,41 +27773,41 @@ table.calendartable caption {
}
}
@media (min-width: 768px) {
section:not(#region-main) .block.block_calendar_month .maincalendar div.header {
[data-blockregion]:not([data-blockregion=content]) .block.block_calendar_month .maincalendar div.header {
visibility: hidden;
height: 0;
}
section:not(#region-main) .block.block_calendar_month .maincalendar .calendarwrapper .current {
[data-blockregion]:not([data-blockregion=content]) .block.block_calendar_month .maincalendar .calendarwrapper .current {
width: 40%;
font-size: inherit;
line-height: inherit;
}
section:not(#region-main) .block.block_calendar_month .maincalendar .calendarwrapper .previous,
section:not(#region-main) .block.block_calendar_month .maincalendar .calendarwrapper .next {
[data-blockregion]:not([data-blockregion=content]) .block.block_calendar_month .maincalendar .calendarwrapper .previous,
[data-blockregion]:not([data-blockregion=content]) .block.block_calendar_month .maincalendar .calendarwrapper .next {
width: 30%;
}
section:not(#region-main) .block.block_calendar_month .maincalendar .calendarwrapper .previous .arrow_text,
section:not(#region-main) .block.block_calendar_month .maincalendar .calendarwrapper .next .arrow_text {
[data-blockregion]:not([data-blockregion=content]) .block.block_calendar_month .maincalendar .calendarwrapper .previous .arrow_text,
[data-blockregion]:not([data-blockregion=content]) .block.block_calendar_month .maincalendar .calendarwrapper .next .arrow_text {
display: none;
}
section:not(#region-main) .block.block_calendar_month .maincalendar .calendartable.calendarmonth th,
section:not(#region-main) .block.block_calendar_month .maincalendar .calendartable.calendarmonth td {
[data-blockregion]:not([data-blockregion=content]) .block.block_calendar_month .maincalendar .calendartable.calendarmonth th,
[data-blockregion]:not([data-blockregion=content]) .block.block_calendar_month .maincalendar .calendartable.calendarmonth td {
border: none;
text-align: center !important;
padding: 0;
}
section:not(#region-main) .block.block_calendar_month .maincalendar .calendartable.calendarmonth td {
[data-blockregion]:not([data-blockregion=content]) .block.block_calendar_month .maincalendar .calendartable.calendarmonth td {
height: auto;
font-size: 0.8em;
}
section:not(#region-main) .block.block_calendar_month .maincalendar .calendartable.calendarmonth td.hasevent [data-region=day-content] {
[data-blockregion]:not([data-blockregion=content]) .block.block_calendar_month .maincalendar .calendartable.calendarmonth td.hasevent [data-region=day-content] {
display: none;
}
section:not(#region-main) .block.block_calendar_month .maincalendar .calendartable.calendarmonth td.hasevent .day-number {
[data-blockregion]:not([data-blockregion=content]) .block.block_calendar_month .maincalendar .calendartable.calendarmonth td.hasevent .day-number {
display: inline-block;
position: relative;
}
section:not(#region-main) .block.block_calendar_month .maincalendar .calendartable.calendarmonth td.hasevent .day-number:before {
[data-blockregion]:not([data-blockregion=content]) .block.block_calendar_month .maincalendar .calendartable.calendarmonth td.hasevent .day-number:before {
content: ".";
display: inline-block;
position: absolute;
@ -27818,19 +27818,19 @@ table.calendartable caption {
font-size: 3em;
color: inherit;
}
section:not(#region-main) .block.block_calendar_month .maincalendar .calendartable.calendarmonth td:after {
[data-blockregion]:not([data-blockregion=content]) .block.block_calendar_month .maincalendar .calendartable.calendarmonth td:after {
content: "";
display: block;
margin-top: calc(100% - 26px);
}
section:not(#region-main) .block.block_calendar_month .maincalendar .calendartable.calendarmonth td.clickable:hover {
[data-blockregion]:not([data-blockregion=content]) .block.block_calendar_month .maincalendar .calendartable.calendarmonth td.clickable:hover {
background-color: inherit;
}
section:not(#region-main) .block.block_calendar_month .maincalendar .calendartable.calendarmonth td.clickable:not(.today):hover .day-number-circle {
[data-blockregion]:not([data-blockregion=content]) .block.block_calendar_month .maincalendar .calendartable.calendarmonth td.clickable:not(.today):hover .day-number-circle {
border-radius: 50%;
background-color: #ededed;
}
section:not(#region-main) .block.block_calendar_month .bottom {
[data-blockregion]:not([data-blockregion=content]) .block.block_calendar_month .bottom {
border-top: 1px solid rgba(0, 0, 0, 0.125);
padding-top: 0.5rem;
}

View file

@ -66,7 +66,7 @@
<div> {{{ output.region_main_settings_menu }}} </div>
</div>
{{/hasregionmainsettingsmenu}}
<section id="region-main" class="region-main-content" aria-label="{{#str}}content{{/str}}">
<div id="region-main" class="region-main-content">
{{#hasregionmainsettingsmenu}}
<div class="region_main_settings_menu_proxy"></div>
{{/hasregionmainsettingsmenu}}
@ -77,18 +77,18 @@
{{{ output.main_content }}}
{{{ output.activity_navigation }}}
{{{ output.course_content_footer }}}
</section>
</div>
</div>
<div class="columnleft blockcolumn {{#haspreblocks}} has-blocks {{/haspreblocks}}">
<section data-region="blocks-column" class="d-print-none" aria-label="{{#str}}blocks{{/str}}">
<div data-region="blocks-column" class="d-print-none">
{{{ sidepreblocks }}}
</section>
</div>
</div>
<div class="columnright blockcolumn {{#haspostblocks}} has-blocks {{/haspostblocks}}">
<section data-region="blocks-column" class="d-print-none" aria-label="{{#str}}blocks{{/str}}">
<div data-region="blocks-column" class="d-print-none">
{{{ sidepostblocks }}}
</section>
</div>
</div>
</div>
</div>

View file

@ -54,7 +54,7 @@
<div id="page" class="container-fluid">
<div id="page-content" class="row">
<div id="region-main-box" class="col-12">
<section id="region-main" aria-label="{{#str}}content{{/str}}">
<div id="region-main">
{{{ output.course_content_header }}}
{{#headercontent}}
{{> core/activity_header }}
@ -62,7 +62,7 @@
{{{ output.main_content }}}
{{{ output.activity_navigation }}}
{{{ output.course_content_footer }}}
</section>
</div>
</div>
</div>
</div>

View file

@ -59,7 +59,7 @@
<div id="page" class="container-fluid">
{{! Secured full header }}
<div id="page-header" class="row">
<header id="page-header" class="row">
<div class="col-12 py-3">
<div class="page-context-header">
<div class="page-header-headings">
@ -67,11 +67,11 @@
</div>
</div>
</div>
</div>
</header>
<div id="page-content" class="row {{#haspreblocks}} blocks-pre {{/haspreblocks}} {{#haspostblocks}} blocks-post {{/haspostblocks}}">
<div id="region-main-box" class="region-main">
<section id="region-main" aria-label="{{#str}}content{{/str}}">
<div id="region-main">
<div class="card">
<div class="card-body">
{{{ output.course_content_header }}}
@ -82,18 +82,18 @@
{{{ output.course_content_footer }}}
</div>
</div>
</section>
</div>
</div>
<div class="columnleft {{#haspreblocks}} has-blocks {{/haspreblocks}}">
<section data-region="blocks-column" class="d-print-none" aria-label="{{#str}}blocks{{/str}}">
<div data-region="blocks-column" class="d-print-none">
{{{ sidepreblocks }}}
</section>
</div>
</div>
<div class="columnright {{#haspostblocks}} has-blocks {{/haspostblocks}}">
<section data-region="blocks-column" class="d-print-none" aria-label="{{#str}}blocks{{/str}}">
<div data-region="blocks-column" class="d-print-none">
{{{ sidepostblocks }}}
</section>
</div>
</div>
</div>
</div>

View file

@ -289,7 +289,7 @@ class behat_theme_classic_behat_navigation extends behat_navigation {
protected function select_on_administration_page($nodelist) {
$parentnodes = $nodelist;
$lastnode = array_pop($parentnodes);
$xpath = '//section[@id=\'region-main\']';
$xpath = '//div[@id=\'region-main\']';
// Check if there is a separate tab for this submenu of the page. If found go to it.
if ($parentnodes) {