Index: wp-includes/class-wp-customize-section.php
===================================================================
--- wp-includes/class-wp-customize-section.php	(revision 22254)
+++ wp-includes/class-wp-customize-section.php	(working copy)
@@ -80,7 +80,7 @@
 	protected function render() {
 		?>
 		<li id="customize-section-<?php echo esc_attr( $this->id ); ?>" class="control-section customize-section">
-			<h3 class="customize-section-title" title="<?php echo esc_attr( $this->description ); ?>"><?php echo esc_html( $this->title ); ?></h3>
+			<h3 class="customize-section-title" tabindex="0" title="<?php echo esc_attr( $this->description ); ?>"><?php echo esc_html( $this->title ); ?></h3>
 			<ul class="customize-section-content">
 				<?php
 				foreach ( $this->controls as $control )
Index: wp-includes/class-wp-customize-control.php
===================================================================
--- wp-includes/class-wp-customize-control.php	(revision 22254)
+++ wp-includes/class-wp-customize-control.php	(working copy)
@@ -521,7 +521,7 @@
 			<span class="customize-control-title"><?php echo esc_html( $this->label ); ?></span>
 
 			<div class="customize-control-content">
-				<div class="dropdown preview-thumbnail">
+				<div class="dropdown preview-thumbnail" tabindex="0">
 					<div class="dropdown-content">
 						<?php if ( empty( $src ) ): ?>
 							<img style="display:none;" />
@@ -537,7 +537,7 @@
 			<div class="library">
 				<ul>
 					<?php foreach ( $this->tabs as $id => $tab ): ?>
-						<li data-customize-tab='<?php echo esc_attr( $id ); ?>'>
+						<li data-customize-tab='<?php echo esc_attr( $id ); ?>' tabindex='0'>
 							<?php echo esc_html( $tab['label'] ); ?>
 						</li>
 					<?php endforeach; ?>
Index: wp-admin/customize.php
===================================================================
--- wp-admin/customize.php	(revision 22254)
+++ wp-admin/customize.php	(working copy)
@@ -70,7 +70,7 @@
 		<div id="customize-header-actions" class="wp-full-overlay-header">
 			<?php
 				$save_text = $wp_customize->is_theme_active() ? __( 'Save &amp; Publish' ) : __( 'Save &amp; Activate' );
-				submit_button( $save_text, 'primary', 'save', false );
+				submit_button( $save_text, 'primary save', 'save', false );
 			?>
 			<span class="spinner"></span>
 			<a class="back button" href="<?php echo esc_url( $return ? $return : admin_url( 'themes.php' ) ); ?>">
@@ -83,9 +83,9 @@
 			$cannot_expand = ! ( $screenshot || $wp_customize->theme()->get('Description') );
 		?>
 
-		<div class="wp-full-overlay-sidebar-content">
+		<div class="wp-full-overlay-sidebar-content" tabindex="-1">
 			<div id="customize-info" class="customize-section<?php if ( $cannot_expand ) echo ' cannot-expand'; ?>">
-				<div class="customize-section-title">
+				<div class="customize-section-title" tabindex="0">
 					<span class="preview-notice"><?php
 						/* translators: %s is the theme name in the Customize/Live Preview pane */
 						echo sprintf( __( 'You are previewing %s' ), '<strong class="theme-name">' . $wp_customize->theme()->display('Name') . '</strong>' );
@@ -113,6 +113,15 @@
 		</div>
 
 		<div id="customize-footer-actions" class="wp-full-overlay-footer">
+			<?php
+				$save_text = $wp_customize->is_theme_active() ? __( 'Save &amp; Publish' ) : __( 'Save &amp; Activate' );
+				submit_button( $save_text, 'primary save', 'save', false );
+			?>
+			<span class="spinner"></span>
+			<a class="back button" href="<?php echo esc_url( $return ? $return : admin_url( 'themes.php' ) ); ?>">
+				<?php _e( 'Cancel' ); ?>
+			</a>
+			
 			<a href="#" class="collapse-sidebar button-secondary" title="<?php esc_attr_e('Collapse Sidebar'); ?>">
 				<span class="collapse-sidebar-arrow"></span>
 				<span class="collapse-sidebar-label"><?php _e('Collapse'); ?></span>
Index: wp-admin/js/customize-controls.js
===================================================================
--- wp-admin/js/customize-controls.js	(revision 22254)
+++ wp-admin/js/customize-controls.js	(working copy)
@@ -94,11 +94,21 @@
 					else
 						statuses.hide();
 				};
-
+			
+			var toggleFreeze = false;
+			
 			// Support the .dropdown class to open/close complex elements
-			this.container.on( 'click', '.dropdown', function( event ) {
+			this.container.on( 'click focus', '.dropdown', function( event ) {
 				event.preventDefault();
-				control.container.toggleClass('open');
+				
+				if (!toggleFreeze)
+					control.container.toggleClass('open');
+				
+				// Don't want to fire focus and click at same time
+				toggleFreeze = true;
+				setTimeout(function () {
+					toggleFreeze = false;
+				}, 400);
 			});
 
 			this.setting.bind( update );
@@ -210,7 +220,11 @@
 			});
 
 			// Bind tab switch events
-			this.library.children('ul').on( 'click', 'li', function( event ) {
+			this.library.children('ul').on( 'click keydown', 'li', function( event ) {
+				
+				if ( event.type === 'keydown' &&  13 !== event.which )
+					return;
+				
 				var id  = $(this).data('customizeTab'),
 					tab = control.tabs[ id ];
 
@@ -774,7 +788,7 @@
 				activated = state.create('activated');
 
 			state.bind( 'change', function() {
-				var save = $('#save'),
+				var save = $('.save'),
 					back = $('.back');
 
 				if ( ! activated() ) {
@@ -814,11 +828,26 @@
 		}());
 
 		// Temporary accordion code.
-		$('.customize-section-title').click( function( event ) {
+		var accordianFrozen = false;
+		$('.customize-section-title').bind('click keydown', function( event ) {
+			
+			if ( event.type === 'keydown' &&  13 !== event.which ) // enter
+					return;
+			
 			var clicked = $( this ).parents( '.customize-section' );
 
-			if ( clicked.hasClass('cannot-expand') )
+			if ( clicked.hasClass('cannot-expand') || accordianFrozen )
 				return;
+			
+			// Don't want to fire focus and click at same time
+			accordianFrozen = true;
+			setTimeout(function () {
+				accordianFrozen = false;
+			}, 400);
+			
+			// Scroll up if on #customize-section-title_tagline
+			if ('customize-section-title_tagline' === clicked.attr('id'))
+				$('.wp-full-overlay-sidebar-content').scrollTop(0);
 
 			$( '.customize-section' ).not( clicked ).removeClass( 'open' );
 			clicked.toggleClass( 'open' );
@@ -826,10 +855,25 @@
 		});
 
 		// Button bindings.
-		$('#save').click( function( event ) {
+		$('.save').click( function( event ) {
 			previewer.save();
 			event.preventDefault();
+		}).keydown( function( event ) {
+			if ( 9 === event.which ) // tab
+				return;
+			if ( 13 === event.which ) // enter
+				previewer.save();
+			event.preventDefault();
 		});
+		
+		$('.back').keydown( function( event ) {
+			if ( 9 === event.which ) // tab
+				return;
+			var thisHref = $(this).attr('href');
+			if ( 13 === event.which ) // enter
+				window.location = thisHref;
+			event.preventDefault();
+		});
 
 		$('.collapse-sidebar').click( function( event ) {
 			overlay.toggleClass( 'collapsed' ).toggleClass( 'expanded' );
@@ -948,6 +992,14 @@
 		});
 
 		api.trigger( 'ready' );
+
+		// Make sure left column gets focus
+		var topBackButton = $('#customize-header-actions .back');
+		topBackButton.focus();
+		setTimeout(function () {
+			topBackButton.focus();
+		}, 800);
+
 	});
 
 })( wp, jQuery );
\ No newline at end of file
Index: wp-admin/css/wp-admin.css
===================================================================
--- wp-admin/css/wp-admin.css	(revision 22254)
+++ wp-admin/css/wp-admin.css	(working copy)
@@ -5455,6 +5455,10 @@
 	margin: 0;
 }
 
+.wp-full-overlay-sidebar .wp-full-overlay-footer {
+	height: 80px;
+}
+
 .wp-full-overlay-sidebar .wp-full-overlay-header {
 	top: 0;
 	border-top: 0;
@@ -5472,7 +5476,7 @@
 .wp-full-overlay-sidebar .wp-full-overlay-sidebar-content {
 	position: absolute;
 	top: 45px;
-	bottom: 45px;
+	bottom: 80px;
 	left: 0;
 	right: 0;
 	overflow: auto;
Index: wp-admin/css/customize-controls.css
===================================================================
--- wp-admin/css/customize-controls.css	(revision 22254)
+++ wp-admin/css/customize-controls.css	(working copy)
@@ -67,7 +67,8 @@
 
 .control-section:hover .customize-section-title,
 .control-section .customize-section-title:hover,
-.control-section.open .customize-section-title {
+.control-section.open .customize-section-title,
+.customize-section-title:focus {
 	color: #fff;
 	text-shadow: 0 -1px 0 #333;
 	background: #808080;
@@ -126,6 +127,11 @@
 	color: #999;
 }
 
+#customize-info .customize-section-title:focus .preview-notice {
+	color: #ccc;
+	text-shadow: 0 -1px 0 #333;
+}
+
 #customize-info .theme-name {
 	font-size: 20px;
 	font-weight: 200;
@@ -135,6 +141,11 @@
 	text-shadow: 0 1px 0 #fff;
 }
 
+#customize-info .customize-section-title:focus .theme-name {
+	color: #fff;
+	text-shadow: 0 -1px 0 #333;
+}
+
 #customize-info .theme-screenshot {
 	width: 258px;
 	border: 1px solid #ccc;
@@ -155,16 +166,19 @@
 	margin: 0;
 }
 
+#customize-footer-actions .button-primary,
 #customize-header-actions .button-primary {
 	float: right;
 	margin-top: 10px;
 }
 
+#customize-footer-actions .spinner,
 #customize-header-actions .spinner {
 	margin-top: 16px;
 	margin-right: 4px;
 }
 
+.saving #customize-footer-actions .spinner,
 .saving #customize-header-actions .spinner {
 	display: block;
 }
