mirror of https://github.com/twbs/bootstrap.git
				
				
				
			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