diff --git a/src/components/language-selector/language-selector.css b/src/components/language-selector/language-selector.css
index dd09a7c7e76e45bf1c4e2ecfede707bc0381926f..d8ae588ae13fd05fc9d6b07eb6316de7427a4613 100644
--- a/src/components/language-selector/language-selector.css
+++ b/src/components/language-selector/language-selector.css
@@ -1,23 +1,6 @@
 @import "../../css/colors.css";
 @import "../../css/units.css";
 
-.group {
-    z-index: 50;
-    top: $menu-bar-height;
-    left: 0;
-    position: absolute;
-    border: 1px solid $ui-black-transparent;
-    border-radius: 0 0 8px 8px;
-    background-color: $motion-primary;
-    padding: 0;
-    margin: 0;
-    min-width: 186px;
-    max-width: 260px;
-    overflow: visible;
-    color: $ui-white;
-    box-shadow: 0 8px 8px 0 $ui-black-transparent;
-}
-
 .language-icon {
     height:  1.5rem;
 }
@@ -28,7 +11,6 @@
 
 .language-select {
     margin: .5rem;
-    width: calc(100% - 1rem);
     height: 1.85rem;
     border: 1px solid $motion-primary;
     user-select: none;
diff --git a/src/components/language-selector/language-selector.jsx b/src/components/language-selector/language-selector.jsx
index 07249277fb1d27c841ba3926f5060d7e3ef5260b..ad7a9aa90f96aac8e27e7c97994f29049d98edcf 100644
--- a/src/components/language-selector/language-selector.jsx
+++ b/src/components/language-selector/language-selector.jsx
@@ -22,7 +22,6 @@ class LanguageSelector extends React.Component {
                     ref={componentRef}
                 >
                     <select
-                        aria-label="language selector"
                         className={styles.languageSelect}
                         value={currentLocale}
                         onChange={onChange}
diff --git a/src/components/menu-bar/menu-bar.jsx b/src/components/menu-bar/menu-bar.jsx
index aa718b1b04cfc438a2615b7ad893a05cce5d5c85..e4de61ffded598b2c3f60db74d61457aab486009 100644
--- a/src/components/menu-bar/menu-bar.jsx
+++ b/src/components/menu-bar/menu-bar.jsx
@@ -1,6 +1,6 @@
 import classNames from 'classnames';
 import {connect} from 'react-redux';
-import {FormattedMessage} from 'react-intl';
+import {defineMessages, FormattedMessage, injectIntl, intlShape} from 'react-intl';
 import PropTypes from 'prop-types';
 import React from 'react';
 
@@ -41,6 +41,19 @@ import scratchLogo from './scratch-logo.svg';
 
 import helpIcon from './icon--help.svg';
 
+const ariaMessages = defineMessages({
+    language: {
+        id: 'gui.menuBar.LanguageSelector',
+        defaultMessage: 'language selector',
+        description: 'accessibility text for the language selection menu'
+    },
+    howTo: {
+        id: 'gui.menuBar.howToLibrary',
+        defaultMessage: 'How-to Library',
+        description: 'accessibility text for the how-to library button'
+    }
+});
+
 const MenuBarItemTooltip = ({
     children,
     className,
@@ -139,7 +152,10 @@ const MenuBar = props => (
                         id="menubar-selector"
                         place="right"
                     >
-                        <div className={classNames(styles.languageMenu)}>
+                        <div
+                            aria-label={props.intl.formatMessage(ariaMessages.language)}
+                            className={classNames(styles.languageMenu)}
+                        >
                             <img
                                 className={styles.languageIcon}
                                 src={languageIcon}
@@ -149,10 +165,13 @@ const MenuBar = props => (
                                 src={dropdownCaret}
                             />
                         </div>
-                        <LanguageSelector
+                        <MenuBarMenu
                             open={props.languageMenuOpen}
                             onRequestClose={props.onRequestCloseLanguage}
-                        />
+                        >
+                            <LanguageSelector />
+                        </MenuBarMenu>
+
                     </MenuBarItemTooltip>
                 </div>
                 <div
@@ -350,7 +369,7 @@ const MenuBar = props => (
         </div>
         <div className={styles.accountInfoWrapper}>
             <div
-                aria-label="How-to Library"
+                aria-label={props.intl.formatMessage(ariaMessages.howTo)}
                 className={classNames(styles.menuBarItem, styles.hoverable)}
                 onClick={props.onOpenTipLibrary}
             >
@@ -405,6 +424,7 @@ MenuBar.propTypes = {
     editMenuOpen: PropTypes.bool,
     enableCommunity: PropTypes.bool,
     fileMenuOpen: PropTypes.bool,
+    intl: intlShape,
     languageMenuOpen: PropTypes.bool,
     onClickEdit: PropTypes.func,
     onClickFile: PropTypes.func,
@@ -433,7 +453,7 @@ const mapDispatchToProps = dispatch => ({
     onSeeCommunity: () => dispatch(setPlayer(true))
 });
 
-export default connect(
+export default injectIntl(connect(
     mapStateToProps,
     mapDispatchToProps
-)(MenuBar);
+)(MenuBar));
diff --git a/src/containers/language-selector.jsx b/src/containers/language-selector.jsx
index 1a1d7bf0d3d5818744318b99415224f62fb9e1c2..49fb60943ada6bdefa77f95548dc40e2b3080d79 100644
--- a/src/containers/language-selector.jsx
+++ b/src/containers/language-selector.jsx
@@ -11,47 +11,20 @@ class LanguageSelector extends React.Component {
     constructor (props) {
         super(props);
         bindAll(this, [
-            'addListeners',
-            'removeListeners',
-            'handleChange',
-            'handleClick',
-            'ref'
+            'handleChange'
         ]);
-        if (props.open) this.addListeners();
-    }
-    componentDidUpdate (prevProps) {
-        if (this.props.open && !prevProps.open) this.addListeners();
-        if (!this.props.open && prevProps.open) this.removeListeners();
-    }
-    addListeners () {
-        document.addEventListener('mouseup', this.handleClick);
-    }
-    removeListeners () {
-        document.removeEventListener('mouseup', this.handleClick);
     }
     handleChange (e) {
         this.props.onChangeLanguage(e.target.value);
     }
-    handleClick (e) {
-        if (this.props.open && this.selector && !this.selector.contains(e.target)) {
-            this.props.onRequestClose();
-        }
-    }
-    ref (c) {
-        this.selector = c;
-    }
     render () {
         const {
-            open,
             onChangeLanguage, // eslint-disable-line no-unused-vars
-            onRequestClose, // eslint-disable-line no-unused-vars
             children,
             ...props
         } = this.props;
-        if (!open) return null;
         return (
             <LanguageSelectorComponent
-                componentRef={this.ref}
                 onChange={this.handleChange}
                 {...props}
             >
@@ -63,9 +36,7 @@ class LanguageSelector extends React.Component {
 
 LanguageSelector.propTypes = {
     children: PropTypes.node,
-    onChangeLanguage: PropTypes.func.isRequired,
-    onRequestClose: PropTypes.func.isRequired,
-    open: PropTypes.bool.isRequired
+    onChangeLanguage: PropTypes.func.isRequired
 };
 
 const mapStateToProps = state => ({