'searcharticle',
'searchbutton',
'sidebar',
+ 'navigation-heading',
'site-atom-feed',
'sitenotice',
'specialpages',
'namespaces' => 'Namespaces',
'variants' => 'Variants',
+'navigation-heading'=> 'Navigation menu',
'errorpagetitle' => 'Error',
'returnto' => 'Return to $1.',
'tagline' => 'From {{SITENAME}}',
'namespaces' => '{{Identical|Namespace}}',
'variants' => 'Used by the Vector skin.',
+'navigation-heading' => 'Heading shown above the navigation menu (sidebar) for screen-readers (or in non-standard skins).',
+
'errorpagetitle' => 'Message shown in browser title bar when encountering error operation.
{{Identical|Error}}',
'variants',
),
'miscellaneous2' => array(
+ 'navigation-heading',
'errorpagetitle',
'returnto',
'tagline',
</a>
</p>
<p id="sitesub"><?php echo wfMessage( 'sitesubtitle' )->escaped() ?></p>
- <div id="toplinks" role="navigation">
- <p id="syslinks"><?php echo $this->sysLinks() ?></p>
- <p id="variantlinks"><?php echo $this->variantLinks() ?></p>
- </div>
<div id="linkcollection" role="navigation">
<div id="langlinks"><?php echo str_replace( '<br />', '', $this->otherLanguages() ) ?></div>
<?php echo $this->getSkin()->getCategories() ?>
?>
</div>
</div>
-<?php echo $this->quickBar() ?>
+<div id="mw-navigation">
+ <h2><?php echo wfMessage( 'navigation-heading' )->escaped() ?></h2>
+ <div id="toplinks" role="navigation">
+ <p id="syslinks"><?php echo $this->sysLinks() ?></p>
+ <p id="variantlinks"><?php echo $this->variantLinks() ?></p>
+ </div>
+ <?php echo $this->quickBar() ?>
+</div>
<?php
$s = ob_get_contents();
ob_end_clean();
foreach ( $bar as $heading => $data ) {
$portletId = Sanitizer::escapeId( "p-$heading" );
$headingMsg = wfMessage( $idToMessage[$heading] ? $idToMessage[$heading] : $heading );
- $headingHTML = "<h6>" . ( $headingMsg->exists() ? $headingMsg->escaped() : htmlspecialchars( $heading ) ) . "</h6>";
+ $headingHTML = "<h3>" . ( $headingMsg->exists() ? $headingMsg->escaped() : htmlspecialchars( $heading ) ) . "</h3>";
$listHTML = "";
if ( is_array( $data ) ) {
</div><!-- mw_contentwrapper -->
<div id="mw_portlets"<?php $this->html("userlangattributes") ?>>
+ <h2><?php $this->msg( 'navigation-heading' ) ?></h2>
<!-- portlets -->
<?php $this->renderPortals( $this->data['sidebar'] ); ?>
<!-- personal portlet -->
<div class="portlet" id="p-personal" role="navigation">
- <h5><?php $this->msg('personaltools') ?></h5>
+ <h3><?php $this->msg('personaltools') ?></h3>
<div class="pBody">
<ul>
<?php foreach($this->getPersonalTools() as $key => $item) { ?>
</div>
</div></div>
<div id="column-one"<?php $this->html('userlangattributes') ?>>
+ <h2><?php $this->msg( 'navigation-heading' ) ?></h2>
<?php $this->cactions(); ?>
<div class="portlet" id="p-personal" role="navigation">
- <h5><?php $this->msg('personaltools') ?></h5>
+ <h3><?php $this->msg('personaltools') ?></h3>
<div class="pBody">
<ul<?php $this->html('userlangattributes') ?>>
<?php foreach($this->getPersonalTools() as $key => $item) { ?>
global $wgUseTwoButtonsSearchForm;
?>
<div id="p-search" class="portlet" role="search">
- <h5><label for="searchInput"><?php $this->msg('search') ?></label></h5>
+ <h3><label for="searchInput"><?php $this->msg('search') ?></label></h3>
<div id="searchBody" class="pBody">
<form action="<?php $this->text('wgScript') ?>" id="searchform">
<input type='hidden' name="title" value="<?php $this->text('searchtitle') ?>"/>
function cactions() {
?>
<div id="p-cactions" class="portlet" role="navigation">
- <h5><?php $this->msg('views') ?></h5>
+ <h3><?php $this->msg('views') ?></h3>
<div class="pBody">
<ul><?php
foreach($this->data['content_actions'] as $key => $tab) {
function toolbox() {
?>
<div class="portlet" id="p-tb" role="navigation">
- <h5><?php $this->msg('toolbox') ?></h5>
+ <h3><?php $this->msg('toolbox') ?></h3>
<div class="pBody">
<ul>
<?php
if( $this->data['language_urls'] ) {
?>
<div id="p-lang" class="portlet" role="navigation">
- <h5<?php $this->html('userlangattributes') ?>><?php $this->msg('otherlanguages') ?></h5>
+ <h3<?php $this->html('userlangattributes') ?>><?php $this->msg('otherlanguages') ?></h3>
<div class="pBody">
<ul>
<?php foreach($this->data['language_urls'] as $key => $langlink) { ?>
echo ' ' . Html::openElement( 'div', $portletAttribs );
?>
- <h5><?php $msg = wfMessage( $bar ); echo htmlspecialchars( $msg->exists() ? $msg->text() : $bar ); ?></h5>
+ <h3><?php $msg = wfMessage( $bar ); echo htmlspecialchars( $msg->exists() ? $msg->text() : $bar ); ?></h3>
<div class='pBody'>
<?php if ( is_array( $cont ) ) { ?>
<ul>
<!-- /bodyContent -->
</div>
<!-- /content -->
- <!-- header -->
- <div id="mw-head" class="noprint">
- <?php $this->renderNavigation( 'PERSONAL' ); ?>
- <div id="left-navigation">
- <?php $this->renderNavigation( array( 'NAMESPACES', 'VARIANTS' ) ); ?>
- </div>
- <div id="right-navigation">
- <?php $this->renderNavigation( array( 'VIEWS', 'ACTIONS', 'SEARCH' ) ); ?>
+ <div id="mw-navigation">
+ <h2><?php $this->msg( 'navigation-heading' ) ?></h2>
+ <!-- header -->
+ <div id="mw-head" class="noprint">
+ <?php $this->renderNavigation( 'PERSONAL' ); ?>
+ <div id="left-navigation">
+ <?php $this->renderNavigation( array( 'NAMESPACES', 'VARIANTS' ) ); ?>
+ </div>
+ <div id="right-navigation">
+ <?php $this->renderNavigation( array( 'VIEWS', 'ACTIONS', 'SEARCH' ) ); ?>
+ </div>
</div>
- </div>
- <!-- /header -->
- <!-- panel -->
+ <!-- /header -->
+ <!-- panel -->
<div id="mw-panel" class="noprint">
<!-- logo -->
<div id="p-logo" role="banner"><a style="background-image: url(<?php $this->text( 'logopath' ) ?>);" href="<?php echo htmlspecialchars( $this->data['nav_urls']['mainpage']['href'] ) ?>" <?php echo Xml::expandAttributes( Linker::tooltipAndAccesskeyAttribs( 'p-logo' ) ) ?>></a></div>
<!-- /logo -->
<?php $this->renderPortals( $this->data['sidebar'] ); ?>
</div>
- <!-- /panel -->
+ <!-- /panel -->
+ </div>
<!-- footer -->
<div id="footer" role="contentinfo"<?php $this->html( 'userlangattributes' ) ?>>
<?php foreach( $this->getFooterLinks() as $category => $links ): ?>
}
?>
<div class="portal" role="navigation" id='<?php echo Sanitizer::escapeId( "p-$name" ) ?>'<?php echo Linker::tooltip( 'p-' . $name ) ?>>
- <h5<?php $this->html( 'userlangattributes' ) ?>><?php $msgObj = wfMessage( $msg ); echo htmlspecialchars( $msgObj->exists() ? $msgObj->text() : $msg ); ?></h5>
+ <h3<?php $this->html( 'userlangattributes' ) ?>><?php $msgObj = wfMessage( $msg ); echo htmlspecialchars( $msgObj->exists() ? $msgObj->text() : $msg ); ?></h3>
<div class="body">
<?php
if ( is_array( $content ) ): ?>
case 'NAMESPACES':
?>
<div id="p-namespaces" role="navigation" class="vectorTabs<?php if ( count( $this->data['namespace_urls'] ) == 0 ) echo ' emptyPortlet'; ?>">
- <h5><?php $this->msg( 'namespaces' ) ?></h5>
+ <h3><?php $this->msg( 'namespaces' ) ?></h3>
<ul<?php $this->html( 'userlangattributes' ) ?>>
<?php foreach ( $this->data['namespace_urls'] as $link ): ?>
<li <?php echo $link['attributes'] ?>><span><a href="<?php echo htmlspecialchars( $link['href'] ) ?>" <?php echo $link['key'] ?>><?php echo htmlspecialchars( $link['text'] ) ?></a></span></li>
case 'VARIANTS':
?>
<div id="p-variants" role="navigation" class="vectorMenu<?php if ( count( $this->data['variant_urls'] ) == 0 ) echo ' emptyPortlet'; ?>">
- <h4>
+ <h3 id="mw-vector-current-variant">
<?php foreach ( $this->data['variant_urls'] as $link ): ?>
<?php if ( stripos( $link['attributes'], 'selected' ) !== false ): ?>
<?php echo htmlspecialchars( $link['text'] ) ?>
<?php endif; ?>
<?php endforeach; ?>
- </h4>
- <h5><span><?php $this->msg( 'variants' ) ?></span><a href="#"></a></h5>
+ </h3>
+ <h3><span><?php $this->msg( 'variants' ) ?></span><a href="#"></a></h3>
<div class="menu">
<ul>
<?php foreach ( $this->data['variant_urls'] as $link ): ?>
case 'VIEWS':
?>
<div id="p-views" role="navigation" class="vectorTabs<?php if ( count( $this->data['view_urls'] ) == 0 ) { echo ' emptyPortlet'; } ?>">
- <h5><?php $this->msg('views') ?></h5>
+ <h3><?php $this->msg('views') ?></h3>
<ul<?php $this->html('userlangattributes') ?>>
<?php foreach ( $this->data['view_urls'] as $link ): ?>
<li<?php echo $link['attributes'] ?>><span><a href="<?php echo htmlspecialchars( $link['href'] ) ?>" <?php echo $link['key'] ?>><?php
case 'ACTIONS':
?>
<div id="p-cactions" role="navigation" class="vectorMenu<?php if ( count( $this->data['action_urls'] ) == 0 ) echo ' emptyPortlet'; ?>">
- <h5><span><?php $this->msg( 'actions' ) ?></span><a href="#"></a></h5>
+ <h3><span><?php $this->msg( 'actions' ) ?></span><a href="#"></a></h3>
<div class="menu">
<ul<?php $this->html( 'userlangattributes' ) ?>>
<?php foreach ( $this->data['action_urls'] as $link ): ?>
case 'PERSONAL':
?>
<div id="p-personal" role="navigation" class="<?php if ( count( $this->data['personal_urls'] ) == 0 ) echo ' emptyPortlet'; ?>">
- <h5><?php $this->msg( 'personaltools' ) ?></h5>
+ <h3><?php $this->msg( 'personaltools' ) ?></h3>
<ul<?php $this->html( 'userlangattributes' ) ?>>
<?php
$personalTools = $this->getPersonalTools();
case 'SEARCH':
?>
<div id="p-search" role="search">
- <h5<?php $this->html( 'userlangattributes' ) ?>><label for="searchInput"><?php $this->msg( 'search' ) ?></label></h5>
+ <h3<?php $this->html( 'userlangattributes' ) ?>><label for="searchInput"><?php $this->msg( 'search' ) ?></label></h3>
<form action="<?php $this->text( 'wgScript' ) ?>" id="searchform">
<?php if ( $wgVectorUseSimpleSearch && $this->getSkin()->getUser()->getOption( 'vector-simplesearch' ) ): ?>
<div id="simpleSearch">
color: #446688;
}
-#quickbar h6 {
+/* Hide, but keep accessible for screen-readers */
+#mw-navigation h2 {
+ position: absolute;
+ top: -9999px;
+}
+
+#quickbar h3 {
font-family: Verdana, Arial, sans-serif;
font-size: 10pt;
font-weight: bold;
font-variant: small-caps;
}
-#p-personal h5 {
+#p-personal h3 {
display: none;
}
background-color: #f0f0f0;
}
+/* Hide, but keep accessible for screen-readers */
+#mw_portlets h2 {
+ position: absolute;
+ top: -9999px;
+}
+
#mw_main {
padding: 0 0 0 0;
margin: 0 0 0 0;
margin-top: .4em;
}
-.portlet h5 {
+.portlet h3 {
padding: 0.1em 0 0.3em 1em;
margin: 0 0 0 0;
background-color: #dddddd;
font-weight: bold;
+ font-size: 0.83em;
border-bottom: solid 1px #3c78b5;
height: 1.1em;
}
color: white;
}
-#p-cactions h5 {
+#p-cactions h3 {
display: none;
}
div#column-one {
padding-top: 160px;
}
+/* Hide, but keep accessible for screen-readers */
+#column-one h2 {
+ position: absolute;
+ top: -9999px;
+}
div#content {
background: white;
color: black;
width: 11.6em;
overflow: hidden;
}
-.portlet h4 {
- font-size: 95%;
- font-weight: normal;
- white-space: nowrap;
-}
-.portlet h5 {
+.portlet h3 {
background: transparent;
padding: 0 1em 0 .5em;
display: inline;
font-weight: normal;
white-space: nowrap;
}
-.portlet h6 {
- background: #ffae2e;
- border: 1px solid #2f6fab;
- border-style: solid solid none solid;
- padding: 0 1em 0 1em;
- text-transform: lowercase;
- display: block;
- font-size: 1em;
- height: 1.2em;
- font-weight: normal;
- white-space: nowrap;
-}
.pBody {
font-size: 95%;
background-color: white;
border: 1px solid #aaa;
padding: 0 .8em .3em .5em;
}
-.portlet h1,
-.portlet h2,
-.portlet h3,
-.portlet h4 {
- margin: 0;
- padding: 0;
-}
.portlet ul {
line-height: 1.5em;
list-style-type: square;
width: 12em;
overflow: visible;
}
-#p-logo h5 {
+#p-logo h3 {
display: none;
}
#p-logo a,
overflow: visible;
line-height: 1.2em;
}
-#p-personal h5 {
+#p-personal h3 {
display: none;
}
#p-personal .portlet,
text-decoration: none;
background-color: white;
}
-#p-cactions h5 {
+#p-cactions h3 {
display: none;
}
#p-cactions li.istalk {
}
/* Override text-transform on languages where capitalization is significant */
-.capitalize-all-nouns .portlet h5,
-.capitalize-all-nouns .portlet h6,
+.capitalize-all-nouns .portlet h3,
.capitalize-all-nouns #p-personal ul,
.capitalize-all-nouns #p-cactions ul li a {
text-transform: none;
left: 0;
}
+/* Hide, but keep accessible for screen-readers */
+#column-one h2 {
+ position: absolute;
+ top: -9999px;
+}
+
body {
margin: 0;
padding: 0;
color: black;
direction: ltr;
}
+/* Hide, but keep accessible for screen-readers */
+#mw-navigation h2 {
+ position: absolute;
+ top: -9999px;
+}
/* Head */
#mw-page-base {
height: 5em;
right: 0;
width: 100%;
}
-div#mw-head h5 {
+div#mw-head h3 {
margin: 0;
padding: 0;
}
/* Display on top of page tabs - bug 37158 */
z-index: 1;
}
-#p-personal h5 {
+#p-personal h3 {
display: none;
}
#p-personal ul {
margin-top: 2.5em;
}
/* Navigation Labels */
-div.vectorTabs h5,
-div.vectorMenu h5 span {
+div.vectorTabs h3,
+div.vectorMenu h3 span {
display: none;
}
/* Namespaces and Views */
}
/* OVERRIDDEN BY COMPLIANT BROWSERS */
/* @noflip */
-div#mw-head div.vectorMenu h5 {
+div#mw-head div.vectorMenu h3 {
float: left;
/* @embed */
background-image: url(images/tab-break.png);
background-repeat: no-repeat;
}
/* This will be flipped - unlike the one above it */
-div#mw-head div.vectorMenu h5 {
+div#mw-head div.vectorMenu h3 {
background-position: bottom left;
margin-left: -1px;
}
/* IGNORED BY IE6 */
-div#mw-head div.vectorMenu > h5 {
+div#mw-head div.vectorMenu > h3 {
background-image: none;
}
-div#mw-head div.vectorMenu h4 {
+div.vectorMenu#p-variants #mw-vector-current-variant {
display: inline-block;
float: left;
font-size: 0.8em;
}
/* OVERRIDDEN BY COMPLIANT BROWSERS */
/* @noflip */
-div.vectorMenu h5 a {
+div.vectorMenu h3 a {
display: inline-block;
width: 24px;
- height: 2.5em;
+ height: 1.9em;
text-decoration: none;
/* @embed */
background-image: url(images/tab-break.png);
background-repeat: no-repeat;
}
/* This will be flipped - unlike the one above it */
-div.vectorMenu h5 a {
+div.vectorMenu h3 a {
background-position: bottom right;
}
/* IGNORED BY IE6 */
-div.vectorMenu h5 > a {
+div.vectorMenu h3 > a {
display: block;
}
div.vectorMenu div.menu {
text-decoration: none;
}
/* Search */
-#p-search h5 {
+#p-search h3 {
display: none;
}
/* @noflip */
padding-bottom: 1.5em;
direction: ltr;
}
-div#mw-panel div.portal h5 {
+div#mw-panel div.portal h3 {
font-weight: normal;
color: #444;
padding: 0.25em;
jQuery( function ( $ ) {
$( 'div.vectorMenu' ).each( function () {
var $el = $( this );
- $el.find( 'h5:first a:first' )
+ $el.find( 'h3:first a:first' )
// For accessibility, show the menu when the hidden link in the menu is clicked (bug 24298)
.click( function ( e ) {
$el.find( '.menu:first' ).toggleClass( 'menuForceShow' );