Index: chrome/browser/resources/chromeos/chromevox/cvox2/background/output.js |
diff --git a/chrome/browser/resources/chromeos/chromevox/cvox2/background/output.js b/chrome/browser/resources/chromeos/chromevox/cvox2/background/output.js |
index af35f3a728e32d6e4408f846ac6a3cd632f0454e..715120ba8cacbc3922347c78b2041591248b12ff 100644 |
--- a/chrome/browser/resources/chromeos/chromevox/cvox2/background/output.js |
+++ b/chrome/browser/resources/chromeos/chromevox/cvox2/background/output.js |
@@ -215,13 +215,16 @@ Output.ROLE_INFO_ = { |
msgId: 'role_menubar', |
}, |
menuItem: { |
- msgId: 'role_menuitem' |
+ msgId: 'role_menuitem', |
+ earconId: 'BUTTON' |
}, |
menuItemCheckBox: { |
- msgId: 'role_menuitemcheckbox' |
+ msgId: 'role_menuitemcheckbox', |
+ earconId: 'BUTTON' |
}, |
menuItemRadio: { |
- msgId: 'role_menuitemradio' |
+ msgId: 'role_menuitemradio', |
+ earconId: 'BUTTON' |
}, |
menuListOption: { |
msgId: 'role_menuitem' |
@@ -239,7 +242,6 @@ Output.ROLE_INFO_ = { |
}, |
popUpButton: { |
msgId: 'role_button', |
- earcon: 'LISTBOX' |
}, |
radioButton: { |
msgId: 'role_radio' |
@@ -321,15 +323,12 @@ Output.ROLE_INFO_ = { |
Output.STATE_INFO_ = { |
checked: { |
on: { |
- earconId: 'CHECK_ON', |
msgId: 'checkbox_checked_state' |
}, |
off: { |
- earconId: 'CHECK_OFF', |
msgId: 'checkbox_unchecked_state' |
}, |
omitted: { |
- earconId: 'CHECK_OFF', |
msgId: 'checkbox_unchecked_state' |
} |
}, |
@@ -395,7 +394,8 @@ Output.RULES = { |
enter: '@column_granularity $tableCellColumnIndex' |
}, |
checkBox: { |
- speak: '$name $role $checked' |
+ speak: '$if($checked, $earcon(CHECK_ON), $earcon(CHECK_OFF)) ' + |
+ '$name $role $checked' |
}, |
dialog: { |
enter: '$name $role' |
@@ -446,7 +446,7 @@ Output.RULES = { |
speak: '$descendants' |
}, |
popUpButton: { |
- speak: '$value $name $role @aria_has_popup ' + |
+ speak: '$earcon(POP_UP_BUTTON) $value $name $role @aria_has_popup ' + |
'$if($collapsed, @aria_expanded_false, @aria_expanded_true)' |
}, |
radioButton: { |
@@ -463,7 +463,7 @@ Output.RULES = { |
enter: '@row_granularity $tableRowIndex' |
}, |
slider: { |
- speak: '@describe_slider($value, $name) $help' |
+ speak: '$earcon(SLIDER) @describe_slider($value, $name) $help' |
}, |
staticText: { |
speak: '$value=' |
@@ -690,27 +690,25 @@ Output.prototype = { |
var queueMode = this.speechProperties_['category'] ? |
cvox.QueueMode.CATEGORY_FLUSH : cvox.QueueMode.FLUSH; |
this.speechBuffer_.forEach(function(buff, i, a) { |
- if (buff.toString()) { |
- (function() { |
- var scopedBuff = buff; |
- this.speechProperties_['startCallback'] = function() { |
- var actions = scopedBuff.getSpansInstanceOf(Output.Action); |
- if (actions) { |
- actions.forEach(function(a) { |
- a.run(); |
- }); |
- } |
- }; |
- }.bind(this)()); |
- |
- if (this.speechEndCallback_ && i == a.length - 1) |
- this.speechProperties_['endCallback'] = this.speechEndCallback_; |
- else |
- this.speechProperties_['endCallback'] = null; |
- cvox.ChromeVox.tts.speak( |
- buff.toString(), queueMode, this.speechProperties_); |
- queueMode = cvox.QueueMode.QUEUE; |
- } |
+ (function() { |
+ var scopedBuff = buff; |
+ this.speechProperties_['startCallback'] = function() { |
+ var actions = scopedBuff.getSpansInstanceOf(Output.Action); |
+ if (actions) { |
+ actions.forEach(function(a) { |
+ a.run(); |
+ }); |
+ } |
+ }; |
+ }.bind(this)()); |
+ |
+ if (this.speechEndCallback_ && i == a.length - 1) |
+ this.speechProperties_['endCallback'] = this.speechEndCallback_; |
+ else |
+ this.speechProperties_['endCallback'] = null; |
+ cvox.ChromeVox.tts.speak( |
+ buff.toString(), queueMode, this.speechProperties_); |
+ queueMode = cvox.QueueMode.QUEUE; |
}.bind(this)); |
// Braille. |
@@ -967,13 +965,10 @@ Output.prototype = { |
// Ignore unless we're generating speech output. |
if (!this.formatOptions_.speech) |
return; |
- // Assumes there's existing output in our buffer. |
- var lastBuff = buff[buff.length - 1]; |
- if (!lastBuff) |
- return; |
- lastBuff.setSpan( |
- new Output.EarconAction(tree.firstChild.value), 0, 0); |
+ options.annotation.push( |
+ new Output.EarconAction(tree.firstChild.value)); |
+ this.append_(buff, '', options); |
} else if (token == 'countChildren') { |
var role = tree.firstChild.value; |
var count = node.children.filter(function(e) { |