Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(269)

Side by Side Diff: chrome/browser/resources/chromeos/login/oobe_screen_user_image.js

Issue 7569004: Improve the accessibility of some of the oobe html pages. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 9 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « chrome/browser/resources/chromeos/login/oobe_screen_user_image.html ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 /** 5 /**
6 * @fileoverview Oobe user image screen implementation. 6 * @fileoverview Oobe user image screen implementation.
7 */ 7 */
8 8
9 cr.define('oobe', function() { 9 cr.define('oobe', function() {
10 /** 10 /**
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after
91 }; 91 };
92 92
93 /** 93 /**
94 * Appends new image to the end of the image list. 94 * Appends new image to the end of the image list.
95 * @param {string} src A url for the user image. 95 * @param {string} src A url for the user image.
96 * @param {function} clickHandler A handler for click on image. 96 * @param {function} clickHandler A handler for click on image.
97 */ 97 */
98 UserImageScreen.addUserImage = function(src, clickHandler) { 98 UserImageScreen.addUserImage = function(src, clickHandler) {
99 var imageElement = document.createElement('img'); 99 var imageElement = document.createElement('img');
100 imageElement.src = src; 100 imageElement.src = src;
101 imageElement.setAttribute('role', 'option');
102 imageElement.setAttribute('tabindex', '-1');
103 imageElement.setAttribute(
104 'aria-label', src.replace(/(.*\/|\.png)/g, '').replace(/_/g, ' '));
101 imageElement.addEventListener('click', 105 imageElement.addEventListener('click',
102 clickHandler, 106 clickHandler,
103 false); 107 false);
104 $('user-image-list').appendChild(imageElement); 108 $('user-image-list').appendChild(imageElement);
105 }; 109 };
106 110
107 /** 111 /**
108 * Appends received images to the list. 112 * Appends received images to the list.
109 * @param {List} images A list of urls to user images. 113 * @param {List} images A list of urls to user images.
110 */ 114 */
111 UserImageScreen.addUserImages = function(images) { 115 UserImageScreen.addUserImages = function(images) {
112 for (var i = 0; i < images.length; i++) { 116 for (var i = 0; i < images.length; i++) {
113 var imageUrl = images[i]; 117 var imageUrl = images[i];
114 UserImageScreen.addUserImage( 118 UserImageScreen.addUserImage(
115 imageUrl, 119 imageUrl,
116 UserImageScreen.handleImageClick); 120 UserImageScreen.handleImageClick);
117 } 121 }
122
123 var userImageScreen = $('user-image');
124 var userImageList = $('user-image-list');
125 userImageList.addEventListener('keydown', function(e) {
126 var prevIndex = userImageScreen.selectedUserImage_;
127 var len = userImageList.children.length;
128 if (e.keyCode == 39 || e.keyCode == 40) { // right or down
129 if (prevIndex < len - 1)
130 UserImageScreen.selectUserImage(prevIndex + 1);
131 } else if (e.keyCode == 37 || e.keyCode == 38) { // left or up
132 if (prevIndex > 0)
133 UserImageScreen.selectUserImage(prevIndex - 1);
134 }
135 });
118 }; 136 };
119 137
120 /** 138 /**
121 * Selects the specified user image and shows it in preview. 139 * Selects the specified user image and shows it in preview.
122 * @param {number} index The index of the image to select. 140 * @param {number} index The index of the image to select.
123 */ 141 */
124 UserImageScreen.selectUserImage = function(index) { 142 UserImageScreen.selectUserImage = function(index) {
125 var userImageList = $('user-image-list'); 143 var userImageList = $('user-image-list');
126 var userImageScreen = $('user-image'); 144 var userImageScreen = $('user-image');
127 var prevIndex = userImageScreen.selectedUserImage_; 145 var prevIndex = userImageScreen.selectedUserImage_;
128 if (prevIndex != -1) { 146 if (prevIndex != -1) {
129 userImageList.children[prevIndex].classList.remove('user-image-selected'); 147 userImageList.children[prevIndex].classList.remove('user-image-selected');
148 userImageList.children[prevIndex].setAttribute('tabIndex', '-1');
130 } 149 }
131 if (index != -1) { 150 if (index != -1) {
132 var selectedImage = userImageList.children[index]; 151 var selectedImage = userImageList.children[index];
133 selectedImage.classList.add('user-image-selected'); 152 selectedImage.classList.add('user-image-selected');
153 selectedImage.setAttribute('tabIndex', '0');
154 selectedImage.focus();
134 $('user-image-preview').src = selectedImage.src; 155 $('user-image-preview').src = selectedImage.src;
135 } 156 }
136 userImageScreen.selectedUserImage_ = index; 157 userImageScreen.selectedUserImage_ = index;
137 }; 158 };
138 159
139 return { 160 return {
140 UserImageScreen: UserImageScreen 161 UserImageScreen: UserImageScreen
141 }; 162 };
142 }); 163 });
OLDNEW
« no previous file with comments | « chrome/browser/resources/chromeos/login/oobe_screen_user_image.html ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698