Skip link workarounds for Chrome and IE
Add tabindex="-1" to main #content to work around bug in Chrome (and old WebKits) and IE Update advice in accessibility section Include patch in docs CSS to suppress outline when #content is focused (particularly as Chrome sets focus as result of mouse click for tabindex="-1" elements)
This commit is contained in:
parent
4d4c7c4051
commit
c0892d1470
|
@ -4,11 +4,16 @@
|
||||||
|
|
||||||
<h3>Skip navigation</h3>
|
<h3>Skip navigation</h3>
|
||||||
<p>If your navigation contains many links and comes before the main content in the DOM, add a <code>Skip to main content</code> link before the navigation <a href="http://a11yproject.com/posts/skip-nav-links/">(read why)</a>. Using the <code>.sr-only</code> class will visually hide the skip link, and the <code>.sr-only-focusable</code> class will ensure that the link becomes visible once focused (for sighted keyboard users).</p>
|
<p>If your navigation contains many links and comes before the main content in the DOM, add a <code>Skip to main content</code> link before the navigation <a href="http://a11yproject.com/posts/skip-nav-links/">(read why)</a>. Using the <code>.sr-only</code> class will visually hide the skip link, and the <code>.sr-only-focusable</code> class will ensure that the link becomes visible once focused (for sighted keyboard users).</p>
|
||||||
|
<div class="bs-callout bs-callout-danger" id="callout-tables-striped-ie8">
|
||||||
|
<p>Due to a long-standing <a href="https://code.google.com/p/chromium/issues/detail?id=262171" title="Chromium bug tracker - Issue 262171: Focus should cycle from named anchor">bug in Chrome</a> and Internet Explorer, you will need to make sure that the target of your skip link is at least programmatically focusable by adding <code>tabindex="-1"</code>.</p>
|
||||||
|
<p>In addition, you may want to explicitly suppress a visible focus indication on the target (particularly as Chrome currently also sets focus on elements with <code>tabindex="-1"</code> when they are clicked with the mouse) with <code>#content:focus { outline: none; }</code>.</p>
|
||||||
|
<p>Note that this bug will also affect any other in-page links your site may be using, rendering them useless for keyboard users. You may consider adding a similar stop-gap fix to all other named anchors / fragment identifiers that act as link targets.</p>
|
||||||
|
</div>
|
||||||
{% highlight html %}
|
{% highlight html %}
|
||||||
<body>
|
<body>
|
||||||
<a href="#content" class="sr-only sr-only-focusable">Skip to main content</a>
|
<a href="#content" class="sr-only sr-only-focusable">Skip to main content</a>
|
||||||
...
|
...
|
||||||
<div class="container" id="content">
|
<div class="container" id="content" tabindex="-1">
|
||||||
<!-- The main page content -->
|
<!-- The main page content -->
|
||||||
</div>
|
</div>
|
||||||
</body>
|
</body>
|
||||||
|
|
|
@ -11,7 +11,7 @@
|
||||||
{% include nav/main.html %}
|
{% include nav/main.html %}
|
||||||
|
|
||||||
<!-- Docs page layout -->
|
<!-- Docs page layout -->
|
||||||
<div class="bs-docs-header" id="content">
|
<div class="bs-docs-header" id="content" tabindex="-1">
|
||||||
<div class="container">
|
<div class="container">
|
||||||
<h1>{{ page.title }}</h1>
|
<h1>{{ page.title }}</h1>
|
||||||
<p>{{ page.lead }}</p>
|
<p>{{ page.lead }}</p>
|
||||||
|
|
|
@ -93,6 +93,7 @@ body {
|
||||||
* Fancy skip link
|
* Fancy skip link
|
||||||
*
|
*
|
||||||
* Make it look a bit less "bare bones"
|
* Make it look a bit less "bare bones"
|
||||||
|
* Also includes focus suppression for the Chrome tabindex="-1" workaround
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#skippy {
|
#skippy {
|
||||||
|
@ -108,6 +109,10 @@ body {
|
||||||
outline: 1px dotted;
|
outline: 1px dotted;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#content:focus {
|
||||||
|
outline: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Main navigation
|
* Main navigation
|
||||||
|
|
|
@ -4,7 +4,7 @@ title: Bootstrap · The world's most popular mobile-first and responsive f
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
||||||
<main class="bs-docs-masthead" id="content" role="main">
|
<main class="bs-docs-masthead" id="content" role="main" tabindex="-1">
|
||||||
<div class="container">
|
<div class="container">
|
||||||
<span class="bs-docs-booticon bs-docs-booticon-lg bs-docs-booticon-outline">B</span>
|
<span class="bs-docs-booticon bs-docs-booticon-lg bs-docs-booticon-outline">B</span>
|
||||||
<p class="lead">Bootstrap is the most popular HTML, CSS, and JS framework for developing responsive, mobile first projects on the web.</p>
|
<p class="lead">Bootstrap is the most popular HTML, CSS, and JS framework for developing responsive, mobile first projects on the web.</p>
|
||||||
|
|
Loading…
Reference in New Issue