react-native-web
Version:
React Native for Web
43 lines (39 loc) • 865 B
JavaScript
/**
* Copyright (c) Nicolas Gallagher.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
* @flow
*/
const accessibilityRoleToWebRole = {
adjustable: 'slider',
button: 'button',
header: 'heading',
image: 'img',
imagebutton: null,
keyboardkey: null,
label: null,
link: 'link',
none: 'presentation',
search: 'search',
summary: 'region',
text: null
};
const propsToAriaRole = ({
accessibilityRole,
role
}: {
accessibilityRole?: string,
role?: string
}): string | void => {
const _role = role || accessibilityRole;
if (_role) {
const inferredRole = accessibilityRoleToWebRole[_role];
if (inferredRole !== null) {
// ignore roles that don't map to web
return inferredRole || _role;
}
}
};
export default propsToAriaRole;