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

Side by Side Diff: chrome/browser/resources/chromeos/chromevox/chromevox/messages/spoken_messages.js

Issue 1362223003: Improve braille related message descriptions and clean up message handling in Chromevox. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@inputtypeexception
Patch Set: Move another braille message to Msgs.Untranslated Created 5 years, 2 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
OLDNEW
(Empty)
1 // Copyright 2014 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.
4
5 /**
6 * @fileoverview Useful abstraction when speaking messages.
7 *
8 * Usage:
9 * $m('aria_role_link')
10 * .andPause()
11 * .andMessage('aria_role_forms')
12 * .speakFlush();
13 *
14 */
15
16 goog.provide('cvox.SpokenMessages');
17
18 goog.require('cvox.AbstractTts');
19 goog.require('cvox.ChromeVox');
20 goog.require('cvox.SpokenMessage');
21
22 /**
23 * @type {Array}
24 */
25 cvox.SpokenMessages.messages = [];
26
27 /**
28 * Speaks the message chain and interrupts any on-going speech.
29 */
30 cvox.SpokenMessages.speakFlush = function() {
31 cvox.SpokenMessages.speak(cvox.QueueMode.FLUSH);
32 };
33
34 /**
35 * Speaks the message chain after on-going speech finishes.
36 */
37 cvox.SpokenMessages.speakQueued = function() {
38 cvox.SpokenMessages.speak(cvox.QueueMode.QUEUE);
39 };
40
41 /**
42 * Speak the message chain.
43 * @param {cvox.QueueMode} mode The speech queue mode.
44 */
45 cvox.SpokenMessages.speak = function(mode) {
46 for (var i = 0; i < cvox.SpokenMessages.messages.length; ++i) {
47 var message = cvox.SpokenMessages.messages[i];
48
49 // An invalid message format.
50 if (!message || !message.id)
51 throw 'Invalid message received.';
52
53 var finalText = cvox.ChromeVox.msgs.getMsg.apply(cvox.ChromeVox.msgs,
54 message.id);
55 cvox.ChromeVox.tts.speak(finalText, mode,
56 cvox.AbstractTts.PERSONALITY_ANNOUNCEMENT);
57
58 // Always queue after the first message.
59 mode = cvox.QueueMode.QUEUE;
60 }
61
62 cvox.SpokenMessages.messages = [];
63 };
64
65 /**
66 * The newest message.
67 * @return {cvox.SpokenMessage} The newest (current) message.
68 */
69 cvox.SpokenMessages.currentMessage = function() {
70 if (cvox.SpokenMessages.messages.length == 0)
71 throw 'Invalid usage of SpokenMessages; start the chain using $m()';
72 return cvox.SpokenMessages.messages[cvox.SpokenMessages.messages.length - 1];
73 };
74
75 /**
76 * Adds a message.
77 * @param {string|Array} messageId The id of the message.
78 * @return {Object} This object, useful for chaining.
79 */
80 cvox.SpokenMessages.andMessage = function(messageId) {
81 var newMessage = new cvox.SpokenMessage();
82 newMessage.id = typeof(messageId) == 'string' ? [messageId] : messageId;
83 cvox.SpokenMessages.messages.push(newMessage);
84 return cvox.SpokenMessages;
85 };
86
87 /**
88 * Pauses after the message, with an appropriate marker.
89 * @return {Object} This object, useful for chaining.
90 */
91 cvox.SpokenMessages.andPause = function() {
92 return cvox.SpokenMessages.andMessage('pause');
93 };
94
95 /**
96 * Adds a message.
97 * @param {string|Array} messageId The id of the message.
98 * @return {Object} This object, useful for chaining.
99 */
100 cvox.$m = cvox.SpokenMessages.andMessage;
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698