diff --git a/bigbluebutton-html5/imports/ui/components/actions-bar/actions-dropdown/component.jsx b/bigbluebutton-html5/imports/ui/components/actions-bar/actions-dropdown/component.jsx
index b693288a81b996295cb0c1be37372d7e128ec4ce..a1baf413617f3c629730c593cffb6f3fb8e849ef 100644
--- a/bigbluebutton-html5/imports/ui/components/actions-bar/actions-dropdown/component.jsx
+++ b/bigbluebutton-html5/imports/ui/components/actions-bar/actions-dropdown/component.jsx
@@ -142,7 +142,7 @@ class ActionsDropdown extends Component {
 
     return (
       <Dropdown ref={(ref) => { this._dropdown = ref; }} >
-        <DropdownTrigger tabIndex={0} >
+        <DropdownTrigger tabIndex={0} accessKey="a">
           <Button
             hideLabel
             aria-label={intl.formatMessage(intlMessages.actionsLabel)}
diff --git a/bigbluebutton-html5/imports/ui/components/actions-bar/emoji-select/component.jsx b/bigbluebutton-html5/imports/ui/components/actions-bar/emoji-select/component.jsx
index 5462e5586e4c623303d9a3347a1d6d1fbc09fb1a..e558a33889c5ec5a704e982fec64b5729bc3f60b 100644
--- a/bigbluebutton-html5/imports/ui/components/actions-bar/emoji-select/component.jsx
+++ b/bigbluebutton-html5/imports/ui/components/actions-bar/emoji-select/component.jsx
@@ -61,6 +61,7 @@ const EmojiSelect = ({
           size="lg"
           color="primary"
           onClick={() => null}
+          accessKey="s"
         >
           <div id="currentStatus" hidden>
             { intl.formatMessage(intlMessages.currentStatusDesc, { 0: selected }) }
diff --git a/bigbluebutton-html5/imports/ui/components/audio/audio-controls/component.jsx b/bigbluebutton-html5/imports/ui/components/audio/audio-controls/component.jsx
index 043a7d7c2e66a375b89adb592b5b28d901daa7fd..48f43ad49a6693229094f2653f4cc7c39060e077 100644
--- a/bigbluebutton-html5/imports/ui/components/audio/audio-controls/component.jsx
+++ b/bigbluebutton-html5/imports/ui/components/audio/audio-controls/component.jsx
@@ -64,6 +64,7 @@ const AudioControls = ({
         icon={unmute ? 'mute' : 'unmute'}
         size="lg"
         circle
+        accessKey="m"
       /> : null}
     <Button
       className={styles.button}
@@ -76,6 +77,7 @@ const AudioControls = ({
       icon={join ? 'audio_off' : 'audio_on'}
       size="lg"
       circle
+      accessKey={join ? 'l' : 'j'}
     />
   </span>);
 
diff --git a/bigbluebutton-html5/imports/ui/components/audio/echo-test/component.jsx b/bigbluebutton-html5/imports/ui/components/audio/echo-test/component.jsx
index e8a37027fdfe4860f29300f94e2d07e126214ea3..01c6f1c1777c586942cf92f432ab1d8adea7353c 100644
--- a/bigbluebutton-html5/imports/ui/components/audio/echo-test/component.jsx
+++ b/bigbluebutton-html5/imports/ui/components/audio/echo-test/component.jsx
@@ -5,14 +5,22 @@ import { defineMessages, intlShape, injectIntl } from 'react-intl';
 import { styles } from './styles';
 
 const intlMessages = defineMessages({
-  yes: {
+  confirmLabel: {
     id: 'app.audioModal.yes',
     description: 'Hear yourself yes',
   },
-  no: {
+  disconfirmLabel: {
     id: 'app.audioModal.no',
     description: 'Hear yourself no',
   },
+  confirmAriaLabel: {
+    id: 'app.audioModal.yes.arialabel',
+    description: 'provides better context for yes btn label',
+  },
+  disconfirmAriaLabel: {
+    id: 'app.audioModal.no.arialabel',
+    description: 'provides better context for no btn label',
+  },
 });
 
 const propTypes = {
@@ -38,7 +46,8 @@ class EchoTest extends Component {
       <span className={styles.echoTest}>
         <Button
           className={styles.button}
-          label={intl.formatMessage(intlMessages.yes)}
+          label={intl.formatMessage(intlMessages.confirmLabel)}
+          aria-label={intl.formatMessage(intlMessages.confirmAriaLabel)}
           icon="thumbs_up"
           circle
           color="success"
@@ -47,7 +56,8 @@ class EchoTest extends Component {
         />
         <Button
           className={styles.button}
-          label={intl.formatMessage(intlMessages.no)}
+          label={intl.formatMessage(intlMessages.disconfirmLabel)}
+          aria-label={intl.formatMessage(intlMessages.disconfirmAriaLabel)}
           icon="thumbs_down"
           circle
           color="danger"
diff --git a/bigbluebutton-html5/imports/ui/components/chat/component.jsx b/bigbluebutton-html5/imports/ui/components/chat/component.jsx
index c7d6ea534b03b867c7cff961d6dfef9cd6a32f0a..b90a40fb1f4a7590cb8488fc2ccfc57b25c7eea1 100644
--- a/bigbluebutton-html5/imports/ui/components/chat/component.jsx
+++ b/bigbluebutton-html5/imports/ui/components/chat/component.jsx
@@ -54,6 +54,7 @@ const Chat = (props) => {
             to="/users"
             role="button"
             aria-label={intl.formatMessage(intlMessages.hideChatLabel, { 0: title })}
+            accessKey="h"
           >
             <Icon iconName="left_arrow" /> {title}
           </Link>
@@ -73,6 +74,7 @@ const Chat = (props) => {
                 onClick={() => actions.handleClosePrivateChat(chatID)}
                 aria-label={intl.formatMessage(intlMessages.closeChatLabel, { 0: title })}
                 label={intl.formatMessage(intlMessages.closeChatLabel, { 0: title })}
+                accessKey="g"
               />
             </Link> :
             <ChatDropdown />
diff --git a/bigbluebutton-html5/imports/ui/components/chat/message-list/component.jsx b/bigbluebutton-html5/imports/ui/components/chat/message-list/component.jsx
index 61f4f5b8dcad3d9e59ca07a2e5b804dd2115d589..8bd763652eeb24a70fa7e0e40235a12badbf682a 100644
--- a/bigbluebutton-html5/imports/ui/components/chat/message-list/component.jsx
+++ b/bigbluebutton-html5/imports/ui/components/chat/message-list/component.jsx
@@ -143,6 +143,7 @@ class MessageList extends Component {
     if (hasUnreadMessages && scrollPosition !== null) {
       return (
         <Button
+          aria-hidden="true"
           className={styles.unreadButton}
           size="sm"
           label={intl.formatMessage(intlMessages.moreMessages)}
diff --git a/bigbluebutton-html5/imports/ui/components/nav-bar/component.jsx b/bigbluebutton-html5/imports/ui/components/nav-bar/component.jsx
index 3d287229770d23225f470d6bc6cbf90d3b21d763..3fbd14a2dd6b3bb6fd76dbb3fd2a8c2fa4251d84 100644
--- a/bigbluebutton-html5/imports/ui/components/nav-bar/component.jsx
+++ b/bigbluebutton-html5/imports/ui/components/nav-bar/component.jsx
@@ -198,6 +198,7 @@ class NavBar extends Component {
             className={cx(toggleBtnClasses)}
             aria-expanded={isExpanded}
             aria-describedby="newMessage"
+            accessKey="u"
           />
           <div
             id="newMessage"
diff --git a/bigbluebutton-html5/imports/ui/components/nav-bar/settings-dropdown/component.jsx b/bigbluebutton-html5/imports/ui/components/nav-bar/settings-dropdown/component.jsx
index 69a3b3096c4793f0ec6ad30ed8cdc92d2c2dea07..c73bbe8ea4fc40506f9adbf0a749ba9485d1e3d7 100644
--- a/bigbluebutton-html5/imports/ui/components/nav-bar/settings-dropdown/component.jsx
+++ b/bigbluebutton-html5/imports/ui/components/nav-bar/settings-dropdown/component.jsx
@@ -154,7 +154,7 @@ class SettingsDropdown extends Component {
         onShow={this.onActionsShow}
         onHide={this.onActionsHide}
       >
-        <DropdownTrigger tabIndex={0}>
+        <DropdownTrigger tabIndex={0} accessKey="o">
           <Button
             label={intl.formatMessage(intlMessages.optionsLabel)}
             icon="more"
diff --git a/bigbluebutton-html5/imports/ui/components/user-list/chat-list-item/component.jsx b/bigbluebutton-html5/imports/ui/components/user-list/chat-list-item/component.jsx
index e3b50f1fb95909fd028b15b21b497c2d3e15c5d1..6c302a71fb8a2a932b595c3c751599151e997745 100644
--- a/bigbluebutton-html5/imports/ui/components/user-list/chat-list-item/component.jsx
+++ b/bigbluebutton-html5/imports/ui/components/user-list/chat-list-item/component.jsx
@@ -71,6 +71,7 @@ const ChatListItem = (props) => {
       role="button"
       aria-expanded={isCurrentChat}
       tabIndex={tabIndex}
+      accessKey={isPublicChat(chat) ? 'p' : null}
     >
       <div className={styles.chatListItemLink}>
         <div className={styles.chatIcon}>
diff --git a/bigbluebutton-html5/private/locales/en.json b/bigbluebutton-html5/private/locales/en.json
index 7e257112e80c526010784af123e9e26e9f7f2625..f52fe19a623a50c829007f47c812858c29cc6f20 100755
--- a/bigbluebutton-html5/private/locales/en.json
+++ b/bigbluebutton-html5/private/locales/en.json
@@ -36,7 +36,7 @@
     "app.userList.menu.removeUser.label": "Remove user",
     "app.userList.menu.muteUserAudio.label": "Mute user",
     "app.userList.menu.unmuteUserAudio.label": "Unmute user",
-    "app.userList.userAriaLabel": "User : {0}  Role: {1}  Person: {2}  Status: {3}",
+    "app.userList.userAriaLabel": "{0} {1} {2}  Status {3}",
     "app.userList.menu.promoteUser.label": "Promote {0} to moderator",
     "app.userList.menu.demoteUser.label": "Demote {0} to viewer",
     "app.media.label": "Media",
@@ -93,7 +93,7 @@
     "app.navBar.settingsDropdown.leaveSessionDesc": "Leave the meeting",
     "app.navBar.settingsDropdown.exitFullscreenDesc": "Exit fullscreen mode",
     "app.navBar.userListToggleBtnLabel": "User List Toggle",
-    "app.navBar.toggleUserList.ariaLabel": "Users / Conversations Toggle",
+    "app.navBar.toggleUserList.ariaLabel": "Users and Conversations Toggle",
     "app.navBar.toggleUserList.newMessages": "with new message notification",
     "app.navBar.recording": "This session is being recorded",
     "app.navBar.recording.on": "Recording",
@@ -247,6 +247,8 @@
     "app.audioModal.closeLabel": "Close",
     "app.audioModal.yes": "Yes",
     "app.audioModal.no": "No",
+    "app.audioModal.yes.arialabel" : "Echo is audible",
+    "app.audioModal.no.arialabel" : "Echo is inaudible",
     "app.audioModal.echoTestTitle": "This is a private echo test. Speak a few words. Did you hear audio?",
     "app.audioModal.settingsTitle": "Change your audio settings",
     "app.audioModal.helpTitle": "There was an issue with your media devices",