diff --git a/accessible/app.component.js b/accessible/app.component.js
index 42d04608e..2ce25d028 100644
--- a/accessible/app.component.js
+++ b/accessible/app.component.js
@@ -34,23 +34,14 @@ blocklyApp.AppView = ng.core
- {{'TOOLBOX_LOAD'|translate}}
- {{'WORKSPACE_LOAD'|translate}}
+
+
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
`,
directives: [blocklyApp.ToolboxComponent, blocklyApp.WorkspaceComponent],
pipes: [blocklyApp.TranslatePipe],
diff --git a/accessible/messages.js b/accessible/messages.js
index af3a871ac..72bd9b8b1 100644
--- a/accessible/messages.js
+++ b/accessible/messages.js
@@ -19,55 +19,40 @@
*/
/**
- * @fileoverview Accessible strings.
+ * @fileoverview Translatable string constants for Accessible Blockly.
* @author madeeha@google.com (Madeeha Ghori)
*/
'use strict';
-// The following are all Accessible Blockly strings.
-// None of the alert messages have periods on them. This is because the user
-// will have their punctuation setting set to 'all', which will result in any
-// punctuation being read out to them.
-Blockly.Msg.RUN_CODE = 'Run Code';
-Blockly.Msg.CLEAR_WORKSPACE = 'Clear Workspace';
-Blockly.Msg.BLOCK_ACTION_LIST = 'block action list';
-Blockly.Msg.CUT_BLOCK = 'cut block';
-Blockly.Msg.COPY_BLOCK = 'copy block';
-Blockly.Msg.PASTE_BEFORE = 'paste before';
-Blockly.Msg.PASTE_AFTER = 'paste after';
-Blockly.Msg.MARK_SPOT_BEFORE = 'mark spot before';
-Blockly.Msg.MARK_SPOT_AFTER = 'mark spot after';
-Blockly.Msg.MOVE_TO_MARKED_SPOT = 'move to marked spot';
-Blockly.Msg.DELETE = 'delete';
-Blockly.Msg.MARK_THIS_SPOT = 'mark this spot';
-Blockly.Msg.PASTE = 'paste';
-Blockly.Msg.TOOLBOX_LOAD_MSG = 'Loading Toolbox…';
-Blockly.Msg.WORKSPACE_LOAD_MSG = 'Loading Workspace…';
-Blockly.Msg.BLOCK_SUMMARY = 'block summary';
-Blockly.Msg.OPTION_LIST = 'option list';
-Blockly.Msg.ARGUMENT_OPTIONS_LIST = 'argument options list';
-Blockly.Msg.ARGUMENT_INPUT = 'argument input';
-Blockly.Msg.ARGUMENT_BLOCK_ACTION_LIST = 'argument block action list';
-Blockly.Msg.TEXT = 'text';
-Blockly.Msg.BUTTON = 'button';
-Blockly.Msg.DISABLED = 'disabled';
-Blockly.Msg.CURRENT_ARGUMENT_VALUE = 'current argument value:';
-Blockly.Msg.COPY_TO_WORKSPACE = 'create new group with this block';
-Blockly.Msg.COPY_TO_CLIPBOARD = 'copy to clipboard';
-Blockly.Msg.COPY_TO_MARKED_SPOT = 'copy to marked spot';
Blockly.Msg.TOOLBOX = 'Toolbox';
Blockly.Msg.WORKSPACE = 'Workspace';
+Blockly.Msg.TOOLBOX_BLOCK = 'toolbox block. Move right to view submenu.';
+Blockly.Msg.WORKSPACE_BLOCK = 'workspace block. Move right to view submenu.';
+
+Blockly.Msg.CLEAR_WORKSPACE = 'Clear Workspace';
+Blockly.Msg.RUN_CODE = 'Run Code';
+
+Blockly.Msg.COPY_TO_MARKED_SPOT = 'Copy to marked spot.';
+Blockly.Msg.COPY_TO_WORKSPACE = 'Create new group with this block.';
+
+Blockly.Msg.DELETE = 'Delete.';
+Blockly.Msg.MARK_SPOT_BEFORE = 'Mark spot before.';
+Blockly.Msg.MARK_SPOT_AFTER = 'Mark spot after.';
+Blockly.Msg.MARK_THIS_SPOT = 'Mark this spot.';
+Blockly.Msg.MOVE_TO_MARKED_SPOT = 'Move to marked spot.';
+Blockly.Msg.PASTE = 'Paste.';
+
Blockly.Msg.ANY = 'any';
+Blockly.Msg.BUTTON = 'Button.';
Blockly.Msg.FOR = 'for';
Blockly.Msg.STATEMENT = 'statement';
Blockly.Msg.VALUE = 'value';
-Blockly.Msg.CUT_BLOCK_MSG = 'Cut block: ';
-Blockly.Msg.COPIED_BLOCK_MSG = 'copied';
-Blockly.Msg.PASTED_BLOCK_FROM_CLIPBOARD_MSG = 'pasted';
-Blockly.Msg.PASTED_BLOCK_TO_MARKED_SPOT_MSG = 'moved to marked spot';
-Blockly.Msg.MARKED_SPOT_MSG = 'Marked spot';
+
+Blockly.Msg.BLOCK_OPTIONS = 'Block options: ';
+Blockly.Msg.CURRENT_ARGUMENT_VALUE = 'Current argument value: ';
+
Blockly.Msg.BLOCK_MOVED_TO_MARKED_SPOT_MSB = 'Block moved to marked spot: ';
-Blockly.Msg.TOOLBOX_BLOCK = 'toolbox block';
-Blockly.Msg.WORKSPACE_BLOCK = 'workspace block';
-Blockly.Msg.SUBMENU_INDICATOR = 'move right to view submenu';
-Blockly.Msg.BLOCK_OPTIONS = 'Block options';
+Blockly.Msg.COPIED_BLOCK_MSG = 'Copied: ';
+Blockly.Msg.MARKED_SPOT_MSG = 'Marked spot: ';
+Blockly.Msg.PASTED_BLOCK_FROM_CLIPBOARD_MSG = 'Pasted: ';
+Blockly.Msg.PASTED_BLOCK_TO_MARKED_SPOT_MSG = 'Moved to marked spot: ';
diff --git a/accessible/toolbox-tree.component.js b/accessible/toolbox-tree.component.js
index 18d8b1fb2..2d1d461b5 100644
--- a/accessible/toolbox-tree.component.js
+++ b/accessible/toolbox-tree.component.js
@@ -30,13 +30,14 @@ blocklyApp.ToolboxTreeComponent = ng.core
template: `
-
+
-
+ [attr.aria-labelledBy]="generateAriaLabelledByAttr(idMap['sendToSelectedButton'], 'blockly-button')"
+ [attr.aria-level]="level + 1"
+ [attr.aria-disabled]="!canBeCopiedToMarkedConnection()">