diff --git a/contentcuration/contentcuration/frontend/shared/strings/commonStrings.js b/contentcuration/contentcuration/frontend/shared/strings/commonStrings.js
index 2399fc6be9..0a1fb9161b 100644
--- a/contentcuration/contentcuration/frontend/shared/strings/commonStrings.js
+++ b/contentcuration/contentcuration/frontend/shared/strings/commonStrings.js
@@ -46,4 +46,40 @@ export const commonStrings = createTranslator('CommonStrings', {
message: 'Options',
context: 'Tooltip for the generic options menu icon',
},
+ openMenuAction: {
+ message: 'Open menu',
+ context: 'Accessible label for the button that opens a dropdown menu',
+ },
+ closeMenuAction: {
+ message: 'Close menu',
+ context: 'Accessible label for the button that closes a dropdown menu',
+ },
+ optionsClickableLabel: {
+ message: 'Options are clickable',
+ context: 'Announced to screen reader users when a list of selectable options appears',
+ },
+ allOptionsSelectedLabel: {
+ message: 'All options selected',
+ context: 'Announced when every option in a list is selected',
+ },
+ allOptionsDeselectedLabel: {
+ message: 'No options selected',
+ context: 'Announced when no options in a list are selected',
+ },
+ optionDeselectedLabel: {
+ message: 'Option deselected',
+ context: 'Announced when an option is removed from the selection',
+ },
+ partiallySelectedLabel: {
+ message: 'Partially selected',
+ context: 'Announced for an option when only some of the options under it are selected',
+ },
+ optionSelectedLabel: {
+ message: 'Selected {label}',
+ context: 'Announced when an option is selected. {label} is the name of the option',
+ },
+ optionRemovedLabel: {
+ message: 'Removed {label}',
+ context: 'Announced when an option is removed. {label} is the name of the option',
+ },
});
diff --git a/contentcuration/contentcuration/frontend/shared/strings/communityChannelsStrings.js b/contentcuration/contentcuration/frontend/shared/strings/communityChannelsStrings.js
index d4a76f4df2..8377e11f7a 100644
--- a/contentcuration/contentcuration/frontend/shared/strings/communityChannelsStrings.js
+++ b/contentcuration/contentcuration/frontend/shared/strings/communityChannelsStrings.js
@@ -445,6 +445,7 @@ export const communityChannelsStrings = createTranslator('CommunityChannelsStrin
message: 'New',
context: 'Label indicating the section for new notifications',
},
+ // TODO: clearAllAction should be moved to commonStrings.js in next major Studio release
clearAllAction: {
message: 'Clear all',
context: 'Action button to clear all notifications',
diff --git a/contentcuration/contentcuration/frontend/shared/views/contentNodeFields/CategoryOptions.vue b/contentcuration/contentcuration/frontend/shared/views/contentNodeFields/CategoryOptions.vue
index cc81b17e5e..95254813f0 100644
--- a/contentcuration/contentcuration/frontend/shared/views/contentNodeFields/CategoryOptions.vue
+++ b/contentcuration/contentcuration/frontend/shared/views/contentNodeFields/CategoryOptions.vue
@@ -1,7 +1,39 @@