diff --git a/README.md b/README.md
index b853d176a..6c11b27ee 100644
--- a/README.md
+++ b/README.md
@@ -59,6 +59,7 @@ import { Picker } from 'emoji-mart'
```js
search: 'Search',
clear: 'Clear', // Accessible label on "clear" button
+emojilist: 'List of emoji', // Accessible title for list of emoji
notfound: 'No Emoji Found',
skintext: 'Choose your default skin tone',
categories: {
diff --git a/css/emoji-mart.css b/css/emoji-mart.css
index 15bb71b0c..d2e4a6511 100644
--- a/css/emoji-mart.css
+++ b/css/emoji-mart.css
@@ -164,6 +164,11 @@
position: relative;
display: inline-block;
font-size: 0;
+ margin: 0;
+ padding: 0;
+ border: none;
+ background: none;
+ box-shadow: none;
}
.emoji-mart-emoji-native {
diff --git a/src/components/category.js b/src/components/category.js
index 760be3da2..62d813aca 100644
--- a/src/components/category.js
+++ b/src/components/category.js
@@ -176,9 +176,10 @@ export default class Category extends React.Component {
}
return (
-
-
+
{i18n.categories[id]}
@@ -206,7 +211,7 @@ export default class Category extends React.Component {
emojiProps={emojiProps}
/>
)}
-
+
)
}
}
diff --git a/src/components/emoji/nimble-emoji.js b/src/components/emoji/nimble-emoji.js
index 6e8c32680..23ad4cd56 100644
--- a/src/components/emoji/nimble-emoji.js
+++ b/src/components/emoji/nimble-emoji.js
@@ -98,6 +98,12 @@ const NimbleEmoji = (props) => {
style = {},
children = props.children,
className = 'emoji-mart-emoji',
+ nativeEmoji = unified && unifiedToNative(unified),
+ // combine the emoji itself and all shortcodes into an accessible label
+ label = [nativeEmoji]
+ .concat(short_names)
+ .filter(Boolean)
+ .join(', '),
title = null
if (!unified && !custom) {
@@ -115,7 +121,7 @@ const NimbleEmoji = (props) => {
if (props.native && unified) {
className += ' emoji-mart-emoji-native'
style = { fontSize: props.size }
- children = unifiedToNative(unified)
+ children = nativeEmoji
if (props.forceSize) {
style.display = 'inline-block'
@@ -173,21 +179,22 @@ const NimbleEmoji = (props) => {
if (props.html) {
style = _convertStyleToCSS(style)
- return `${children || ''}`
+ } class='${className}'>${children || ''}`
} else {
return (
- _handleClick(e, props)}
onMouseEnter={(e) => _handleOver(e, props)}
onMouseLeave={(e) => _handleLeave(e, props)}
+ aria-label={label}
title={title}
className={className}
>
{children}
-
+
)
}
}
diff --git a/src/components/picker/nimble-picker.js b/src/components/picker/nimble-picker.js
index 9edfb3e47..57793cff0 100644
--- a/src/components/picker/nimble-picker.js
+++ b/src/components/picker/nimble-picker.js
@@ -19,6 +19,7 @@ import { PickerDefaultProps } from '../../utils/shared-default-props'
const I18N = {
search: 'Search',
clear: 'Clear', // Accessible label on "clear" button
+ emojilist: 'List of emoji', // Accessible title for list of emoji
notfound: 'No Emoji Found',
skintext: 'Choose your default skin tone',
categories: {
@@ -520,9 +521,10 @@ export default class NimblePicker extends React.PureComponent {
autoFocus={autoFocus}
/>
-
{this.getCategories().map((category, i) => {
@@ -566,7 +568,7 @@ export default class NimblePicker extends React.PureComponent {
/>
)
})}
-
+
{(showPreview || showSkinTones) && (