diff --git a/core/modules/block/tests/themes/block_test_theme/page.tpl.php b/core/modules/block/tests/themes/block_test_theme/page.tpl.php
index ba72882..d51362e 100644
--- a/core/modules/block/tests/themes/block_test_theme/page.tpl.php
+++ b/core/modules/block/tests/themes/block_test_theme/page.tpl.php
@@ -59,7 +59,6 @@
 
       <div id="content" class="column"><div class="section">
         <?php if ($page['highlighted']): ?><div id="highlighted"><?php print render($page['highlighted']); ?></div><?php endif; ?>
-        <a id="main-content"></a>
         <?php print render($title_prefix); ?>
         <?php if ($title): ?><h1 class="title" id="page-title"><?php print $title; ?></h1><?php endif; ?>
         <?php print render($title_suffix); ?>
diff --git a/core/modules/system/system.base.css b/core/modules/system/system.base.css
index c50b085..95e510b 100644
--- a/core/modules/system/system.base.css
+++ b/core/modules/system/system.base.css
@@ -213,6 +213,13 @@ tr .ajax-progress-throbber .throbber {
 }
 
 /**
+ * Hide outline of skiplink target when focused.
+ */
+#main {
+  outline: 0;
+}
+
+/**
  * Hide elements from all users.
  *
  * Used for elements which should not be immediately displayed to any user. An
diff --git a/core/modules/system/system.info b/core/modules/system/system.info
index 195ca07..f8d6b05 100644
--- a/core/modules/system/system.info
+++ b/core/modules/system/system.info
@@ -5,3 +5,4 @@ version = VERSION
 core = 8.x
 required = TRUE
 configure = admin/config/system
+scripts[] = system.skiplink.js
diff --git a/core/modules/system/system.skiplink.js b/core/modules/system/system.skiplink.js
new file mode 100644
index 0000000..d200461
--- /dev/null
+++ b/core/modules/system/system.skiplink.js
@@ -0,0 +1,24 @@
+(function ($) {
+
+/**
+ * Fixes skiplink behavior for Opera and Webkit browsers.
+ */
+Drupal.behaviors.skiplink = {
+  attach: function(context) {
+    var $context = $(context),
+        $skiplink = $context.find('#skip-link').find('a[href^="#"]'),
+        target = $skiplink.attr('href');
+
+    // Set tabindex on the skiplink target so all browsers know they are
+    // focusable and so Webkit browsers will focus() them.
+    $(target).attr('tabindex', -1);
+
+    // Set focus to skiplink target.
+    $skiplink.click(function() {
+      var clickAnchor = '#' + this.href.split('#')[1];
+      $(clickAnchor).focus();
+    });
+  }
+};
+
+})(jQuery);
diff --git a/core/modules/system/templates/html.tpl.php b/core/modules/system/templates/html.tpl.php
index 893d8a0..5127534 100644
--- a/core/modules/system/templates/html.tpl.php
+++ b/core/modules/system/templates/html.tpl.php
@@ -51,7 +51,7 @@
   </head>
   <body class="<?php print $attributes['class']; ?>" <?php print $attributes;?>>
     <div id="skip-link">
-      <a href="#main-content" class="element-invisible element-focusable"><?php print t('Skip to main content'); ?></a>
+      <a href="#main" class="element-invisible element-focusable"><?php print t('Skip to main content'); ?></a>
     </div>
     <?php print $page_top; ?>
     <?php print $page; ?>
diff --git a/core/modules/system/templates/maintenance-page.tpl.php b/core/modules/system/templates/maintenance-page.tpl.php
index 5da7a1a..ed42e67 100644
--- a/core/modules/system/templates/maintenance-page.tpl.php
+++ b/core/modules/system/templates/maintenance-page.tpl.php
@@ -24,6 +24,9 @@
   <?php print $scripts; ?>
 </head>
 <body class="<?php print $attributes['class']; ?>">
+  <div id="skip-link">
+    <a href="#main" class="element-invisible element-focusable"><?php print t('Skip to main content'); ?></a>
+  </div>
   <div id="page">
     <div id="header">
       <div id="logo-title">
diff --git a/core/modules/system/templates/page.tpl.php b/core/modules/system/templates/page.tpl.php
index 6ddeeed..66757e6 100644
--- a/core/modules/system/templates/page.tpl.php
+++ b/core/modules/system/templates/page.tpl.php
@@ -120,7 +120,6 @@
     <?php endif; ?>
 
     <div id="main" role="main" class="clearfix">
-    <a id="main-content"></a>
 
       <div id="content" class="column">
         <?php if ($page['highlighted']): ?><div id="highlighted"><?php print render($page['highlighted']); ?></div><?php endif; ?>
diff --git a/core/themes/bartik/templates/maintenance-page.tpl.php b/core/themes/bartik/templates/maintenance-page.tpl.php
index caf1611..4eaaf57 100644
--- a/core/themes/bartik/templates/maintenance-page.tpl.php
+++ b/core/themes/bartik/templates/maintenance-page.tpl.php
@@ -25,7 +25,7 @@
 <body class="<?php print $attributes['class']; ?>" <?php print $attributes;?>>
 
   <div id="skip-link">
-    <a href="#main-content" class="element-invisible element-focusable"><?php print t('Skip to main content'); ?></a>
+    <a href="#main" class="element-invisible element-focusable"><?php print t('Skip to main content'); ?></a>
   </div>
 
   <div id="page-wrapper"><div id="page">
@@ -51,7 +51,6 @@
 
     <div id="main-wrapper"><div id="main" class="clearfix">
       <div id="content" class="column"><div class="section">
-        <a id="main-content"></a>
         <?php if ($title): ?><h1 class="title" id="page-title"><?php print $title; ?></h1><?php endif; ?>
         <?php print $content; ?>
         <?php if ($messages): ?>
diff --git a/core/themes/bartik/templates/page.tpl.php b/core/themes/bartik/templates/page.tpl.php
index 1e31c61..7e9598f 100644
--- a/core/themes/bartik/templates/page.tpl.php
+++ b/core/themes/bartik/templates/page.tpl.php
@@ -181,7 +181,6 @@
 
     <div id="content" class="column"><div class="section">
       <?php if ($page['highlighted']): ?><div id="highlighted"><?php print render($page['highlighted']); ?></div><?php endif; ?>
-      <a id="main-content"></a>
       <?php print render($title_prefix); ?>
       <?php if ($title): ?>
         <h1 class="title" id="page-title">
diff --git a/core/themes/seven/style-rtl.css b/core/themes/seven/style-rtl.css
index 3276ce8..aa96337 100644
--- a/core/themes/seven/style-rtl.css
+++ b/core/themes/seven/style-rtl.css
@@ -154,7 +154,7 @@ div.admin-options div.form-item {
 body.in-maintenance #sidebar-first {
   float: right;
 }
-body.in-maintenance #content {
+body.in-maintenance #main {
   float: left;
   padding-left: 20px;
   padding-right: 0;
diff --git a/core/themes/seven/style.css b/core/themes/seven/style.css
index 9c43ac9..75d3bc7 100644
--- a/core/themes/seven/style.css
+++ b/core/themes/seven/style.css
@@ -304,7 +304,7 @@ ul.secondary li.active a.active {
   color: #fff;
   background: #666;
 }
-#content {
+#main {
   clear: left;
 }
 
@@ -872,7 +872,7 @@ body.in-maintenance #sidebar-first {
   max-width: 200px;
   width: 25%;
 }
-body.in-maintenance #content {
+body.in-maintenance #main {
   float: right; /* LTR */
   max-width: 550px;
   clear: none;
@@ -908,7 +908,7 @@ body.in-maintenance #logo {
 }
 @media all and (max-width: 768px) {
   body.in-maintenance #sidebar-first,
-  body.in-maintenance #content {
+  body.in-maintenance #main {
     float: left;
     max-width: none;
     width: auto;
@@ -968,7 +968,7 @@ ol.task-list li.done {
   margin: -1.4em 0 0.3em 0; /* LTR */
   overflow: visible;
 }
-.overlay #content {
+.overlay #main {
   padding: 0;
 }
 h1#overlay-title {
diff --git a/core/themes/seven/templates/maintenance-page.tpl.php b/core/themes/seven/templates/maintenance-page.tpl.php
index 835aa6c..c90dede 100644
--- a/core/themes/seven/templates/maintenance-page.tpl.php
+++ b/core/themes/seven/templates/maintenance-page.tpl.php
@@ -24,6 +24,10 @@
   </head>
   <body class="<?php print $attributes['class']; ?>">
 
+  <div id="skip-link">
+    <a href="#main" class="element-invisible element-focusable"><?php print t('Skip to main content'); ?></a>
+  </div>
+
   <?php print $page_top; ?>
 
   <div id="branding">
@@ -41,7 +45,7 @@
       <?php endif; ?>
     </div>
 
-    <div id="content" class="clearfix">
+    <div id="main" class="clearfix">
       <?php if ($messages): ?>
         <div id="console"><?php print $messages; ?></div>
       <?php endif; ?>
diff --git a/core/themes/seven/templates/page.tpl.php b/core/themes/seven/templates/page.tpl.php
index ef24b9e..f0d996a 100644
--- a/core/themes/seven/templates/page.tpl.php
+++ b/core/themes/seven/templates/page.tpl.php
@@ -31,8 +31,7 @@
       <div class="tabs-secondary clearfix"><?php print render($secondary_local_tasks); ?></div>
     <?php endif; ?>
 
-    <div id="content" class="clearfix">
-      <div class="element-invisible"><a id="main-content"></a></div>
+    <div id="main" class="clearfix">
       <?php if ($messages): ?>
         <div id="console" class="clearfix"><?php print $messages; ?></div>
       <?php endif; ?>
