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
3 // found in the LICENSE file.
5 // An object to implement keyboard overlay accessibility.
6 var KeyboardOverlayAccessibilityHelper
= {
7 // Returns true when ChromeVox is loaded and active, false otherwise.
8 cvoxIsActive: function() {
9 return window
.cvox
&& window
.cvox
.Api
.isChromeVoxActive();
11 // Speaks all the shortcut with the given modifiers.
12 maybeSpeakAllShortcuts: function(modifiers
) {
13 if (!this.cvoxIsActive())
16 var keyboardGlyphData
= getKeyboardGlyphData();
17 var shortcutData
= getShortcutData();
18 var layout
= getLayouts()[keyboardGlyphData
.layoutName
];
19 var keysToShortcutText
= {};
20 for (var i
= 0; i
< layout
.length
; ++i
) {
21 var identifier
= remapIdentifier(layout
[i
][0]);
22 var keyData
= keyboardGlyphData
.keys
[identifier
];
23 var keyLabel
= getKeyLabel(keyData
, modifiers
);
24 var shortcutId
= shortcutData
[getAction(keyLabel
, modifiers
)];
25 var shortcutText
= templateData
[shortcutId
];
26 var keysText
= modifiers
.concat(keyLabel
).join(' + ');
28 keysToShortcutText
[keysText
] = shortcutText
;
30 for (var keysText
in keysToShortcutText
) {
31 this.speakShortcut_(keysText
, keysToShortcutText
[keysText
]);
34 // Speaks given shortcut description.
35 speakShortcut_: function(keysText
, shortcutText
) {
36 keysText
= keysText
.toLowerCase(); // For correct pronunciation.
37 cvox
.Api
.speak(keysText
, 1, {});
38 cvox
.Api
.speak(shortcutText
, 1, {});