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

Side by Side Diff: chrome/browser/resources/chromeos/chromevox/cvox2/background/output.js

Issue 1099023005: Implement support for <audio> in ChromeVox Next. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Make sliders atomic. Created 5 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 unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 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 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 Provides output services for ChromeVox. 6 * @fileoverview Provides output services for ChromeVox.
7 */ 7 */
8 8
9 goog.provide('Output'); 9 goog.provide('Output');
10 goog.provide('Output.EventType'); 10 goog.provide('Output.EventType');
(...skipping 144 matching lines...) Expand 10 before | Expand all | Expand 10 after
155 */ 155 */
156 Output.RULES = { 156 Output.RULES = {
157 navigate: { 157 navigate: {
158 'default': { 158 'default': {
159 speak: '$name $value $role', 159 speak: '$name $value $role',
160 braille: '' 160 braille: ''
161 }, 161 },
162 alert: { 162 alert: {
163 speak: '!doNotInterrupt $role $descendants' 163 speak: '!doNotInterrupt $role $descendants'
164 }, 164 },
165 button: {
166 speak: '$name $value $description $role',
dmazzoni 2015/04/24 13:41:08 As suggested in the other CL, how about: $name $d
167 },
165 checkBox: { 168 checkBox: {
166 speak: '$name $role $checked' 169 speak: '$name $role $checked'
167 }, 170 },
168 dialog: { 171 dialog: {
169 enter: '$name $role' 172 enter: '$name $role'
170 }, 173 },
171 heading: { 174 heading: {
172 enter: '@tag_h+$hierarchicalLevel', 175 enter: '@tag_h+$hierarchicalLevel',
173 speak: '@tag_h+$hierarchicalLevel $name=' 176 speak: '@tag_h+$hierarchicalLevel $name='
174 }, 177 },
(...skipping 25 matching lines...) Expand all
200 }, 203 },
201 popUpButton: { 204 popUpButton: {
202 speak: '$value $name $role @aria_has_popup ' + 205 speak: '$value $name $role @aria_has_popup ' +
203 '$if($collapsed, @aria_expanded_false, @aria_expanded_true)' 206 '$if($collapsed, @aria_expanded_false, @aria_expanded_true)'
204 }, 207 },
205 radioButton: { 208 radioButton: {
206 speak: '$if($checked, @describe_radio_selected($name), ' + 209 speak: '$if($checked, @describe_radio_selected($name), ' +
207 '@describe_radio_unselected($name))' 210 '@describe_radio_unselected($name))'
208 }, 211 },
209 slider: { 212 slider: {
210 speak: '@describe_slider($value, $name)' 213 speak: '@describe_slider($value, $name) $help'
211 }, 214 },
212 staticText: { 215 staticText: {
213 speak: '$value $name' 216 speak: '$value $name'
214 }, 217 },
215 tab: { 218 tab: {
216 speak: '@describe_tab($name)' 219 speak: '@describe_tab($name)'
217 }, 220 },
218 toolbar: { 221 toolbar: {
219 enter: '$name $role' 222 enter: '$name $role'
220 }, 223 },
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after
296 * Possible events handled by ChromeVox internally. 299 * Possible events handled by ChromeVox internally.
297 * @enum {string} 300 * @enum {string}
298 */ 301 */
299 Output.EventType = { 302 Output.EventType = {
300 NAVIGATE: 'navigate' 303 NAVIGATE: 'navigate'
301 }; 304 };
302 305
303 Output.prototype = { 306 Output.prototype = {
304 /** 307 /**
305 * Gets the output buffer for speech. 308 * Gets the output buffer for speech.
309 * @param {string=} opt_separator Used to join components of the output.
306 * @return {!cvox.Spannable} 310 * @return {!cvox.Spannable}
307 */ 311 */
308 toSpannable: function() { 312 toSpannable: function(opt_separator) {
313 opt_separator = opt_separator || '';
309 return this.buffer_.reduce(function(prev, cur) { 314 return this.buffer_.reduce(function(prev, cur) {
315 if (prev === null)
316 return cur;
317 prev.append(opt_separator);
310 prev.append(cur); 318 prev.append(cur);
311 return prev; 319 return prev;
312 }, new cvox.Spannable()); 320 }, null);
313 }, 321 },
314 322
315 /** 323 /**
324 * Gets the output buffer for speech with separator '|'.
325 * @return {!cvox.Spannable}
326 */
327 toSpannableForTest: function() {
328 return this.toSpannable('|');
329 },
330
331 /**
316 * Specify ranges for speech. 332 * Specify ranges for speech.
317 * @param {!cursors.Range} range 333 * @param {!cursors.Range} range
318 * @param {cursors.Range} prevRange 334 * @param {cursors.Range} prevRange
319 * @param {chrome.automation.EventType|Output.EventType} type 335 * @param {chrome.automation.EventType|Output.EventType} type
320 * @return {!Output} 336 * @return {!Output}
321 */ 337 */
322 withSpeech: function(range, prevRange, type) { 338 withSpeech: function(range, prevRange, type) {
323 this.formatOptions_ = {speech: true, braille: false, location: true}; 339 this.formatOptions_ = {speech: true, braille: false, location: true};
324 this.render_(range, prevRange, type, this.buffer_); 340 this.render_(range, prevRange, type, this.buffer_);
325 return this; 341 return this;
(...skipping 541 matching lines...) Expand 10 before | Expand all | Expand 10 after
867 } 883 }
868 884
869 if (currentNode != root) 885 if (currentNode != root)
870 throw 'Unbalanced parenthesis.'; 886 throw 'Unbalanced parenthesis.';
871 887
872 return root; 888 return root;
873 } 889 }
874 }; 890 };
875 891
876 }); // goog.scope 892 }); // goog.scope
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698