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

Unified Diff: chrome/browser/resources/chromeos/login/screen_locally_managed_user_creation.js

Issue 246603004: A11y for supervised users import (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fixes Created 6 years, 8 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/resources/chromeos/login/screen_locally_managed_user_creation.css ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/resources/chromeos/login/screen_locally_managed_user_creation.js
diff --git a/chrome/browser/resources/chromeos/login/screen_locally_managed_user_creation.js b/chrome/browser/resources/chromeos/login/screen_locally_managed_user_creation.js
index 650c78bb908d2f944ac3f2d58bc08047eea5fb8d..8a8d224e3cfba7bbfd6ec3ae06ff7d95786fd4ef 100644
--- a/chrome/browser/resources/chromeos/login/screen_locally_managed_user_creation.js
+++ b/chrome/browser/resources/chromeos/login/screen_locally_managed_user_creation.js
@@ -256,8 +256,9 @@ login.createScreen('LocallyManagedUserCreationScreen',
decorate: function() {
// Mousedown has to be used instead of click to be able to prevent 'focus'
// event later.
- this.addEventListener('mousedown',
- this.handleMouseDown_.bind(this));
+ this.addEventListener('mousedown', this.handleMouseDown_.bind(this));
+ var screen = $('managed-user-creation');
+ var importList = screen.importList_;
},
/**
@@ -330,6 +331,35 @@ login.createScreen('LocallyManagedUserCreationScreen',
/** @override */
decorate: function() {
+ this.setAttribute('tabIndex', 0);
+ this.classList.add('nofocus');
+ var importList = this;
+ var screen = $('managed-user-creation');
+
+ this.addEventListener('focus', function(e) {
+ if (importList.selectedPod_ == null) {
+ if (importList.pods.length > 0)
+ importList.selectPod(importList.pods[0]);
+ }
+ });
+
+ this.addEventListener('keydown', function(e) {
+ switch (e.keyIdentifier) {
+ case 'Up':
+ importList.selectNextPod(-1);
+ e.stopPropagation();
+ break;
+ case 'Enter':
+ if (importList.selectedPod_ != null)
+ screen.importSupervisedUser_();
+ e.stopPropagation();
+ break;
+ case 'Down':
+ importList.selectNextPod(+1);
+ e.stopPropagation();
+ break;
+ }
+ });
},
/**
@@ -409,6 +439,7 @@ login.createScreen('LocallyManagedUserCreationScreen',
if (!podToSelect)
return;
podToSelect.classList.add('focused');
+ podToSelect.focus();
var screen = $('managed-user-creation');
if (!this.selectedPod_) {
screen.getScreenButton('import').disabled = true;
@@ -422,6 +453,25 @@ login.createScreen('LocallyManagedUserCreationScreen',
}
},
+ selectNextPod: function(direction) {
+ if (!this.selectedPod_)
+ return false;
+ var index = -1;
+ for (var i = 0, pod; pod = this.pods[i]; ++i) {
+ if (pod == this.selectedPod_) {
+ index = i;
+ break;
+ }
+ }
+ if (-1 == index)
+ return false;
+ index = index + direction;
+ if (index < 0 || index >= this.pods.length)
+ return false;
+ this.selectPod(this.pods[index]);
+ return true;
+ },
+
selectUser: function(user_id) {
for (var i = 0, pod; pod = this.pods[i]; ++i) {
if (pod.user.id == user_id) {
« no previous file with comments | « chrome/browser/resources/chromeos/login/screen_locally_managed_user_creation.css ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698