[MM-62971][MM-63017] Search box accessibility fixes (#30910)

* [MM-62971] Add role='button' and focusability to the file suggestion list items

* [MM-63017] Add aria-label to Close button in Search
Этот коммит содержится в:
Devin Binnie
2025-05-08 10:43:52 -04:00
коммит произвёл GitHub
родитель 7efb83396b
Коммит 0e806bf8e8
3 изменённых файлов: 25 добавлений и 0 удалений

Просмотреть файл

@@ -110,15 +110,34 @@ SuggestionProps<ExtensionItem>
onClick(item.value, matchedPretext); onClick(item.value, matchedPretext);
}, [onClick, item.value, matchedPretext]); }, [onClick, item.value, matchedPretext]);
const handleKeyDown = useCallback((e: React.KeyboardEvent) => {
if (e.key === 'Enter' || e.key === ' ') {
e.preventDefault();
optionClicked();
}
}, [optionClicked]);
const labelName = messages[item.type] ? const labelName = messages[item.type] ?
intl.formatMessage(messages[item.type]) : intl.formatMessage(messages[item.type]) :
item.type; item.type;
const ariaLabel = intl.formatMessage({
id: 'search_file_extension_suggestion.aria_label',
defaultMessage: '{fileType} (.{extension})',
}, {
fileType: labelName,
extension: item.value,
});
return ( return (
<SearchFileExtensionSuggestionContainer <SearchFileExtensionSuggestionContainer
ref={ref} ref={ref}
className={classNames({selected: isSelection})} className={classNames({selected: isSelection})}
onClick={optionClicked} onClick={optionClicked}
onKeyDown={handleKeyDown}
role='button'
tabIndex={0}
aria-label={ariaLabel}
> >
<div className={classNames('file-icon', getCompassIconClassName(item.type))}/> <div className={classNames('file-icon', getCompassIconClassName(item.type))}/>
{labelName} {labelName}

Просмотреть файл

@@ -279,6 +279,10 @@ const SearchBox = forwardRef(
data-testid='searchBoxClose' data-testid='searchBoxClose'
className='btn btn-icon btn-m' className='btn btn-icon btn-m'
onClick={closeHandler} onClick={closeHandler}
aria-label={intl.formatMessage({
id: 'search_bar.close',
defaultMessage: 'Close',
})}
> >
<i className='icon icon-close'/> <i className='icon icon-close'/>
</CloseIcon> </CloseIcon>

Просмотреть файл

@@ -5037,6 +5037,7 @@
"scheduledPosts.title": "{prefix}Scheduled - {displayName} {siteName}", "scheduledPosts.title": "{prefix}Scheduled - {displayName} {siteName}",
"search_bar.channels": "Channels", "search_bar.channels": "Channels",
"search_bar.clear": "Clear", "search_bar.clear": "Clear",
"search_bar.close": "Close",
"search_bar.file_types": "File types", "search_bar.file_types": "File types",
"search_bar.files_tab": "Files", "search_bar.files_tab": "Files",
"search_bar.messages_tab": "Messages", "search_bar.messages_tab": "Messages",
@@ -5054,6 +5055,7 @@
"search_bar.usage.title_files": "File search options", "search_bar.usage.title_files": "File search options",
"search_bar.usage.title_messages": "Message search options", "search_bar.usage.title_messages": "Message search options",
"search_bar.users": "Users", "search_bar.users": "Users",
"search_file_extension_suggestion.aria_label": "{fileType} (.{extension})",
"search_files_list_option.after": "Files after a date", "search_files_list_option.after": "Files after a date",
"search_files_list_option.before": "Files before a date", "search_files_list_option.before": "Files before a date",
"search_files_list_option.exclude": "Exclude search terms", "search_files_list_option.exclude": "Exclude search terms",